File indexing completed on 2024-05-12 04:38:11

0001 /*
0002     SPDX-FileCopyrightText: 2013 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KDEVPLATFORM_IPROJECTFILTER_H
0008 #define KDEVPLATFORM_IPROJECTFILTER_H
0009 
0010 #include <project/projectexport.h>
0011 
0012 namespace KDevelop
0013 {
0014 
0015 class Path;
0016 
0017 /**
0018  * @short The actual project filter object.
0019  *
0020  * Instances of this class should allow threadsafe filtering of project contents.
0021  *
0022  * @author Milian Wolff
0023  */
0024 class KDEVPLATFORMPROJECT_EXPORT IProjectFilter
0025 {
0026 public:
0027     virtual ~IProjectFilter();
0028 
0029     /**
0030      * Check whether the given @p path should be included in a project.
0031      *
0032      * @param path is the path that you want to be checked.
0033      * @param isFolder distinguishes between files and folders.
0034      *
0035      * @return true when the given path should be included in the project,
0036      *         false otherwise, i.e. when the path should be hidden.
0037      */
0038     virtual bool isValid(const Path& path, bool isFolder) const = 0;
0039 };
0040 
0041 }
0042 
0043 #endif // KDEVPLATFORM_IPROJECTFILTER_H