1
0
mirror of synced 2025-01-18 00:56:49 +01:00

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

@ -48,6 +48,9 @@ namespace hex {
Plugin(Plugin &&other) noexcept;
~Plugin();
Plugin& operator=(const Plugin &) = delete;
Plugin& operator=(Plugin &&other) noexcept;
[[nodiscard]] bool initializePlugin() const;
[[nodiscard]] std::string getPluginName() const;
[[nodiscard]] std::string getPluginAuthor() const;
@ -58,6 +61,7 @@ namespace hex {
[[nodiscard]] const std::fs::path &getPath() const;
[[nodiscard]] bool isValid() const;
[[nodiscard]] bool isLoaded() const;
[[nodiscard]] std::span<SubCommand> getSubCommands() const;

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;