From 2a666663e7ad693804501c9d6ebc7c29df7b0860 Mon Sep 17 00:00:00 2001 From: gaozheng Date: Wed, 10 Jun 2026 17:02:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor(theme):=20=E5=85=A8=E9=83=A8=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=AF=B9=E8=AF=9D=E6=A1=86=E8=BF=81=E7=A7=BB=E4=BB=A4?= =?UTF-8?q?=E7=89=8C=20+=20=E6=B8=85=E7=90=86=E5=A7=94=E6=89=98=E6=8E=A5?= =?UTF-8?q?=E7=AE=A1=E5=90=8E=E5=A4=B1=E6=95=88=E7=9A=84=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=80=89=E4=B8=AD/=E5=89=8D=E6=99=AF=E6=AD=BB=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/ProjectListDialog.cpp | 12 ++++++------ src/app/main.cpp | 21 --------------------- src/app/panels/DatasetListPanel.cpp | 1 - 3 files changed, 6 insertions(+), 28 deletions(-) diff --git a/src/app/ProjectListDialog.cpp b/src/app/ProjectListDialog.cpp index 34bfb9c..950df35 100644 --- a/src/app/ProjectListDialog.cpp +++ b/src/app/ProjectListDialog.cpp @@ -28,11 +28,11 @@ QString statusText(int s) { } // 状态语义色(寻路):未开始=弱化中性、进行中=信息蓝(活动中);未知状态用中性灰。 -const char* statusColorHex(int s) { +QColor statusColor(int s) { switch (s) { - case 1: return "#8A93A3"; // 未开始:弱化 - case 2: return semantic::kInfo; // 进行中:活动中 - default: return "#5A6B85"; // 未知:中性 + case 1: return tokenColor("text/tertiary"); // 未开始:弱化 + case 2: return tokenColor("accent/primary"); // 进行中:活动中 + default: return tokenColor("text/secondary"); // 未知:中性 } } } // namespace @@ -155,12 +155,12 @@ void ProjectListDialog::query() { set(0, QString::number((pageNo_ - 1) * pageSize_ + i + 1)); auto* nameItem = new QTableWidgetItem(QString::fromStdString(p.name)); nameItem->setData(Qt::UserRole, QString::fromStdString(p.id)); - nameItem->setForeground(QColor("#2D6CB5")); + nameItem->setForeground(tokenColor("accent/primary")); table_->setItem(i, 1, nameItem); set(2, QString::fromStdString(p.code)); // 状态列语义着色:颜色承载“未开始/进行中”分类,进行中加粗强调(不只靠颜色)。 auto* statusItem = new QTableWidgetItem(statusText(p.status)); - statusItem->setForeground(QColor(statusColorHex(p.status))); + statusItem->setForeground(statusColor(p.status)); if (p.status == 2) { QFont f = statusItem->font(); f.setBold(true); diff --git a/src/app/main.cpp b/src/app/main.cpp index 19dfe7a..f67c86e 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -523,31 +523,12 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re {{geopro::app::Glyph::Plus, QStringLiteral("新建对象")}})); auto* leftArea = dockManager->addDockWidget(ads::LeftDockWidgetArea, leftDock); - // 列表选中色:写死的强调蓝(明 #C2D9F2 / 暗 #33527A)+ 适配文字,:!active 防失焦变淡; - // 与对象树选中色一致。本地 QSS 覆盖全局弱选中色,随主题重设。 - auto applyListSelection = [](QListWidget* lw) { - auto styleIt = [lw]() { - const bool dark = geopro::app::isDarkTheme(); - const QString selBg = dark ? QStringLiteral("#33527A") : QStringLiteral("#C2D9F2"); - const QString selFg = dark ? QStringLiteral("#E8F1FB") : QStringLiteral("#14385F"); - lw->setStyleSheet(QStringLiteral("QListWidget::item:selected{ background:%1; color:%2; }" - "QListWidget::item:selected:!active{ background:%1;" - " color:%2; }") - .arg(selBg, selFg)); - }; - styleIt(); - QObject::connect(&geopro::app::ThemeManager::instance(), &geopro::app::ThemeManager::changed, - lw, [styleIt]() { styleIt(); }); - }; - // 左下 dock:数据真实显示栏(选中测线后列其采集批次=数据集;tab 数据/文件)。 auto* datasetTabs = new QTabWidget(); auto* datasetList = new QListWidget(); - applyListSelection(datasetList); geopro::app::applyDatasetCardDelegate(datasetList); datasetTabs->addTab(datasetList, QStringLiteral("数据")); auto* fileList = new QListWidget(); - applyListSelection(fileList); geopro::app::applyDatasetCardDelegate(fileList); datasetTabs->addTab(fileList, QStringLiteral("文件")); auto* datasetDock = new ads::CDockWidget(QStringLiteral("数据真实显示栏")); @@ -562,7 +543,6 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re // 右上 dock:异常列表 / 对象属性 合并为带 Tab 表头的面板(对齐原型上半)。 auto* anomalyList = new QListWidget(); - applyListSelection(anomalyList); geopro::app::applyAnomalyCardDelegate(anomalyList); auto* objAttrLabel = new QLabel(QStringLiteral("(选中对象后显示其属性)")); objAttrLabel->setWordWrap(true); @@ -899,7 +879,6 @@ void buildWorkbench(QMainWindow& window, geopro::data::LocalSampleRepository& re auto* m = new QListWidgetItem(QStringLiteral("加载更多(%1/%2)").arg(loaded).arg(total), lw); m->setData(geopro::app::kDsLoadMoreRole, true); m->setTextAlignment(Qt::AlignCenter); - m->setForeground(QColor("#2D6CB5")); } return loaded; }; diff --git a/src/app/panels/DatasetListPanel.cpp b/src/app/panels/DatasetListPanel.cpp index 1630a16..4856a85 100644 --- a/src/app/panels/DatasetListPanel.cpp +++ b/src/app/panels/DatasetListPanel.cpp @@ -125,7 +125,6 @@ void populateFileList(QListWidget* list, const std::vector& if (!append && rows.empty()) { auto* hint = new QListWidgetItem(QStringLiteral("(暂无文件)"), list); hint->setFlags(Qt::NoItemFlags); - hint->setForeground(QColor("#9AA6B6")); hint->setTextAlignment(Qt::AlignCenter); return; }