diff --git a/src/DebugWindow.cpp b/src/DebugWindow.cpp index 35a962c..8640954 100644 --- a/src/DebugWindow.cpp +++ b/src/DebugWindow.cpp @@ -1,7 +1,9 @@ #include "DebugWindow.h" +#include "Camera.h" #include #include +#include DebugWindow::DebugWindow(QWidget *parent) : QDialog(parent) @@ -20,3 +22,27 @@ DebugWindow::DebugWindow(QWidget *parent) DebugWindow::~DebugWindow() { } + +void DebugWindow::updateCameraInfo(const Camera* camera) +{ + if (!camera) { + m_textEdit->setText("Camera not available."); + return; + } + + QString info; + info += "Camera Info:\n"; + info += "----------------\n"; + info += QString("Rotation (X, Y): (%1, %2)\n").arg(camera->xRotation()).arg(camera->yRotation()); + info += QString("Zoom: %1\n").arg(camera->zoom()); + info += QString("Pan (X, Y): (%1, %2)\n").arg(camera->panX()).arg(camera->panY()); + info += QString("UI Camera Distance: %1\n").arg(camera->uiCameraDistance()); + info += "\n"; + info += "Saved State:\n"; + info += "----------------\n"; + info += QString("Rotation (X, Y): (%1, %2)\n").arg(camera->savedXRot()).arg(camera->savedYRot()); + info += QString("Zoom: %1\n").arg(camera->savedZoom()); + info += QString("Pan (X, Y): (%1, %2)\n").arg(camera->savedPanX()).arg(camera->savedPanY()); + + m_textEdit->setText(info); +} diff --git a/src/DebugWindow.h b/src/DebugWindow.h index 89a602b..2cc6a2b 100644 --- a/src/DebugWindow.h +++ b/src/DebugWindow.h @@ -4,6 +4,7 @@ #include class QTextEdit; +class Camera; class DebugWindow : public QDialog { @@ -13,6 +14,8 @@ public: explicit DebugWindow(QWidget *parent = nullptr); ~DebugWindow(); + void updateCameraInfo(const Camera* camera); + private: QTextEdit* m_textEdit; }; diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index ef71b39..4ee5257 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -5,6 +5,7 @@ #include "Feature.h" #include "ApplicationController.h" #include "DebugWindow.h" +#include "Camera.h" #include #include @@ -157,6 +158,8 @@ MainWindow::MainWindow(ApplicationController* appController, QWidget *parent) 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->camera(), &Camera::cameraChanged, this, &MainWindow::updateDebugInfo); + m_debugWindow = new DebugWindow(this); if (QProcessEnvironment::systemEnvironment().value("DEBUG") == "true") { showDebugWindow(); @@ -197,9 +200,15 @@ bool MainWindow::saveAs() void MainWindow::showDebugWindow() { + updateDebugInfo(); m_debugWindow->show(); } +void MainWindow::updateDebugInfo() +{ + m_debugWindow->updateCameraInfo(m_viewport->camera()); +} + void MainWindow::enterSketchMode() { m_tabWidget->removeTab(m_tabWidget->indexOf(m_toolsTab)); diff --git a/src/MainWindow.h b/src/MainWindow.h index 52720d4..ef9368a 100644 --- a/src/MainWindow.h +++ b/src/MainWindow.h @@ -28,6 +28,7 @@ private slots: void saveSketch(); void showDebugWindow(); + void updateDebugInfo(); void enterSketchMode(); void exitSketchMode();