• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • KDevelop Platform Libraries
  • Sitemap
  • Contact Us
 

project

iprojectfilemanager.h

00001 /* This file is part of KDevelop
00002     Copyright 2004 Roberto Raggi <roberto@kdevelop.org>
00003     Copyright 2006 Matt Rogers <mattr@kde.org>
00004     Copyright 2006 Hamish Rodda <rodda@kde.org>
00005     Copyright 2007 Andreas Pakulat <apaku@gmx.de
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public License
00018     along with this library; see the file COPYING.LIB.  If not, write to
00019     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020     Boston, MA 02110-1301, USA.
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

project

Skip menu "project"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

KDevelop Platform Libraries

Skip menu "KDevelop Platform Libraries"
  • interfaces
  • language
  •   duchain
  •   editor
  • outputview
  • project
  • shell
  • sublime
  • util
  • vcs
Generated for KDevelop Platform Libraries by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal