mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-22 22:46:41 +00:00
AsyncInvoke operations related to embedded dependencies
This commit is contained in:
@@ -2893,7 +2893,22 @@ void CaptureContext::EmbedDependentFiles()
|
||||
return;
|
||||
|
||||
// Always operate on the capture access (local or remote)
|
||||
m_Replay.GetCaptureAccess()->EmbedDependenciesIntoCapture();
|
||||
QString tag = lit("replayEmbedDependenciesIntoCapture");
|
||||
bool done = false;
|
||||
|
||||
Replay().AsyncInvoke(tag, [this, &done](IReplayController *) {
|
||||
m_Replay.GetCaptureAccess()->EmbedDependenciesIntoCapture();
|
||||
done = true;
|
||||
});
|
||||
|
||||
// wait a short while before displaying the progress dialog
|
||||
for(int i = 0; !done && (i < 100 || m_Replay.GetCurrentProcessingTag().isEmpty() ||
|
||||
m_Replay.GetCurrentProcessingTag() == tag);
|
||||
i++)
|
||||
QThread::msleep(5);
|
||||
|
||||
ShowProgressDialog(m_MainWindow->Widget(), tr("Please wait, working..."),
|
||||
[&done]() { return done; });
|
||||
|
||||
// Local replay
|
||||
if(m_Replay.GetCaptureFile())
|
||||
@@ -2923,7 +2938,22 @@ void CaptureContext::RemoveDependentFiles()
|
||||
return;
|
||||
|
||||
// Always operate on the capture access (local or remote)
|
||||
m_Replay.GetCaptureAccess()->RemoveDependenciesFromCapture();
|
||||
QString tag = lit("replayRemoveDependenciesFromCapture");
|
||||
bool done = false;
|
||||
|
||||
Replay().AsyncInvoke(tag, [this, &done](IReplayController *) {
|
||||
m_Replay.GetCaptureAccess()->RemoveDependenciesFromCapture();
|
||||
done = true;
|
||||
});
|
||||
|
||||
// wait a short while before displaying the progress dialog
|
||||
for(int i = 0; !done && (i < 100 || m_Replay.GetCurrentProcessingTag().isEmpty() ||
|
||||
m_Replay.GetCurrentProcessingTag() == tag);
|
||||
i++)
|
||||
QThread::msleep(5);
|
||||
|
||||
ShowProgressDialog(m_MainWindow->Widget(), tr("Please wait, working..."),
|
||||
[&done]() { return done; });
|
||||
|
||||
// Local replay
|
||||
if(m_Replay.GetCaptureFile())
|
||||
|
||||
@@ -3066,17 +3066,18 @@ void MainWindow::loadLayout_triggered()
|
||||
|
||||
void MainWindow::updateToolsMenuOptions()
|
||||
{
|
||||
bool hasEmbeddedDependencies = false;
|
||||
bool hasPendingDependencies = false;
|
||||
|
||||
if(m_Ctx.Replay().GetCaptureAccess())
|
||||
{
|
||||
hasEmbeddedDependencies = m_Ctx.Replay().GetCaptureAccess()->HasEmbeddedDependencies();
|
||||
hasPendingDependencies = m_Ctx.Replay().GetCaptureAccess()->HasPendingDependencies();
|
||||
}
|
||||
m_Ctx.Replay().AsyncInvoke([this](IReplayController *) {
|
||||
bool hasEmbeddedDependencies = m_Ctx.Replay().GetCaptureAccess()->HasEmbeddedDependencies();
|
||||
bool hasPendingDependencies = m_Ctx.Replay().GetCaptureAccess()->HasPendingDependencies();
|
||||
|
||||
ui->action_EmbedExternalFiles->setEnabled(!hasEmbeddedDependencies && hasPendingDependencies);
|
||||
ui->action_RemoveExternalFiles->setEnabled(hasEmbeddedDependencies);
|
||||
GUIInvoke::call(this, [this, hasEmbeddedDependencies, hasPendingDependencies]() {
|
||||
ui->action_EmbedExternalFiles->setEnabled(!hasEmbeddedDependencies && hasPendingDependencies);
|
||||
ui->action_RemoveExternalFiles->setEnabled(hasEmbeddedDependencies);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
|
||||
Reference in New Issue
Block a user