diff --git a/server/TracyView.cpp b/server/TracyView.cpp index b85b6150..2981b64f 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -7260,6 +7260,8 @@ uint64_t View::GetSelectionTarget( const Worker::ZoneThreadData& ev, FindZone::G return ev.Zone()->text.Active() ? ev.Zone()->text.Idx() : std::numeric_limits::max(); case FindZone::GroupBy::Callstack: return ev.Zone()->callstack.Val(); + case FindZone::GroupBy::NoGrouping: + return 0; default: assert( false ); return 0; @@ -8217,6 +8219,8 @@ void View::DrawFindZone() groupChanged |= ImGui::RadioButton( "User text", (int*)( &m_findZone.groupBy ), (int)FindZone::GroupBy::UserText ); ImGui::SameLine(); groupChanged |= ImGui::RadioButton( "Call stacks", (int*)( &m_findZone.groupBy ), (int)FindZone::GroupBy::Callstack ); + ImGui::SameLine(); + groupChanged |= ImGui::RadioButton( "No grouping", (int*)( &m_findZone.groupBy ), (int)FindZone::GroupBy::NoGrouping ); if( groupChanged ) { m_findZone.selGroup = m_findZone.Unselected; @@ -8290,6 +8294,9 @@ void View::DrawFindZone() case FindZone::GroupBy::Callstack: group = &m_findZone.groups[ev.Zone()->callstack.Val()]; break; + case FindZone::GroupBy::NoGrouping: + group = &m_findZone.groups[0]; + break; default: group = nullptr; assert( false ); @@ -8480,6 +8487,9 @@ void View::DrawFindZone() hdrString = m_worker.GetString( frameData.data[frameData.size-1].name ); } break; + case FindZone::GroupBy::NoGrouping: + hdrString = "Zone list"; + break; default: hdrString = nullptr; assert( false ); diff --git a/server/TracyView.hpp b/server/TracyView.hpp index 23783079..6a9dc29d 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -363,7 +363,7 @@ private: struct FindZone { enum : uint64_t { Unselected = std::numeric_limits::max() - 1 }; - enum class GroupBy : int { Thread, UserText, Callstack }; + enum class GroupBy : int { Thread, UserText, Callstack, NoGrouping }; enum class SortBy : int { Order, Count, Time, Mtpc }; enum class TableSortBy : int { Starttime, Runtime, Name };