1#ifndef IV_SRC_MODEL_EDITDIAMAR_EDITDIAMARMODEL_HPP_
2#define IV_SRC_MODEL_EDITDIAMAR_EDITDIAMARMODEL_HPP_
33 bool load(
const std::string &projectFolder_);
34 bool save(std::string &message)
const;
35 bool hasChanged(std::string &changesMsg)
const;
48 [[nodiscard]]
const std::map<uint16_t, std::string> &
getMapLibraries()
const;
54 std::shared_ptr<CLogicsDrawingAreaModel>
59 std::optional<iv::types::logic::customBlockId>
76 const std::shared_ptr<CLogicFile> &logicFile)
const;
92 static constexpr std::string_view
root {
"EditorConfiguration"};
102 static constexpr std::string
string {};
Definition AbstractLog.hpp:9
Definition CDataAppEditDiamar.hpp:17
Definition EditDiamarModel.hpp:18
std::optional< iv::types::logic::customBlockId > insertCustomBlockDrawingAreaModel(const std::shared_ptr< CLogicsDrawingAreaModel > &drawingAreaModel)
Definition EditDiamarModel.cpp:270
EditDiamarModel & operator=(EditDiamarModel &&other)=delete
EditDiamarModel()
Definition EditDiamarModel.cpp:20
bool prvSaveStationLogicFile() const
Definition EditDiamarModel.cpp:432
std::shared_ptr< CLogicsDrawingAreaModel > addNewLogicsDrawingAreaModel(iv::types::unitId logicId)
Definition EditDiamarModel.cpp:714
std::weak_ptr< CLogicsDrawingAreaModel > getLogicsDrawingAreaModel(iv::types::unitId logicId)
Definition EditDiamarModel.cpp:729
std::optional< iv::types::logic::customBlockId > loadCustomBlockDrawingAreaModel(std::string_view filePath)
Definition EditDiamarModel.cpp:240
void checkIntegrity(AbstractLog *logger, bool strict) const
Definition EditDiamarModel.cpp:79
bool load(const std::string &projectFolder_)
Definition EditDiamarModel.cpp:32
std::unique_ptr< iv::model::diamar::DiamarModel > m_diamarModel
Definition EditDiamarModel.hpp:65
~EditDiamarModel() override=default
void prvInitializeOnlineParameters(iv::types::unitId logicUnitId, const std::shared_ptr< CLogicFile > &logicFile) const
Definition EditDiamarModel.cpp:640
void cleanProjectFolder() const
Definition EditDiamarModel.cpp:739
bool prvSaveLogicLedFiles() const
Saves logic LED files, which contains editor's logic canvas info.
Definition EditDiamarModel.cpp:333
std::map< iv::types::unitId, std::shared_ptr< CLogicsDrawingAreaModel > > m_logicsDrawingAreaModels
Definition EditDiamarModel.hpp:83
EditDiamarModel(const EditDiamarModel &other)=delete
bool existsLibraryFileDrawingAreaModel(const std::string &file)
Definition EditDiamarModel.cpp:193
iv::types::logic::customBlockId newCustomBlockId() const
Definition EditDiamarModel.cpp:305
void deleteModel() override
Definition EditDiamarModel.cpp:27
void prvUpdateLogicInfo() const
Definition EditDiamarModel.cpp:317
void eraseInvalidatedLogicElementsOnSaveAction()
Definition EditDiamarModel.cpp:163
bool prvReadCustomBlocksLogicFile()
Definition EditDiamarModel.cpp:563
const std::map< uint16_t, std::string > & getMapLibrariesFiles() const
Definition EditDiamarModel.cpp:188
bool prvReadLogicLedFiles()
Definition EditDiamarModel.cpp:478
EditDiamarModel & operator=(const EditDiamarModel &other)=delete
TMapLogicIdDrawingAreaModel & getLibrariesDrawingAreaModels()
Definition EditDiamarModel.cpp:178
void prvProcessOnlineParameters(iv::types::unitId logicUnitId, const std::shared_ptr< CLogicFile > &logicFile) const
Definition EditDiamarModel.cpp:695
std::map< iv::types::logic::customBlockId, std::string > m_mapLibraries
Definition EditDiamarModel.hpp:86
bool save(std::string &message) const
Definition EditDiamarModel.cpp:47
void updateAllUnitsLogics()
Definition EditDiamarModel.cpp:158
std::shared_ptr< CLogicsDrawingAreaModel > addNewLibrariesDrawingAreaModel(iv::types::logic::customBlockId customBlockId)
Definition EditDiamarModel.cpp:224
std::weak_ptr< iv::units::Units > getAllNotInProjectUnits() const
Definition EditDiamarModel.cpp:168
friend CDataAppEditDiamar
Definition EditDiamarModel.hpp:19
EditDiamarModel(EditDiamarModel &&other)=delete
std::map< iv::types::logic::customBlockId, std::string > m_mapLibrariesFiles
Definition EditDiamarModel.hpp:87
bool existsLibraryNameDrawingAreaModel(const std::string &name)
Definition EditDiamarModel.cpp:208
std::shared_ptr< iv::units::Units > m_allNotInProjectUnits
Definition EditDiamarModel.hpp:79
void checkProjectPrerequisites()
Definition EditDiamarModel.cpp:153
bool m_projectLoaded
Definition EditDiamarModel.hpp:63
const std::map< uint16_t, std::string > & getMapLibraries() const
Definition EditDiamarModel.cpp:183
bool hasChanged(std::string &changesMsg) const
Definition EditDiamarModel.cpp:66
bool prvSaveCustomBlocksLogicFile() const
Definition EditDiamarModel.cpp:529
std::map< iv::types::logic::customBlockId, std::shared_ptr< CLogicsDrawingAreaModel > > m_librariesDrawingAreaModels
Definition EditDiamarModel.hpp:84
TMapLogicIdDrawingAreaModel & getLogicsDrawingAreaModels()
Definition EditDiamarModel.cpp:173
bool prvSaveLogicFiles(std::string &message) const
Definition EditDiamarModel.cpp:348
std::map< uint16_t, std::shared_ptr< CLogicsDrawingAreaModel > > TMapLogicIdDrawingAreaModel
Definition EditDiamarModel.hpp:22
Definition EditDiamarModel.cpp:18
uint16_t customBlockId
Definition types.hpp:130
uint16_t unitId
Definition types.hpp:77
Definition EditDiamarModel.hpp:101
Definition EditDiamarModel.hpp:97
static constexpr std::string_view libraryFilePath
Definition EditDiamarModel.hpp:98
Definition EditDiamarModel.hpp:91
static constexpr std::string_view loadedLibraries
Definition EditDiamarModel.hpp:93
static constexpr std::string_view root
Definition EditDiamarModel.hpp:92
static constexpr std::string_view loadedLibrary
Definition EditDiamarModel.hpp:94