summaryrefslogtreecommitdiffstats
path: root/Source/QtDialog/QCMake.h
diff options
context:
space:
mode:
authorClinton Stimpson <clinton@elemtech.com>2012-01-02 18:07:43 (GMT)
committerClinton Stimpson <clinton@elemtech.com>2012-01-02 18:07:43 (GMT)
commit131eed660716a2a8b52a6956f8e8a136425c404e (patch)
tree99ba06a0196fc4bc6e8eb84b1ff75fc984e89b92 /Source/QtDialog/QCMake.h
parent40aedcbbaeddcb7e088c56e30f4252171e920baa (diff)
downloadCMake-131eed660716a2a8b52a6956f8e8a136425c404e.zip
CMake-131eed660716a2a8b52a6956f8e8a136425c404e.tar.gz
CMake-131eed660716a2a8b52a6956f8e8a136425c404e.tar.bz2
cmake-gui: Improve interrupt granularity to fix bug 12649.
Instead of enabling interrupt only when a progress or message callback is called, add a new callback specifically for interrupt. This new callback is called from GetFatalErrorOccured() so cmake-gui can immediately report interrupt status instead of calling queuing a call to cmSystemTools::SetFatalErrorOccured() and waiting for the progress or message callback to be called to process that queued call.
Diffstat (limited to 'Source/QtDialog/QCMake.h')
-rw-r--r--Source/QtDialog/QCMake.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/Source/QtDialog/QCMake.h b/Source/QtDialog/QCMake.h
index 0d10823..0d68586 100644
--- a/Source/QtDialog/QCMake.h
+++ b/Source/QtDialog/QCMake.h
@@ -23,6 +23,7 @@
#include <QList>
#include <QStringList>
#include <QMetaType>
+#include <QAtomicInt>
class cmake;
@@ -78,7 +79,7 @@ public slots:
void generate();
/// set the property values
void setProperties(const QCMakePropertyList&);
- /// interrupt the configure or generate process
+ /// interrupt the configure or generate process (if connecting, make a direct connection)
void interrupt();
/// delete the cache in binary directory
void deleteCache();
@@ -133,6 +134,7 @@ signals:
protected:
cmake* CMakeInstance;
+ static bool interruptCallback(void*);
static void progressCallback(const char* msg, float percent, void* cd);
static void errorCallback(const char* msg, const char* title,
bool&, void* cd);
@@ -145,6 +147,7 @@ protected:
QString Generator;
QStringList AvailableGenerators;
QString CMakeExecutable;
+ QAtomicInt InterruptFlag;
};
#endif // __QCMake_h