kdevproject.h
Go to the documentation of this file.00001 /* This file is part of the KDE project 00002 Copyright (C) 2001 Matthias Hoelzer-Kluepfel <hoelzer@kde.org> 00003 Copyright (C) 2001-2002 Bernd Gehrmann <bernd@kdevelop.org> 00004 Copyright (C) 2002-2003 Roberto Raggi <roberto@kdevelop.org> 00005 Copyright (C) 2002 Simon Hausmann <hausmann@kde.org> 00006 Copyright (C) 2003 Jens Dagerbo <jens.dagerbo@swipnet.se> 00007 Copyright (C) 2003 Mario Scalas <mario.scalas@libero.it> 00008 Copyright (C) 2003 Alexander Dymo <cloudtemple@mksat.net> 00009 00010 This library is free software; you can redistribute it and/or 00011 modify it under the terms of the GNU Library General Public 00012 License as published by the Free Software Foundation; either 00013 version 2 of the License, or (at your option) any later version. 00014 00015 This library is distributed in the hope that it will be useful, 00016 but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 Library General Public License for more details. 00019 00020 You should have received a copy of the GNU Library General Public License 00021 along with this library; see the file COPYING.LIB. If not, write to 00022 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00023 Boston, MA 02111-1307, USA. 00024 */ 00025 #ifndef _KDEVPROJECT_H_ 00026 #define _KDEVPROJECT_H_ 00027 00028 #include "kdevplugin.h" 00029 #include "domutil.h" 00030 00031 #include <qstringlist.h> 00032 #include <qmap.h> 00033 00034 class KDevProject : public KDevPlugin 00035 { 00036 Q_OBJECT 00037 00038 public: 00039 KDevProject( const QString& pluginName, const QString& icon, 00040 QObject *parent=0, const char *name=0 ); 00041 virtual ~KDevProject(); 00042 00043 enum Options { UsesAutotoolsBuildSystem = 1, UsesQMakeBuildSystem }; 00044 00054 virtual void openProject(const QString &dirName, const QString &projectName); 00059 virtual void closeProject() = 0; 00060 00061 virtual Options options() const; 00062 00066 virtual QString projectDirectory() const = 0; 00070 virtual QString projectName() const = 0; 00074 virtual DomUtil::PairList runEnvironmentVars() const = 0; 00078 virtual QString mainProgram(bool relative = false) const = 0; 00082 virtual QString runDirectory() const = 0; 00086 virtual QString runArguments() const = 0; 00092 virtual QString activeDirectory() const = 0; 00098 virtual QString buildDirectory() const = 0; 00103 virtual QStringList allFiles() const = 0; 00104 00109 virtual QStringList distFiles() const = 0; 00110 00115 virtual void addFiles(const QStringList &fileList ) = 0; 00120 virtual void addFile(const QString &fileName)= 0; 00125 virtual void removeFiles ( const QStringList& fileList )= 0; 00130 virtual void removeFile(const QString &fileName) = 0; 00135 virtual void changedFiles( const QStringList & fileList ); 00140 virtual void changedFile( const QString & fileName ); 00144 virtual bool isProjectFile( const QString & absFileName ); 00149 virtual QString relativeProjectFile( const QString & absFileName ); 00150 00154 virtual QStringList symlinkProjectFiles(); 00155 00156 private slots: 00157 void slotBuildFileMap(); 00158 void slotAddFilesToFileMap(const QStringList & fileList ); 00159 void slotRemoveFilesFromFileMap(const QStringList & fileList ); 00160 00161 signals: 00166 //void addedFileToProject(const QString &fileName); 00171 void addedFilesToProject( const QStringList& fileList ); 00176 //void removedFileFromProject(const QString &fileName); 00181 void removedFilesFromProject(const QStringList& fileList ); 00186 void changedFilesInProject(const QStringList& fileList ); 00187 00192 void projectCompiled(); 00193 00194 private: 00195 QMap<QString, QString> m_absToRel; 00196 QStringList m_symlinkList; 00197 }; 00198 00199 #endif