Unload plugin on exit.

This commit is contained in:
morg 2021-10-12 10:37:42 +02:00
parent 12b12a8551
commit 0eab54f04f
4 changed files with 14 additions and 3 deletions

View file

@ -329,3 +329,11 @@ void PluginManager::UnloadPlugin(std::string path)
ActivePlugins[plugin_idx].loaded = false;
}
}
void PluginManager::UnloadPlugins()
{
for(const OpenRGBPluginEntry& plugin_entry: ActivePlugins)
{
plugin_entry.plugin->Unload();
}
}

View file

@ -42,6 +42,8 @@ public:
void LoadPlugin(std::string path);
void UnloadPlugin(std::string path);
void UnloadPlugins();
std::vector<OpenRGBPluginEntry> ActivePlugins;
private:

View file

@ -438,7 +438,7 @@ OpenRGBDialog2::OpenRGBDialog2(QWidget *parent) : QMainWindow(parent), ui(new Op
/*-----------------------------------------------------*\
| Add the Plugins page |
\*-----------------------------------------------------*/
AddPluginsPage(plugin_manager);
AddPluginsPage();
/*-----------------------------------------------------*\
| Add the E1.31 settings page |
@ -543,11 +543,12 @@ void OpenRGBDialog2::closeEvent(QCloseEvent *event)
}
else
{
plugin_manager->UnloadPlugins();
event->accept();
}
}
void OpenRGBDialog2::AddPluginsPage(PluginManager* plugin_manager)
void OpenRGBDialog2::AddPluginsPage()
{
/*-----------------------------------------------------*\
| Create the Plugins page |

View file

@ -96,7 +96,7 @@ private:
void AddQMKORGBSettingsPage();
void AddSerialSettingsPage();
void AddYeelightSettingsPage();
void AddPluginsPage(PluginManager* plugin_manager);
void AddPluginsPage();
void AddConsolePage();
void ClearDevicesList();