增大右边dock默认宽度
This commit is contained in:
@@ -68,6 +68,13 @@ namespace {
|
|||||||
constexpr int kRightDockMinimumWidth = 80;
|
constexpr int kRightDockMinimumWidth = 80;
|
||||||
/// 列宽小于此值时自动隐藏右侧两 dock
|
/// 列宽小于此值时自动隐藏右侧两 dock
|
||||||
constexpr int kRightDockAutoHideBelow = 92;
|
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) {
|
void polishCompactToolButton(QToolButton* b, int px = 40) {
|
||||||
if (!b) return;
|
if (!b) return;
|
||||||
@@ -947,12 +954,13 @@ void MainWindow::createProjectTreeDock() {
|
|||||||
Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);
|
Qt::BottomDockWidgetArea | Qt::TopDockWidgetArea);
|
||||||
m_dockProperties->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable |
|
m_dockProperties->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable |
|
||||||
QDockWidget::DockWidgetClosable);
|
QDockWidget::DockWidgetClosable);
|
||||||
m_dockProperties->setMinimumWidth(kRightDockMinimumWidth);
|
m_dockProperties->setMinimumWidth(236);
|
||||||
|
|
||||||
m_bgPropertySection = new gui::BackgroundPropertySection();
|
m_bgPropertySection = new gui::BackgroundPropertySection();
|
||||||
m_entityPropertySection = new gui::EntityPropertySection();
|
m_entityPropertySection = new gui::EntityPropertySection();
|
||||||
m_propertyStack = new QStackedWidget();
|
m_propertyStack = new QStackedWidget();
|
||||||
m_propertyStack->setContentsMargins(4, 4, 4, 4);
|
m_propertyStack->setContentsMargins(4, 4, 4, 4);
|
||||||
|
m_propertyStack->setMaximumWidth(kPropertyPanelContentMaxWidth);
|
||||||
m_propertyStack->addWidget(m_bgPropertySection);
|
m_propertyStack->addWidget(m_bgPropertySection);
|
||||||
m_propertyStack->addWidget(m_entityPropertySection);
|
m_propertyStack->addWidget(m_entityPropertySection);
|
||||||
|
|
||||||
@@ -1048,7 +1056,9 @@ void MainWindow::createProjectTreeDock() {
|
|||||||
|
|
||||||
addDockWidget(Qt::RightDockWidgetArea, m_dockProjectTree);
|
addDockWidget(Qt::RightDockWidgetArea, m_dockProjectTree);
|
||||||
splitDockWidget(m_dockProjectTree, m_dockProperties, Qt::Vertical);
|
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) {
|
connect(m_dockProjectTree, &QDockWidget::visibilityChanged, this, [this](bool visible) {
|
||||||
if (m_actionToggleProjectTree) {
|
if (m_actionToggleProjectTree) {
|
||||||
@@ -1064,6 +1074,26 @@ void MainWindow::createProjectTreeDock() {
|
|||||||
m_actionToggleProperties->blockSignals(false);
|
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() {
|
void MainWindow::refreshPropertyPanel() {
|
||||||
|
|||||||
Reference in New Issue
Block a user