add properties groups
This commit is contained in:
@@ -46,23 +46,25 @@ ViewportPane::ViewportPane(QWidget* parent) : QWidget(parent), m_viewport(nullpt
|
||||
|
||||
m_layout->addWidget(m_titleBar);
|
||||
|
||||
// Main horizontal container for viewport and display panel
|
||||
QWidget* mainArea = new QWidget(this);
|
||||
QHBoxLayout* hLayout = new QHBoxLayout(mainArea);
|
||||
hLayout->setContentsMargins(0, 0, 0, 0);
|
||||
hLayout->setSpacing(0);
|
||||
m_layout->addWidget(mainArea);
|
||||
// Main area with splitter for viewport and display panel
|
||||
m_areaSplitter = new QSplitter(Qt::Horizontal, this);
|
||||
m_areaSplitter->setObjectName("ViewportAreaSplitter");
|
||||
m_layout->addWidget(m_areaSplitter, 1);
|
||||
|
||||
// Viewport will be added here via setViewport
|
||||
m_viewport = new uLib::Vtk::QViewport(mainArea);
|
||||
hLayout->addWidget(m_viewport);
|
||||
m_viewport = new uLib::Vtk::QViewport(m_areaSplitter);
|
||||
m_areaSplitter->addWidget(m_viewport);
|
||||
|
||||
// Display Panel (Overlay/Slide-out)
|
||||
m_displayPanel = new QFrame(mainArea);
|
||||
m_displayPanel = new QFrame(m_areaSplitter);
|
||||
m_displayPanel->setObjectName("DisplayPropertiesPanel");
|
||||
m_displayPanel->setFixedWidth(250);
|
||||
m_displayPanel->setMinimumWidth(150);
|
||||
m_displayPanel->hide();
|
||||
|
||||
m_areaSplitter->addWidget(m_displayPanel);
|
||||
m_areaSplitter->setStretchFactor(0, 1);
|
||||
m_areaSplitter->setStretchFactor(1, 0);
|
||||
|
||||
QVBoxLayout* panelLayout = new QVBoxLayout(m_displayPanel);
|
||||
panelLayout->setContentsMargins(5, 5, 5, 5);
|
||||
|
||||
@@ -72,8 +74,6 @@ ViewportPane::ViewportPane(QWidget* parent) : QWidget(parent), m_viewport(nullpt
|
||||
|
||||
m_displayEditor = new uLib::Qt::PropertyEditor(m_displayPanel);
|
||||
panelLayout->addWidget(m_displayEditor);
|
||||
|
||||
hLayout->addWidget(m_displayPanel);
|
||||
|
||||
connect(m_toggleBtn, &QPushButton::toggled, this, &ViewportPane::toggleDisplayPanel);
|
||||
connect(m_titleBar, &QWidget::customContextMenuRequested, this, &ViewportPane::showContextMenu);
|
||||
@@ -85,7 +85,15 @@ ViewportPane::ViewportPane(QWidget* parent) : QWidget(parent), m_viewport(nullpt
|
||||
ViewportPane::~ViewportPane() {}
|
||||
|
||||
void ViewportPane::toggleDisplayPanel() {
|
||||
m_displayPanel->setVisible(m_toggleBtn->isChecked());
|
||||
bool visible = m_toggleBtn->isChecked();
|
||||
m_displayPanel->setVisible(visible);
|
||||
if (visible && m_areaSplitter->sizes().value(1, 0) == 0) {
|
||||
QList<int> sizes = m_areaSplitter->sizes();
|
||||
int total = sizes[0] + sizes[1];
|
||||
sizes[1] = 250;
|
||||
sizes[0] = total - 250;
|
||||
m_areaSplitter->setSizes(sizes);
|
||||
}
|
||||
}
|
||||
|
||||
void ViewportPane::setObject(uLib::Object* obj) {
|
||||
@@ -107,15 +115,14 @@ void ViewportPane::setObject(uLib::Object* obj) {
|
||||
|
||||
void ViewportPane::setViewport(QWidget* viewport, const QString& title) {
|
||||
if (m_viewport) {
|
||||
m_viewport->parentWidget()->layout()->removeWidget(m_viewport);
|
||||
delete m_viewport;
|
||||
}
|
||||
m_viewport = viewport;
|
||||
m_titleLabel->setText(title);
|
||||
|
||||
m_viewport->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
|
||||
auto* mainAreaLayout = static_cast<QHBoxLayout*>(m_displayPanel->parentWidget()->layout());
|
||||
mainAreaLayout->insertWidget(0, m_viewport);
|
||||
m_areaSplitter->insertWidget(0, m_viewport);
|
||||
m_areaSplitter->setStretchFactor(0, 1);
|
||||
}
|
||||
|
||||
void ViewportPane::addVtkViewport() {
|
||||
|
||||
Reference in New Issue
Block a user