impr: Don't display plugins in the list that couldn't be loaded

This commit is contained in:
WerWolv
2023-12-23 23:12:15 +01:00
parent 61accd9569
commit 83f8370e2a
2 changed files with 26 additions and 2 deletions

View File

@@ -58,13 +58,25 @@ namespace hex {
other.m_handle = 0;
m_libraryPlugin = other.m_libraryPlugin;
m_path = std::move(other.m_path);
m_path = std::move(other.m_path);
m_functions = other.m_functions;
other.m_functions = {};
}
Plugin& Plugin::operator=(Plugin &&other) noexcept {
m_handle = other.m_handle;
other.m_handle = 0;
m_libraryPlugin = other.m_libraryPlugin;
m_path = std::move(other.m_path);
m_functions = other.m_functions;
other.m_functions = {};
return *this;
}
Plugin::~Plugin() {
#if defined(OS_WINDOWS)
if (m_handle != 0)
@@ -164,6 +176,10 @@ namespace hex {
return m_path;
}
bool Plugin::isValid() const {
return m_handle != 0;
}
bool Plugin::isLoaded() const {
return m_initialized;
}
@@ -203,6 +219,10 @@ namespace hex {
getPlugins().emplace_back(pluginPath.path(), false);
}
std::erase_if(getPlugins(), [](const Plugin &plugin) {
return !plugin.isValid();
});
if (getPlugins().empty())
return false;