From 8d938dd848fcd8616b06718a89fe48636c226b8e Mon Sep 17 00:00:00 2001 From: gaozheng Date: Tue, 9 Jun 2026 21:39:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(ela):=20P1=20code=20review=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - H1: ElaWidgetTools GIT_TAG 钉到 b80eadc(可复现) - H3: 内层 QMainWindow 以 ElaWindow 为父构造(避免无父期调色板/DPI 抖动) - M4: spike 改 option(GEOPRO_BUILD_ELA_SPIKE) 守卫,默认不编 - 备注: ctest 53/53 通过; C2(applyTheme 顺序)为 P1 有意共存,P2 主题桥统一; H2/M1 记入 P4 --- CMakeLists.txt | 9 ++++++--- src/app/main.cpp | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d53f9b..2357669 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -70,14 +70,17 @@ FetchContent_MakeAvailable(qtkeychain) set(ELAWIDGETTOOLS_BUILD_STATIC_LIB ON CACHE BOOL "" FORCE) FetchContent_Declare(elawidgettools GIT_REPOSITORY https://github.com/RainbowCandyX/ElaWidgetTools.git - GIT_TAG main + GIT_TAG b80eadc4a199186e14656dce09959b3216a593be # 钉定提交,构建可复现(review H1) SOURCE_SUBDIR ElaWidgetTools) FetchContent_MakeAvailable(elawidgettools) add_subdirectory(src) -# ElaWidgetTools 评估 spike(隔离 demo,不属于产品 geopro_desktop;评估完删分支即弃)。 -add_subdirectory(spike/ela) +# ElaWidgetTools 评估 spike(隔离 demo,默认不编;评估用 -DGEOPRO_BUILD_ELA_SPIKE=ON 开启,review M4)。 +option(GEOPRO_BUILD_ELA_SPIKE "Build ElaWidgetTools evaluation spike" OFF) +if(GEOPRO_BUILD_ELA_SPIKE) + add_subdirectory(spike/ela) +endif() enable_testing() add_subdirectory(tests) diff --git a/src/app/main.cpp b/src/app/main.cpp index 193ea73..e842a3b 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1019,13 +1019,13 @@ int main(int argc, char* argv[]) QWidget* topLevel = nullptr; if (qEnvironmentVariable("GEOPRO_UI_SHELL") == QLatin1String("ela")) { eApp->init(); // ElaApplication:Fluent 主题/字体/动画基建 - auto* inner = new QMainWindow; - buildWorkbench(*inner, repo, projectRepo, nav); auto* ela = new ElaWindow; ela->setWindowTitle(kTitle); ela->resize(1280, 800); ela->setMinimumSize(1024, 680); ela->setIsNavigationBarEnable(false); // 纯中心内容,不显示左侧导航栏 + auto* inner = new QMainWindow(ela); // 以 ela 为父,避免无父期调色板/DPI 抖动(review H3) + buildWorkbench(*inner, repo, projectRepo, nav); ela->setCentralCustomWidget(inner); // 工作台作为 ElaWindow 中心内容 topLevel = ela; } else {