fix: restore console panel content layout

This commit is contained in:
2026-04-05 01:42:55 +08:00
parent b2774f1745
commit cb7d60ec13

View File

@@ -1035,65 +1035,67 @@ void ConsolePanel::Render() {
const float errorFilterWidth = CalculateSeverityToggleButtonWidth(counts.errorCount);
const float severityGroupWidth = logFilterWidth + warningFilterWidth + errorFilterWidth;
UI::PanelToolbarScope toolbar(
"ConsoleToolbar",
kConsoleToolbarHeight,
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse,
true,
ImVec2(6.0f, kConsoleToolbarRowPaddingY),
ImVec2(kConsoleToolbarItemSpacing, 0.0f),
kConsoleToolbarBackgroundColor);
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, ImVec2(0.0f, 0.0f));
if (toolbar.IsOpen() &&
ImGui::BeginTable(
"##ConsoleToolbarLayout",
3,
ImGuiTableFlags_NoSavedSettings | ImGuiTableFlags_SizingStretchProp))
{
ImGui::TableSetupColumn("##Primary", ImGuiTableColumnFlags_WidthStretch);
ImGui::TableSetupColumn("##Search", ImGuiTableColumnFlags_WidthFixed, kConsoleSearchWidth);
ImGui::TableSetupColumn("##Severity", ImGuiTableColumnFlags_WidthFixed, severityGroupWidth);
ImGui::TableNextRow();
UI::PanelToolbarScope toolbar(
"ConsoleToolbar",
kConsoleToolbarHeight,
ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse,
true,
ImVec2(6.0f, kConsoleToolbarRowPaddingY),
ImVec2(kConsoleToolbarItemSpacing, 0.0f),
kConsoleToolbarBackgroundColor);
ImGui::PushStyleVar(ImGuiStyleVar_CellPadding, ImVec2(0.0f, 0.0f));
if (toolbar.IsOpen() &&
ImGui::BeginTable(
"##ConsoleToolbarLayout",
3,
ImGuiTableFlags_NoSavedSettings | ImGuiTableFlags_SizingStretchProp))
{
ImGui::TableSetupColumn("##Primary", ImGuiTableColumnFlags_WidthStretch);
ImGui::TableSetupColumn("##Search", ImGuiTableColumnFlags_WidthFixed, kConsoleSearchWidth);
ImGui::TableSetupColumn("##Severity", ImGuiTableColumnFlags_WidthFixed, severityGroupWidth);
ImGui::TableNextRow();
ImGui::TableNextColumn();
if (DrawToolbarButton("##ConsoleClearButton", "Clear", 42.0f)) {
sink->Clear();
m_selectedSerial = 0;
m_selectedEntryKey.clear();
}
ImGui::SameLine(0.0f, 1.0f);
DrawToolbarArrowDropdownButton("##ConsoleClearOptions", 16.0f, [&]() {
if (DrawCompactCheckedMenuItem("Clear on Play", m_filterState.ClearOnPlay())) {
m_filterState.ClearOnPlay() = !m_filterState.ClearOnPlay();
ImGui::TableNextColumn();
if (DrawToolbarButton("##ConsoleClearButton", "Clear", 42.0f)) {
sink->Clear();
m_selectedSerial = 0;
m_selectedEntryKey.clear();
}
});
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarToggleButton("##ConsoleCollapseToggle", "Collapse", m_filterState.Collapse(), 64.0f);
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarToggleButton("##ConsoleErrorPauseToggle", "Error Pause", m_filterState.ErrorPause(), 82.0f);
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarDropdownButton("##ConsoleSourceDropdown", "Editor", 58.0f, [&]() {
ImGui::MenuItem("Editor", nullptr, true, true);
ImGui::MenuItem("Player", nullptr, false, false);
});
ImGui::SameLine(0.0f, 1.0f);
DrawToolbarArrowDropdownButton("##ConsoleClearOptions", 16.0f, [&]() {
if (DrawCompactCheckedMenuItem("Clear on Play", m_filterState.ClearOnPlay())) {
m_filterState.ClearOnPlay() = !m_filterState.ClearOnPlay();
}
});
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarToggleButton("##ConsoleCollapseToggle", "Collapse", m_filterState.Collapse(), 64.0f);
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarToggleButton("##ConsoleErrorPauseToggle", "Error Pause", m_filterState.ErrorPause(), 82.0f);
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
DrawToolbarDropdownButton("##ConsoleSourceDropdown", "Editor", 58.0f, [&]() {
ImGui::MenuItem("Editor", nullptr, true, true);
ImGui::MenuItem("Player", nullptr, false, false);
});
ImGui::TableNextColumn();
if (m_requestSearchFocus) {
ImGui::SetKeyboardFocusHere();
m_requestSearchFocus = false;
ImGui::TableNextColumn();
if (m_requestSearchFocus) {
ImGui::SetKeyboardFocusHere();
m_requestSearchFocus = false;
}
UI::ToolbarSearchField("##ConsoleSearch", "Search", m_searchBuffer, sizeof(m_searchBuffer));
ImGui::TableNextColumn();
DrawSeverityToggleButton("##ConsoleLogFilter", ConsoleSeverityVisual::Log, counts.logCount, m_filterState.ShowLog(), "Log");
ImGui::SameLine(0.0f, 0.0f);
DrawSeverityToggleButton("##ConsoleWarningFilter", ConsoleSeverityVisual::Warning, counts.warningCount, m_filterState.ShowWarning(), "Warnings");
ImGui::SameLine(0.0f, 0.0f);
DrawSeverityToggleButton("##ConsoleErrorFilter", ConsoleSeverityVisual::Error, counts.errorCount, m_filterState.ShowError(), "Errors");
ImGui::EndTable();
}
UI::ToolbarSearchField("##ConsoleSearch", "Search", m_searchBuffer, sizeof(m_searchBuffer));
ImGui::TableNextColumn();
DrawSeverityToggleButton("##ConsoleLogFilter", ConsoleSeverityVisual::Log, counts.logCount, m_filterState.ShowLog(), "Log");
ImGui::SameLine(0.0f, 0.0f);
DrawSeverityToggleButton("##ConsoleWarningFilter", ConsoleSeverityVisual::Warning, counts.warningCount, m_filterState.ShowWarning(), "Warnings");
ImGui::SameLine(0.0f, 0.0f);
DrawSeverityToggleButton("##ConsoleErrorFilter", ConsoleSeverityVisual::Error, counts.errorCount, m_filterState.ShowError(), "Errors");
ImGui::EndTable();
ImGui::PopStyleVar();
}
ImGui::PopStyleVar();
UI::PanelContentScope content("ConsoleRoot", ImVec2(0.0f, 0.0f));
if (!content.IsOpen()) {