sys: Merge splash screen and ImHex into one application

This fixes so many issues the previous implementation had, especially on Unix
This commit is contained in:
WerWolv
2021-04-20 21:46:48 +02:00
parent d7811e2c55
commit 1f2fe6b93d
24 changed files with 342 additions and 335 deletions

View File

@@ -18,8 +18,7 @@
namespace hex {
ViewHexEditor::ViewHexEditor(std::vector<lang::PatternData*> &patternData)
: View("hex.view.hexeditor.name"_lang), m_patternData(patternData) {
ViewHexEditor::ViewHexEditor() : View("hex.view.hexeditor.name"_lang) {
this->m_searchStringBuffer.resize(0xFFF, 0x00);
this->m_searchHexBuffer.resize(0xFFF, 0x00);
@@ -162,7 +161,7 @@ namespace hex {
EventManager::subscribe<EventPatternChanged>(this, [this]() {
this->m_highlightedBytes.clear();
for (const auto &pattern : this->m_patternData)
for (const auto &pattern : SharedData::patternData)
this->m_highlightedBytes.merge(pattern->getHighlightedAddresses());
});

View File

@@ -76,7 +76,7 @@ namespace hex {
}
ViewPattern::ViewPattern(std::vector<lang::PatternData*> &patternData) : View("hex.view.pattern.name"), m_patternData(patternData) {
ViewPattern::ViewPattern() : View("hex.view.pattern.name") {
this->m_patternLanguageRuntime = new lang::PatternLanguage();
this->m_textEditor.SetLanguageDefinition(PatternLanguage());
@@ -345,10 +345,10 @@ namespace hex {
}
void ViewPattern::clearPatternData() {
for (auto &data : this->m_patternData)
for (auto &data : SharedData::patternData)
delete data;
this->m_patternData.clear();
SharedData::patternData.clear();
lang::PatternData::resetPalette();
}
@@ -371,7 +371,7 @@ namespace hex {
this->m_console = this->m_patternLanguageRuntime->getConsoleLog();
if (result.has_value()) {
this->m_patternData = std::move(result.value());
SharedData::patternData = std::move(result.value());
View::doLater([]{
EventManager::post<EventPatternChanged>();
});

View File

@@ -5,8 +5,7 @@
namespace hex {
ViewPatternData::ViewPatternData(std::vector<lang::PatternData*> &patternData)
: View("hex.view.pattern_data.name"), m_patternData(patternData) {
ViewPatternData::ViewPatternData() : View("hex.view.pattern_data.name") {
EventManager::subscribe<EventPatternChanged>(this, [this]() {
this->m_sortedPatternData.clear();
@@ -53,7 +52,7 @@ namespace hex {
auto provider = SharedData::currentProvider;
if (provider != nullptr && provider->isReadable()) {
if (beginPatternDataTable(provider, this->m_patternData, this->m_sortedPatternData)) {
if (beginPatternDataTable(provider, SharedData::patternData, this->m_sortedPatternData)) {
ImGui::TableHeadersRow();
if (this->m_sortedPatternData.size() > 0) {