Add a settings window entry to add extra python stubs paths

This commit is contained in:
baldurk
2026-08-13 17:46:39 +01:00
parent 26a84363b8
commit 965d788fe5
7 changed files with 140 additions and 14 deletions
+56 -1
View File
@@ -31,6 +31,7 @@
#include <QToolButton>
#include "Code/Interface/QRDInterface.h"
#include "Code/QRDUtils.h"
#include "Code/pyrenderdoc/PythonContext.h"
#include "Styles/StyleData.h"
#include "Widgets/OrderedListEditor.h"
#include "Widgets/ReplayOptionsSelector.h"
@@ -793,6 +794,57 @@ void SettingsDialog::on_browseRGPPath_clicked()
m_Ctx.Config().Save();
}
void SettingsDialog::on_Python_StubPaths_clicked()
{
QDialog listEditor;
listEditor.setWindowTitle(tr("Extra python stubs generation directories"));
listEditor.setWindowFlags(listEditor.windowFlags() & ~Qt::WindowContextHelpButtonHint);
OrderedListEditor list(tr("Stubs Directory"),
OrderedItemExtras::BrowseFolder | OrderedItemExtras::Delete);
QVBoxLayout layout;
QDialogButtonBox okCancel;
okCancel.setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
layout.addWidget(&list);
layout.addWidget(&okCancel);
QObject::connect(&okCancel, &QDialogButtonBox::accepted, &listEditor, &QDialog::accept);
QObject::connect(&okCancel, &QDialogButtonBox::rejected, &listEditor, &QDialog::reject);
listEditor.setLayout(&layout);
QStringList items;
for(const rdcstr &dir : m_Ctx.Config().Python_StubDirs)
{
items.append(dir);
}
list.setItems(items);
int res = RDDialog::show(&listEditor);
if(res)
{
items = list.getItems();
rdcarray<rdcstr> newDirs;
newDirs.resize(items.size());
for(int i = 0; i < items.size(); i++)
{
newDirs[i] = items[i];
}
if(newDirs.size() > m_Ctx.Config().Python_StubDirs.size())
PythonContext::GenerateStubs(newDirs);
m_Ctx.Config().Python_StubDirs = newDirs;
m_Ctx.Config().Save();
}
}
// texture viewer
void SettingsDialog::on_TextureViewer_PerTexSettings_toggled(bool checked)
{
@@ -817,7 +869,8 @@ void SettingsDialog::on_TextureViewer_ChooseShaderDirectories_clicked()
listEditor.setWindowTitle(tr("Custom shaders search directories"));
listEditor.setWindowFlags(listEditor.windowFlags() & ~Qt::WindowContextHelpButtonHint);
OrderedListEditor list(tr("Shaders Directory"), OrderedItemExtras::BrowseFolder);
OrderedListEditor list(tr("Shaders Directory"),
OrderedItemExtras::BrowseFolder | OrderedItemExtras::Delete);
QVBoxLayout layout;
QDialogButtonBox okCancel;
@@ -852,6 +905,8 @@ void SettingsDialog::on_TextureViewer_ChooseShaderDirectories_clicked()
}
m_Ctx.Config().TextureViewer_ShaderDirs = newDirs;
m_Ctx.Config().Save();
}
}