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 errorFilterWidth = CalculateSeverityToggleButtonWidth(counts.errorCount);
const float severityGroupWidth = logFilterWidth + warningFilterWidth + errorFilterWidth; 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); UI::PanelToolbarScope toolbar(
ImGui::TableSetupColumn("##Search", ImGuiTableColumnFlags_WidthFixed, kConsoleSearchWidth); "ConsoleToolbar",
ImGui::TableSetupColumn("##Severity", ImGuiTableColumnFlags_WidthFixed, severityGroupWidth); kConsoleToolbarHeight,
ImGui::TableNextRow(); 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(); ImGui::TableNextColumn();
if (DrawToolbarButton("##ConsoleClearButton", "Clear", 42.0f)) { if (DrawToolbarButton("##ConsoleClearButton", "Clear", 42.0f)) {
sink->Clear(); sink->Clear();
m_selectedSerial = 0; m_selectedSerial = 0;
m_selectedEntryKey.clear(); 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::SameLine(0.0f, 1.0f);
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing); DrawToolbarArrowDropdownButton("##ConsoleClearOptions", 16.0f, [&]() {
DrawToolbarToggleButton("##ConsoleCollapseToggle", "Collapse", m_filterState.Collapse(), 64.0f); if (DrawCompactCheckedMenuItem("Clear on Play", m_filterState.ClearOnPlay())) {
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing); m_filterState.ClearOnPlay() = !m_filterState.ClearOnPlay();
DrawToolbarToggleButton("##ConsoleErrorPauseToggle", "Error Pause", m_filterState.ErrorPause(), 82.0f); }
ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing); });
DrawToolbarDropdownButton("##ConsoleSourceDropdown", "Editor", 58.0f, [&]() { ImGui::SameLine(0.0f, kConsoleToolbarItemSpacing);
ImGui::MenuItem("Editor", nullptr, true, true); DrawToolbarToggleButton("##ConsoleCollapseToggle", "Collapse", m_filterState.Collapse(), 64.0f);
ImGui::MenuItem("Player", nullptr, false, false); 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(); ImGui::TableNextColumn();
if (m_requestSearchFocus) { if (m_requestSearchFocus) {
ImGui::SetKeyboardFocusHere(); ImGui::SetKeyboardFocusHere();
m_requestSearchFocus = false; 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::PopStyleVar();
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();
UI::PanelContentScope content("ConsoleRoot", ImVec2(0.0f, 0.0f)); UI::PanelContentScope content("ConsoleRoot", ImVec2(0.0f, 0.0f));
if (!content.IsOpen()) { if (!content.IsOpen()) {