From 96e39bb360f406fabbeb5335e7491e450fc64d71 Mon Sep 17 00:00:00 2001 From: baldurk Date: Fri, 9 Jun 2023 12:18:55 +0100 Subject: [PATCH] Help users who might be confused about adding custom tools --- qrenderdoc/Windows/Dialogs/SettingsDialog.cpp | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/qrenderdoc/Windows/Dialogs/SettingsDialog.cpp b/qrenderdoc/Windows/Dialogs/SettingsDialog.cpp index b6904f4d0..7b11cb855 100644 --- a/qrenderdoc/Windows/Dialogs/SettingsDialog.cpp +++ b/qrenderdoc/Windows/Dialogs/SettingsDialog.cpp @@ -772,7 +772,7 @@ bool SettingsDialog::editTool(int existing, ShaderProcessingTool &tool) grid.addWidget(lab, 4, 0, 1, 1); QLineEdit nameEdit; - nameEdit.setPlaceholderText(lit("Tool Name")); + nameEdit.setPlaceholderText(tr("Tool Name")); nameEdit.setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); nameEdit.setMinimumHeight(20); @@ -857,6 +857,8 @@ bool SettingsDialog::editTool(int existing, ShaderProcessingTool &tool) executableEdit.setText(filename); }); + QString customName; + QObject::connect(&toolEdit, OverloadedSlot::of(&QComboBox::currentIndexChanged), [&](int index) { if(index > 0) @@ -866,12 +868,22 @@ bool SettingsDialog::editTool(int existing, ShaderProcessingTool &tool) // -1 because we skip ShaderEncoding::Unknown inputEdit.setCurrentIndex(int(ToolInput(tool)) - 1); outputEdit.setCurrentIndex(int(ToolOutput(tool)) - 1); + + // save the current custom name if it was editable, in case the user + // re-selects the custom tool entry + if(nameEdit.isEnabled()) + customName = nameEdit.text(); + nameEdit.setEnabled(false); + nameEdit.setText(ToQStr(tool)); + argsEdit.setEnabled(false); inputEdit.setEnabled(false); outputEdit.setEnabled(false); } else { + nameEdit.setEnabled(true); + nameEdit.setText(customName); argsEdit.setEnabled(true); inputEdit.setEnabled(true); outputEdit.setEnabled(true); @@ -950,8 +962,19 @@ bool SettingsDialog::editTool(int existing, ShaderProcessingTool &tool) if(tool.name == m_Ctx.Config().ShaderProcessors[i].name) { + if(tool.tool != KnownShaderTool::Unknown) + { + message = tr("The builtin tool '%1' already exists, " + "please edit that entry directly if you wish to choose a custom path.") + .arg(tool.name); + } + else + { + message = tr("There's already a tool named '%1', " + "please select another name or edit that entry directly.") + .arg(tool.name); + } invalid = true; - message = tr("There's already a tool named '%1', please select another.").arg(tool.name); break; } }