Warning, file /kdevelop/kdevelop/kdevplatform/language/classmodel/projectfolder.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2009 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_PROJECTFOLDER_H
0008 #define KDEVPLATFORM_PROJECTFOLDER_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 items of a given project.
0019 class ProjectFolder
0020     : public DocumentClassesFolder
0021 {
0022     Q_OBJECT
0023 
0024 public:
0025     ProjectFolder(NodesModelInterface* a_model, KDevelop::IProject* project);
0026     explicit ProjectFolder(NodesModelInterface* a_model);
0027 
0028     void populateNode() override;
0029 
0030 protected:
0031     KDevelop::IProject* m_project;
0032 };
0033 
0034 /// Filter for the project folder.
0035 /// TODO: can't we share some code with FilteredAllClassesFolder somehow?
0036 class FilteredProjectFolder
0037     : public ProjectFolder
0038 {
0039     Q_OBJECT
0040 
0041 public:
0042     FilteredProjectFolder(NodesModelInterface* a_model, KDevelop::IProject* project);
0043 
0044 public: // Operations.
0045     /// Call this to update the classes filter string.
0046     void updateFilterString(const QString& a_newFilterString);
0047 
0048 private: // DocumentClassesFolder overrides
0049     bool isClassFiltered(const KDevelop::QualifiedIdentifier& a_id) override;
0050 
0051 private:
0052     /// We'll use this string to display only classes that match this string.
0053     QString m_filterString;
0054 };
0055 }
0056 
0057 #endif // KDEVPLATFORM_PROJECTFOLDER_H