autoprojectpart.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef _AUTOPROJECTPART_H_
00016 #define _AUTOPROJECTPART_H_
00017
00018 #include <qdict.h>
00019 #include <qguardedptr.h>
00020 #include <qmap.h>
00021 #include <qdatetime.h>
00022 #include <qdir.h>
00023 #include <kdevgenericfactory.h>
00024
00025 #include "kdevproject.h"
00026
00027 class QDomElement;
00028 class QStringList;
00029 class KDialogBase;
00030 class AutoProjectWidget;
00031 class KSelectAction;
00032 class TargetItem;
00033 class ConfigWidgetProxy;
00034
00035
00036 class AutoProjectPart : public KDevProject
00037 {
00038 Q_OBJECT
00039
00040 public:
00041 AutoProjectPart( QObject *parent, const char *name, const QStringList &args );
00042 virtual ~AutoProjectPart();
00043
00047 virtual QString projectDirectory() const;
00048 virtual QString projectName() const;
00049 virtual DomUtil::PairList runEnvironmentVars() const;
00050 virtual QString runDirectory() const;
00051 virtual QString mainProgram(bool relative = false) const;
00052 virtual QString runArguments() const;
00053 virtual QString environString() const;
00054 virtual QString activeDirectory() const;
00055 virtual QStringList allFiles() const;
00056 virtual void addFile(const QString &fileName);
00057 virtual void addFiles ( const QStringList& fileList );
00058 virtual void removeFile(const QString &fileName);
00059 virtual void removeFiles ( const QStringList& fileList );
00060 virtual QString buildDirectory() const;
00061 virtual Options options() const;
00062
00066 virtual void restorePartialProjectSession ( const QDomElement* el );
00067 virtual void savePartialProjectSession ( QDomElement* el );
00068
00072 QStringList allBuildConfigs() const;
00073 QString currentBuildConfig() const;
00074 QString topsourceDirectory() const;
00075 void startMakeCommand(const QString &dir, const QString &target, bool withKdesu = false);
00076 void buildTarget(QString relpath, TargetItem* titem);
00077 void executeTarget(const QDir& dir, const TargetItem* titem);
00078
00079 void needMakefileCvs();
00080 bool isDirty();
00081 bool isKDE() const;
00082 QStringList distFiles() const;
00083
00084 protected:
00089 virtual void openProject(const QString &dirName, const QString &projectName);
00090 virtual void closeProject();
00091
00092 private slots:
00093
00094 void slotAddTranslation();
00095 void slotBuild();
00096 void slotBuildActiveTarget();
00097 void slotCompileFile();
00098 void slotClean();
00099 void slotDistClean();
00100 void slotInstall();
00101 void slotInstallWithKdesu();
00102 void slotMakefilecvs();
00103 void slotMakeMessages();
00104 void slotConfigure();
00105 void slotExecute();
00106 void slotExecute2();
00107 void slotExecuteTargetAfterBuild(const QString& command);
00108 void slotNotExecuteTargetAfterBuildFailed(const QString& command);
00109 void slotBuildConfigChanged(const QString &config);
00110 void slotBuildConfigAboutToShow();
00111 void slotCommandFinished( const QString& command );
00112 void slotCommandFailed( const QString& command );
00113
00114 void insertConfigWidget( const KDialogBase* dlg, QWidget * page, unsigned int );
00115
00116 private:
00117 QGuardedPtr<AutoProjectWidget> m_widget;
00118 QString m_projectName;
00119 QString m_projectPath;
00120 KSelectAction *buildConfigAction;
00121
00122 QString makeEnvironment() const;
00123 void setWantautotools();
00124 QString makefileCvsCommand() const;
00125 QString configureCommand() const;
00126
00127 QMap<QString, QDateTime> m_timestamp;
00128 bool m_executeAfterBuild;
00129 QString m_buildCommand;
00130 bool m_needMakefileCvs;
00131 bool m_lastCompilationFailed;
00132 bool m_isKDE;
00133 QPair<QDir,TargetItem*> m_executeTargetAfterBuild;
00134
00135 ConfigWidgetProxy * _configProxy;
00136
00137
00138 friend class AutoProjectWidget;
00139 friend class AddSubprojectDialog;
00140 friend class FileItem;
00141
00142
00143 QString constructMakeCommandLine(const QString &dir, const QString &target) const;
00144 void queueInternalLibDependenciesBuild(TargetItem* titem);
00145 };
00146
00147 typedef KDevGenericFactory<AutoProjectPart> AutoProjectFactory;
00148
00149 #endif
This file is part of the documentation for KDevelop Version 3.1.2.