From 2fc577fb1868a4fdafc28988e51a45c2c5682bc9 Mon Sep 17 00:00:00 2001 From: DanS Date: Thu, 2 Jul 2026 01:43:46 -0500 Subject: [PATCH] feat(settings): SECURITY on one fill-width row + Advanced daemon actions shown by default - SECURITY: the auto-lock + PIN controls now continue on the same row as the encrypt/change/lock/remove controls (full-node), so the whole security band fills the card width instead of leaving the right half blank. Lite (no encrypt row) still starts auto-lock/PIN on a fresh row at the left edge. - Daemon Binary "Advanced" (Install bundled / Rescan / Delete blockchain / Repair wallet) now defaults to expanded (node_advanced_expanded = true) so the actions are visible without a click; the toggle can still collapse them. Full-node + lite build clean; hygiene clean. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/ui/pages/settings_page.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/ui/pages/settings_page.cpp b/src/ui/pages/settings_page.cpp index f825554..f3827ba 100644 --- a/src/ui/pages/settings_page.cpp +++ b/src/ui/pages/settings_page.cpp @@ -144,7 +144,7 @@ struct SettingsPageState { std::set debug_categories; bool debug_cats_dirty = false; bool debug_expanded = false; - bool node_advanced_expanded = false; // Node & Security: rare/destructive daemon actions + bool node_advanced_expanded = true; // Node & Security: rare/destructive daemon actions (shown by default) bool effects_expanded = false; bool tools_expanded = false; bool confirm_clear_ztx = false; @@ -1571,10 +1571,11 @@ void RenderSettingsPage(App* app) { app->showDecryptDialog(); if (ImGui::IsItemHovered()) material::Tooltip("%s", TR("tt_remove_encrypt")); } - ImGui::Dummy(ImVec2(0, Layout::spacingXs())); } - // Auto-Lock timeout + PIN controls on one horizontal row. + // Auto-Lock timeout + PIN controls — continue on the same row as the encrypt + // controls (full-node) so the whole SECURITY band fills the width; on lite + // (no encrypt row) they start a fresh row at the section's left edge. { float comboW = S.drawElement("components.settings-page", "security-combo-width").sizeOr(120.0f); @@ -1585,7 +1586,10 @@ void RenderSettingsPage(App* app) { for (int i = 0; i < 6; i++) { if (timeoutValues[i] == timeout) { selTimeout = i; break; } } - ImGui::SetCursorScreenPos(ImVec2(secX, ImGui::GetCursorScreenPos().y)); + if (includeRpcEncrypt) + ImGui::SameLine(0, Layout::spacingLg()); + else + ImGui::SetCursorScreenPos(ImVec2(secX, ImGui::GetCursorScreenPos().y)); ImGui::AlignTextToFramePadding(); Type().textColored(TypeStyle::Caption, OnSurfaceMedium(), TR("settings_auto_lock")); ImGui::SameLine(0, Layout::spacingXs());