12 #include <boost/unordered_map.hpp>
16 class DtElementDefinitionRecord;
17 class DtElementsRecord;
21 class DtElementDefinition;
22 class DtElementDefinitionHierarchy;
23 class DtElementDefinitionNode;
24 class DtVisualAttributeInterface;
31 class DtBaseConnection;
32 class DtElementDefinitionNew;
34 class DtBackupInterface;
35 class DtVisualizerDefinitionValidator;
45 typedef std::map<DtUnicode, DtElementDefinitionNew*>
63 const std::string& name()
const;
70 unsigned int numberOfElementDefinitions()
const;
120 bool renameElementDefinition(
const DtUnicode& oldName,
127 void loadDefaults(
bool loadOnlyFactory);
132 virtual std::vector<std::string> retrieveHierFilesToMerge(
const std::string& type);
137 virtual std::vector<std::string> retrieveLeafFilesToMerge(
const std::string& type);
142 virtual bool shouldSkipDefLoading();
145 void revertSettings();
148 virtual void saveAsDefaults();
152 const std::string& existingDirName);
155 virtual void exportSettings(
const std::string& fileOrDirName);
158 virtual void exportHierSettings(
const std::string& fileName);
161 virtual void exportLeafSettings(
const std::string& fileName);
164 virtual void exportSelectedLeafSettings(std::vector<std::string>& names,
const std::string& fileName);
169 void createFolderFromPathAndSplit(
const std::string &fileOrDirName,
170 std::string& newPath, std::string& dirName);
176 virtual void importSettings(
const std::string& fileName,
181 virtual void importSettings(
const std::string& fileName);
184 virtual void mergeHierSettings(
const std::string& hierFileOrDirName);
187 virtual void mergeHierSettings(
const std::string& hierFileOrDirName,
193 virtual void mergeLeafSettings(
const std::string& leafFileOrDirName);
196 virtual void mergeLeafSettings(
const std::string& fileOrDirName,
201 virtual void mergeSettings(
const std::string& fileName,
230 virtual void mergeRecord(
237 virtual void mergeHierRecord(
244 virtual void mergeLeafRecord(
258 virtual void getSplitRecord(std::vector<makArchives::DtElementsRecord>& rec,
259 std::vector<std::string>& fileNames);
275 virtual void setAutoSave(
bool enabled);
286 virtual bool canUseHierLeaf();
289 virtual bool modifiedSinceStartup();
301 virtual void resetModifiedFlags();
323 typedef std::vector<const makArchives::DtElementDefinitionRecord*>
ElementGroup;
335 virtual void buildElementVisualizersForModelSet(
341 virtual void buildElementChildren(
353 virtual void registerBackup();
356 virtual bool recordMatchesDefinition(
361 virtual bool recordMatchesDefinitionModelSet(
372 std::vector<makArchives::DtElementsRecord>& recVec,
373 std::vector<std::string>& leafFiles);
376 virtual bool replaceMergeLeaves(
378 std::vector<makArchives::DtElementsRecord>& recVec,
379 const std::vector<std::string>& leafFiles);
386 virtual bool isEntityDefinitions();
476 virtual void registerElementType(ElementDefinitionType type,
477 const std::string& name,
const DtUnicode& typeScreenName,
478 bool proceduralOnly);
492 ElementDefinitionType type)
const;
495 virtual void loadDefaults();
503 template <
typename ManagerClass>
507 template <
typename ManagerClass>
527 typedef boost::unordered_map<unsigned int, DtElementDefinitionManager*>
549 boost::signal<void (const DtUnicode& oldName, const DtUnicode& newName)>