1
0
mirror of synced 2024-11-14 19:17:42 +01:00

pattern: Make sure pattern tree doesn't randomly collapse when evaluating

This commit is contained in:
WerWolv 2022-12-21 11:31:33 +01:00
parent e0c1fc81e3
commit 986252d97f

View File

@ -221,10 +221,13 @@ namespace hex::plugin::builtin::ui {
}
if (open) {
int id = 1;
pattern.forEachEntry(0, pattern.getEntryCount(), [&] (u64, auto *field) {
ImGui::PushID(field);
ImGui::PushID(id);
this->draw(*field);
ImGui::PopID();
id += 1;
});
if (!pattern.isInlined())
@ -456,10 +459,12 @@ namespace hex::plugin::builtin::ui {
}
if (open) {
int id = 1;
pattern.forEachEntry(0, pattern.getMembers().size(), [&](u64, auto *member){
ImGui::PushID(member);
ImGui::PushID(id);
this->draw(*member);
ImGui::PopID();
id += 1;
});
if (!pattern.isInlined())
@ -505,10 +510,13 @@ namespace hex::plugin::builtin::ui {
}
if (open) {
int id = 1;
pattern.forEachEntry(0, pattern.getEntryCount(), [&](u64, auto *member) {
ImGui::PushID(member);
ImGui::PushID(id);
this->draw(*member);
ImGui::PopID();
id += 1;
});
if (!pattern.isInlined())
@ -638,10 +646,13 @@ namespace hex::plugin::builtin::ui {
if (chunkOpen) {
int id = 1;
iteratable.forEachEntry(i, endIndex, [&](u64, auto *entry){
ImGui::PushID(entry);
ImGui::PushID(id);
this->draw(*entry);
ImGui::PopID();
id += 1;
});
if (iteratable.getEntryCount() > ChunkSize)
@ -747,10 +758,13 @@ namespace hex::plugin::builtin::ui {
if (beginPatternTable(patterns, this->m_sortedPatterns, height)) {
ImGui::TableHeadersRow();
int id = 1;
for (auto &pattern : this->m_sortedPatterns) {
ImGui::PushID(pattern);
ImGui::PushID(id);
this->draw(*pattern);
ImGui::PopID();
id += 1;
}
ImGui::EndTable();