File indexing completed on 2024-05-12 04:37:43
0001 /* 0002 SPDX-FileCopyrightText: 2009 Lior Mualem <lior.m.kde@gmail.com> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KDEVPLATFORM_ALLCLASSESFOLDER_H 0008 #define KDEVPLATFORM_ALLCLASSESFOLDER_H 0009 0010 #include "documentclassesfolder.h" 0011 0012 namespace KDevelop { 0013 class IProject; 0014 } 0015 0016 namespace ClassModelNodes { 0017 /// Special folder. 0018 /// It displays all the classes in the projects by using the IProject 0019 class AllClassesFolder 0020 : public DocumentClassesFolder 0021 { 0022 Q_OBJECT 0023 0024 public: 0025 explicit AllClassesFolder(NodesModelInterface* a_model); 0026 0027 public: // Node overrides 0028 void nodeCleared() override; 0029 void populateNode() override; 0030 0031 private Q_SLOTS: 0032 // Project watching 0033 void projectOpened(KDevelop::IProject* project); 0034 void projectClosing(KDevelop::IProject* project); 0035 }; 0036 0037 /// Contains a filter for the all classes folder. 0038 class FilteredAllClassesFolder 0039 : public AllClassesFolder 0040 { 0041 Q_OBJECT 0042 0043 public: 0044 explicit FilteredAllClassesFolder(NodesModelInterface* a_model); 0045 0046 public: // Operations. 0047 /// Call this to update the classes filter string. 0048 void updateFilterString(const QString& a_newFilterString); 0049 0050 private: // DocumentClassesFolder overrides 0051 bool isClassFiltered(const KDevelop::QualifiedIdentifier& a_id) override; 0052 0053 private: 0054 /// We'll use this string to display only classes that match this string. 0055 QString m_filterString; 0056 }; 0057 } // namespace ClassModelNodes 0058 0059 #endif