KDevelop API Documentation

autoprojectpart.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2001-2002 by Bernd Gehrmann                             *
00003  *   bernd@kdevelop.org                                                    *
00004 *                                                                         *
00005 *   Copyright (C) 2002 by Victor Röder                                    *
00006 *   victor_roeder@gmx.de                                                  *
00007  *                                                                         *
00008  *   This program is free software; you can redistribute it and/or modify  *
00009  *   it under the terms of the GNU General Public License as published by  *
00010  *   the Free Software Foundation; either version 2 of the License, or     *
00011  *   (at your option) any later version.                                   *
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 //    void projectConfigWidget(KDialogBase *dlg);
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     //void slotImportExisting();
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     // Enble AutoProjectWidget to emit our signals
00138     friend class AutoProjectWidget;
00139     friend class AddSubprojectDialog;
00140     friend class FileItem;
00141 
00142     // For make commands queueing
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
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:21 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003