impr: Split up optional provider features into multiple abstract interfaces

This commit is contained in:
WerWolv
2025-07-14 00:37:12 +02:00
parent b94519362c
commit 18e02fbf5c
22 changed files with 155 additions and 124 deletions

View File

@@ -124,11 +124,16 @@ namespace hex::plugin::builtin {
else
return hex::format("{} View", m_provider->getName());
}
[[nodiscard]] std::vector<ViewProvider::Description> ViewProvider::getDataDescription() const {
if (m_provider == nullptr)
return { };
return m_provider->getDataDescription();
if (auto *dataDescriptionProvider = dynamic_cast<const IProviderDataDescription*>(m_provider); dataDescriptionProvider != nullptr) {
return dataDescriptionProvider->getDataDescription();
}
return {};
}
void ViewProvider::loadSettings(const nlohmann::json &settings) {
@@ -181,7 +186,7 @@ namespace hex::plugin::builtin {
return { Region::Invalid(), false };
}
std::vector<prv::Provider::MenuEntry> ViewProvider::getMenuEntries() {
std::vector<prv::IProviderMenuItems::MenuEntry> ViewProvider::getMenuEntries() {
return {
MenuEntry { Lang("hex.builtin.provider.rename"), ICON_VS_TAG, [this] { this->renameFile(); } }
};