feat: add Preferences dialog for managing theme, rendering, and unit settings

This commit is contained in:
AndreaRigoni
2026-04-10 18:12:05 +00:00
parent e8c10daf6d
commit f8f92ebf3d
8 changed files with 213 additions and 35 deletions

View File

@@ -4,6 +4,7 @@
#include <QWidget>
#include <QVTKOpenGLNativeWidget.h>
#include <QPushButton>
#include <QTimer>
#include <vtkCornerAnnotation.h>
#include <vtkOrientationMarkerWidget.h>
@@ -39,27 +40,35 @@ public:
// Render scene
virtual void Render() override;
void SetThrottledRendering(bool enabled) { m_throttledRendering = enabled; }
bool GetThrottledRendering() const { return m_throttledRendering; }
// Direct access to VTK internals
virtual vtkRenderWindow* GetRenderWindow() override;
virtual vtkRenderWindowInteractor* GetInteractor() override;
QVTKOpenGLNativeWidget* GetWidget() { return m_VtkWidget; }
virtual void OnSelectionChanged(Prop3D* p) override;
protected:
virtual void resizeEvent(QResizeEvent* event) override;
private slots:
void onGridButtonClicked();
void onProjButtonClicked();
void doRender();
private:
void SetupPipeline();
QVTKOpenGLNativeWidget* m_VtkWidget;
QPushButton* m_GridButton;
QPushButton* m_ProjButton;
QTimer* m_renderTimer;
bool m_renderPending = false;
bool m_throttledRendering = true;
};
protected:
virtual void resizeEvent(QResizeEvent* event) override;
private slots:
void onGridButtonClicked();
void onProjButtonClicked();
private:
void SetupPipeline();
QVTKOpenGLNativeWidget* m_VtkWidget;
QPushButton* m_GridButton;
QPushButton* m_ProjButton;
};
} // namespace Vtk
} // namespace uLib