feat: add Preferences dialog for managing theme, rendering, and unit settings
This commit is contained in:
@@ -20,17 +20,25 @@ QViewport::QViewport(QWidget* parent)
|
||||
, m_VtkWidget(nullptr)
|
||||
, m_GridButton(nullptr)
|
||||
, m_ProjButton(nullptr)
|
||||
, m_renderTimer(nullptr)
|
||||
, m_renderPending(false)
|
||||
{
|
||||
// Build the layout – zero margins so VTK fills the entire widget
|
||||
auto* layout = new QVBoxLayout(this);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
layout->setSpacing(0);
|
||||
|
||||
|
||||
m_VtkWidget = new QVTKOpenGLNativeWidget(this);
|
||||
layout->addWidget(m_VtkWidget);
|
||||
|
||||
|
||||
// Initialize render timer
|
||||
m_renderTimer = new QTimer(this);
|
||||
m_renderTimer->setSingleShot(true);
|
||||
connect(m_renderTimer, &QTimer::timeout, this, &QViewport::doRender);
|
||||
|
||||
// Grid Toggle Button
|
||||
m_GridButton = new QPushButton(m_VtkWidget);
|
||||
|
||||
m_GridButton->setText("#");
|
||||
m_GridButton->setFixedSize(40, 40);
|
||||
m_GridButton->setToolTip("Toggle Grid");
|
||||
@@ -112,9 +120,21 @@ void QViewport::SetupPipeline()
|
||||
|
||||
void QViewport::Render()
|
||||
{
|
||||
if (m_VtkWidget && m_VtkWidget->renderWindow())
|
||||
m_VtkWidget->renderWindow()->Render();
|
||||
if (!m_throttledRendering) {
|
||||
doRender();
|
||||
return;
|
||||
}
|
||||
if (m_renderPending) return;
|
||||
m_renderPending = true;
|
||||
m_renderTimer->start(16);
|
||||
}
|
||||
|
||||
void QViewport::doRender()
|
||||
{
|
||||
m_renderPending = false;
|
||||
if (m_VtkWidget && m_VtkWidget->renderWindow())
|
||||
m_VtkWidget->renderWindow()->Render();
|
||||
}
|
||||
|
||||
vtkRenderWindow* QViewport::GetRenderWindow()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user