diff --git a/3rdparty/ImGuiPack b/3rdparty/ImGuiPack index e985af5..c3e11c8 160000 --- a/3rdparty/ImGuiPack +++ b/3rdparty/ImGuiPack @@ -1 +1 @@ -Subproject commit e985af53e32de1100def262877e7370dcb73445d +Subproject commit c3e11c837629e431fc2e600405d85add16faaca4 diff --git a/3rdparty/ezlibs b/3rdparty/ezlibs index 5e575b1..60e2fd5 160000 --- a/3rdparty/ezlibs +++ b/3rdparty/ezlibs @@ -1 +1 @@ -Subproject commit 5e575b1133c96adff41b4167c4a2d4f82a094bf7 +Subproject commit 60e2fd5b0f333dcbaed493d119a99c595ea2bcfb diff --git a/plugins/LuaScripting/src/Headers/LuaScriptingBuild.h b/plugins/LuaScripting/src/Headers/LuaScriptingBuild.h index 82273f4..d71fe71 100644 --- a/plugins/LuaScripting/src/Headers/LuaScriptingBuild.h +++ b/plugins/LuaScripting/src/Headers/LuaScriptingBuild.h @@ -1,7 +1,7 @@ #pragma once #define LuaScripting_Prefix "LuaScripting" -#define LuaScripting_BuildNumber 70 +#define LuaScripting_BuildNumber 71 #define LuaScripting_MinorNumber 0 #define LuaScripting_MajorNumber 0 -#define LuaScripting_BuildId "0.0.70" +#define LuaScripting_BuildId "0.0.71" diff --git a/src/headers/CustomImGuiConfig.h b/src/headers/CustomImGuiConfig.h index 8d1db70..94dacb2 100644 --- a/src/headers/CustomImGuiConfig.h +++ b/src/headers/CustomImGuiConfig.h @@ -121,15 +121,4 @@ namespace ImGui #include #include - -#ifndef IM_VEC2_CLASS_EXTRA -#define IM_VEC2_CLASS_EXTRA \ - ImVec2(const ez::fvec2& v) : x(v.x), y(v.y) {} \ - ImVec2(const ez::dvec2& v) : x(static_cast(v.x)), y(static_cast(v.y)) {} -#endif - -#ifndef IM_VEC4_CLASS_EXTRA -#define IM_VEC4_CLASS_EXTRA \ - ImVec4(const ez::fvec4& v) : x(v.x), y(v.y), z(v.z), w(v.w) {} \ - ImVec4(const ez::dvec4& v) : x(static_cast(v.x)), y(static_cast(v.y)), z(static_cast(v.z)), w(static_cast(v.w)) {} -#endif +#include diff --git a/src/headers/LogToGraphBuild.h b/src/headers/LogToGraphBuild.h index 125ea87..adc51f9 100644 --- a/src/headers/LogToGraphBuild.h +++ b/src/headers/LogToGraphBuild.h @@ -1,7 +1,7 @@ #pragma once #define LogToGraph_Prefix "LogToGraph" -#define LogToGraph_BuildNumber 1056 +#define LogToGraph_BuildNumber 1061 #define LogToGraph_MinorNumber 2 #define LogToGraph_MajorNumber 0 -#define LogToGraph_BuildId "0.2.1056" +#define LogToGraph_BuildId "0.2.1061" diff --git a/src/models/log/LogEngine.cpp b/src/models/log/LogEngine.cpp index e768a48..f5363ff 100644 --- a/src/models/log/LogEngine.cpp +++ b/src/models/log/LogEngine.cpp @@ -389,45 +389,34 @@ SignalSeriesContainerRef LogEngine::GetSignalSeries() { void LogEngine::SetHoveredTime(const SignalEpochTime& vHoveredTime) { m_HoveredTime = vHoveredTime; - ProjectFile::Instance()->SetProjectChange(); - - if (m_PreviewTicks.empty()) { - m_PreviewTicks.resize(m_SignalsCount); - } - - size_t idx = 0U; + m_PreviewTicks.clear(); + m_PreviewTicks.reserve(m_SignalsCount); size_t visible_idx = 0U; for (auto& item_cat : m_SignalSeries) { for (auto& item_name : item_cat.second) { if (item_name.second) { + if (ProjectFile::Instance()->m_ShowVariableSignalsInHoveredListView && item_name.second->isConstant()) { + continue; + } SignalTickPtr last_ptr = nullptr; for (const auto& tick_weak : item_name.second->datas_values) { auto ptr = tick_weak.lock(); if (last_ptr && vHoveredTime >= last_ptr->time_epoch && ptr && vHoveredTime <= ptr->time_epoch) { - if (idx < (size_t)m_SignalsCount) { - m_PreviewTicks[idx] = last_ptr; - - if (ProjectFile::Instance()->m_AutoColorize) { - auto parent_ptr = last_ptr->parent.lock(); - if (parent_ptr && parent_ptr->show) { - parent_ptr->color_u32 = ImGui::GetColorU32(GraphView::GetRainBow((int32_t)visible_idx, m_VisibleCount)); - parent_ptr->color_v4 = ImGui::ColorConvertU32ToFloat4(parent_ptr->color_u32); + m_PreviewTicks.push_back(last_ptr); + if (ProjectFile::Instance()->m_AutoColorize) { + auto parent_ptr = last_ptr->parent.lock(); + if (parent_ptr && parent_ptr->show) { + parent_ptr->color_u32 = ImGui::GetColorU32(GraphView::GetRainBow((int32_t)visible_idx, m_VisibleCount)); + parent_ptr->color_v4 = ImGui::ColorConvertU32ToFloat4(parent_ptr->color_u32); - ++visible_idx; - } + ++visible_idx; } - } else { - EZ_TOOLS_DEBUG_BREAK; } - break; } - last_ptr = ptr; } - - ++idx; } } } diff --git a/src/panes/GraphPane.cpp b/src/panes/GraphPane.cpp index 0309b49..dc37dda 100644 --- a/src/panes/GraphPane.cpp +++ b/src/panes/GraphPane.cpp @@ -51,7 +51,6 @@ bool GraphPane::DrawPanes(const uint32_t& /*vCurrentFrame*/, bool* vOpened, ImGu if (ProjectFile::Instance()->IsProjectLoaded()) { if (ImGui::BeginMenuBar()) { GraphView::Instance()->DrawMenuBar(); - ImGui::EndMenuBar(); } diff --git a/src/panes/LogPane.cpp b/src/panes/LogPane.cpp index 5b762c7..5c7ccfc 100644 --- a/src/panes/LogPane.cpp +++ b/src/panes/LogPane.cpp @@ -55,6 +55,10 @@ bool LogPane::DrawPanes(const uint32_t& /*vCurrentFrame*/, bool* vOpened, ImGuiC flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_MenuBar; #endif if (ProjectFile::Instance()->IsProjectLoaded()) { + if (ImGui::BeginMenuBar()) { + DrawMenuBar(); + ImGui::EndMenuBar(); + } DrawTable(); } } @@ -101,38 +105,48 @@ void LogPane::CheckItem(SignalTickPtr vSignalTick) { } } -void LogPane::DrawTable() { - if (ImGui::BeginMenuBar()) { - bool need_update = ImGui::Checkbox("Collapse Selection", &ProjectFile::Instance()->m_CollapseLogSelection); - need_update |= ImGui::Checkbox("Hide some values", &ProjectFile::Instance()->m_HideSomeValues); - - if (ProjectFile::Instance()->m_HideSomeValues) { - ImGui::Text("(?)"); - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", "you can define many values, ex : 1,2,3.2,5.8"); - } - - if (ImGui::ContrastedButton("R##ResetLogPaneTable")) { - ProjectFile::Instance()->m_ValuesToHide.clear(); - need_update = true; - } +void LogPane::DrawMenuBar() { + bool need_update = false; + if (ImGui::BeginMenu("Settings")) { + if (ImGui::MenuItem("Show variable signals only", nullptr, &ProjectFile::Instance()->m_ShowVariableSignalsInLogView)) { + LogEngine::Instance()->SetHoveredTime(LogEngine::Instance()->GetHoveredTime()); + need_update = true; + } + if (ImGui::MenuItem("Collapse Selection", nullptr, &ProjectFile::Instance()->m_CollapseLogSelection)) { + need_update = true; + } + if (ImGui::MenuItem("Hide some values", nullptr, &ProjectFile::Instance()->m_HideSomeLogValues)) { + need_update = true; + } + ImGui::EndMenu(); + } - static char _values_hide_buffer[1024 + 1] = ""; - snprintf(_values_hide_buffer, 1024, "%s", ProjectFile::Instance()->m_ValuesToHide.c_str()); - if (ImGui::InputText("##Valuestohide", _values_hide_buffer, 1024)) { - need_update = true; - ProjectFile::Instance()->m_ValuesToHide = _values_hide_buffer; - } + if (ProjectFile::Instance()->m_HideSomeLogValues) { + ImGui::Text("(?)"); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("%s", "you can define many values, ex : 1,2,3.2,5.8"); } - if (need_update) { - PrepareLog(); + if (ImGui::ContrastedButton("R##ResetLogPaneTable")) { + ProjectFile::Instance()->m_LogValuesToHide.clear(); + need_update = true; + } - ProjectFile::Instance()->SetProjectChange(); + static char _values_hide_buffer[1024 + 1] = ""; + snprintf(_values_hide_buffer, 1024, "%s", ProjectFile::Instance()->m_LogValuesToHide.c_str()); + if (ImGui::InputText("##Valuestohide", _values_hide_buffer, 1024)) { + need_update = true; + ProjectFile::Instance()->m_LogValuesToHide = _values_hide_buffer; } + } - ImGui::EndMenuBar(); + if (need_update) { + PrepareLog(); + ProjectFile::Instance()->SetProjectChange(); } +} + +void LogPane::DrawTable() { static ImGuiTableFlags flags = ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_RowBg | ImGuiTableFlags_Hideable | ImGuiTableFlags_ScrollY | ImGuiTableFlags_Resizable | @@ -253,9 +267,9 @@ void LogPane::PrepareLog() { m_LogDatas.clear(); - if (ProjectFile::Instance()->m_HideSomeValues) { + if (ProjectFile::Instance()->m_HideSomeLogValues) { m_ValuesToHide.clear(); - auto arr = ez::str::splitStringToVector(ProjectFile::Instance()->m_ValuesToHide, ","); + auto arr = ez::str::splitStringToVector(ProjectFile::Instance()->m_LogValuesToHide, ","); for (const auto& a : arr) { m_ValuesToHide.push_back(ez::dvariant(a).GetD()); } @@ -267,11 +281,18 @@ void LogPane::PrepareLog() { for (size_t idx = 0U; idx < _count_logs; ++idx) { const auto& infos_ptr = LogEngine::Instance()->GetSignalTicks().at(idx); if (infos_ptr) { + auto parent_ptr = infos_ptr->parent.lock(); + if (parent_ptr != nullptr) { + if (ProjectFile::Instance()->m_ShowVariableSignalsInLogView && parent_ptr->isConstant()) { + continue; + } + } + auto selected = LogEngine::Instance()->isSignalShown(infos_ptr->category, infos_ptr->name); if (_collapseSelection && !selected) continue; - if (ProjectFile::Instance()->m_HideSomeValues) { + if (ProjectFile::Instance()->m_HideSomeLogValues) { bool found = false; for (const auto& a : m_ValuesToHide) { diff --git a/src/panes/LogPane.h b/src/panes/LogPane.h index 0a2278c..d76e0a0 100644 --- a/src/panes/LogPane.h +++ b/src/panes/LogPane.h @@ -41,6 +41,10 @@ class LogPane : public AbstractPane { void CheckItem(SignalTickPtr vSignalTick); void PrepareLog(); +private: + void DrawMenuBar(); + void DrawTable(); + public: // singleton static std::shared_ptr Instance() { static auto _instance = std::make_shared(); @@ -52,7 +56,4 @@ class LogPane : public AbstractPane { LogPane(const LogPane&) = delete; // Prevent construction by copying LogPane& operator=(const LogPane&) { return *this; }; // Prevent assignment virtual ~LogPane() = default; // Prevent unwanted destruction}; - -private: - void DrawTable(); }; diff --git a/src/panes/LogPaneSecondView.cpp b/src/panes/LogPaneSecondView.cpp index fd2e9f0..546aed3 100644 --- a/src/panes/LogPaneSecondView.cpp +++ b/src/panes/LogPaneSecondView.cpp @@ -52,6 +52,10 @@ bool LogPaneSecondView::DrawPanes(const uint32_t& /*vCurrentFrame*/, bool* vOpen flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_MenuBar; #endif if (ProjectFile::Instance()->IsProjectLoaded()) { + if (ImGui::BeginMenuBar()) { + DrawMenuBar(); + ImGui::EndMenuBar(); + } DrawTable(); } } @@ -98,39 +102,48 @@ void LogPaneSecondView::CheckItem(const SignalTickPtr& vSignalTick) { } } -void LogPaneSecondView::DrawTable() { - if (ImGui::BeginMenuBar()) { - bool need_update = ImGui::Checkbox("Collapse Selection", &ProjectFile::Instance()->m_CollapseLogSelection); - need_update |= ImGui::Checkbox("Hide some values", &ProjectFile::Instance()->m_HideSomeValues); - - if (ProjectFile::Instance()->m_HideSomeValues) { - ImGui::Text("(?)"); - if (ImGui::IsItemHovered()) { - ImGui::SetTooltip("%s", "you can define many values, ex : 1,2,3.2,5.8"); - } - - if (ImGui::ContrastedButton("R##ResetLogPaneSecondViewTable")) { - ProjectFile::Instance()->m_ValuesToHide.clear(); - need_update = true; - } +void LogPaneSecondView::DrawMenuBar() { + bool need_update = false; + if (ImGui::BeginMenu("Settings")) { + if (ImGui::MenuItem("Show variable signals only", nullptr, &ProjectFile::Instance()->m_ShowVariableSignalsInLog2ndView)) { + LogEngine::Instance()->SetHoveredTime(LogEngine::Instance()->GetHoveredTime()); + need_update = true; + } + if (ImGui::MenuItem("Collapse Selection", nullptr, &ProjectFile::Instance()->m_CollapseLog2ndSelection)) { + need_update = true; + } + if (ImGui::MenuItem("Hide some values", nullptr, &ProjectFile::Instance()->m_HideSomeLog2ndValues)) { + need_update = true; + } + ImGui::EndMenu(); + } - static char _values_hide_buffer[1024 + 1] = ""; - snprintf(_values_hide_buffer, 1024, "%s", ProjectFile::Instance()->m_ValuesToHide.c_str()); - if (ImGui::InputText("##Valuestohide", _values_hide_buffer, 1024)) { - need_update = true; - ProjectFile::Instance()->m_ValuesToHide = _values_hide_buffer; - } + if (ProjectFile::Instance()->m_HideSomeLog2ndValues) { + ImGui::Text("(?)"); + if (ImGui::IsItemHovered()) { + ImGui::SetTooltip("%s", "you can define many values, ex : 1,2,3.2,5.8"); } - if (need_update) { - PrepareLog(); + if (ImGui::ContrastedButton("R##ResetLogPaneTable")) { + ProjectFile::Instance()->m_Log2ndValuesToHide.clear(); + need_update = true; + } - ProjectFile::Instance()->SetProjectChange(); + static char _values_hide_buffer[1024 + 1] = ""; + snprintf(_values_hide_buffer, 1024, "%s", ProjectFile::Instance()->m_Log2ndValuesToHide.c_str()); + if (ImGui::InputText("##Valuestohide", _values_hide_buffer, 1024)) { + need_update = true; + ProjectFile::Instance()->m_Log2ndValuesToHide = _values_hide_buffer; } + } - ImGui::EndMenuBar(); + if (need_update) { + PrepareLog(); + ProjectFile::Instance()->SetProjectChange(); } +} +void LogPaneSecondView::DrawTable() { static ImGuiTableFlags flags = ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_RowBg | ImGuiTableFlags_Hideable | ImGuiTableFlags_ScrollY | ImGuiTableFlags_Resizable | ImGuiTableFlags_NoHostExtendY; @@ -250,25 +263,32 @@ void LogPaneSecondView::PrepareLog() { m_LogDatas.clear(); - if (ProjectFile::Instance()->m_HideSomeValues) { + if (ProjectFile::Instance()->m_HideSomeLog2ndValues) { m_ValuesToHide.clear(); - auto arr = ez::str::splitStringToVector(ProjectFile::Instance()->m_ValuesToHide, ","); + auto arr = ez::str::splitStringToVector(ProjectFile::Instance()->m_Log2ndValuesToHide, ","); for (const auto& a : arr) { m_ValuesToHide.push_back(ez::dvariant(a).GetD()); } } const auto _count_logs = LogEngine::Instance()->GetSignalTicks().size(); - const auto _collapseSelection = ProjectFile::Instance()->m_CollapseLogSelection; + const auto _collapseSelection = ProjectFile::Instance()->m_CollapseLog2ndSelection; for (size_t idx = 0U; idx < _count_logs; ++idx) { const auto& infos_ptr = LogEngine::Instance()->GetSignalTicks().at(idx); if (infos_ptr) { + auto parent_ptr = infos_ptr->parent.lock(); + if (parent_ptr != nullptr) { + if (ProjectFile::Instance()->m_ShowVariableSignalsInLog2ndView && parent_ptr->isConstant()) { + continue; + } + } + auto selected = LogEngine::Instance()->isSignalShown(infos_ptr->category, infos_ptr->name); if (_collapseSelection && !selected) continue; - if (ProjectFile::Instance()->m_HideSomeValues) { + if (ProjectFile::Instance()->m_HideSomeLog2ndValues) { bool found = false; for (const auto& a : m_ValuesToHide) { diff --git a/src/panes/LogPaneSecondView.h b/src/panes/LogPaneSecondView.h index 7a8a3f6..fab8915 100644 --- a/src/panes/LogPaneSecondView.h +++ b/src/panes/LogPaneSecondView.h @@ -39,20 +39,21 @@ class LogPaneSecondView : public AbstractPane { void Clear(); void CheckItem(const SignalTickPtr& vSignalTick); - void PrepareLog(); + void PrepareLog(); // Prevent unwanted destruction}; + +private: + void DrawMenuBar(); + void DrawTable(); public: // singleton static std::shared_ptr Instance() { static auto _instance = std::make_shared(); return _instance; - } + } public: LogPaneSecondView() = default; // Prevent construction LogPaneSecondView(const LogPaneSecondView&) = delete; // Prevent construction by copying LogPaneSecondView& operator=(const LogPaneSecondView&) { return *this; }; // Prevent assignment - virtual ~LogPaneSecondView() = default; // Prevent unwanted destruction}; - -private: - void DrawTable(); + virtual ~LogPaneSecondView() = default; }; diff --git a/src/panes/SignalsHoveredList.cpp b/src/panes/SignalsHoveredList.cpp index 1002801..012d00b 100644 --- a/src/panes/SignalsHoveredList.cpp +++ b/src/panes/SignalsHoveredList.cpp @@ -52,6 +52,10 @@ bool SignalsHoveredList::DrawPanes(const uint32_t& /*vCurrentFrame*/, bool* vOpe flags = ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoBringToFrontOnFocus | ImGuiWindowFlags_MenuBar; #endif if (ProjectFile::Instance()->IsProjectLoaded()) { + if (ImGui::BeginMenuBar()) { + DrawMenuBar(); + ImGui::EndMenuBar(); + } DrawTable(); } } @@ -81,6 +85,16 @@ int SignalsHoveredList::CalcSignalsButtonCountAndSize(ImVec2& vOutCellSize, /* return count; } +void SignalsHoveredList::DrawMenuBar() { + if (ImGui::BeginMenu("Settings")) { + if (ImGui::MenuItem("Show variable signals only", nullptr, &ProjectFile::Instance()->m_ShowVariableSignalsInHoveredListView)) { + ProjectFile::Instance()->SetProjectChange(); + LogEngine::Instance()->SetHoveredTime(LogEngine::Instance()->GetHoveredTime()); + } + ImGui::EndMenu(); + } +} + void SignalsHoveredList::DrawTable() { auto win = ImGui::GetCurrentWindowRead(); if (win) { diff --git a/src/panes/SignalsHoveredList.h b/src/panes/SignalsHoveredList.h index a903268..5cc4d5c 100644 --- a/src/panes/SignalsHoveredList.h +++ b/src/panes/SignalsHoveredList.h @@ -38,6 +38,7 @@ class SignalsHoveredList : public AbstractPane { void SetHoveredTime(const SignalEpochTime& vHoveredTime); private: + void DrawMenuBar(); void DrawTable(); static int CalcSignalsButtonCountAndSize(ImVec2& vOutCellSize, ImVec2& vOutButtonSize); int DrawSignalButton(int& vWidgetPushId, SignalTickPtr vPtr, ImVec2 vGlyphSize); diff --git a/src/project/ProjectFile.cpp b/src/project/ProjectFile.cpp index b30f6e6..0f01080 100644 --- a/src/project/ProjectFile.cpp +++ b/src/project/ProjectFile.cpp @@ -262,8 +262,10 @@ ez::xml::Nodes ProjectFile::getXmlNodes(const std::string& /*vUserDatas*/) { node.addChild("auto_colorize").setContent(m_AutoColorize); node.addChild("search_string").setContent(m_SearchString); node.addChild("all_graphs_signals_search_string").setContent(m_AllGraphSignalsSearchString); - node.addChild("values_to_hide").setContent(m_ValuesToHide); - node.addChild("hide_some_values").setContent(m_HideSomeValues); + node.addChild("log_values_to_hide").setContent(m_LogValuesToHide); + node.addChild("log_2nd_values_to_hide").setContent(m_Log2ndValuesToHide); + node.addChild("hide_some_log_values").setContent(m_HideSomeLogValues); + node.addChild("hide_some_log_2nd_values").setContent(m_HideSomeLog2ndValues); node.addChild("signals_preview_count_x").setContent(m_SignalPreview_CountX); node.addChild("signals_preview_size_x").setContent(m_SignalPreview_SizeX); node.addChild("graph_diff_first_mark").setContent(m_DiffFirstMark); @@ -278,6 +280,9 @@ ez::xml::Nodes ProjectFile::getXmlNodes(const std::string& /*vUserDatas*/) { node.addChild("predefined_zero_value").setContent(m_PredefinedZeroValue); node.addChild("show_variable_signals_in_all_graph_view").setContent(m_ShowVariableSignalsInAllGraphView); node.addChild("show_variable_signals_in_graph_view").setContent(m_ShowVariableSignalsInGraphView); + node.addChild("show_variable_signals_in_hovered_list_view").setContent(m_ShowVariableSignalsInHoveredListView); + node.addChild("show_variable_signals_in_log_view").setContent(m_ShowVariableSignalsInLogView); + node.addChild("show_variable_signals_in_log2nd_view").setContent(m_ShowVariableSignalsInLog2ndView); node.addChild("last_log_file_path").setContent(m_LastLogFilePath); node.addChild("script_file").setContent(m_ScriptFilePathName); auto& childNode = node.addChild("log_files"); @@ -311,10 +316,14 @@ bool ProjectFile::setFromXmlNodes(const ez::xml::Node& vNode, const ez::xml::Nod m_SearchString = strValue; } else if (strName == "all_graphs_signals_search_string") { m_AllGraphSignalsSearchString = strValue; - } else if (strName == "values_to_hide") { - m_ValuesToHide = strValue; - } else if (strName == "hide_some_values") { - m_HideSomeValues = ez::ivariant(strValue).GetB(); + } else if (strName == "log_values_to_hide") { + m_LogValuesToHide = strValue; + } else if (strName == "log_2nd_values_to_hide") { + m_Log2ndValuesToHide = strValue; + } else if (strName == "hide_some_log_values") { + m_HideSomeLogValues = ez::ivariant(strValue).GetB(); + } else if (strName == "hide_some_log_2nd_values") { + m_HideSomeLog2ndValues = ez::ivariant(strValue).GetB(); } else if (strName == "signals_preview_count_x") { m_SignalPreview_CountX = ez::uvariant(strValue).GetU(); } else if (strName == "signals_preview_size_x") { @@ -326,11 +335,7 @@ bool ProjectFile::setFromXmlNodes(const ez::xml::Node& vNode, const ez::xml::Nod } else if (strName == "graph_synchronize") { m_SyncGraphs = ez::ivariant(strValue).GetB(); } else if (strName == "graph_sync_limits") { - auto v4 = ez::dvariant(strValue).GetV4(); - m_SyncGraphsLimits.X.Min = v4.x; - m_SyncGraphsLimits.X.Max = v4.y; - m_SyncGraphsLimits.Y.Min = v4.z; - m_SyncGraphsLimits.Y.Max = v4.w; + m_SyncGraphsLimits = ez::dvariant(strValue).GetV4(); } else if (strName == "code_file_path_name") { m_CodeFilePathName = strValue; } else if (strName == "curve_radius_detection") { @@ -347,6 +352,12 @@ bool ProjectFile::setFromXmlNodes(const ez::xml::Node& vNode, const ez::xml::Nod m_ShowVariableSignalsInAllGraphView = ez::dvariant(strValue).GetB(); } else if (strName == "show_variable_signals_in_graph_view") { m_ShowVariableSignalsInGraphView = ez::dvariant(strValue).GetB(); + } else if (strName == "show_variable_signals_in_hovered_list_view") { + m_ShowVariableSignalsInHoveredListView = ez::dvariant(strValue).GetB(); + } else if (strName == "show_variable_signals_in_log_view") { + m_ShowVariableSignalsInLogView = ez::dvariant(strValue).GetB(); + } else if (strName == "show_variable_signals_in_log2nd_view") { + m_ShowVariableSignalsInLog2ndView = ez::dvariant(strValue).GetB(); } else if (strName == "last_log_file_path") { m_LastLogFilePath = strValue; } else if (strName == "script_file") { diff --git a/src/project/ProjectFile.h b/src/project/ProjectFile.h index 7d22d8d..900a75e 100644 --- a/src/project/ProjectFile.h +++ b/src/project/ProjectFile.h @@ -34,7 +34,9 @@ class ProjectFile : public Ltg::IProject, public ez::xml::Config { public: // to save GraphColor m_GraphColors; bool m_CollapseLogSelection = false; - bool m_HideSomeValues = false; + bool m_CollapseLog2ndSelection = false; + bool m_HideSomeLogValues = false; + bool m_HideSomeLog2ndValues = false; bool m_AutoColorize = true; bool m_SyncGraphs = true; std::string m_ProjectFileName; @@ -42,7 +44,8 @@ class ProjectFile : public Ltg::IProject, public ez::xml::Config { std::string m_ProjectFilePath; std::string m_SearchString; std::string m_AllGraphSignalsSearchString; - std::string m_ValuesToHide; + std::string m_LogValuesToHide; + std::string m_Log2ndValuesToHide; std::string m_CodeFilePathName; std::string m_LastLogFilePath; uint32_t m_SignalPreview_CountX = 20U; @@ -59,8 +62,11 @@ class ProjectFile : public Ltg::IProject, public ez::xml::Config { SourceFileName m_ScriptFileName; SourceFileContainer m_SourceFilePathNames; Ltg::ScriptingModuleName m_ScriptingModuleName; + bool m_ShowVariableSignalsInLogView = false; + bool m_ShowVariableSignalsInLog2ndView = false; bool m_ShowVariableSignalsInAllGraphView = false; bool m_ShowVariableSignalsInGraphView = false; + bool m_ShowVariableSignalsInHoveredListView = false; private: // dont save bool m_IsLoaded = false;