diff --git a/plugins/builtin/CMakeLists.txt b/plugins/builtin/CMakeLists.txt index 4ec4b3c34..018f098a2 100644 --- a/plugins/builtin/CMakeLists.txt +++ b/plugins/builtin/CMakeLists.txt @@ -24,7 +24,6 @@ add_library(${PROJECT_NAME} SHARED source/content/data_visualizers.cpp source/content/events.cpp source/content/hashes.cpp - source/content/shortcuts.cpp source/content/global_actions.cpp source/content/themes.cpp diff --git a/plugins/builtin/source/content/providers/file_provider.cpp b/plugins/builtin/source/content/providers/file_provider.cpp index 99b6fd8ce..b8dc17913 100644 --- a/plugins/builtin/source/content/providers/file_provider.cpp +++ b/plugins/builtin/source/content/providers/file_provider.cpp @@ -39,12 +39,10 @@ namespace hex::plugin::builtin { void FileProvider::read(u64 offset, void *buffer, size_t size, bool overlays) { this->readRaw(offset - this->getBaseAddress(), buffer, size); - if (overlays) { - if (auto &patches = this->getPatches(); !patches.empty()) { - for (const auto&[patchOffset, patchData] : patches) { - if (patchOffset >= offset && patchOffset <= (offset + size)) - reinterpret_cast(buffer)[patchOffset] = patchData; - } + if (overlays) [[likely]] { + for (const auto&[patchOffset, patchData] : getPatches()) { + if (patchOffset >= offset && patchOffset <= (offset + size)) + reinterpret_cast(buffer)[patchOffset - offset] = patchData; } this->applyOverlays(offset, buffer, size); diff --git a/plugins/builtin/source/content/shortcuts.cpp b/plugins/builtin/source/content/shortcuts.cpp deleted file mode 100644 index 94d1d27a6..000000000 --- a/plugins/builtin/source/content/shortcuts.cpp +++ /dev/null @@ -1,48 +0,0 @@ -#include -#include - -#include -#include "content/global_actions.hpp" - -namespace hex::plugin::builtin { - - void registerShortcuts() { - // New file - ShortcutManager::addGlobalShortcut(CTRLCMD + Keys::N, [] { - EventManager::post("Create File"); - }); - - // Open file - ShortcutManager::addGlobalShortcut(CTRLCMD + Keys::O, [] { - EventManager::post("Open File"); - }); - - // Close file - ShortcutManager::addGlobalShortcut(CTRLCMD + Keys::W, [] { - if (ImHexApi::Provider::isValid()) - ImHexApi::Provider::remove(ImHexApi::Provider::get()); - }); - - // Reload file - ShortcutManager::addGlobalShortcut(CTRLCMD + Keys::R, [] { - if (ImHexApi::Provider::isValid()) { - auto provider = ImHexApi::Provider::get(); - - provider->close(); - if (!provider->open()) - ImHexApi::Provider::remove(provider, true); - } - }); - - // Save project - ShortcutManager::addGlobalShortcut(ALT + Keys::S, [] { - saveProject(); - }); - - // Save project as... - ShortcutManager::addGlobalShortcut(ALT + SHIFT + Keys::S, [] { - saveProjectAs(); - }); - } - -} \ No newline at end of file diff --git a/plugins/builtin/source/content/views/view_hex_editor.cpp b/plugins/builtin/source/content/views/view_hex_editor.cpp index d354732fb..d5efd4e26 100644 --- a/plugins/builtin/source/content/views/view_hex_editor.cpp +++ b/plugins/builtin/source/content/views/view_hex_editor.cpp @@ -672,25 +672,6 @@ namespace hex::plugin::builtin { } void ViewHexEditor::registerShortcuts() { - // Save operations - ShortcutManager::addShortcut(this, CTRLCMD + Keys::S, [] { - save(); - }); - ShortcutManager::addShortcut(this, CTRLCMD + SHIFT + Keys::S, [] { - saveAs(); - }); - - // Select All - ShortcutManager::addShortcut(this, CTRLCMD + Keys::A, [this] { - if (ImHexApi::Provider::isValid()) - this->setSelection(size_t(0), ImHexApi::Provider::get()->getActualSize()); - }); - - // Select range - ShortcutManager::addShortcut(this, CTRLCMD + SHIFT + Keys::A, [this] { - if (ImHexApi::Provider::isValid()) - this->openPopup(); - }); // Remove selection ShortcutManager::addShortcut(this, Keys::Escape, [this] { @@ -856,48 +837,7 @@ namespace hex::plugin::builtin { this->m_hexEditor.jumpIfOffScreen(); }); - ShortcutManager::addShortcut(this, CTRLCMD + Keys::G, [this] { - if (!ImHexApi::Provider::isValid()) return; - - this->openPopup(); - }); - ShortcutManager::addShortcut(this, CTRLCMD + Keys::F, [this] { - if (!ImHexApi::Provider::isValid()) return; - - this->openPopup(); - }); - - // Copy - ShortcutManager::addShortcut(this, CTRLCMD + Keys::C, [this] { - const auto selection = getSelection(); - copyBytes(selection); - }); - ShortcutManager::addShortcut(this, CTRLCMD + SHIFT + Keys::C, [this] { - const auto selection = getSelection(); - copyString(selection); - }); - - // Paste - ShortcutManager::addShortcut(this, CTRLCMD + Keys::V, [this] { - const auto selection = getSelection(); - pasteBytes(selection, true); - }); - - // Paste and resize - ShortcutManager::addShortcut(this, CTRLCMD + SHIFT + Keys::V, [this] { - const auto selection = getSelection(); - pasteBytes(selection, false); - }); - - // Undo / Redo - ShortcutManager::addShortcut(this, CTRLCMD + Keys::Z, [] { - if (ImHexApi::Provider::isValid()) - ImHexApi::Provider::get()->undo(); - }); - ShortcutManager::addShortcut(this, CTRLCMD + Keys::Y, [] { - if (ImHexApi::Provider::isValid()) - ImHexApi::Provider::get()->redo(); - }); + // Redo shortcut alternative ShortcutManager::addShortcut(this, CTRLCMD + SHIFT + Keys::Z, [] { if (ImHexApi::Provider::isValid()) ImHexApi::Provider::get()->redo(); @@ -959,7 +899,7 @@ namespace hex::plugin::builtin { }); ProjectFile::registerPerProviderHandler({ - .basePath = "custom_encoding.json", + .basePath = "custom_encoding.tbl", .required = false, .load = [this](prv::Provider *, const std::fs::path &basePath, Tar &tar) { this->m_hexEditor.setCustomEncoding(EncodingFile(hex::EncodingFile::Type::Thingy, tar.readString(basePath))); diff --git a/plugins/builtin/source/plugin_builtin.cpp b/plugins/builtin/source/plugin_builtin.cpp index 0af5a139f..f21806f2c 100644 --- a/plugins/builtin/source/plugin_builtin.cpp +++ b/plugins/builtin/source/plugin_builtin.cpp @@ -26,7 +26,6 @@ namespace hex::plugin::builtin { void registerMainMenuEntries(); void createWelcomeScreen(); void registerViews(); - void registerShortcuts(); void registerThemeHandlers(); void registerStyleHandlers(); void registerThemes(); @@ -63,7 +62,6 @@ IMHEX_PLUGIN_SETUP("Built-in", "WerWolv", "Default ImHex functionality") { registerDataFormatters(); createWelcomeScreen(); registerViews(); - registerShortcuts(); registerThemeHandlers(); registerStyleHandlers(); registerThemes();