feat: Add debug window; accessible via Help menu and DEBUG env var

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-02-18 14:54:57 -07:00
parent 2b9b54d5a5
commit 45a00b845b
4 changed files with 62 additions and 0 deletions

22
src/DebugWindow.cpp Normal file
View File

@@ -0,0 +1,22 @@
#include "DebugWindow.h"
#include <QVBoxLayout>
#include <QTextEdit>
DebugWindow::DebugWindow(QWidget *parent)
: QDialog(parent)
{
setWindowTitle("Debug Info");
resize(600, 400);
QVBoxLayout* layout = new QVBoxLayout(this);
m_textEdit = new QTextEdit();
m_textEdit->setReadOnly(true);
m_textEdit->setText("Debug window is active.");
layout->addWidget(m_textEdit);
setLayout(layout);
}
DebugWindow::~DebugWindow()
{
}

20
src/DebugWindow.h Normal file
View File

@@ -0,0 +1,20 @@
#ifndef DEBUGWINDOW_H
#define DEBUGWINDOW_H
#include <QDialog>
class QTextEdit;
class DebugWindow : public QDialog
{
Q_OBJECT
public:
explicit DebugWindow(QWidget *parent = nullptr);
~DebugWindow();
private:
QTextEdit* m_textEdit;
};
#endif // DEBUGWINDOW_H

View File

@@ -4,6 +4,7 @@
#include "SketchFeature.h" #include "SketchFeature.h"
#include "Feature.h" #include "Feature.h"
#include "ApplicationController.h" #include "ApplicationController.h"
#include "DebugWindow.h"
#include <QMenuBar> #include <QMenuBar>
#include <QMenu> #include <QMenu>
@@ -19,6 +20,7 @@
#include <QStringList> #include <QStringList>
#include <QKeyEvent> #include <QKeyEvent>
#include <QApplication> #include <QApplication>
#include <QProcessEnvironment>
MainWindow::MainWindow(ApplicationController* appController, QWidget *parent) MainWindow::MainWindow(ApplicationController* appController, QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
@@ -41,6 +43,10 @@ MainWindow::MainWindow(ApplicationController* appController, QWidget *parent)
QAction *saveAsAction = fileMenu->addAction("Save &As..."); QAction *saveAsAction = fileMenu->addAction("Save &As...");
connect(saveAsAction, &QAction::triggered, this, &MainWindow::saveAs); connect(saveAsAction, &QAction::triggered, this, &MainWindow::saveAs);
QMenu *helpMenu = menuBar()->addMenu("&Help");
QAction *debugAction = helpMenu->addAction("&Debug");
connect(debugAction, &QAction::triggered, this, &MainWindow::showDebugWindow);
QToolBar* mainToolBar = addToolBar("Main Toolbar"); QToolBar* mainToolBar = addToolBar("Main Toolbar");
mainToolBar->setMovable(false); mainToolBar->setMovable(false);
@@ -151,6 +157,11 @@ MainWindow::MainWindow(ApplicationController* appController, QWidget *parent)
connect(m_viewport, &ViewportWidget::planeSelected, m_appController, &ApplicationController::onPlaneSelected); connect(m_viewport, &ViewportWidget::planeSelected, m_appController, &ApplicationController::onPlaneSelected);
connect(m_viewport, &ViewportWidget::toolDeactivated, m_appController, [this]() { m_appController->setActiveTool(ApplicationController::ToolType::None); }); connect(m_viewport, &ViewportWidget::toolDeactivated, m_appController, [this]() { m_appController->setActiveTool(ApplicationController::ToolType::None); });
m_debugWindow = new DebugWindow(this);
if (QProcessEnvironment::systemEnvironment().value("DEBUG") == "true") {
showDebugWindow();
}
updateWindowTitle(QString()); updateWindowTitle(QString());
} }
@@ -184,6 +195,11 @@ bool MainWindow::saveAs()
return m_appController->saveDocumentAs(); return m_appController->saveDocumentAs();
} }
void MainWindow::showDebugWindow()
{
m_debugWindow->show();
}
void MainWindow::enterSketchMode() void MainWindow::enterSketchMode()
{ {
m_tabWidget->removeTab(m_tabWidget->indexOf(m_toolsTab)); m_tabWidget->removeTab(m_tabWidget->indexOf(m_toolsTab));

View File

@@ -10,6 +10,7 @@ class Feature;
class QTabWidget; class QTabWidget;
class QWidget; class QWidget;
class ApplicationController; class ApplicationController;
class DebugWindow;
class MainWindow : public QMainWindow class MainWindow : public QMainWindow
{ {
@@ -26,6 +27,8 @@ private slots:
void createSketch(); void createSketch();
void saveSketch(); void saveSketch();
void showDebugWindow();
void enterSketchMode(); void enterSketchMode();
void exitSketchMode(); void exitSketchMode();
void updateWindowTitle(const QString& filePath); void updateWindowTitle(const QString& filePath);
@@ -36,6 +39,7 @@ protected:
private: private:
ApplicationController* m_appController; ApplicationController* m_appController;
ViewportWidget *m_viewport; ViewportWidget *m_viewport;
DebugWindow* m_debugWindow;
QTabWidget *m_tabWidget; QTabWidget *m_tabWidget;
QWidget *m_solidTab; QWidget *m_solidTab;