mirror of
https://github.com/exituser/Pearcleaner.git
synced 2026-09-17 04:58:56 +00:00
v3.7.8
This commit is contained in:
@@ -588,8 +588,8 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APP_BUILD = 52;
|
||||
APP_VERSION = 3.7.7;
|
||||
APP_BUILD = 53;
|
||||
APP_VERSION = 3.7.8;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
@@ -658,8 +658,8 @@
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APP_BUILD = 52;
|
||||
APP_VERSION = 3.7.7;
|
||||
APP_BUILD = 53;
|
||||
APP_VERSION = 3.7.8;
|
||||
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
|
||||
@@ -22,14 +22,14 @@ class ThemeSettings: ObservableObject {
|
||||
|
||||
// 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)
|
||||
// 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() {
|
||||
// Initialize color from UserDefaults or use a default value
|
||||
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])
|
||||
} 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 {
|
||||
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 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)
|
||||
|
||||
switch preset {
|
||||
case "slate":
|
||||
return slate
|
||||
case "pearcleaner":
|
||||
return pearcleaner
|
||||
case "solarized":
|
||||
return solarized
|
||||
case "dracula":
|
||||
|
||||
@@ -191,16 +191,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
|
||||
|
||||
// Start observing the appearance change
|
||||
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")
|
||||
if themeMode == "Auto" {
|
||||
self?.appearanceCheck()
|
||||
}
|
||||
// let themeMode = UserDefaults.standard.string(forKey: "settings.general.selectedTheme")
|
||||
// if themeMode == "Auto" {
|
||||
// self?.appearanceCheck()
|
||||
// }
|
||||
self?.appearanceCheck(reset: true)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
func appearanceCheck() {
|
||||
func appearanceCheck(reset: Bool = false) {
|
||||
let dm = UserDefaults.standard.integer(forKey: "displayMode")
|
||||
var displayMode = DisplayMode(rawValue: dm)
|
||||
let dark = isDarkMode()
|
||||
@@ -212,10 +213,10 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSWindowDelegate {
|
||||
|
||||
UserDefaults.standard.set(displayMode?.rawValue, forKey: "displayMode")
|
||||
|
||||
// Customize dark mode color to use Slate by default
|
||||
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)
|
||||
// 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.saveThemeColor()
|
||||
// Reset theme when OS changes appearance
|
||||
if reset {
|
||||
ThemeSettings.shared.resetToDefault(dark: dark)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -155,14 +155,14 @@ struct AboutSettingsTab: View {
|
||||
|
||||
VStack(alignment: .leading){
|
||||
Text("Apple Developer Account Sponsor")
|
||||
Text("Many thanks to redditor u/dharsanb")
|
||||
Text("Many thanks to user DharsanB")
|
||||
.font(.callout)
|
||||
.foregroundStyle(Color("mode").opacity(0.5))
|
||||
|
||||
}
|
||||
Spacer()
|
||||
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"))
|
||||
|
||||
|
||||
@@ -126,9 +126,9 @@ struct InterfaceSettingsTab: View {
|
||||
|
||||
HStack(spacing: 10) {
|
||||
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("") {
|
||||
themeSettings.setPreset(preset: "dracula", colorScheme: displayMode)
|
||||
|
||||
@@ -20,12 +20,12 @@ struct FilesView: View {
|
||||
@AppStorage("settings.general.sizeType") var sizeType: String = "Real"
|
||||
@AppStorage("settings.general.filesWarning") private var warning: Bool = false
|
||||
@State private var showAlert = false
|
||||
// @State private var showConditionBuilder = false
|
||||
@Environment(\.colorScheme) var colorScheme
|
||||
@Binding var showPopover: Bool
|
||||
@Binding var search: String
|
||||
@State private var elapsedTime = 0
|
||||
@State private var timer: Timer? = nil
|
||||
@State private var isShowingInspector = false
|
||||
|
||||
var body: some View {
|
||||
|
||||
@@ -292,18 +292,11 @@ struct FilesView: View {
|
||||
|
||||
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)
|
||||
.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)") {
|
||||
Task {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user