feat(ui): 面板改名(对象/数据集/异常/数据集属性) + 原数据/网格数据改为下划线页签(与其他切换一致) + 表头图标间距对齐规范6px(§6.7)
This commit is contained in:
parent
5f02d494dc
commit
9e80b2fea1
|
|
@ -85,7 +85,7 @@ QWidget* buildPanelHeader(Glyph icon, const QString& title, const QVector<Header
|
||||||
|
|
||||||
auto* lay = new QHBoxLayout(header);
|
auto* lay = new QHBoxLayout(header);
|
||||||
lay->setContentsMargins(12, 0, 8, 0);
|
lay->setContentsMargins(12, 0, 8, 0);
|
||||||
lay->setSpacing(8);
|
lay->setSpacing(geopro::app::space::kSm);
|
||||||
|
|
||||||
auto* iconLbl = new QLabel(header);
|
auto* iconLbl = new QLabel(header);
|
||||||
setThemedGlyph(iconLbl, icon, kTitleIcon); // 随主题着色(暗色下也清晰)
|
setThemedGlyph(iconLbl, icon, kTitleIcon); // 随主题着色(暗色下也清晰)
|
||||||
|
|
|
||||||
|
|
@ -330,6 +330,11 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
" font-size:%1px; }"
|
" font-size:%1px; }"
|
||||||
"QToolButton:hover{ background:{{bg/hover}}; }"
|
"QToolButton:hover{ background:{{bg/hover}}; }"
|
||||||
"QToolButton:checked{ color:{{accent/primary}}; font-weight:%2;"
|
"QToolButton:checked{ color:{{accent/primary}}; font-weight:%2;"
|
||||||
|
" border-bottom:2px solid {{accent/primary}}; }"
|
||||||
|
"QToolButton#dataTab{ border:none; border-radius:0; background:transparent;"
|
||||||
|
" border-bottom:2px solid transparent; color:{{text/secondary}}; padding:8px 8px; }"
|
||||||
|
"QToolButton#dataTab:hover{ color:{{text/primary}}; background:transparent; }"
|
||||||
|
"QToolButton#dataTab:checked{ color:{{accent/primary}}; font-weight:%2;"
|
||||||
" border-bottom:2px solid {{accent/primary}}; }")
|
" border-bottom:2px solid {{accent/primary}}; }")
|
||||||
.arg(geopro::app::scaledPx(geopro::app::type::kBody))
|
.arg(geopro::app::scaledPx(geopro::app::type::kBody))
|
||||||
.arg(geopro::app::type::kWeightSemibold);
|
.arg(geopro::app::type::kWeightSemibold);
|
||||||
|
|
@ -482,6 +487,8 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
detailGroup->setExclusive(true);
|
detailGroup->setExclusive(true);
|
||||||
auto* actScatter = makeBarBtn(QStringLiteral("原数据"), true);
|
auto* actScatter = makeBarBtn(QStringLiteral("原数据"), true);
|
||||||
auto* actSection = makeBarBtn(QStringLiteral("网格数据"), true);
|
auto* actSection = makeBarBtn(QStringLiteral("网格数据"), true);
|
||||||
|
actScatter->setObjectName(QStringLiteral("dataTab"));
|
||||||
|
actSection->setObjectName(QStringLiteral("dataTab"));
|
||||||
detailGroup->addButton(actScatter);
|
detailGroup->addButton(actScatter);
|
||||||
detailGroup->addButton(actSection);
|
detailGroup->addButton(actSection);
|
||||||
detailBarLay->addWidget(actScatter);
|
detailBarLay->addWidget(actScatter);
|
||||||
|
|
@ -517,8 +524,8 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
|
|
||||||
// 左上 dock:对象树(真实结构:项目根 → GS → TM)。被动视图,数据由控制器推送。
|
// 左上 dock:对象树(真实结构:项目根 → GS → TM)。被动视图,数据由控制器推送。
|
||||||
auto* objectTree = new geopro::app::ObjectTreePanel();
|
auto* objectTree = new geopro::app::ObjectTreePanel();
|
||||||
auto* leftDock = new ads::CDockWidget(QStringLiteral("对象显示栏"));
|
auto* leftDock = new ads::CDockWidget(QStringLiteral("对象"));
|
||||||
leftDock->setWidget(wrapWithHeader(geopro::app::Glyph::Tree, QStringLiteral("对象显示栏"),
|
leftDock->setWidget(wrapWithHeader(geopro::app::Glyph::Tree, QStringLiteral("对象"),
|
||||||
objectTree,
|
objectTree,
|
||||||
{{geopro::app::Glyph::Plus, QStringLiteral("新建对象")}}));
|
{{geopro::app::Glyph::Plus, QStringLiteral("新建对象")}}));
|
||||||
auto* leftArea = dockManager->addDockWidget(ads::LeftDockWidgetArea, leftDock);
|
auto* leftArea = dockManager->addDockWidget(ads::LeftDockWidgetArea, leftDock);
|
||||||
|
|
@ -531,9 +538,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
auto* fileList = new QListWidget();
|
auto* fileList = new QListWidget();
|
||||||
geopro::app::applyDatasetCardDelegate(fileList);
|
geopro::app::applyDatasetCardDelegate(fileList);
|
||||||
datasetTabs->addTab(fileList, QStringLiteral("文件"));
|
datasetTabs->addTab(fileList, QStringLiteral("文件"));
|
||||||
auto* datasetDock = new ads::CDockWidget(QStringLiteral("数据真实显示栏"));
|
auto* datasetDock = new ads::CDockWidget(QStringLiteral("数据集"));
|
||||||
auto* datasetBox = wrapWithHeader(
|
auto* datasetBox = wrapWithHeader(
|
||||||
geopro::app::Glyph::Dataset, QStringLiteral("数据真实显示栏"), datasetTabs,
|
geopro::app::Glyph::Dataset, QStringLiteral("数据集"), datasetTabs,
|
||||||
{{geopro::app::Glyph::Filter, QStringLiteral("筛选")},
|
{{geopro::app::Glyph::Filter, QStringLiteral("筛选")},
|
||||||
{geopro::app::Glyph::Upload, QStringLiteral("上传")}});
|
{geopro::app::Glyph::Upload, QStringLiteral("上传")}});
|
||||||
datasetDock->setWidget(datasetBox);
|
datasetDock->setWidget(datasetBox);
|
||||||
|
|
@ -550,7 +557,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
objAttrLabel->setMargin(8);
|
objAttrLabel->setMargin(8);
|
||||||
|
|
||||||
auto anomalyPanel = geopro::app::buildTabbedPanel(
|
auto anomalyPanel = geopro::app::buildTabbedPanel(
|
||||||
{{geopro::app::Glyph::Anomaly, QStringLiteral("异常列表"), anomalyList, true},
|
{{geopro::app::Glyph::Anomaly, QStringLiteral("异常"), anomalyList, true},
|
||||||
{geopro::app::Glyph::Property, QStringLiteral("对象属性"), objAttrLabel, false}},
|
{geopro::app::Glyph::Property, QStringLiteral("对象属性"), objAttrLabel, false}},
|
||||||
{{geopro::app::Glyph::Filter, QStringLiteral("筛选")},
|
{{geopro::app::Glyph::Filter, QStringLiteral("筛选")},
|
||||||
{geopro::app::Glyph::Plus, QStringLiteral("添加异常")}});
|
{geopro::app::Glyph::Plus, QStringLiteral("添加异常")}});
|
||||||
|
|
@ -565,7 +572,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
anomalyBadge->style()->polish(anomalyBadge);
|
anomalyBadge->style()->polish(anomalyBadge);
|
||||||
}
|
}
|
||||||
|
|
||||||
auto* rightDock = new ads::CDockWidget(QStringLiteral("异常列表/对象属性"));
|
auto* rightDock = new ads::CDockWidget(QStringLiteral("异常/对象属性"));
|
||||||
rightDock->setWidget(anomalyPanel.container);
|
rightDock->setWidget(anomalyPanel.container);
|
||||||
auto* rightArea = dockManager->addDockWidget(ads::RightDockWidgetArea, rightDock);
|
auto* rightArea = dockManager->addDockWidget(ads::RightDockWidgetArea, rightDock);
|
||||||
|
|
||||||
|
|
@ -574,9 +581,9 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
propLabel->setWordWrap(true);
|
propLabel->setWordWrap(true);
|
||||||
propLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
|
propLabel->setAlignment(Qt::AlignTop | Qt::AlignLeft);
|
||||||
propLabel->setMargin(8);
|
propLabel->setMargin(8);
|
||||||
auto* propDock = new ads::CDockWidget(QStringLiteral("属性"));
|
auto* propDock = new ads::CDockWidget(QStringLiteral("数据集属性"));
|
||||||
propDock->setWidget(
|
propDock->setWidget(
|
||||||
wrapWithHeader(geopro::app::Glyph::Property, QStringLiteral("属性"), propLabel));
|
wrapWithHeader(geopro::app::Glyph::Property, QStringLiteral("数据集属性"), propLabel));
|
||||||
dockManager->addDockWidget(ads::BottomDockWidgetArea, propDock, rightArea);
|
dockManager->addDockWidget(ads::BottomDockWidgetArea, propDock, rightArea);
|
||||||
|
|
||||||
// 固定全部面板(对齐原型):移除 关闭/浮动/拖动/钉住 等子窗口操作,仅保留分隔条调整边界。
|
// 固定全部面板(对齐原型):移除 关闭/浮动/拖动/钉住 等子窗口操作,仅保留分隔条调整边界。
|
||||||
|
|
@ -928,7 +935,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
objectTree->setStructure(projectName, nodes);
|
objectTree->setStructure(projectName, nodes);
|
||||||
datasetList->clear();
|
datasetList->clear();
|
||||||
fileList->clear();
|
fileList->clear();
|
||||||
if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集显示栏"));
|
if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集"));
|
||||||
datasetTabs->setTabText(0, QStringLiteral("数据"));
|
datasetTabs->setTabText(0, QStringLiteral("数据"));
|
||||||
datasetTabs->setTabText(1, QStringLiteral("文件"));
|
datasetTabs->setTabText(1, QStringLiteral("文件"));
|
||||||
});
|
});
|
||||||
|
|
@ -939,7 +946,7 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re
|
||||||
removeLoadMore(datasetList);
|
removeLoadMore(datasetList);
|
||||||
geopro::app::populateDatasetList(datasetList, rows, append);
|
geopro::app::populateDatasetList(datasetList, rows, append);
|
||||||
const int loaded = addLoadMore(datasetList, total);
|
const int loaded = addLoadMore(datasetList, total);
|
||||||
if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集显示栏"));
|
if (datasetTitle) datasetTitle->setText(QStringLiteral("数据集"));
|
||||||
datasetTabs->setTabText(
|
datasetTabs->setTabText(
|
||||||
0, total > 0 ? QStringLiteral("数据 (%1/%2)").arg(loaded).arg(total)
|
0, total > 0 ? QStringLiteral("数据 (%1/%2)").arg(loaded).arg(total)
|
||||||
: QStringLiteral("数据"));
|
: QStringLiteral("数据"));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue