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:
22
src/DebugWindow.cpp
Normal file
22
src/DebugWindow.cpp
Normal 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
20
src/DebugWindow.h
Normal 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
|
||||||
@@ -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));
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user