From 2d4f971d1035bdfd04ec2ed5aa69730c704747d8 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Tue, 18 Jul 2023 14:23:02 +0200 Subject: [PATCH] impr: Disable endianess switch in hex editor when visualizer only uses one byte --- plugins/builtin/source/ui/hex_editor.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/plugins/builtin/source/ui/hex_editor.cpp b/plugins/builtin/source/ui/hex_editor.cpp index e2019b3f0..69296a0e7 100644 --- a/plugins/builtin/source/ui/hex_editor.cpp +++ b/plugins/builtin/source/ui/hex_editor.cpp @@ -824,11 +824,22 @@ namespace hex::plugin::builtin::ui { ImGui::SameLine(0, 0); - int sliderPos = this->m_dataVisualizerEndianness == std::endian::little ? 0 : 1; - ImGui::PushItemWidth(60_scaled); - ImGui::SliderInt("##visualizer_endianness", &sliderPos, 0, 1, sliderPos == 0 ? "hex.builtin.common.little"_lang : "hex.builtin.common.big"_lang); - ImGui::PopItemWidth(); - this->m_dataVisualizerEndianness = sliderPos == 0 ? std::endian::little : std::endian::big; + { + bool hasEndianess = this->m_currDataVisualizer->getBytesPerCell() > 1; + + if (!hasEndianess) + this->m_dataVisualizerEndianness = std::endian::native; + + ImGui::BeginDisabled(!hasEndianess); + { + int sliderPos = this->m_dataVisualizerEndianness == std::endian::little ? 0 : 1; + ImGui::PushItemWidth(60_scaled); + ImGui::SliderInt("##visualizer_endianness", &sliderPos, 0, 1, sliderPos == 0 ? "hex.builtin.common.little"_lang : "hex.builtin.common.big"_lang); + ImGui::PopItemWidth(); + this->m_dataVisualizerEndianness = sliderPos == 0 ? std::endian::little : std::endian::big; + } + ImGui::EndDisabled(); + } ImGui::SameLine(0, 2_scaled); ImGui::PushItemWidth(ImGui::GetContentRegionAvail().x - 60_scaled);