00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
#ifndef __KDEVPART_GENERICPROJECT_H__
00015
#define __KDEVPART_GENERICPROJECT_H__
00016
00017
00018
#include <qguardedptr.h>
00019
#include "kdevproject.h"
00020
00021
#include "kdevbuildsystem.h"
00022
00023
class GenericProjectWidget;
00024
class BuildGroupItem;
00025
class GenericGroupListViewItem;
00026
00027 class GenericProjectPart :
public KDevProject
00028 {
00029 Q_OBJECT
00030
public:
00031
GenericProjectPart(
QObject *parent,
const char *name,
const QStringList &);
00032
virtual ~GenericProjectPart();
00033
00034 BuildGroupItem*
mainGroup() {
return m_mainBuild; }
00035
00036
00037
virtual void openProject(
const QString &dirName,
const QString &projectName);
00038
virtual void closeProject();
00039
virtual QString projectDirectory() const;
00040 virtual
QString projectName() const;
00041 virtual
DomUtil::PairList runEnvironmentVars() const;
00042 virtual
QString mainProgram(
bool relative = false) const;
00043 virtual
QString runDirectory() const;
00044 virtual
QString runArguments() const;
00045 virtual
QString activeDirectory() const;
00046 virtual
QString buildDirectory() const;
00047 virtual
QStringList allFiles() const;
00048 virtual
void addFiles(const
QStringList &fileList );
00049 virtual
void addFile(const
QString &fileName);
00050 virtual
void removeFiles ( const
QStringList& fileList );
00051 virtual
void removeFile(const
QString &fileName);
00052
00053
KDevBuildSystem *buildSystem() const;
00054
00055 signals:
00056
void mainGroupChanged(
BuildGroupItem* group );
00057
00058 private:
00059
QStringList allFiles(
BuildGroupItem* group,
QStringList& path ) const;
00060
QStringList allFiles(
BuildTargetItem* target,
QStringList& path ) const;
00061
00062 private:
00063 KDevBuildSystem *m_buildSystem;
00064
00065
void loadProjectConfig(
QString projectFile);
00066
00067
void parseGroup(const
QDomElement &el, const
GenericGroupListViewItem *parentGroup);
00068
void parseTarget(const
QDomElement &el,
BuildGroupItem *group);
00069
void parseFile(const
QDomElement &el,
BuildTargetItem *target);
00070
00071
GenericGroupListViewItem *createGroupItem(const
QDomElement &el, const
GenericGroupListViewItem *parent = 0 );
00072
BuildTargetItem *createTargetItem(const
QDomElement &el,
BuildGroupItem *group);
00073
BuildFileItem *createFileItem(const
QDomElement &el,
BuildTargetItem *target);
00074
00075
void addFilePrivate( const
QString & fileName,
BuildTargetItem *tit);
00076
00077 QGuardedPtr<
GenericProjectWidget> m_widget;
00078 GenericGroupListViewItem* m_mainGroup;
00079 BuildGroupItem* m_mainBuild;
00080
00081 QString m_buildDir;
00082 QString m_projectDir;
00083 QString m_projectName;
00084 QString m_activeDir;
00085 QString m_runDir;
00086 };
00087
00088
00089 #endif