From dbf39567cfd41053e3c2894721f1f2d36577fd5c Mon Sep 17 00:00:00 2001 From: KojoZero Date: Fri, 13 Mar 2026 19:02:18 -0700 Subject: [PATCH] filter logs and use existing console --- src/citra_qt/citra_qt.cpp | 11 +++++++++++ src/citra_qt/debugger/console.cpp | 7 +++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/citra_qt/citra_qt.cpp b/src/citra_qt/citra_qt.cpp index 5f842f1a4..2d48c90c3 100644 --- a/src/citra_qt/citra_qt.cpp +++ b/src/citra_qt/citra_qt.cpp @@ -87,6 +87,7 @@ #include "common/literals.h" #include "common/logging/backend.h" #include "common/logging/log.h" +#include "common/logging/filter.h" #include "common/memory_detect.h" #include "common/scm_rev.h" #include "common/scope_exit.h" @@ -342,6 +343,11 @@ GMainWindow::GMainWindow(Core::System& system_) if (i >= args.size() - 1 || args[i + 1].startsWith(QChar::fromLatin1('-'))) { continue; } + UISettings::values.show_console = true; + Debugger::ToggleConsole(); + Common::Log::Filter filter; + filter.ParseFilterString("*:Warning"); + Common::Log::SetGlobalFilter(filter); i++; for (; i < args.size(); i++){ QFileInfo currPath(args[i]); @@ -362,6 +368,11 @@ GMainWindow::GMainWindow(Core::System& system_) if (i >= args.size() - 1 || args[i + 1].startsWith(QChar::fromLatin1('-'))) { continue; } + UISettings::values.show_console = true; + Debugger::ToggleConsole(); + Common::Log::Filter filter; + filter.ParseFilterString("*:Warning"); + Common::Log::SetGlobalFilter(filter); i++; for (; i < args.size(); i++){ QFileInfo currPath(args[i]); diff --git a/src/citra_qt/debugger/console.cpp b/src/citra_qt/debugger/console.cpp index ed7a1cc85..864de466e 100644 --- a/src/citra_qt/debugger/console.cpp +++ b/src/citra_qt/debugger/console.cpp @@ -25,10 +25,13 @@ void ToggleConsole() { #ifdef _WIN32 FILE* temp; if (UISettings::values.show_console) { - BOOL alloc_console_res = AllocConsole(); DWORD last_error = 0; + BOOL alloc_console_res = AttachConsole(ATTACH_PARENT_PROCESS); if (!alloc_console_res) { - last_error = GetLastError(); + alloc_console_res = AllocConsole(); + if (!alloc_console_res) { + last_error = GetLastError(); + } } // If the windows debugger already opened a console, calling AllocConsole again // will cause ERROR_ACCESS_DENIED. If that's the case assume a console is open.