Make views get auto deleted

This commit is contained in:
WerWolv
2021-02-03 00:56:33 +01:00
parent 785ecb8a78
commit 8c306a5d3d
7 changed files with 18 additions and 15 deletions

View File

@@ -149,11 +149,11 @@ namespace hex {
/* Views */
View* ContentRegistry::Views::add(View *view) {
return getEntries().emplace_back(view);
void ContentRegistry::Views::add(std::unique_ptr<View> &&view) {
getEntries().emplace_back(std::move(view));
}
std::vector<View*>& ContentRegistry::Views::getEntries() {
std::vector<std::unique_ptr<View>>& ContentRegistry::Views::getEntries() {
return SharedData::views;
}

View File

@@ -11,7 +11,7 @@ namespace hex {
u32 SharedData::customEventsLastId;
std::vector<ContentRegistry::CommandPaletteCommands::Entry> SharedData::commandPaletteCommands;
std::map<std::string, ContentRegistry::PatternLanguageFunctions::Function> SharedData::patternLanguageFunctions;
std::vector<View*> SharedData::views;
std::vector<std::unique_ptr<View>> SharedData::views;
std::vector<ContentRegistry::Tools::Entry> SharedData::toolsEntries;
std::vector<ContentRegistry::DataInspector::Entry> SharedData::dataInspectorEntries;
u32 SharedData::patternPaletteOffset;

View File

@@ -16,6 +16,10 @@ namespace hex {
void View::drawMenu() { }
bool View::handleShortcut(int key, int mods) { return false; }
bool View::isAvailable() {
return SharedData::currentProvider != nullptr && SharedData::currentProvider->isAvailable();
}
std::vector<std::function<void()>>& View::getDeferedCalls() {
return SharedData::deferredCalls;
}