KiCad PCB EDA Suite
Loading...
Searching...
No Matches
auto_resolution.h File Reference
#include <kicommon.h>
#include <diff_merge/kicad_merge_engine.h>
#include <wx/string.h>
#include <map>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  KICAD_DIFF::AUTO_RESOLUTION_PARSE_RESULT
 Result of ParseAutoResolutionJson. More...
 
struct  KICAD_DIFF::APPLY_AUTO_RESOLUTIONS_RESULT
 
struct  KICAD_DIFF::CONFLICT_LIST_ENTRY
 Build the list of conflict-action indices the dialog walks (i.e. More...
 

Namespaces

namespace  KICAD_DIFF
 

Enumerations

enum class  KICAD_DIFF::AUTO_RESOLUTION_STATUS {
  KICAD_DIFF::OK , KICAD_DIFF::INVALID_JSON , KICAD_DIFF::NOT_OBJECT , KICAD_DIFF::BAD_VALUE ,
  KICAD_DIFF::UNKNOWN_KIND , KICAD_DIFF::ENGINE_INTERNAL_KIND
}
 Outcome of parsing a KICAD_MERGETOOL_AUTO JSON document. More...
 
enum class  KICAD_DIFF::APPLY_AUTO_RESOLUTIONS_STATUS { KICAD_DIFF::COMPLETE , KICAD_DIFF::PARTIAL , KICAD_DIFF::NO_CONFLICTS }
 Outcome of applying an auto-resolution map to a MERGE_PLAN. More...
 

Functions

AUTO_RESOLUTION_PARSE_RESULT KICAD_DIFF::ParseAutoResolutionJson (const std::string &aJsonContent)
 Parse a KICAD_MERGETOOL_AUTO-format JSON object mapping item IDs (KIID_PATH strings) to ITEM_RES spellings (the canonical snake_case names emitted by ItemResToString).
 
APPLY_AUTO_RESOLUTIONS_RESULT KICAD_DIFF::ApplyAutoResolutions (MERGE_PLAN &aPlan, const std::vector< std::size_t > &aConflictActionIndices, const std::map< wxString, ITEM_RES > &aResolutions)
 Apply a parsed auto-resolution map to a MERGE_PLAN's conflicts.
 
std::vector< CONFLICT_LIST_ENTRYKICAD_DIFF::BuildConflictList (const MERGE_PLAN &aPlan)
 
std::vector< KIID_PATHKICAD_DIFF::CollectUnresolvedConflicts (const MERGE_PLAN &aPlan, const std::vector< std::size_t > &aConflictActionIndices)
 Return the subset of conflict actions whose kind is NOT one of the concrete TAKE_OURS / TAKE_THEIRS / TAKE_ANCESTOR — the dialog uses this to refuse Apply when the user hasn't picked a side on every conflict.
 
std::optional< BOX2IKICAD_DIFF::ResolveConflictBBox (const KIID_PATH &aId, const std::map< KIID_PATH, BOX2I > &aPrimary, const std::map< KIID_PATH, BOX2I > &aOurs, const std::map< KIID_PATH, BOX2I > &aTheirs, const std::map< KIID_PATH, BOX2I > &aAncestor)
 Resolve the best bounding box for a conflicted item across the three sides of a 3-way merge.
 
wxString KICAD_DIFF::BuildConflictDetailText (const ITEM_RESOLUTION &aResolution)
 Build the human-readable detail text shown in the merge dialog's resolution panel for a given ITEM_RESOLUTION.