refactor: Update CMake Configuration and Implement Canvas Automation Tests

- Updated CMakeLists.txt to include additional proto files for canvas automation, enhancing the build process for gRPC services.
- Refactored file_util.cc to use the core namespace for feature flags, improving code clarity and consistency.
- Added new unit tests for CanvasAutomationAPI, covering various functionalities such as coordinate conversion, tile operations, and selection management, ensuring robust testing for canvas automation features.
This commit is contained in:
scawful
2025-10-05 23:44:38 -04:00
parent ffddb208c6
commit f6ad6e971f
5 changed files with 492 additions and 9 deletions

View File

@@ -308,7 +308,8 @@ if (YAZE_BUILD_APP)
if(NOT YAZE_USE_MODULAR_BUILD)
target_add_protobuf(yaze
${CMAKE_SOURCE_DIR}/src/app/core/proto/imgui_test_harness.proto)
${CMAKE_SOURCE_DIR}/src/protos/imgui_test_harness.proto
${CMAKE_SOURCE_DIR}/src/protos/canvas_automation.proto)
target_sources(yaze PRIVATE
${CMAKE_SOURCE_DIR}/src/app/core/service/imgui_test_harness_service.cc
@@ -579,7 +580,8 @@ if (YAZE_BUILD_LIB)
if(YAZE_WITH_GRPC)
target_add_protobuf(yaze_core
${CMAKE_SOURCE_DIR}/src/app/core/proto/imgui_test_harness.proto)
${CMAKE_SOURCE_DIR}/src/protos/imgui_test_harness.proto
${CMAKE_SOURCE_DIR}/src/protos/canvas_automation.proto)
target_link_libraries(yaze_core PRIVATE
grpc++
@@ -645,7 +647,8 @@ if (YAZE_BUILD_LIB)
if(YAZE_WITH_GRPC)
target_add_protobuf(yaze_c
${CMAKE_SOURCE_DIR}/src/app/core/proto/imgui_test_harness.proto)
${CMAKE_SOURCE_DIR}/src/protos/imgui_test_harness.proto
${CMAKE_SOURCE_DIR}/src/protos/canvas_automation.proto)
target_link_libraries(yaze_c PRIVATE
grpc++

View File

@@ -191,7 +191,7 @@ std::string GetConfigDirectory() {
std::string FileDialogWrapper::ShowOpenFileDialog() {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowOpenFileDialogNFD();
} else {
return ShowOpenFileDialogBespoke();
@@ -282,7 +282,7 @@ std::string FileDialogWrapper::ShowOpenFileDialogBespoke() {
std::string FileDialogWrapper::ShowSaveFileDialog(const std::string& default_name,
const std::string& default_extension) {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowSaveFileDialogNFD(default_name, default_extension);
} else {
return ShowSaveFileDialogBespoke(default_name, default_extension);
@@ -415,7 +415,7 @@ std::string FileDialogWrapper::ShowSaveFileDialogBespoke(const std::string& defa
std::string FileDialogWrapper::ShowOpenFolderDialog() {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowOpenFolderDialogNFD();
} else {
return ShowOpenFolderDialogBespoke();
@@ -542,7 +542,7 @@ std::vector<std::string> FileDialogWrapper::GetFilesInFolder(
std::string FileDialogWrapper::ShowOpenFileDialog() {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowOpenFileDialogNFD();
} else {
return ShowOpenFileDialogBespoke();
@@ -643,7 +643,7 @@ std::string FileDialogWrapper::ShowSaveFileDialogBespoke(const std::string& defa
std::string FileDialogWrapper::ShowSaveFileDialog(const std::string& default_name,
const std::string& default_extension) {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowSaveFileDialogNFD(default_name, default_extension);
} else {
return ShowSaveFileDialogBespoke(default_name, default_extension);
@@ -652,7 +652,7 @@ std::string FileDialogWrapper::ShowSaveFileDialog(const std::string& default_nam
std::string FileDialogWrapper::ShowOpenFolderDialog() {
// Use global feature flag to choose implementation
if (FeatureFlags::get().kUseNativeFileDialog) {
if (core::FeatureFlags::get().kUseNativeFileDialog) {
return ShowOpenFolderDialogNFD();
} else {
return ShowOpenFolderDialogBespoke();