KDevelop API Documentation

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
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 22 09:22:36 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003