fix(ela): P1 code review 修复

- 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
This commit is contained in:
gaozheng 2026-06-09 21:39:47 +08:00
parent fc282824b9
commit 8d938dd848
2 changed files with 8 additions and 5 deletions

View File

@ -70,14 +70,17 @@ FetchContent_MakeAvailable(qtkeychain)
set(ELAWIDGETTOOLS_BUILD_STATIC_LIB ON CACHE BOOL "" FORCE) set(ELAWIDGETTOOLS_BUILD_STATIC_LIB ON CACHE BOOL "" FORCE)
FetchContent_Declare(elawidgettools FetchContent_Declare(elawidgettools
GIT_REPOSITORY https://github.com/RainbowCandyX/ElaWidgetTools.git GIT_REPOSITORY https://github.com/RainbowCandyX/ElaWidgetTools.git
GIT_TAG main GIT_TAG b80eadc4a199186e14656dce09959b3216a593be # 构建可复现(review H1)
SOURCE_SUBDIR ElaWidgetTools) SOURCE_SUBDIR ElaWidgetTools)
FetchContent_MakeAvailable(elawidgettools) FetchContent_MakeAvailable(elawidgettools)
add_subdirectory(src) add_subdirectory(src)
# ElaWidgetTools spike demo geopro_desktop # ElaWidgetTools spike demo -DGEOPRO_BUILD_ELA_SPIKE=ON review M4
add_subdirectory(spike/ela) option(GEOPRO_BUILD_ELA_SPIKE "Build ElaWidgetTools evaluation spike" OFF)
if(GEOPRO_BUILD_ELA_SPIKE)
add_subdirectory(spike/ela)
endif()
enable_testing() enable_testing()
add_subdirectory(tests) add_subdirectory(tests)

View File

@ -1019,13 +1019,13 @@ int main(int argc, char* argv[])
QWidget* topLevel = nullptr; QWidget* topLevel = nullptr;
if (qEnvironmentVariable("GEOPRO_UI_SHELL") == QLatin1String("ela")) { if (qEnvironmentVariable("GEOPRO_UI_SHELL") == QLatin1String("ela")) {
eApp->init(); // ElaApplicationFluent 主题/字体/动画基建 eApp->init(); // ElaApplicationFluent 主题/字体/动画基建
auto* inner = new QMainWindow;
buildWorkbench(*inner, repo, projectRepo, nav);
auto* ela = new ElaWindow; auto* ela = new ElaWindow;
ela->setWindowTitle(kTitle); ela->setWindowTitle(kTitle);
ela->resize(1280, 800); ela->resize(1280, 800);
ela->setMinimumSize(1024, 680); ela->setMinimumSize(1024, 680);
ela->setIsNavigationBarEnable(false); // 纯中心内容,不显示左侧导航栏 ela->setIsNavigationBarEnable(false); // 纯中心内容,不显示左侧导航栏
auto* inner = new QMainWindow(ela); // 以 ela 为父,避免无父期调色板/DPI 抖动(review H3)
buildWorkbench(*inner, repo, projectRepo, nav);
ela->setCentralCustomWidget(inner); // 工作台作为 ElaWindow 中心内容 ela->setCentralCustomWidget(inner); // 工作台作为 ElaWindow 中心内容
topLevel = ela; topLevel = ela;
} else { } else {