mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-07-08 16:50:44 +00:00
Fix shader label click handler - lambdas have QObject::sender() == NULL
This commit is contained in:
@@ -120,7 +120,7 @@ D3D11PipelineStateViewer::D3D11PipelineStateViewer(ICaptureContext &ctx,
|
||||
QObject::connect(b, &QToolButton::clicked, this, &D3D11PipelineStateViewer::shaderView_clicked);
|
||||
|
||||
for(RDLabel *b : shaderLabels)
|
||||
QObject::connect(b, &RDLabel::clicked, [this](QMouseEvent *) { shaderView_clicked(); });
|
||||
QObject::connect(b, &RDLabel::clicked, this, &D3D11PipelineStateViewer::shaderLabel_clicked);
|
||||
|
||||
for(QToolButton *b : editButtons)
|
||||
QObject::connect(b, &QToolButton::clicked, this, &D3D11PipelineStateViewer::shaderEdit_clicked);
|
||||
@@ -2187,6 +2187,13 @@ void D3D11PipelineStateViewer::shaderView_clicked()
|
||||
m_Ctx.AddDockWindow(shad->Widget(), DockReference::AddTo, this);
|
||||
}
|
||||
|
||||
void D3D11PipelineStateViewer::shaderLabel_clicked(QMouseEvent *event)
|
||||
{
|
||||
// forward to shaderView_clicked, we only need this to handle the different parameter, and we
|
||||
// can't use a lambda because then QObject::sender() is NULL
|
||||
shaderView_clicked();
|
||||
}
|
||||
|
||||
void D3D11PipelineStateViewer::shaderEdit_clicked()
|
||||
{
|
||||
QWidget *sender = qobject_cast<QWidget *>(QObject::sender());
|
||||
|
||||
@@ -66,6 +66,7 @@ private slots:
|
||||
|
||||
// manual slots
|
||||
void shaderView_clicked();
|
||||
void shaderLabel_clicked(QMouseEvent *event);
|
||||
void shaderEdit_clicked();
|
||||
|
||||
void shaderSave_clicked();
|
||||
|
||||
@@ -146,7 +146,7 @@ D3D12PipelineStateViewer::D3D12PipelineStateViewer(ICaptureContext &ctx,
|
||||
QObject::connect(b, &QToolButton::clicked, this, &D3D12PipelineStateViewer::shaderView_clicked);
|
||||
|
||||
for(RDLabel *b : shaderLabels)
|
||||
QObject::connect(b, &RDLabel::clicked, [this](QMouseEvent *) { shaderView_clicked(); });
|
||||
QObject::connect(b, &RDLabel::clicked, this, &D3D12PipelineStateViewer::shaderLabel_clicked);
|
||||
|
||||
for(QToolButton *b : editButtons)
|
||||
QObject::connect(b, &QToolButton::clicked, this, &D3D12PipelineStateViewer::shaderEdit_clicked);
|
||||
@@ -2078,6 +2078,13 @@ void D3D12PipelineStateViewer::shaderView_clicked()
|
||||
m_Ctx.AddDockWindow(shad->Widget(), DockReference::AddTo, this);
|
||||
}
|
||||
|
||||
void D3D12PipelineStateViewer::shaderLabel_clicked(QMouseEvent *event)
|
||||
{
|
||||
// forward to shaderView_clicked, we only need this to handle the different parameter, and we
|
||||
// can't use a lambda because then QObject::sender() is NULL
|
||||
shaderView_clicked();
|
||||
}
|
||||
|
||||
void D3D12PipelineStateViewer::shaderEdit_clicked()
|
||||
{
|
||||
QWidget *sender = qobject_cast<QWidget *>(QObject::sender());
|
||||
|
||||
@@ -66,6 +66,7 @@ private slots:
|
||||
|
||||
// manual slots
|
||||
void shaderView_clicked();
|
||||
void shaderLabel_clicked(QMouseEvent *event);
|
||||
void shaderEdit_clicked();
|
||||
void shaderSave_clicked();
|
||||
void resource_itemActivated(RDTreeWidgetItem *item, int column);
|
||||
|
||||
@@ -126,7 +126,7 @@ GLPipelineStateViewer::GLPipelineStateViewer(ICaptureContext &ctx, PipelineState
|
||||
QObject::connect(b, &QToolButton::clicked, this, &GLPipelineStateViewer::shaderView_clicked);
|
||||
|
||||
for(RDLabel *b : shaderLabels)
|
||||
QObject::connect(b, &RDLabel::clicked, [this](QMouseEvent *) { shaderView_clicked(); });
|
||||
QObject::connect(b, &RDLabel::clicked, this, &GLPipelineStateViewer::shaderLabel_clicked);
|
||||
|
||||
for(QToolButton *b : editButtons)
|
||||
QObject::connect(b, &QToolButton::clicked, this, &GLPipelineStateViewer::shaderEdit_clicked);
|
||||
@@ -2201,6 +2201,13 @@ void GLPipelineStateViewer::shaderView_clicked()
|
||||
m_Ctx.AddDockWindow(shad->Widget(), DockReference::AddTo, this);
|
||||
}
|
||||
|
||||
void GLPipelineStateViewer::shaderLabel_clicked(QMouseEvent *event)
|
||||
{
|
||||
// forward to shaderView_clicked, we only need this to handle the different parameter, and we
|
||||
// can't use a lambda because then QObject::sender() is NULL
|
||||
shaderView_clicked();
|
||||
}
|
||||
|
||||
void GLPipelineStateViewer::shaderEdit_clicked()
|
||||
{
|
||||
QWidget *sender = qobject_cast<QWidget *>(QObject::sender());
|
||||
|
||||
@@ -65,6 +65,7 @@ private slots:
|
||||
|
||||
// manual slots
|
||||
void shaderView_clicked();
|
||||
void shaderLabel_clicked(QMouseEvent *event);
|
||||
void shaderEdit_clicked();
|
||||
void shaderSave_clicked();
|
||||
void resource_itemActivated(RDTreeWidgetItem *item, int column);
|
||||
|
||||
@@ -129,7 +129,7 @@ VulkanPipelineStateViewer::VulkanPipelineStateViewer(ICaptureContext &ctx,
|
||||
QObject::connect(b, &QToolButton::clicked, this, &VulkanPipelineStateViewer::shaderView_clicked);
|
||||
|
||||
for(RDLabel *b : shaderLabels)
|
||||
QObject::connect(b, &RDLabel::clicked, [this](QMouseEvent *) { shaderView_clicked(); });
|
||||
QObject::connect(b, &RDLabel::clicked, this, &VulkanPipelineStateViewer::shaderLabel_clicked);
|
||||
|
||||
for(QToolButton *b : editButtons)
|
||||
QObject::connect(b, &QToolButton::clicked, this, &VulkanPipelineStateViewer::shaderEdit_clicked);
|
||||
@@ -2242,6 +2242,13 @@ void VulkanPipelineStateViewer::shaderView_clicked()
|
||||
m_Ctx.AddDockWindow(shad->Widget(), DockReference::AddTo, this);
|
||||
}
|
||||
|
||||
void VulkanPipelineStateViewer::shaderLabel_clicked(QMouseEvent *event)
|
||||
{
|
||||
// forward to shaderView_clicked, we only need this to handle the different parameter, and we
|
||||
// can't use a lambda because then QObject::sender() is NULL
|
||||
shaderView_clicked();
|
||||
}
|
||||
|
||||
void VulkanPipelineStateViewer::shaderEdit_clicked()
|
||||
{
|
||||
QWidget *sender = qobject_cast<QWidget *>(QObject::sender());
|
||||
|
||||
@@ -71,6 +71,7 @@ private slots:
|
||||
|
||||
// manual slots
|
||||
void shaderView_clicked();
|
||||
void shaderLabel_clicked(QMouseEvent *event);
|
||||
void shaderEdit_clicked();
|
||||
|
||||
void shaderSave_clicked();
|
||||
|
||||
Reference in New Issue
Block a user