#include "imgui_debug_dialog.hpp" #include "ui_imgui_debug_dialog.h" #include #include #include namespace scwx { namespace qt { namespace ui { static const std::string logPrefix_ = "scwx::qt::ui::imgui_debug_dialog"; class ImGuiDebugDialogImpl { public: explicit ImGuiDebugDialogImpl() : imGuiDebugWidget_ {nullptr} {} ~ImGuiDebugDialogImpl() = default; ImGuiDebugWidget* imGuiDebugWidget_; }; ImGuiDebugDialog::ImGuiDebugDialog(QWidget* parent) : QDialog(parent), p {std::make_unique()}, ui(new Ui::ImGuiDebugDialog) { ui->setupUi(this); // ImGui Debug Widget p->imGuiDebugWidget_ = new ImGuiDebugWidget(this); p->imGuiDebugWidget_->setSizePolicy(QSizePolicy::Policy::Expanding, QSizePolicy::Policy::Expanding); ui->verticalLayout->insertWidget(0, p->imGuiDebugWidget_); // Context Combo Box auto& contextModel = model::ImGuiContextModel::Instance(); auto index = contextModel.IndexOf(p->imGuiDebugWidget_->context_name()); ui->contextComboBox->setModel(&contextModel); ui->contextComboBox->setCurrentIndex(index.row()); connect( ui->contextComboBox, &QComboBox::currentIndexChanged, [this](int row) { auto& contextModel = model::ImGuiContextModel::Instance(); auto index = contextModel.index(row, 0); if (index.isValid()) { QVariant data = contextModel.data(index, qt::types::RawDataRole); auto contextInfo = data.value(); p->imGuiDebugWidget_->set_current_context(contextInfo.context_); } }); } ImGuiDebugDialog::~ImGuiDebugDialog() { delete ui; } } // namespace ui } // namespace qt } // namespace scwx