From c8f56f24a89e2884ab900c767f7f0a547cdd36bf Mon Sep 17 00:00:00 2001
From: Jeff Young <jeff@rokeby.ie>
Date: Sun, 16 Feb 2025 14:29:40 +0000
Subject: [PATCH] Write flipBoard boolean to JSON.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19852
---
 common/project/board_project_settings.cpp | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/common/project/board_project_settings.cpp b/common/project/board_project_settings.cpp
index fb3238673e..7c447bc805 100644
--- a/common/project/board_project_settings.cpp
+++ b/common/project/board_project_settings.cpp
@@ -47,7 +47,8 @@ nlohmann::json PARAM_LAYER_PRESET::presetsToJson()
     {
         nlohmann::json js = {
                 { "name", preset.name },
-                { "activeLayer", preset.activeLayer }
+                { "activeLayer", preset.activeLayer },
+                { "flipBoard", preset.flipBoard }
         };
 
         nlohmann::json layers = nlohmann::json::array();
@@ -87,8 +88,12 @@ void PARAM_LAYER_PRESET::jsonToPresets( const nlohmann::json& aJson )
         {
             LAYER_PRESET p( preset.at( "name" ).get<wxString>() );
 
-            if( preset.contains( "activeLayer" ) &&
-                preset.at( "activeLayer" ).is_number_integer() )
+            if( preset.contains( "flipBoard" ) && preset.at( "flipBoard" ).is_boolean() )
+            {
+                p.flipBoard = preset.at( "flipBoard" ).get<bool>();
+            }
+
+            if( preset.contains( "activeLayer" ) && preset.at( "activeLayer" ).is_number_integer() )
             {
                 int active = preset.at( "activeLayer" ).get<int>();
 
@@ -112,8 +117,7 @@ void PARAM_LAYER_PRESET::jsonToPresets( const nlohmann::json& aJson )
                 }
             }
 
-            if( preset.contains( "renderLayers" )
-                && preset.at( "renderLayers" ).is_array() )
+            if( preset.contains( "renderLayers" ) && preset.at( "renderLayers" ).is_array() )
             {
                 p.renderLayers.reset();