[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdevelop/parts/autoproject
From:       Hamish Rodda <meddie () yoyo ! its ! monash ! edu ! au>
Date:       2003-06-11 17:31:28
[Download RAW message or body]

CVS commit by rodda: 

Remember when the last command failed, so that isDirty() continues to return
true.  Fixes a bug where executing twice in a row after a build failure
doesn't re-trigger the build.

I don't know why m_executeAfterBuild was being checked... possibly to fix
the same bug. Anyway, it wasn't working, so it's resigned to only being
used to execute a command after a successful build.


  M +16 -4     autoprojectpart.cpp   1.94
  M +4 -2      autoprojectpart.h   1.32


--- kdevelop/parts/autoproject/autoprojectpart.cpp  #1.93:1.94
@@ -53,4 +53,5 @@ K_EXPORT_COMPONENT_FACTORY( libkdevautop
 AutoProjectPart::AutoProjectPart(QObject *parent, const char *name, const \
                QStringList &args)
     : KDevProject("AutoProject", "autoproject", parent, name ? name : \
"AutoProjectPart") +    , m_lastCompilationFailed(false)
 {
     setInstance(AutoProjectFactory::instance());
@@ -151,4 +152,6 @@ AutoProjectPart::AutoProjectPart(QObject
     connect( makeFrontend(), SIGNAL(commandFinished(const QString&)),
              this, SLOT(slotCommandFinished(const QString&)) );
+    connect( makeFrontend(), SIGNAL(commandFailed(const QString&)),
+             this, SLOT(slotCommandFailed(const QString&)) );
 
     setWantautotools();
@@ -529,4 +532,6 @@ void AutoProjectPart::queueInternalLibDe
 void AutoProjectPart::slotBuild()
 {
+    m_lastCompilationFailed = false;
+
     if( m_needMakefileCvs ){
         slotMakefilecvs();
@@ -750,5 +755,5 @@ void AutoProjectPart::slotExecute()
     partController()->saveAllFiles();
 
-    if( !m_executeAfterBuild && DomUtil::readBoolEntry(*projectDom(), \
"/kdevautoproject/run/autocompile", true) && isDirty() ){ +    if( \
DomUtil::readBoolEntry(*projectDom(), "/kdevautoproject/run/autocompile", true) && \
isDirty() ){  m_executeAfterBuild = true;
         slotBuild();
@@ -842,7 +847,5 @@ void AutoProjectPart::savePartialProject
 void AutoProjectPart::slotCommandFinished( const QString& command )
 {
-    kdDebug(9020) << "AutoProjectPart::slotProcessFinished()" << endl;
-
-    Q_UNUSED( command );
+    kdDebug(9020) << k_funcinfo << endl;
 
     if( m_buildCommand != command )
@@ -869,6 +872,15 @@ void AutoProjectPart::slotCommandFinishe
 }
 
+void AutoProjectPart::slotCommandFailed( const QString& /*command*/ )
+{
+    kdDebug(9020) << k_funcinfo << endl;
+
+    m_lastCompilationFailed = true;
+}
+
 bool AutoProjectPart::isDirty()
 {
+    if (m_lastCompilationFailed) return true;
+
     QStringList fileList = allFiles();
     QStringList::Iterator it = fileList.begin();

--- kdevelop/parts/autoproject/autoprojectpart.h  #1.31:1.32
@@ -97,4 +97,5 @@ private slots:
     void slotBuildConfigAboutToShow();
     void slotCommandFinished( const QString& command );
+    void slotCommandFailed( const QString& command );
     //void slotImportExisting();
     
@@ -112,4 +113,5 @@ private:
     QString m_buildCommand;
     bool m_needMakefileCvs;
+    bool m_lastCompilationFailed;
 
     // Enble AutoProjectWidget to emit our signals


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic