mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-02 13:37:42 -05:00
@@ -46,7 +46,6 @@ namespace hex::plugin::builtin {
|
||||
bool taskRunning = Task::getRunningTaskCount() > 0;
|
||||
|
||||
if (ImGui::MenuItem("hex.builtin.menu.file.close"_lang, "CTRL + W", false, providerValid && !taskRunning)) {
|
||||
EventManager::post<EventFileUnloaded>();
|
||||
ImHexApi::Provider::remove(ImHexApi::Provider::get());
|
||||
}
|
||||
|
||||
|
||||
20
plugins/builtin/source/content/shortcuts.cpp
Normal file
20
plugins/builtin/source/content/shortcuts.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <hex/api/keybinding.hpp>
|
||||
#include <hex/api/event.hpp>
|
||||
|
||||
namespace hex::plugin::builtin {
|
||||
|
||||
void registerShortcuts() {
|
||||
// Open file
|
||||
ShortcutManager::addGlobalShortcut(CTRL + Keys::O, [] {
|
||||
fs::openFileBrowser(fs::DialogMode::Open, {}, [](const auto &path) {
|
||||
EventManager::post<RequestOpenFile>(path);
|
||||
});
|
||||
});
|
||||
|
||||
// Close file
|
||||
ShortcutManager::addGlobalShortcut(CTRL + Keys::W, [] {
|
||||
ImHexApi::Provider::remove(ImHexApi::Provider::get());
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -37,7 +37,7 @@ namespace hex::plugin::builtin {
|
||||
ProjectFile::setBookmarks(this->m_bookmarks);
|
||||
});
|
||||
|
||||
EventManager::subscribe<EventFileUnloaded>(this, [this] {
|
||||
EventManager::subscribe<EventProviderDeleted>(this, [this](const auto*) {
|
||||
this->m_bookmarks.clear();
|
||||
});
|
||||
|
||||
@@ -115,7 +115,7 @@ namespace hex::plugin::builtin {
|
||||
EventManager::unsubscribe<RequestAddBookmark>(this);
|
||||
EventManager::unsubscribe<EventProjectFileLoad>(this);
|
||||
EventManager::unsubscribe<EventProjectFileStore>(this);
|
||||
EventManager::unsubscribe<EventFileUnloaded>(this);
|
||||
EventManager::unsubscribe<EventProviderDeleted>(this);
|
||||
|
||||
this->m_bookmarks.clear();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace hex::plugin::builtin {
|
||||
}
|
||||
});
|
||||
|
||||
EventManager::subscribe<EventFileUnloaded>(this, [this] {
|
||||
EventManager::subscribe<EventProviderDeleted>(this, [this](const auto*) {
|
||||
this->m_disassembly.clear();
|
||||
});
|
||||
}
|
||||
@@ -30,7 +30,7 @@ namespace hex::plugin::builtin {
|
||||
ViewDisassembler::~ViewDisassembler() {
|
||||
EventManager::unsubscribe<EventDataChanged>(this);
|
||||
EventManager::unsubscribe<EventRegionSelected>(this);
|
||||
EventManager::unsubscribe<EventFileUnloaded>(this);
|
||||
EventManager::unsubscribe<EventProviderDeleted>(this);
|
||||
}
|
||||
|
||||
void ViewDisassembler::disassemble() {
|
||||
|
||||
@@ -1243,19 +1243,6 @@ namespace hex::plugin::builtin {
|
||||
pasteBytes(selection);
|
||||
});
|
||||
|
||||
// Open file
|
||||
ShortcutManager::addGlobalShortcut(CTRL + Keys::O, [] {
|
||||
fs::openFileBrowser(fs::DialogMode::Open, {}, [](const auto &path) {
|
||||
EventManager::post<RequestOpenFile>(path);
|
||||
});
|
||||
});
|
||||
|
||||
// Close file
|
||||
ShortcutManager::addGlobalShortcut(CTRL + Keys::W, [] {
|
||||
EventManager::post<EventFileUnloaded>();
|
||||
ImHexApi::Provider::remove(ImHexApi::Provider::get());
|
||||
});
|
||||
|
||||
// Undo / Redo
|
||||
ShortcutManager::addShortcut(this, CTRL + Keys::Z, [] {
|
||||
if (ImHexApi::Provider::isValid())
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace hex::plugin::builtin {
|
||||
this->m_entropyHandlePosition = region.address / this->m_blockSize;
|
||||
});
|
||||
|
||||
EventManager::subscribe<EventFileUnloaded>(this, [this] {
|
||||
EventManager::subscribe<EventProviderDeleted>(this, [this](const auto*) {
|
||||
this->m_dataValid = false;
|
||||
});
|
||||
|
||||
@@ -61,7 +61,7 @@ namespace hex::plugin::builtin {
|
||||
ViewInformation::~ViewInformation() {
|
||||
EventManager::unsubscribe<EventDataChanged>(this);
|
||||
EventManager::unsubscribe<EventRegionSelected>(this);
|
||||
EventManager::unsubscribe<EventFileUnloaded>(this);
|
||||
EventManager::unsubscribe<EventProviderDeleted>(this);
|
||||
}
|
||||
|
||||
static float calculateEntropy(std::array<ImU64, 256> &valueCounts, size_t blockSize) {
|
||||
|
||||
@@ -150,8 +150,8 @@ namespace hex::plugin::builtin {
|
||||
}
|
||||
});
|
||||
|
||||
EventManager::subscribe<EventFileUnloaded>(this, [] {
|
||||
ImHexApi::Provider::get()->getPatternLanguageRuntime().abort();
|
||||
EventManager::subscribe<EventProviderDeleted>(this, [](auto *provider) {
|
||||
provider->getPatternLanguageRuntime().abort();
|
||||
});
|
||||
|
||||
EventManager::subscribe<EventProviderChanged>(this, [this](prv::Provider *oldProvider, prv::Provider *newProvider) {
|
||||
@@ -283,7 +283,7 @@ namespace hex::plugin::builtin {
|
||||
EventManager::unsubscribe<EventProjectFileLoad>(this);
|
||||
EventManager::unsubscribe<RequestSetPatternLanguageCode>(this);
|
||||
EventManager::unsubscribe<EventFileLoaded>(this);
|
||||
EventManager::unsubscribe<EventFileUnloaded>(this);
|
||||
EventManager::unsubscribe<EventProviderDeleted>(this);
|
||||
EventManager::unsubscribe<RequestChangeTheme>(this);
|
||||
EventManager::unsubscribe<EventProviderChanged>(this);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ namespace hex::plugin::builtin {
|
||||
void registerMainMenuEntries();
|
||||
void createWelcomeScreen();
|
||||
void registerViews();
|
||||
void registerShortcuts();
|
||||
|
||||
void addFooterItems();
|
||||
void addToolbarItems();
|
||||
@@ -62,6 +63,7 @@ IMHEX_PLUGIN_SETUP("Built-in", "WerWolv", "Default ImHex functionality") {
|
||||
registerDataFormatters();
|
||||
createWelcomeScreen();
|
||||
registerViews();
|
||||
registerShortcuts();
|
||||
|
||||
addFooterItems();
|
||||
addToolbarItems();
|
||||
|
||||
Reference in New Issue
Block a user