yuzu: Use Qt 5 signal/slots where applicable

Makes the signal/slot connections type-safe instead of string-based.
This commit is contained in:
Lioncash 2018-08-02 22:04:52 -04:00
parent a03c644aed
commit db340f6402
7 changed files with 49 additions and 46 deletions

View file

@ -10,12 +10,12 @@ BreakPointObserverDock::BreakPointObserverDock(std::shared_ptr<Tegra::DebugConte
: QDockWidget(title, parent), BreakPointObserver(debug_context) { : QDockWidget(title, parent), BreakPointObserver(debug_context) {
qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event"); qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event");
connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed())); connect(this, &BreakPointObserverDock::Resumed, this, &BreakPointObserverDock::OnResumed);
// NOTE: This signal is emitted from a non-GUI thread, but connect() takes // NOTE: This signal is emitted from a non-GUI thread, but connect() takes
// care of delaying its handling to the GUI thread. // care of delaying its handling to the GUI thread.
connect(this, SIGNAL(BreakPointHit(Tegra::DebugContext::Event, void*)), this, connect(this, &BreakPointObserverDock::BreakPointHit, this,
SLOT(OnBreakPointHit(Tegra::DebugContext::Event, void*)), Qt::BlockingQueuedConnection); &BreakPointObserverDock::OnBreakPointHit, Qt::BlockingQueuedConnection);
} }
void BreakPointObserverDock::OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) { void BreakPointObserverDock::OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) {

View file

@ -23,11 +23,11 @@ public:
void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override; void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override;
void OnMaxwellResume() override; void OnMaxwellResume() override;
private slots:
virtual void OnBreakPointHit(Tegra::DebugContext::Event event, void* data) = 0;
virtual void OnResumed() = 0;
signals: signals:
void Resumed(); void Resumed();
void BreakPointHit(Tegra::DebugContext::Event event, void* data); void BreakPointHit(Tegra::DebugContext::Event event, void* data);
private:
virtual void OnBreakPointHit(Tegra::DebugContext::Event event, void* data) = 0;
virtual void OnResumed() = 0;
}; };

View file

@ -144,21 +144,25 @@ GraphicsBreakPointsWidget::GraphicsBreakPointsWidget(
qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event"); qRegisterMetaType<Tegra::DebugContext::Event>("Tegra::DebugContext::Event");
connect(breakpoint_list, SIGNAL(doubleClicked(const QModelIndex&)), this, connect(breakpoint_list, &QTreeView::doubleClicked, this,
SLOT(OnItemDoubleClicked(const QModelIndex&))); &GraphicsBreakPointsWidget::OnItemDoubleClicked);
connect(resume_button, SIGNAL(clicked()), this, SLOT(OnResumeRequested())); connect(resume_button, &QPushButton::clicked, this,
&GraphicsBreakPointsWidget::OnResumeRequested);
connect(this, SIGNAL(BreakPointHit(Tegra::DebugContext::Event, void*)), this, connect(this, &GraphicsBreakPointsWidget::BreakPointHit, this,
SLOT(OnBreakPointHit(Tegra::DebugContext::Event, void*)), Qt::BlockingQueuedConnection); &GraphicsBreakPointsWidget::OnBreakPointHit, Qt::BlockingQueuedConnection);
connect(this, SIGNAL(Resumed()), this, SLOT(OnResumed())); connect(this, &GraphicsBreakPointsWidget::Resumed, this, &GraphicsBreakPointsWidget::OnResumed);
connect(this, SIGNAL(BreakPointHit(Tegra::DebugContext::Event, void*)), breakpoint_model, connect(this, &GraphicsBreakPointsWidget::BreakPointHit, breakpoint_model,
SLOT(OnBreakPointHit(Tegra::DebugContext::Event)), Qt::BlockingQueuedConnection); &BreakPointModel::OnBreakPointHit, Qt::BlockingQueuedConnection);
connect(this, SIGNAL(Resumed()), breakpoint_model, SLOT(OnResumed())); connect(this, &GraphicsBreakPointsWidget::Resumed, breakpoint_model,
&BreakPointModel::OnResumed);
connect(this, SIGNAL(BreakPointsChanged(const QModelIndex&, const QModelIndex&)), connect(this, &GraphicsBreakPointsWidget::BreakPointsChanged,
breakpoint_model, SIGNAL(dataChanged(const QModelIndex&, const QModelIndex&))); [this](const QModelIndex& top_left, const QModelIndex& bottom_right) {
breakpoint_model->dataChanged(top_left, bottom_right);
});
QWidget* main_widget = new QWidget; QWidget* main_widget = new QWidget;
auto main_layout = new QVBoxLayout; auto main_layout = new QVBoxLayout;

View file

@ -26,18 +26,17 @@ public:
void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override; void OnMaxwellBreakPointHit(Tegra::DebugContext::Event event, void* data) override;
void OnMaxwellResume() override; void OnMaxwellResume() override;
public slots:
void OnBreakPointHit(Tegra::DebugContext::Event event, void* data);
void OnItemDoubleClicked(const QModelIndex&);
void OnResumeRequested();
void OnResumed();
signals: signals:
void Resumed(); void Resumed();
void BreakPointHit(Tegra::DebugContext::Event event, void* data); void BreakPointHit(Tegra::DebugContext::Event event, void* data);
void BreakPointsChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight); void BreakPointsChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight);
private: private:
void OnBreakPointHit(Tegra::DebugContext::Event event, void* data);
void OnItemDoubleClicked(const QModelIndex&);
void OnResumeRequested();
void OnResumed();
QLabel* status_text; QLabel* status_text;
QPushButton* resume_button; QPushButton* resume_button;

