This commit is contained in:
Alin
2024-07-20 10:32:27 -06:00
parent cfa8e2aa4d
commit ce10b9570b
21 changed files with 553 additions and 821 deletions
+4 -4
View File
@@ -529,8 +529,8 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
APP_BUILD = 55; APP_BUILD = 56;
APP_VERSION = 3.8.1; APP_VERSION = 3.8.2;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
@@ -599,8 +599,8 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
APP_BUILD = 55; APP_BUILD = 56;
APP_VERSION = 3.8.1; APP_VERSION = 3.8.2;
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+2 -1
View File
@@ -103,10 +103,11 @@ struct PearcleanerApp: App {
if menubarEnabled { if menubarEnabled {
MenuBarExtraManager.shared.addMenuBarExtra(withView: { MenuBarExtraManager.shared.addMenuBarExtra(withView: {
MiniAppView(search: $search, showPopover: $showPopover, isMenuBar: true) MiniAppView(search: $search, showPopover: $showPopover, isMenuBar: true)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager) .environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
}, icon: selectedMenubarIcon) }, icon: selectedMenubarIcon)
@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "pear-1.5.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 561 B

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "pear-1.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 565 B

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "pear-2.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "pear-3.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

@@ -1,21 +0,0 @@
{
"images" : [
{
"filename" : "pear-4.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

+4 -2
View File
@@ -24,7 +24,7 @@ struct AboutSettingsTab: View {
VStack(alignment: .center, spacing: 10) { VStack(alignment: .center, spacing: 10) {
Image(nsImage: NSApp.applicationIconImage) Image(nsImage: NSApp.applicationIconImage)
.padding(.top, 30) // .padding(.top, 20)
Text(Bundle.main.name) Text(Bundle.main.name)
.font(.title) .font(.title)
.bold() .bold()
@@ -141,10 +141,12 @@ struct AboutSettingsTab: View {
.padding(5) .padding(5)
.padding(.leading) .padding(.leading)
Spacer()
Text("Made with ❤️ by Alin Lupascu").font(.footnote)//.padding(.bottom) Text("Made with ❤️ by Alin Lupascu").font(.footnote)//.padding(.bottom)
} }
.padding(20) .padding(20)
.frame(width: 500) .frame(width: 500, height: 500)
} }
} }
+7 -3
View File
@@ -17,6 +17,8 @@ struct FolderSettingsTab: View {
@EnvironmentObject var fsm: FolderSettingsManager @EnvironmentObject var fsm: FolderSettingsManager
@EnvironmentObject var themeManager: ThemeManager @EnvironmentObject var themeManager: ThemeManager
@State private var isHovered = false @State private var isHovered = false
@AppStorage("settings.general.glass") private var glass: Bool = false
var body: some View { var body: some View {
Form { Form {
@@ -79,7 +81,7 @@ struct FolderSettingsTab: View {
.padding() .padding()
.frame(height: 200) .frame(height: 200)
// .background(.primary.opacity(0.05)) // .background(.primary.opacity(0.05))
.background(backgroundView(themeManager: themeManager, darker: true)) .background(backgroundView(themeManager: themeManager, darker: true, glass: glass))
.clipShape(RoundedRectangle(cornerRadius: 10)) .clipShape(RoundedRectangle(cornerRadius: 10))
.onDrop(of: ["public.file-url"], isTargeted: nil) { providers -> Bool in .onDrop(of: ["public.file-url"], isTargeted: nil) { providers -> Bool in
providers.forEach { provider in providers.forEach { provider in
@@ -172,7 +174,7 @@ struct FolderSettingsTab: View {
.scrollIndicators(.automatic) .scrollIndicators(.automatic)
.padding() .padding()
.frame(height: 200) .frame(height: 200)
.background(backgroundView(themeManager: themeManager, darker: true)) .background(backgroundView(themeManager: themeManager, darker: true, glass: glass))
// .background(.primary.opacity(0.05)) // .background(.primary.opacity(0.05))
.clipShape(RoundedRectangle(cornerRadius: 10)) .clipShape(RoundedRectangle(cornerRadius: 10))
.onDrop(of: ["public.file-url"], isTargeted: nil) { providers -> Bool in .onDrop(of: ["public.file-url"], isTargeted: nil) { providers -> Bool in
@@ -199,9 +201,11 @@ struct FolderSettingsTab: View {
.padding(.top, 5) .padding(.top, 5)
} }
Spacer()
} }
.padding(20) .padding(20)
.frame(width: 500)//, height: 600) .frame(width: 500, height: 580)
} }
+4 -5
View File
@@ -23,8 +23,7 @@ struct GeneralSettingsTab: View {
@State private var isResetting = false @State private var isResetting = false
var body: some View { var body: some View {
Form { VStack() {
VStack {
HStack() { HStack() {
Text("Functionality").font(.title2) Text("Functionality").font(.title2)
@@ -229,14 +228,14 @@ struct GeneralSettingsTab: View {
} }
.padding(.vertical, 5) .padding(.vertical, 5)
Spacer()
} }
.onAppear { .onAppear {
appState.updateExtensionStatus() appState.updateExtensionStatus()
} }
}
.padding(20) .padding(20)
.frame(width: 500)//, height: 710) .frame(width: 500, height: 500)
} }
+33 -205
View File
@@ -14,6 +14,8 @@ import AlinFoundation
struct InterfaceSettingsTab: View { struct InterfaceSettingsTab: View {
@EnvironmentObject var appState: AppState @EnvironmentObject var appState: AppState
@EnvironmentObject var locations: Locations @EnvironmentObject var locations: Locations
@EnvironmentObject var updater: Updater
@EnvironmentObject var permissionManager: PermissionManager
@EnvironmentObject var fsm: FolderSettingsManager @EnvironmentObject var fsm: FolderSettingsManager
@EnvironmentObject var themeManager: ThemeManager @EnvironmentObject var themeManager: ThemeManager
@State private var windowSettings = WindowSettings() @State private var windowSettings = WindowSettings()
@@ -22,16 +24,26 @@ struct InterfaceSettingsTab: View {
@AppStorage("settings.general.glass") private var glass: Bool = false @AppStorage("settings.general.glass") private var glass: Bool = false
@AppStorage("settings.general.popover") private var popoverStay: Bool = true @AppStorage("settings.general.popover") private var popoverStay: Bool = true
@AppStorage("settings.general.miniview") private var miniView: Bool = true @AppStorage("settings.general.miniview") private var miniView: Bool = true
@AppStorage("settings.interface.selectedMenubarIcon") var selectedMenubarIcon: String = "pear-4" @AppStorage("settings.interface.selectedMenubarIcon") var selectedMenubarIcon: String = "bubbles.and.sparkles"
@State private var isLaunchAtLoginEnabled: Bool = false @State private var isLaunchAtLoginEnabled: Bool = false
@Binding var showPopover: Bool @Binding var showPopover: Bool
@Binding var search: String @Binding var search: String
let icons = ["externaldrive", "trash", "folder", "pear-1", "pear-1.5", "pear-2", "pear-3", "pear-4"] let icons = [ "bubbles.and.sparkles",
"bubbles.and.sparkles.fill",
"trash",
"trash.fill",
"xmark.bin",
"xmark.bin.fill",
"folder",
"folder.fill",
"folder.badge.minus",
"folder.badge.plus",
"archivebox",
"archivebox.fill"]
var body: some View { var body: some View {
Form {
VStack { VStack {
HStack() { HStack() {
@@ -87,193 +99,6 @@ struct InterfaceSettingsTab: View {
// HStack(spacing: 0) {
// Image(systemName: themesEnabled ? "paintpalette.fill" : "paintpalette")
// .resizable()
// .scaledToFit()
// .frame(width: 20, height: 20)
// .padding(.trailing)
// .foregroundStyle(.primary.opacity(0.5))
// VStack(alignment: .leading, spacing: 5) {
// Text("\(themesEnabled ? "Custom theming is enabled" : "Custom theming is disabled")")
// .font(.callout)
// .foregroundStyle(.primary.opacity(0.5))
// }
// Spacer()
// Toggle(isOn: $themesEnabled, label: {
// })
// .toggleStyle(.switch)
// .onChange(of: themesEnabled) { newVal in
// themeManager.resetToDefault(dark: isDarkMode())
// if isDarkMode() {
// displayMode.colorScheme = .dark
// } else {
// displayMode.colorScheme = .light
// }
// if newVal {
// selectedTheme = isDarkMode() ? "Dark" : "Light"
// } else {
// selectedTheme = "Auto"
// }
// }
// }
// .padding(5)
// .padding(.leading)
//
//
// /// Show theme color selector if theming is enabled
// if themesEnabled {
// HStack(spacing: 0) {
// Image(systemName: "paintbrush")
// .resizable()
// .scaledToFit()
// .frame(width: 20, height: 20)
// .padding(.trailing)
// .foregroundStyle(.primary.opacity(0.5))
// VStack(alignment: .leading, spacing: 5) {
// Text("Application theme color")
// .font(.callout)
// .foregroundStyle(.primary.opacity(0.5))
// }
//
// Spacer()
//
//
// HStack(spacing: 10) {
// Button("") {
// themeManager.setPreset(preset: "pearcleaner", colorScheme: displayMode)
// }
//// .buttonStyle(PresetColor(fillColor: themeManager.getColorForPreset(preset: "pearcleaner", colorScheme: displayMode), label: "Pearcleaner"))
//
// Button("") {
// themeManager.setPreset(preset: "dracula", colorScheme: displayMode)
// }
//// .buttonStyle(PresetColor(fillColor: themeManager.getColorForPreset(preset: "dracula", colorScheme: displayMode), label: "Dracula"))
//
// Button("") {
// themeManager.setPreset(preset: "solarized", colorScheme: displayMode)
// }
//// .buttonStyle(PresetColor(fillColor: themeManager.getColorForPreset(preset: "solarized", colorScheme: displayMode), label: "Solarized"))
//
// Button("") {
// themeManager.setPreset(preset: "macOS", colorScheme: displayMode)
// }
//// .buttonStyle(PresetColor(fillColor: themeManager.getColorForPreset(preset: "macOS", colorScheme: displayMode), label: "macOS"))
// }
//
//
//
//
// Spacer()
//
// ColorPicker("", selection: $themeManager.themeColor, supportsOpacity: false)
// .onChange(of: themeManager.themeColor) { newValue in
// themeManager.saveThemeColor()
// }
// .padding(.horizontal, 5)
//
// Button("") {
// themeManager.resetToDefault(dark: isDarkMode())
// if isDarkMode() {
// displayMode.colorScheme = .dark
// } else {
// displayMode.colorScheme = .light
// }
// selectedTheme = isDarkMode() ? "Dark" : "Light"
// }
// .buttonStyle(SimpleButtonStyle(icon: "arrow.uturn.left.circle", help: "Reset color to default"))
//
// }
// .padding(5)
// .padding(.leading)
// }
// HStack(spacing: 0) {
// Image(systemName: {
// switch displayMode {
// case .dark:
// return "moon.fill"
// case .light:
// return "sun.max.fill"
// case .system:
// return "circle.righthalf.filled"
// }
// }())
// .resizable()
// .scaledToFit()
// .frame(width: 20, height: 20)
// .padding(.trailing)
// .foregroundStyle(.primary.opacity(0.5))
// VStack(alignment: .leading, spacing: 5) {
// Text(themesEnabled ? "Application font color" : "Application color mode")
// .font(.callout)
// .foregroundStyle(.primary.opacity(0.5))
// }
// InfoButton(text: "When custom theming is disabled, you can set the application color mode to follow the operating system using Auto. Or manually set it to Light or Dark. When custom theming is enabled, this selector acts mainly as a font color picker between light or dark to match your custom theme color.")
// Spacer()
// Picker("", selection: $selectedTheme) {
// if !themesEnabled {
// Text("Auto")
// .tag("Auto")
// }
// Text(themesEnabled ? "Light" : "Dark")
// .tag("Dark")
// Text(themesEnabled ? "Dark" : "Light")
// .tag("Light")
// }
// .buttonStyle(.borderless)
// .onChange(of: selectedTheme) { newTheme in
// switch newTheme {
// case "Auto":
// if isDarkMode() {
// displayMode.colorScheme = .dark
// } else {
// displayMode.colorScheme = .light
// }
// if !themesEnabled {
// themeManager.resetToDefault(dark: isDarkMode())
// }
// // Refresh foreground colors
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// self.selectedTab = .interface
// }
// if menubarEnabled{
// MenuBarExtraManager.shared.restartMenuBarExtra()
// }
// case "Dark":
// displayMode.colorScheme = .dark
// if !themesEnabled {
// themeManager.resetToDefault(dark: true)
// }
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// self.selectedTab = .interface
// }
// if menubarEnabled{
// MenuBarExtraManager.shared.restartMenuBarExtra()
// }
// case "Light":
// displayMode.colorScheme = .light
// if !themesEnabled {
// themeManager.resetToDefault(dark: false)
// }
// DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
// self.selectedTab = .interface
// }
// if menubarEnabled{
// MenuBarExtraManager.shared.restartMenuBarExtra()
// }
// default:
// break
// }
// }
// }
// .padding(5)
// .padding(.leading)
// === Mini ================================================================================================= // === Mini =================================================================================================
Divider() Divider()
@@ -311,10 +136,12 @@ struct InterfaceSettingsTab: View {
showPopover = false showPopover = false
windowSettings.newWindow(withView: { windowSettings.newWindow(withView: {
MiniMode(search: $search, showPopover: $showPopover) MiniMode(search: $search, showPopover: $showPopover)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
}) { }) {
resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner") resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner")
@@ -327,10 +154,12 @@ struct InterfaceSettingsTab: View {
} }
windowSettings.newWindow(withView: { windowSettings.newWindow(withView: {
RegularMode(search: $search, showPopover: $showPopover) RegularMode(search: $search, showPopover: $showPopover)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
} }
) { ) {
@@ -429,15 +258,17 @@ struct InterfaceSettingsTab: View {
if newVal { if newVal {
MenuBarExtraManager.shared.addMenuBarExtra(withView: { MenuBarExtraManager.shared.addMenuBarExtra(withView: {
MiniAppView(search: $search, showPopover: $showPopover, isMenuBar: true) MiniAppView(search: $search, showPopover: $showPopover, isMenuBar: true)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
}, icon: selectedMenubarIcon) }, icon: selectedMenubarIcon)
NSApplication.shared.setActivationPolicy(.accessory) NSApplication.shared.setActivationPolicy(.accessory)
findAndHideWindows(named: ["Pearcleaner"]) findAndHideWindows(named: ["Pearcleaner"])
// findAndShowWindows(named: ["Pearcleaner", "Interface"]) // findAndShowWindows(named: ["Pearcleaner", "Interface"])
} else { } else {
MenuBarExtraManager.shared.removeMenuBarExtra() MenuBarExtraManager.shared.removeMenuBarExtra()
NSApplication.shared.setActivationPolicy(.regular) NSApplication.shared.setActivationPolicy(.regular)
@@ -445,10 +276,12 @@ struct InterfaceSettingsTab: View {
if mini { if mini {
windowSettings.newWindow(withView: { windowSettings.newWindow(withView: {
MiniMode(search: $search, showPopover: $showPopover) MiniMode(search: $search, showPopover: $showPopover)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
}) { }) {
resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner") resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner")
@@ -456,10 +289,12 @@ struct InterfaceSettingsTab: View {
} else { } else {
windowSettings.newWindow(withView: { windowSettings.newWindow(withView: {
RegularMode(search: $search, showPopover: $showPopover) RegularMode(search: $search, showPopover: $showPopover)
.environmentObject(locations)
.environmentObject(appState) .environmentObject(appState)
.environmentObject(locations)
.environmentObject(fsm) .environmentObject(fsm)
.environmentObject(themeManager) .environmentObject(themeManager)
.environmentObject(updater)
.environmentObject(permissionManager)
.preferredColorScheme(themeManager.displayMode.colorScheme) .preferredColorScheme(themeManager.displayMode.colorScheme)
}) { }) {
resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner") resizeWindowAuto(windowSettings: windowSettings, title: "Pearcleaner")
@@ -532,16 +367,10 @@ struct InterfaceSettingsTab: View {
Picker("", selection: $selectedMenubarIcon) { Picker("", selection: $selectedMenubarIcon) {
ForEach(icons, id: \.self) { icon in ForEach(icons, id: \.self) { icon in
HStack { HStack {
if icon.contains("pear") {
Image(icon)
.resizable()
.scaledToFit()
} else {
Image(systemName: icon) Image(systemName: icon)
.resizable() .resizable()
.scaledToFit() .scaledToFit()
} }
}
.tag(icon) .tag(icon)
} }
@@ -556,12 +385,11 @@ struct InterfaceSettingsTab: View {
.padding(5) .padding(5)
.padding(.leading) .padding(.leading)
// Spacer() Spacer()
}
} }
.padding(20) .padding(20)
.frame(width: 500)//, height: themesEnabled ? 600 : 580) .frame(width: 500, height: 540)
} }
@@ -32,12 +32,14 @@ struct SettingsView: View {
Label(CurrentTabView.interface.title, systemImage: "macwindow") Label(CurrentTabView.interface.title, systemImage: "macwindow")
} }
.tag(CurrentTabView.interface) .tag(CurrentTabView.interface)
.environmentObject(themeManager)
FolderSettingsTab() FolderSettingsTab()
.tabItem { .tabItem {
Label(CurrentTabView.folders.title, systemImage: "folder") Label(CurrentTabView.folders.title, systemImage: "folder")
} }
.tag(CurrentTabView.folders) .tag(CurrentTabView.folders)
.environmentObject(themeManager)
UpdateSettingsTab() UpdateSettingsTab()
.tabItem { .tabItem {
+4 -2
View File
@@ -13,6 +13,7 @@ import AlinFoundation
struct TipsSettingsTab: View { struct TipsSettingsTab: View {
@EnvironmentObject var appState: AppState @EnvironmentObject var appState: AppState
@EnvironmentObject var themeManager: ThemeManager @EnvironmentObject var themeManager: ThemeManager
@AppStorage("settings.general.glass") private var glass: Bool = false
var body: some View { var body: some View {
VStack { VStack {
@@ -40,14 +41,15 @@ struct TipsSettingsTab: View {
.scrollIndicators(.visible) .scrollIndicators(.visible)
.frame(height: 500) .frame(height: 500)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)
.background(backgroundView(themeManager: themeManager, darker: true)) .background(backgroundView(themeManager: themeManager, darker: true, glass: glass))
.clipShape(RoundedRectangle(cornerRadius: 8)) .clipShape(RoundedRectangle(cornerRadius: 8))
.padding(.bottom) .padding(.bottom)
Spacer()
} }
.padding(20) .padding(20)
.frame(width: 500) .frame(width: 500, height: 550)
} }
} }
+8 -3
View File
@@ -14,6 +14,7 @@ struct UpdateSettingsTab: View {
@EnvironmentObject var appState: AppState @EnvironmentObject var appState: AppState
@EnvironmentObject var themeManager: ThemeManager @EnvironmentObject var themeManager: ThemeManager
@EnvironmentObject var updater: Updater @EnvironmentObject var updater: Updater
@AppStorage("settings.general.glass") private var glass: Bool = false
var body: some View { var body: some View {
VStack { VStack {
@@ -25,7 +26,8 @@ struct UpdateSettingsTab: View {
ReleasesView(updater: updater) ReleasesView(updater: updater)
.frame(height: 400) .frame(height: 400)
.frame(maxWidth: .infinity) .frame(maxWidth: .infinity)
.backgroundAF(opacity: 0.5) .background(backgroundView(themeManager: themeManager, darker: true, glass: glass))
.clipShape(RoundedRectangle(cornerRadius: 8))
HStack(alignment: .center, spacing: 20) { HStack(alignment: .center, spacing: 20) {
@@ -48,11 +50,14 @@ struct UpdateSettingsTab: View {
.buttonStyle(SimpleButtonStyle(icon: "link", label: "Releases", help: "View releases on GitHub")) .buttonStyle(SimpleButtonStyle(icon: "link", label: "Releases", help: "View releases on GitHub"))
} }
.padding() .padding(.top, 5)
Spacer()
} }
.padding(20) .padding(20)
.frame(width: 500) .frame(width: 500, height: 540)
} }
} }
+5 -5
View File
@@ -192,11 +192,11 @@ struct SimpleSearchStyle: TextFieldStyle {
func _body(configuration: TextField<Self._Label>) -> some View { func _body(configuration: TextField<Self._Label>) -> some View {
ZStack { ZStack {
RoundedRectangle(cornerRadius: 8) // RoundedRectangle(cornerRadius: 8)
.fill(darker ? themeManager.pickerColor.adjustBrightness(5) : themeManager.pickerColor) // .fill(darker ? themeManager.pickerColor.adjustBrightness(5) : themeManager.pickerColor)
.allowsHitTesting(false) // .allowsHitTesting(false)
.frame(height: 30) // .frame(height: 30)
.opacity((glass && (sidebar || !mini && !menubarEnabled)) || mini || menubarEnabled ? 0.0 : 1.0) // .opacity((glass && (sidebar || !mini && !menubarEnabled)) || mini || menubarEnabled ? 0.0 : 1.0)
ZStack { ZStack {
-6
View File
@@ -12,7 +12,6 @@ class MenuBarExtraManager {
static let shared = MenuBarExtraManager() static let shared = MenuBarExtraManager()
private var statusItem: NSStatusItem? private var statusItem: NSStatusItem?
private var popover = NSPopover() private var popover = NSPopover()
// Store the last view and icon for restart
private var lastView: (() -> AnyView)? private var lastView: (() -> AnyView)?
private var lastIcon: String? private var lastIcon: String?
@@ -28,12 +27,7 @@ class MenuBarExtraManager {
// Set up the status item's button // Set up the status item's button
if let button = statusItem?.button{ if let button = statusItem?.button{
if NSImage(systemSymbolName: icon, accessibilityDescription: nil) != nil {
button.image = NSImage(systemSymbolName: icon, accessibilityDescription: "Pearcleaner") button.image = NSImage(systemSymbolName: icon, accessibilityDescription: "Pearcleaner")
} else {
button.image = NSImage(named: icon)
}
button.action = #selector(togglePopover(_:)) button.action = #selector(togglePopover(_:))
button.target = self button.target = self
button.sendAction(on: [.leftMouseDown, .rightMouseDown]) button.sendAction(on: [.leftMouseDown, .rightMouseDown])