增大右边dock默认宽度
This commit is contained in:
@@ -68,6 +68,13 @@ namespace {
|
||||
constexpr int kRightDockMinimumWidth = 80;
|
||||
/// 列宽小于此值时自动隐藏右侧两 dock
|
||||
constexpr int kRightDockAutoHideBelow = 92;
|
||||
/// 右侧 dock 列最大宽度,避免过宽挤占画布
|
||||
constexpr int kRightDockMaximumWidth = 288;
|
||||
/// 属性区表单内容最大宽度(dock 仍可略宽,两侧留白,避免 SpinBox 被拉得过开)
|
||||
constexpr int kPropertyPanelContentMaxWidth = 268;
|
||||
/// 启动时垂直分割高度:项目树较矮、属性区较高
|
||||
constexpr int kProjectTreeDockStartupHeight = 148;
|
||||
constexpr int kPropertiesDockStartupHeight = 392;
|
||||
|
||||
void polishCompactToolButton(QToolButton* b, int px = 40) {
|
||||
if (!b) return;
|
||||
@@ -947,12 +954,13 @@ void MainWindow::createProjectTreeDock() {
|
||||
Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);
|
||||
m_dockProperties->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable |
|
||||
QDockWidget::DockWidgetClosable);
|
||||
m_dockProperties->setMinimumWidth(kRightDockMinimumWidth);
|
||||
m_dockProperties->setMinimumWidth(236);
|
||||
|
||||
m_bgPropertySection = new gui::BackgroundPropertySection();
|
||||
m_entityPropertySection = new gui::EntityPropertySection();
|
||||
m_propertyStack = new QStackedWidget();
|
||||
m_propertyStack->setContentsMargins(4, 4, 4, 4);
|
||||
m_propertyStack->setMaximumWidth(kPropertyPanelContentMaxWidth);
|
||||
m_propertyStack->addWidget(m_bgPropertySection);
|
||||
m_propertyStack->addWidget(m_entityPropertySection);
|
||||
|
||||
@@ -1048,7 +1056,9 @@ void MainWindow::createProjectTreeDock() {
|
||||
|
||||
addDockWidget(Qt::RightDockWidgetArea, m_dockProjectTree);
|
||||
splitDockWidget(m_dockProjectTree, m_dockProperties, Qt::Vertical);
|
||||
resizeDocks({m_dockProjectTree, m_dockProperties}, {220, 200}, Qt::Vertical);
|
||||
resizeDocks({m_dockProjectTree, m_dockProperties},
|
||||
{kProjectTreeDockStartupHeight, kPropertiesDockStartupHeight},
|
||||
Qt::Vertical);
|
||||
|
||||
connect(m_dockProjectTree, &QDockWidget::visibilityChanged, this, [this](bool visible) {
|
||||
if (m_actionToggleProjectTree) {
|
||||
@@ -1064,6 +1074,26 @@ void MainWindow::createProjectTreeDock() {
|
||||
m_actionToggleProperties->blockSignals(false);
|
||||
}
|
||||
});
|
||||
|
||||
// 停靠时限制右侧列最大宽度;浮动时解除,避免属性/项目树窗口过窄难用
|
||||
const auto applyRightDockColumnMaxWidth = [](QDockWidget* dock) {
|
||||
if (!dock) {
|
||||
return;
|
||||
}
|
||||
dock->setMaximumWidth(dock->isFloating() ? QWIDGETSIZE_MAX : kRightDockMaximumWidth);
|
||||
};
|
||||
applyRightDockColumnMaxWidth(m_dockProjectTree);
|
||||
applyRightDockColumnMaxWidth(m_dockProperties);
|
||||
connect(m_dockProjectTree, &QDockWidget::topLevelChanged, this,
|
||||
[applyRightDockColumnMaxWidth, this](bool) {
|
||||
applyRightDockColumnMaxWidth(m_dockProjectTree);
|
||||
applyRightDockColumnMaxWidth(m_dockProperties);
|
||||
});
|
||||
connect(m_dockProperties, &QDockWidget::topLevelChanged, this,
|
||||
[applyRightDockColumnMaxWidth, this](bool) {
|
||||
applyRightDockColumnMaxWidth(m_dockProjectTree);
|
||||
applyRightDockColumnMaxWidth(m_dockProperties);
|
||||
});
|
||||
}
|
||||
|
||||
void MainWindow::refreshPropertyPanel() {
|
||||
|
||||
Reference in New Issue
Block a user