project
iprojectfilemanager.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef IPROJECTFILEMANAGER_H
00023 #define IPROJECTFILEMANAGER_H
00024
00025 #include <QtCore/QStringList>
00026
00027 #include <kurl.h>
00028
00029 #include <interfaces/iextension.h>
00030
00031 #include "../projectexport.h"
00032
00033
00034
00035 namespace KDevelop
00036 {
00037
00038 class IProject;
00039 class ProjectBaseItem;
00040 class ProjectFolderItem;
00041 class ProjectFileItem;
00042 class KDialogBase;
00043
00057 class KDEVPLATFORMPROJECT_EXPORT IProjectFileManager
00058 {
00059 public:
00060
00061 virtual ~IProjectFileManager();
00063 enum Feature
00064 {
00065 None = 0 ,
00066 Folders = 1 << 0,
00067 Targets = 1 << 1,
00068 Files = 1 << 2
00069 };
00070 Q_DECLARE_FLAGS( Features, Feature )
00071
00072
00075 virtual Features features() const = 0;
00076
00081 virtual QList<ProjectFolderItem*> parse(ProjectFolderItem *dom) = 0;
00082
00087 virtual ProjectFolderItem *import(IProject *project) = 0;
00088
00095 virtual ProjectFolderItem* addFolder(const KUrl& folder, ProjectFolderItem *parent) = 0;
00096
00097
00104 virtual ProjectFileItem* addFile(const KUrl& folder, ProjectFolderItem *parent) = 0;
00105
00112 virtual bool removeFolder(ProjectFolderItem *folder) = 0;
00113
00121 virtual bool removeFile(ProjectFileItem *file) = 0;
00122
00129 virtual bool renameFile(ProjectFileItem* oldFile,
00130 const KUrl& newFile) = 0;
00136 virtual bool renameFolder(ProjectFolderItem* oldFolder,
00137 const KUrl& newFolder ) = 0;
00138
00139 Q_SIGNALS:
00140 void projectItemConfigWidget(const QList<ProjectBaseItem*> &dom, KDialogBase *dialog);
00141
00142 void folderAdded( ProjectFolderItem* folder );
00143 void folderRemoved( ProjectFolderItem* folder );
00144 void folderRenamed( const KUrl& oldFolder,
00145 ProjectFolderItem* newFolder );
00146
00147 void fileAdded(ProjectFileItem* file);
00148 void fileRemoved(ProjectFileItem* file);
00149 void fileRenamed(const KUrl& oldFile,
00150 ProjectFileItem* newFile);
00151
00152 };
00153
00154 }
00155 Q_DECLARE_OPERATORS_FOR_FLAGS( KDevelop::IProjectFileManager::Features )
00156
00157 KDEV_DECLARE_EXTENSION_INTERFACE_NS( KDevelop, IProjectFileManager, "org.kdevelop.IProjectFileManager")
00158 Q_DECLARE_INTERFACE( KDevelop::IProjectFileManager, "org.kdevelop.IProjectFileManager")
00159
00160 #endif