diff --git a/qrenderdoc/Code/CaptureContext.cpp b/qrenderdoc/Code/CaptureContext.cpp index ffedfb513..369895900 100644 --- a/qrenderdoc/Code/CaptureContext.cpp +++ b/qrenderdoc/Code/CaptureContext.cpp @@ -62,6 +62,11 @@ CaptureContext::~CaptureContext() delete m_MainWindow; } +bool CaptureContext::isRunning() +{ + return m_MainWindow && m_MainWindow->isVisible(); +} + void CaptureContext::LoadLogfile(QString logFile, bool temporary) { LoadLogfile(-1, "", logFile, temporary); diff --git a/qrenderdoc/Code/CaptureContext.h b/qrenderdoc/Code/CaptureContext.h index 8eafb7da7..13c15dd48 100644 --- a/qrenderdoc/Code/CaptureContext.h +++ b/qrenderdoc/Code/CaptureContext.h @@ -56,6 +56,8 @@ public: CaptureContext(QString paramFilename, QString remoteHost, uint32_t remoteIdent, bool temp); ~CaptureContext(); + bool isRunning(); + ////////////////////////////////////////////////////////////////////////////// // Control functions diff --git a/qrenderdoc/Code/main.cpp b/qrenderdoc/Code/main.cpp index d6d944a84..f282d7c47 100644 --- a/qrenderdoc/Code/main.cpp +++ b/qrenderdoc/Code/main.cpp @@ -95,13 +95,19 @@ int main(int argc, char *argv[]) argv_mod[argc - 2] = arg; argv_mod[argc - 1] = pathChars.data(); - QApplication a(argc, argv_mod); + QApplication application(argc, argv_mod); - CaptureContext ctx(filename, remoteHost, remoteIdent, temp); + { + CaptureContext ctx(filename, remoteHost, remoteIdent, temp); - int ret = a.exec(); + while(ctx.isRunning()) + { + application.processEvents(QEventLoop::WaitForMoreEvents); + QCoreApplication::sendPostedEvents(); + } + } delete[] argv_mod; - return ret; + return 0; }