This commit is contained in:
Alin
2024-07-03 18:30:42 -06:00
parent 8c7d21f788
commit 8b083ca1f1
6 changed files with 25 additions and 31 deletions
+4 -4
View File
@@ -588,8 +588,8 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
APP_BUILD = 52; APP_BUILD = 53;
APP_VERSION = 3.7.7; APP_VERSION = 3.7.8;
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;
@@ -658,8 +658,8 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO; ALWAYS_SEARCH_USER_PATHS = NO;
APP_BUILD = 52; APP_BUILD = 53;
APP_VERSION = 3.7.7; APP_VERSION = 3.7.8;
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;
+5 -5
View File
@@ -22,14 +22,14 @@ class ThemeSettings: ObservableObject {
// light - Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1) // light - Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1)
// dark - Color(.sRGB, red: 0.149, green: 0.149, blue: 0.149, opacity: 1) // dark - Color(.sRGB, red: 0.149, green: 0.149, blue: 0.149, opacity: 1)
// slate - Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1) // pearcleaner - Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1)
init() { init() {
// Initialize color from UserDefaults or use a default value // Initialize color from UserDefaults or use a default value
if let components = UserDefaults.standard.object(forKey: colorKey) as? [CGFloat], components.count >= 4 { if let components = UserDefaults.standard.object(forKey: colorKey) as? [CGFloat], components.count >= 4 {
themeColor = Color(.sRGB, red: components[0], green: components[1], blue: components[2], opacity: components[3]) themeColor = Color(.sRGB, red: components[0], green: components[1], blue: components[2], opacity: components[3])
} else { } else {
themeColor = Color.clear themeColor = Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1)
} }
} }
@@ -53,14 +53,14 @@ class ThemeSettings: ObservableObject {
} }
func getColorForPreset(preset: String, colorScheme: DisplayMode) -> Color { func getColorForPreset(preset: String, colorScheme: DisplayMode) -> Color {
let slate = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.499549, green: 0.545169, blue: 0.682028, opacity: 1) : Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1) let pearcleaner = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.499549, green: 0.545169, blue: 0.682028, opacity: 1) : Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1)
let solarized = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.554372, green: 0.6557, blue: 0.734336, opacity: 1) : Color(.sRGB, red: 0.117257, green: 0.22506, blue: 0.249171, opacity: 1) let solarized = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.554372, green: 0.6557, blue: 0.734336, opacity: 1) : Color(.sRGB, red: 0.117257, green: 0.22506, blue: 0.249171, opacity: 1)
let dracula = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.567094, green: 0.562125, blue: 0.81285, opacity: 1) : Color(.sRGB, red: 0.268614, green: 0.264737, blue: 0.383503, opacity: 1) let dracula = colorScheme.colorScheme == .light ? Color(.sRGB, red: 0.567094, green: 0.562125, blue: 0.81285, opacity: 1) : Color(.sRGB, red: 0.268614, green: 0.264737, blue: 0.383503, opacity: 1)
let macOS = colorScheme.colorScheme == .light ? Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1) : Color(.sRGB, red: 0.149, green: 0.149, blue: 0.149, opacity: 1) let macOS = colorScheme.colorScheme == .light ? Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1) : Color(.sRGB, red: 0.149, green: 0.149, blue: 0.149, opacity: 1)
switch preset { switch preset {
case "slate": case "pearcleaner":
return slate return pearcleaner
case "solarized": case "solarized":
return solarized return solarized
case "dracula": case "dracula":
+10 -9
View File
@@ -191,16 +191,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
// Start observing the appearance change // Start observing the appearance change
observer = DistributedNotificationCenter.default().addObserver(forName: NSNotification.Name(rawValue: "AppleInterfaceThemeChangedNotification"), object: nil, queue: OperationQueue.main) { [weak self] _ in observer = DistributedNotificationCenter.default().addObserver(forName: NSNotification.Name(rawValue: "AppleInterfaceThemeChangedNotification"), object: nil, queue: OperationQueue.main) { [weak self] _ in
let themeMode = UserDefaults.standard.string(forKey: "settings.general.selectedTheme") // let themeMode = UserDefaults.standard.string(forKey: "settings.general.selectedTheme")
if themeMode == "Auto" { // if themeMode == "Auto" {
self?.appearanceCheck() // self?.appearanceCheck()
} // }
self?.appearanceCheck(reset: true)
} }
} }
func appearanceCheck() { func appearanceCheck(reset: Bool = false) {
let dm = UserDefaults.standard.integer(forKey: "displayMode") let dm = UserDefaults.standard.integer(forKey: "displayMode")
var displayMode = DisplayMode(rawValue: dm) var displayMode = DisplayMode(rawValue: dm)
let dark = isDarkMode() let dark = isDarkMode()
@@ -212,10 +213,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
UserDefaults.standard.set(displayMode?.rawValue, forKey: "displayMode") UserDefaults.standard.set(displayMode?.rawValue, forKey: "displayMode")
// Customize dark mode color to use Slate by default // Reset theme when OS changes appearance
ThemeSettings.shared.themeColor = isDarkMode() ? Color(.sRGB, red: 0.188143, green: 0.208556, blue: 0.262679, opacity: 1) : Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1) if reset {
// ThemeSettings.shared.themeColor = isDarkMode() ? Color(.sRGB, red: 0.149, green: 0.149, blue: 0.149, opacity: 1) : Color(.sRGB, red: 1.0, green: 1.0, blue: 1.0, opacity: 1) ThemeSettings.shared.resetToDefault(dark: dark)
ThemeSettings.shared.saveThemeColor() }
} }
+2 -2
View File
@@ -155,14 +155,14 @@ struct AboutSettingsTab: View {
VStack(alignment: .leading){ VStack(alignment: .leading){
Text("Apple Developer Account Sponsor") Text("Apple Developer Account Sponsor")
Text("Many thanks to redditor u/dharsanb") Text("Many thanks to user DharsanB")
.font(.callout) .font(.callout)
.foregroundStyle(Color("mode").opacity(0.5)) .foregroundStyle(Color("mode").opacity(0.5))
} }
Spacer() Spacer()
Button(""){ Button(""){
NSWorkspace.shared.open(URL(string: "https://www.reddit.com/user/dharsanb/")!) NSWorkspace.shared.open(URL(string: "https://github.com/dharsanb")!)
} }
.buttonStyle(SimpleButtonStyle(icon: "link", help: "View")) .buttonStyle(SimpleButtonStyle(icon: "link", help: "View"))
+2 -2
View File
@@ -126,9 +126,9 @@ struct InterfaceSettingsTab: View {
HStack(spacing: 10) { HStack(spacing: 10) {
Button("") { Button("") {
themeSettings.setPreset(preset: "slate", colorScheme: displayMode) themeSettings.setPreset(preset: "pearcleaner", colorScheme: displayMode)
} }
.buttonStyle(PresetColor(fillColor: themeSettings.getColorForPreset(preset: "slate", colorScheme: displayMode), label: "Slate")) .buttonStyle(PresetColor(fillColor: themeSettings.getColorForPreset(preset: "pearcleaner", colorScheme: displayMode), label: "Pearcleaner"))
Button("") { Button("") {
themeSettings.setPreset(preset: "dracula", colorScheme: displayMode) themeSettings.setPreset(preset: "dracula", colorScheme: displayMode)
+2 -9
View File
@@ -20,12 +20,12 @@ struct FilesView: View {
@AppStorage("settings.general.sizeType") var sizeType: String = "Real" @AppStorage("settings.general.sizeType") var sizeType: String = "Real"
@AppStorage("settings.general.filesWarning") private var warning: Bool = false @AppStorage("settings.general.filesWarning") private var warning: Bool = false
@State private var showAlert = false @State private var showAlert = false
// @State private var showConditionBuilder = false
@Environment(\.colorScheme) var colorScheme @Environment(\.colorScheme) var colorScheme
@Binding var showPopover: Bool @Binding var showPopover: Bool
@Binding var search: String @Binding var search: String
@State private var elapsedTime = 0 @State private var elapsedTime = 0
@State private var timer: Timer? = nil @State private var timer: Timer? = nil
@State private var isShowingInspector = false
var body: some View { var body: some View {
@@ -292,18 +292,11 @@ struct FilesView: View {
Spacer() Spacer()
InfoButton(text: "Always double-check the files/folders marked for removal. In some rare cases, Pearcleaner may find some unrelated files when app names are too similar.", color: Color("mode").opacity(0.5), warning: true, edge: .top) InfoButton(text: "Always double-check the files/folders marked for removal. In some rare cases, Pearcleaner may find some unrelated files when app names are too similar.", color: Color("mode").opacity(0.5), warning: true, edge: .top)
.padding(.top) .padding(.top)
// Button("Builder") {
// appState.showConditionBuilder = true
// }
// .buttonStyle(SimpleButtonStyle(icon: "hammer.fill", help: "Condition Builder", size: 14))
// .padding(.top)
// .padding(.trailing, 5)
Button("\(sizeType == "Logical" ? totalSelectedSize.logical : sizeType == "Finder" ? totalSelectedSize.finder : totalSelectedSize.real)") { Button("\(sizeType == "Logical" ? totalSelectedSize.logical : sizeType == "Finder" ? totalSelectedSize.finder : totalSelectedSize.real)") {
Task { Task {