interfaces
iprojectcontroller.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef IPROJECTCONTROLLER_H
00022 #define IPROJECTCONTROLLER_H
00023
00024 #include <QtCore/QObject>
00025 #include <QtCore/QList>
00026 #include <kurl.h>
00027 #include "interfacesexport.h"
00028
00029 class QItemSelectionModel;
00030
00031 namespace KDevelop
00032 {
00033
00034 class IProject;
00035 class ProjectModel;
00036 class ProjectBaseItem;
00037
00038 class KDEVPLATFORMINTERFACES_EXPORT IProjectController : public QObject
00039 {
00040 Q_OBJECT
00041 public:
00042 IProjectController( QObject *parent = 0 );
00043 virtual ~IProjectController();
00044
00045 Q_SCRIPTABLE virtual IProject* projectAt( int ) const = 0;
00046 Q_SCRIPTABLE virtual int projectCount() const = 0;
00047 Q_SCRIPTABLE virtual QList<IProject*> projects() const = 0;
00048
00053 Q_SCRIPTABLE virtual ProjectModel* projectModel() = 0;
00054
00061 Q_SCRIPTABLE virtual QItemSelectionModel* projectSelectionModel() = 0;
00062
00068 Q_SCRIPTABLE virtual IProject* findProjectByName( const QString& name ) = 0;
00069
00076 Q_SCRIPTABLE virtual IProject* findProjectForUrl( const KUrl& url ) const = 0;
00077
00078 public Q_SLOTS:
00086 virtual bool openProject( const KUrl & url = KUrl() ) = 0;
00094 virtual bool closeProject( IProject* ) = 0;
00095 virtual bool configureProject( IProject* ) = 0;
00096
00097
00098 Q_SIGNALS:
00104 void projectOpened( KDevelop::IProject* project );
00109 void projectClosing( KDevelop::IProject* project );
00116 void projectClosed( KDevelop::IProject* project );
00117 };
00118
00119 }
00120 #endif
00121