18 Filenames(
const std::vector<std::string> &filenames) : blocks(filenames.at(0)), pictures_dir(filenames.at(1))
22 std::string pictures_dir;
26 bool has_object_type(ObjectType ty)
const override;
28 Schematic *get_current_schematic()
override;
29 const Schematic *get_current_schematic()
const;
31 const Schematic *get_top_schematic()
const;
32 Sheet *get_sheet()
override;
33 const Sheet *get_sheet()
const;
39 void delete_junction(
const UUID &uu)
override;
41 class Block *get_top_block()
override;
42 const Block *get_top_block()
const;
43 class Block *get_current_block()
override;
44 const Block *get_current_block()
const;
47 bool set_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
49 bool get_property(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
51 bool get_property_meta(ObjectType type,
const UUID &uu, ObjectProperty::ID property,
54 std::string get_display_name(ObjectType type,
const UUID &uu)
override;
55 std::string get_display_name(ObjectType type,
const UUID &uu,
const UUID &sheet)
override;
57 class Rules *get_rules()
override;
61 return &bom_export_settings;
66 return &pdf_export_settings;
70 void delete_sheet(
const UUID &uu);
72 void set_sheet(
const UUID &uu);
73 const Sheet &get_canvas_data();
74 const BlockSymbol &get_canvas_data_block_symbol();
75 std::pair<Coordi, Coordi> get_bbox()
override;
77 void set_block(
const UUID &uu);
78 const UUID &get_current_block_uuid()
const;
79 const UUID &get_top_block_uuid()
const;
81 void set_block_symbol_mode();
82 bool get_block_symbol_mode()
const override;
84 const BlocksSchematic &get_blocks()
const;
85 BlocksSchematic &get_blocks()
override;
86 bool current_block_is_top()
const override;
88 void set_instance_path(
const UUIDVec &path);
89 const UUIDVec &get_instance_path()
const override;
90 bool in_hierarchy()
const override;
92 const BlockInstanceMapping *get_block_instance_mapping()
const override;
93 BlockInstanceMapping *get_block_instance_mapping();
95 unsigned int get_sheet_index(
const class UUID &sheet)
const override;
96 unsigned int get_sheet_total()
const override;
97 unsigned int get_sheet_index_for_path(
const class UUID &sheet,
const UUIDVec &path)
const;
99 Schematic &get_schematic_for_instance_path(
const UUIDVec &path)
override;
101 const std::string &get_filename()
const override;
103 ObjectType get_object_type()
const override
105 return ObjectType::SCHEMATIC;
108 const FileVersion &get_version()
const override
110 return get_top_schematic()->version;
113 void reload_pool()
override;
116 std::map<UUID, Line> *get_line_map()
override;
117 std::map<UUID, Arc> *get_arc_map()
override;
118 std::map<UUID, Text> *get_text_map()
override;
119 std::map<UUID, Picture> *get_picture_map()
override;
121 std::optional<BlocksSchematic> blocks;
123 SchematicRules rules;
125 BOMExportSettings bom_export_settings;
126 PDFExportSettings pdf_export_settings;
130 UUIDVec instance_path;
134 class HistoryItem :
public Core::HistoryItem {
136 HistoryItem(
const BlocksSchematic &bl,
const std::string &cm) : Core::HistoryItem(cm), blocks(bl)
139 BlocksSchematic blocks;
141 void rebuild_internal(
bool from_undo,
const std::string &comment)
override;
142 void history_push(
const std::string &comment)
override;
143 void history_load(
unsigned int i)
override;
144 std::string get_history_comment_context()
const override;
145 void save(
const std::string &suffix)
override;
146 void delete_autosave()
override;
147 void fix_current_block();