listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

commit abd818d66267e51ca03cc80c419393c9c53502d9
parent 0b99e0cba36854bb58c08989aceabbb105e3e29c
Author: Michael Camilleri <[email protected]>
Date:   Tue, 24 Mar 2026 18:47:33 +0900

Add debugging section to Settings screen

Diffstat:
MListlessiOS/Views/SettingsView.swift | 19+++++++++++++++++++
MListlessiOS/Views/TaskListView.swift | 11+++++++----
2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/ListlessiOS/Views/SettingsView.swift b/ListlessiOS/Views/SettingsView.swift @@ -7,6 +7,9 @@ struct SettingsView: View { @AppStorage("appearanceMode") private var appearanceMode = 0 @AppStorage("colorTheme") private var colorThemeRaw = 0 @AppStorage("hapticsEnabled") private var hapticsEnabled = true + @AppStorage("debugMode") private var debugMode = false + @AppStorage("showFPSOverlay") private var showFPSOverlay = false + @State private var easterEggTaps = 0 var body: some View { NavigationStack { @@ -60,6 +63,12 @@ struct SettingsView: View { .pickerStyle(.segmented) } + if debugMode { + Section("Debugging") { + Toggle("FPS Overlay", isOn: $showFPSOverlay) + } + } + Section { NavigationLink("About") { AboutView() @@ -69,6 +78,16 @@ struct SettingsView: View { .frame(maxWidth: .infinity) .multilineTextAlignment(.center) .padding(.top, 24) + .onTapGesture { + easterEggTaps += 1 + if easterEggTaps >= 4 { + debugMode.toggle() + if !debugMode { + showFPSOverlay = false + } + easterEggTaps = 0 + } + } } } .navigationTitle("Settings") diff --git a/ListlessiOS/Views/TaskListView.swift b/ListlessiOS/Views/TaskListView.swift @@ -31,6 +31,7 @@ struct TaskListView: View, TaskListViewProtocol { @AppStorage("headingText") var headingText = "Items" @AppStorage("colorTheme") private var colorThemeRaw = 0 @AppStorage("hapticsEnabled") private var hapticsEnabled = true + @AppStorage("showFPSOverlay") private var showFPSOverlay = false private var colorTheme: ColorTheme { ColorTheme(rawValue: colorThemeRaw) ?? .pilbara } @Environment(\.undoManager) var undoManager @Environment(\.managedObjectContext) var managedObjectContext @@ -407,10 +408,12 @@ struct TaskListView: View, TaskListViewProtocol { var body: some View { taskScrollView .overlay(alignment: .topTrailing) { - FPSOverlay() - .padding(.top, 4) - .padding(.trailing, 8) - .allowsHitTesting(false) + if showFPSOverlay { + FPSOverlay() + .padding(.top, 4) + .padding(.trailing, 8) + .allowsHitTesting(false) + } } .simultaneousGesture( SpatialTapGesture(coordinateSpace: .global).onEnded { value in