From 3d4ba4053b69f8ebb6d0d18601e95e139906b2a7 Mon Sep 17 00:00:00 2001
From: Ariver <ar@MacBook-Air.local>
Date: Wed, 06 May 2026 15:56:46 +0800
Subject: [PATCH] checkpoint: v3.0.4 — 隐藏 APP 名称开关,Preferences General Toggle,Flat/Container 双模式均支持

---
 Apptag/TagGroupView.swift |    2 ++
 Apptag/ApptagApp.swift    |    5 +++++
 Apptag/AppGridItem.swift  |   13 ++++++++-----
 Apptag/ContentView.swift  |    6 ++++--
 Apptag/Info.plist         |    2 +-
 5 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/Apptag/AppGridItem.swift b/Apptag/AppGridItem.swift
index 8a2263a..a607ac9 100644
--- a/Apptag/AppGridItem.swift
+++ b/Apptag/AppGridItem.swift
@@ -6,6 +6,7 @@
 struct AppGridItem: View {
     let app: AppInfo
     let iconSize: CGFloat
+    var showName: Bool = true
     let onSelect: () -> Void
 
     @State private var isHovered = false
@@ -25,11 +26,13 @@
                     )
                     .animation(.spring(response: 0.3, dampingFraction: 0.7), value: isHovered)
 
-                Text(app.name)
-                    .font(.system(size: 11, weight: .medium))
-                    .lineLimit(1)
-                    .truncationMode(.tail)
-                    .frame(maxWidth: iconSize + 20)
+                if showName {
+                    Text(app.name)
+                        .font(.system(size: 11, weight: .medium))
+                        .lineLimit(1)
+                        .truncationMode(.tail)
+                        .frame(maxWidth: iconSize + 20)
+                }
             }
             .padding(.vertical, 8)
             .padding(.horizontal, 4)
diff --git a/Apptag/ApptagApp.swift b/Apptag/ApptagApp.swift
index d5c125a..9d0db43 100644
--- a/Apptag/ApptagApp.swift
+++ b/Apptag/ApptagApp.swift
@@ -320,6 +320,7 @@
     @AppStorage("tagPosition") private var tagPosition = "left"
     @AppStorage("defaultGroupName") private var defaultGroupName = "Other"
     @AppStorage("displayMode") private var displayMode = "flat"
+    @AppStorage("hideAppNames") private var hideAppNames = false
 
     @State private var allApps: [AppInfo] = []
     @State private var tagColors: [String: Int] = [:]
@@ -400,6 +401,10 @@
                 }
 
                 Section {
+                    Toggle("Hide app names", isOn: $hideAppNames)
+                }
+
+                Section {
                     LabeledContent("Tag position:") {
                         Picker("", selection: $tagPosition) {
                             Text("Left").tag("left")
diff --git a/Apptag/ContentView.swift b/Apptag/ContentView.swift
index 7be05b1..4a4e4f4 100644
--- a/Apptag/ContentView.swift
+++ b/Apptag/ContentView.swift
@@ -212,6 +212,7 @@
     @AppStorage("tagPosition") private var tagPosition = "left"
     @State private var notchHeight: CGFloat = 0
     @AppStorage("displayMode") private var displayMode = "flat"
+    @AppStorage("hideAppNames") private var hideAppNames = false
 
     private var isSideLayout: Bool {
         tagPosition == "left" || tagPosition == "right"
@@ -382,7 +383,8 @@
                             group: group,
                             onSelectApp: { app in openApp(app) },
                             tagFontSize: tagFontSize,
-                            iconSize: iconSize
+                            iconSize: iconSize,
+                            showNames: !hideAppNames
                         ).id(group.id)
                     }
                 }.padding(20)
@@ -456,7 +458,7 @@
                 spacing: 2
             ) {
                 ForEach(group.apps) { app in
-                    AppGridItem(app: app, iconSize: iconSize, onSelect: { openApp(app) })
+                    AppGridItem(app: app, iconSize: iconSize, showName: !hideAppNames, onSelect: { openApp(app) })
                 }
             }
         }
diff --git a/Apptag/Info.plist b/Apptag/Info.plist
index 07a1ac4..f0275eb 100644
--- a/Apptag/Info.plist
+++ b/Apptag/Info.plist
@@ -19,7 +19,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>3.0.2</string>
+	<string>3.0.4</string>
 	<key>CFBundleVersion</key>
 	<string>1</string>
 	<key>LSMinimumSystemVersion</key>
diff --git a/Apptag/TagGroupView.swift b/Apptag/TagGroupView.swift
index 1089136..c5618ea 100644
--- a/Apptag/TagGroupView.swift
+++ b/Apptag/TagGroupView.swift
@@ -7,6 +7,7 @@
     let onSelectApp: (AppInfo) -> Void
     let tagFontSize: CGFloat
     let iconSize: CGFloat
+    var showNames: Bool = true
 
     /// Adaptive columns — auto-fit based on icon size and available width.
     private var columns: [GridItem] {
@@ -43,6 +44,7 @@
                     AppGridItem(
                         app: app,
                         iconSize: iconSize,
+                        showName: showNames,
                         onSelect: { onSelectApp(app) }
                     )
                 }

--
Gitblit v1.9.3