diff --git a/res/lang/de.json b/res/lang/de.json index 831450f..5837a02 100644 --- a/res/lang/de.json +++ b/res/lang/de.json @@ -180,6 +180,7 @@ "connected_peers": "Verbundene Peers", "connecting": "Verbinde...", "console": "Konsole", + "console_accents": "Farbakzente", "console_app": "App", "console_auto_scroll": "Automatisch scrollen", "console_available_commands": "Verfügbare Befehle:", @@ -240,6 +241,7 @@ "console_status_stopping": "Stoppt", "console_status_unknown": "Unbekannt", "console_tab_completion": "Tab zur Vervollständigung", + "console_text_colors": "Textfarben", "console_toggle_accents": "Farbakzente der Zeilen umschalten", "console_toggle_text_color": "Textfarben der Zeilen umschalten", "console_type_help": "Geben Sie 'help' ein für verfügbare Befehle", diff --git a/res/lang/es.json b/res/lang/es.json index ce0a098..0529f4f 100644 --- a/res/lang/es.json +++ b/res/lang/es.json @@ -180,6 +180,7 @@ "connected_peers": "Nodos Conectados", "connecting": "Conectando...", "console": "Consola", + "console_accents": "Acentos de color", "console_app": "App", "console_auto_scroll": "Auto-desplazamiento", "console_available_commands": "Comandos disponibles:", @@ -240,6 +241,7 @@ "console_status_stopping": "Deteniendo", "console_status_unknown": "Desconocido", "console_tab_completion": "Tab para completar", + "console_text_colors": "Colores de texto", "console_toggle_accents": "Alternar acentos de color de línea", "console_toggle_text_color": "Alternar colores de texto de línea", "console_type_help": "Escribe 'help' para ver los comandos disponibles", diff --git a/res/lang/fr.json b/res/lang/fr.json index d1e7aea..fc99f1d 100644 --- a/res/lang/fr.json +++ b/res/lang/fr.json @@ -180,6 +180,7 @@ "connected_peers": "Pairs connectés", "connecting": "Connexion...", "console": "Console", + "console_accents": "Accents de couleur", "console_app": "App", "console_auto_scroll": "Défilement auto", "console_available_commands": "Commandes disponibles :", @@ -240,6 +241,7 @@ "console_status_stopping": "Arrêt", "console_status_unknown": "Inconnu", "console_tab_completion": "Tab pour compléter", + "console_text_colors": "Couleurs du texte", "console_toggle_accents": "Basculer les accents de couleur des lignes", "console_toggle_text_color": "Basculer les couleurs du texte des lignes", "console_type_help": "Tapez 'help' pour les commandes disponibles", diff --git a/res/lang/ja.json b/res/lang/ja.json index 12ae0ea..b21f695 100644 --- a/res/lang/ja.json +++ b/res/lang/ja.json @@ -180,6 +180,7 @@ "connected_peers": "接続中のピア", "connecting": "接続中...", "console": "コンソール", + "console_accents": "カラーアクセント", "console_app": "アプリ", "console_auto_scroll": "自動スクロール", "console_available_commands": "利用可能なコマンド:", @@ -240,6 +241,7 @@ "console_status_stopping": "停止中", "console_status_unknown": "不明", "console_tab_completion": "Tabで補完", + "console_text_colors": "テキスト色", "console_toggle_accents": "行のカラーアクセントを切り替え", "console_toggle_text_color": "行のテキスト色を切り替え", "console_type_help": "'help'と入力して利用可能なコマンドを表示", diff --git a/res/lang/ko.json b/res/lang/ko.json index 5bfe259..26e791a 100644 --- a/res/lang/ko.json +++ b/res/lang/ko.json @@ -180,6 +180,7 @@ "connected_peers": "연결된 피어", "connecting": "연결 중...", "console": "콘솔", + "console_accents": "색상 강조", "console_app": "앱", "console_auto_scroll": "자동 스크롤", "console_available_commands": "사용 가능한 명령어:", @@ -240,6 +241,7 @@ "console_status_stopping": "중지 중", "console_status_unknown": "알 수 없음", "console_tab_completion": "Tab으로 자동 완성", + "console_text_colors": "텍스트 색상", "console_toggle_accents": "줄 색상 강조 전환", "console_toggle_text_color": "줄 텍스트 색상 전환", "console_type_help": "'help'를 입력하여 사용 가능한 명령어 보기", diff --git a/res/lang/pt.json b/res/lang/pt.json index f732448..862d2d2 100644 --- a/res/lang/pt.json +++ b/res/lang/pt.json @@ -180,6 +180,7 @@ "connected_peers": "Pares Conectados", "connecting": "Conectando...", "console": "Console", + "console_accents": "Destaques de cor", "console_app": "App", "console_auto_scroll": "Rolagem automática", "console_available_commands": "Comandos disponíveis:", @@ -240,6 +241,7 @@ "console_status_stopping": "Parando", "console_status_unknown": "Desconhecido", "console_tab_completion": "Tab para completar", + "console_text_colors": "Cores do texto", "console_toggle_accents": "Alternar destaques de cor das linhas", "console_toggle_text_color": "Alternar cores do texto das linhas", "console_type_help": "Digite 'help' para comandos disponíveis", diff --git a/res/lang/ru.json b/res/lang/ru.json index ce6d7eb..21f9c67 100644 --- a/res/lang/ru.json +++ b/res/lang/ru.json @@ -180,6 +180,7 @@ "connected_peers": "Подключённые узлы", "connecting": "Подключение...", "console": "Консоль", + "console_accents": "Цветовые акценты", "console_app": "Прил.", "console_auto_scroll": "Авто-прокрутка", "console_available_commands": "Доступные команды:", @@ -240,6 +241,7 @@ "console_status_stopping": "Остановка", "console_status_unknown": "Неизвестно", "console_tab_completion": "Tab для дополнения", + "console_text_colors": "Цвета текста", "console_toggle_accents": "Переключить цветовые акценты строк", "console_toggle_text_color": "Переключить цвета текста строк", "console_type_help": "Введите 'help' для списка команд", diff --git a/res/lang/zh.json b/res/lang/zh.json index 3a66d6c..080357f 100644 --- a/res/lang/zh.json +++ b/res/lang/zh.json @@ -180,6 +180,7 @@ "connected_peers": "已连接节点", "connecting": "连接中...", "console": "控制台", + "console_accents": "颜色强调", "console_app": "应用", "console_auto_scroll": "自动滚动", "console_available_commands": "可用命令:", @@ -240,6 +241,7 @@ "console_status_stopping": "停止中", "console_status_unknown": "未知", "console_tab_completion": "Tab 补全", + "console_text_colors": "文本颜色", "console_toggle_accents": "切换行颜色强调", "console_toggle_text_color": "切换行文本颜色", "console_type_help": "输入 'help' 查看可用命令", diff --git a/src/ui/pages/settings_page.cpp b/src/ui/pages/settings_page.cpp index 1206604..5fd70d7 100644 --- a/src/ui/pages/settings_page.cpp +++ b/src/ui/pages/settings_page.cpp @@ -492,6 +492,31 @@ static void saveSettingsPageState(config::Settings* settings) { settings->save(); } +// Console output color toggles (accent bars + per-channel text color), shown on their own row under +// the effects checkboxes. They mirror the console toolbar buttons and carry no GPU cost, so — unlike +// scanline/theme-effects — they stay enabled in low-spec: the caller has an open +// BeginDisabled(low_spec) around the effects row, so close it, draw these live-bound to the ConsoleTab +// statics, then reopen it. Persisted immediately (the startup restore in App loads them on launch). +static void renderConsoleColorToggles(App* app) { + ImGui::EndDisabled(); + bool accents = ConsoleTab::s_line_accents_enabled; + if (ImGui::Checkbox(TrId("console_accents", "con_accents").c_str(), &accents)) { + ConsoleTab::s_line_accents_enabled = accents; + app->settings()->setConsoleLineAccents(accents); + app->settings()->save(); + } + if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("console_toggle_accents")); + ImGui::SameLine(0, Layout::spacingLg()); + bool textColor = ConsoleTab::s_line_text_color_enabled; + if (ImGui::Checkbox(TrId("console_text_colors", "con_textcol").c_str(), &textColor)) { + ConsoleTab::s_line_text_color_enabled = textColor; + app->settings()->setConsoleTextColor(textColor); + app->settings()->save(); + } + if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("console_toggle_text_color")); + ImGui::BeginDisabled(s_settingsState.low_spec_mode); +} + // ============================================================================ // Settings Page Renderer // ============================================================================ @@ -874,6 +899,9 @@ void RenderSettingsPage(App* app) { } if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_theme_effects")); + // Console output color toggles (own row — no GPU cost, enabled even in low-spec). + renderConsoleColorToggles(app); + // Row 1: Acrylic preset slider + Noise slider (side by side, labels above) float effCtrlMinW = S.drawElement("components.settings-page", "effects-input-min-width").size; float halfW = (contentW - Layout::spacingLg()) * 0.5f; @@ -1126,6 +1154,9 @@ void RenderSettingsPage(App* app) { } if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_theme_effects")); + // Console output color toggles (own row — no GPU cost, enabled even in low-spec). + renderConsoleColorToggles(app); + float ctrlW = std::max(S.drawElement("components.settings-page", "effects-input-min-width").size, availWidth - pad * 2.0f); ImGui::TextUnformatted(TR("acrylic")); diff --git a/src/util/i18n.cpp b/src/util/i18n.cpp index 74730ac..0772291 100644 --- a/src/util/i18n.cpp +++ b/src/util/i18n.cpp @@ -1292,6 +1292,8 @@ void I18n::loadBuiltinEnglish() strings_["console_zoom_out"] = "Zoom out"; strings_["console_toggle_accents"] = "Toggle line color accents"; strings_["console_toggle_text_color"] = "Toggle line text colors"; + strings_["console_accents"] = "Color accents"; + strings_["console_text_colors"] = "Text colors"; // --- Export All Keys Dialog --- strings_["export_keys_btn"] = "Export Keys";