Add Tools Menu Option for externally referenced dependent files

"Embed external files into Capture"
"Remove external files from Capture"
This commit is contained in:
Jake Turner
2025-12-11 11:13:29 +13:00
parent cf4e8b15fc
commit 8c25651162
3 changed files with 50 additions and 0 deletions
+35
View File
@@ -131,6 +131,8 @@ MainWindow::MainWindow(ICaptureContext &ctx) : QMainWindow(NULL), ui(new Ui::Mai
setAcceptDrops(true);
QObject::connect(ui->menu_Tools, &QMenu::aboutToShow, this, &MainWindow::updateToolsMenuOptions);
QObject::connect(ui->action_Load_Default_Layout, &QAction::triggered, this,
&MainWindow::loadLayout_triggered);
QObject::connect(ui->action_Load_Layout_1, &QAction::triggered, this,
@@ -445,6 +447,8 @@ MainWindow::MainWindow(ICaptureContext &ctx) : QMainWindow(NULL), ui(new Ui::Mai
ui->action_Resolve_Symbols->setText(tr("Resolve Symbols"));
ui->action_Recompress_Capture->setEnabled(false);
ui->action_EmbedExternalFiles->setEnabled(false);
ui->action_RemoveExternalFiles->setEnabled(false);
#if defined(Q_OS_WIN32)
#define SELF_HOST_NAME "rdocself.dll"
@@ -675,6 +679,8 @@ void MainWindow::captureModified()
// enabled if this capture was a temporary one
if(m_Ctx.IsCaptureLoaded())
ui->action_Save_Capture_Inplace->setEnabled(true);
updateToolsMenuOptions();
}
void MainWindow::LoadFromFilename(const QString &filename, bool temporary)
@@ -2238,6 +2244,8 @@ void MainWindow::OnCaptureLoaded()
bool is_image = driver == lit("Image");
ui->action_Recompress_Capture->setEnabled(!is_image);
updateToolsMenuOptions();
ui->action_Start_Replay_Loop->setEnabled(true);
ui->action_Open_RGP_Profile->setEnabled(
m_Ctx.Replay().GetCaptureAccess()->FindSectionByType(SectionType::AMDRGPProfile) >= 0);
@@ -2286,6 +2294,8 @@ void MainWindow::OnCaptureClosed()
ui->action_Resolve_Symbols->setText(tr("Resolve Symbols"));
ui->action_Recompress_Capture->setEnabled(false);
ui->action_EmbedExternalFiles->setEnabled(false);
ui->action_RemoveExternalFiles->setEnabled(false);
SetTitle();
@@ -2638,6 +2648,16 @@ void MainWindow::on_action_Recompress_Capture_triggered()
m_Ctx.RecompressCapture();
}
void MainWindow::on_action_EmbedExternalFiles_triggered()
{
m_Ctx.EmbedDependentFiles();
}
void MainWindow::on_action_RemoveExternalFiles_triggered()
{
m_Ctx.RemoveDependentFiles();
}
void MainWindow::on_action_Start_Replay_Loop_triggered()
{
if(!m_Ctx.IsCaptureLoaded())
@@ -2995,6 +3015,21 @@ void MainWindow::loadLayout_triggered()
LoadSaveLayout(qobject_cast<QAction *>(QObject::sender()), false);
}
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();
}
ui->action_EmbedExternalFiles->setEnabled(!hasEmbeddedDependencies && hasPendingDependencies);
ui->action_RemoveExternalFiles->setEnabled(hasEmbeddedDependencies);
}
void MainWindow::closeEvent(QCloseEvent *event)
{
if(RENDERDOC_IsGlobalHookActive())