View file

@ -25,7 +25,6 @@ public:
bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override;
public slots:
void OnBreakPointHit(Tegra::DebugContext::Event event); void OnBreakPointHit(Tegra::DebugContext::Event event);
void OnResumed(); void OnResumed();

View file

@ -153,22 +153,24 @@ GraphicsSurfaceWidget::GraphicsSurfaceWidget(std::shared_ptr<Tegra::DebugContext
save_surface = new QPushButton(QIcon::fromTheme("document-save"), tr("Save")); save_surface = new QPushButton(QIcon::fromTheme("document-save"), tr("Save"));
// Connections // Connections
connect(this, SIGNAL(Update()), this, SLOT(OnUpdate())); connect(this, &GraphicsSurfaceWidget::Update, this, &GraphicsSurfaceWidget::OnUpdate);
connect(surface_source_list, SIGNAL(currentIndexChanged(int)), this, connect(surface_source_list,
SLOT(OnSurfaceSourceChanged(int))); static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
connect(surface_address_control, SIGNAL(ValueChanged(qint64)), this, &GraphicsSurfaceWidget::OnSurfaceSourceChanged);
SLOT(OnSurfaceAddressChanged(qint64))); connect(surface_address_control, &CSpinBox::ValueChanged, this,
connect(surface_width_control, SIGNAL(valueChanged(int)), this, &GraphicsSurfaceWidget::OnSurfaceAddressChanged);
SLOT(OnSurfaceWidthChanged(int))); connect(surface_width_control, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
connect(surface_height_control, SIGNAL(valueChanged(int)), this, this, &GraphicsSurfaceWidget::OnSurfaceWidthChanged);
SLOT(OnSurfaceHeightChanged(int))); connect(surface_height_control, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
connect(surface_format_control, SIGNAL(currentIndexChanged(int)), this, this, &GraphicsSurfaceWidget::OnSurfaceHeightChanged);
SLOT(OnSurfaceFormatChanged(int))); connect(surface_format_control,
connect(surface_picker_x_control, SIGNAL(valueChanged(int)), this, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this,
SLOT(OnSurfacePickerXChanged(int))); &GraphicsSurfaceWidget::OnSurfaceFormatChanged);
connect(surface_picker_y_control, SIGNAL(valueChanged(int)), this, connect(surface_picker_x_control, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
SLOT(OnSurfacePickerYChanged(int))); this, &GraphicsSurfaceWidget::OnSurfacePickerXChanged);
connect(save_surface, SIGNAL(clicked()), this, SLOT(SaveSurface())); connect(surface_picker_y_control, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged),
this, &GraphicsSurfaceWidget::OnSurfacePickerYChanged);
connect(save_surface, &QPushButton::clicked, this, &GraphicsSurfaceWidget::SaveSurface);
auto main_widget = new QWidget; auto main_widget = new QWidget;
auto main_layout = new QVBoxLayout; auto main_layout = new QVBoxLayout;

View file

@ -65,16 +65,15 @@ public slots:
void OnSurfacePickerYChanged(int new_value); void OnSurfacePickerYChanged(int new_value);
void OnUpdate(); void OnUpdate();
private slots: signals:
void Update();
private:
void OnBreakPointHit(Tegra::DebugContext::Event event, void* data) override; void OnBreakPointHit(Tegra::DebugContext::Event event, void* data) override;
void OnResumed() override; void OnResumed() override;
void SaveSurface(); void SaveSurface();
signals:
void Update();
private:
QComboBox* surface_source_list; QComboBox* surface_source_list;
CSpinBox* surface_address_control; CSpinBox* surface_address_control;
QSpinBox* surface_width_control; QSpinBox* surface_width_control;