impr: Handle provider opening more centrally, switch to existing provider if same file is being opened again

(cherry picked from commit 89004574d3)
This commit is contained in:
WerWolv
2025-12-17 12:55:24 +01:00
parent cae063985a
commit 51d773cf14
46 changed files with 208 additions and 155 deletions

View File

@@ -30,7 +30,7 @@ namespace hex::plugin::builtin {
void setPath(const std::fs::path &path);
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
[[nodiscard]] std::string getName() const override;

View File

@@ -43,7 +43,7 @@ namespace hex::plugin::builtin {
void setPath(const std::fs::path &path);
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
void loadSettings(const nlohmann::json &settings) override;
@@ -65,7 +65,7 @@ namespace hex::plugin::builtin {
private:
void handleFileChange();
bool open(bool memoryMapped);
OpenResult open(bool memoryMapped);
protected:
std::fs::path m_path;

View File

@@ -35,7 +35,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] std::string getName() const override;
[[nodiscard]] std::vector<Description> getDataDescription() const override;
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
[[nodiscard]] bool isConnected() const;

View File

@@ -39,7 +39,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] u64 getActualSize() const override;
void processMemoryRegions(wolv::util::Expected<std::map<u64, std::vector<u8>>, std::string> data);
static bool memoryRegionFilter(const std::string &search, const MemoryRegion &memoryRegion);
bool open() override;
OpenResult open() override;
void close() override;
[[nodiscard]] std::string getName() const override;

View File

@@ -18,7 +18,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] bool isSavable() const override { return m_name.empty(); }
[[nodiscard]] bool isSavableAsRecent() const override { return false; }
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override { }
void readRaw(u64 offset, void *buffer, size_t size) override;

View File

@@ -9,7 +9,7 @@ namespace hex::plugin::builtin {
MotorolaSRECProvider() = default;
~MotorolaSRECProvider() override = default;
bool open() override;
OpenResult open() override;
void close() override;
[[nodiscard]] std::string getName() const override;

View File

@@ -29,7 +29,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] bool isResizable() const override { return false; }
[[nodiscard]] bool isSavable() const override { return false; }
[[nodiscard]] bool open() override { return true; }
[[nodiscard]] OpenResult open() override { return {}; }
void close() override { }
void readRaw(u64 offset, void *buffer, size_t size) override {

View File

@@ -59,7 +59,7 @@ namespace hex::plugin::builtin {
};
}
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
bool drawLoadInterface() override;

View File

@@ -30,7 +30,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] bool drawLoadInterface() override;
void drawSidebarInterface() override;
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
void loadSettings(const nlohmann::json &) override;

View File

@@ -20,7 +20,7 @@ namespace hex::plugin::builtin {
[[nodiscard]] bool isSavableAsRecent() const override;
void save() override;
[[nodiscard]] bool open() override;
[[nodiscard]] OpenResult open() override;
void close() override;
void resizeRaw(u64 newSize) override;