mirror of
https://github.com/exituser/Pearcleaner.git
synced 2026-09-17 08:29:07 +00:00
v2.1
This commit is contained in:
@@ -125,11 +125,23 @@ func getAppInfo(atPath path: URL) -> AppInfo? {
|
||||
return AppInfo(id: UUID(), path: path, bundleIdentifier: bundleIdentifier, appName: appName ?? "", appVersion: appVersion, appIcon: appIcon, webApp: webApp ?? false, wrapped: false)
|
||||
|
||||
} else {
|
||||
// print("One or more variables missing for app at path: \(path)")
|
||||
let wrapperURL = path.appendingPathComponent("Wrapper").appendingPathComponent(path.lastPathComponent)
|
||||
if let wrappedAppInfo = getWrappedAppInfo(atPath: wrapperURL) {
|
||||
return wrappedAppInfo
|
||||
let wrapperURL = path.appendingPathComponent("Wrapper")//.appendingPathComponent(path.lastPathComponent)
|
||||
do {
|
||||
let contents = try FileManager.default.contentsOfDirectory(at: wrapperURL, includingPropertiesForKeys: nil, options: [])
|
||||
let appFiles = contents.filter { $0.pathExtension == "app" }
|
||||
|
||||
if let firstAppFile = appFiles.first {
|
||||
let fullPath = wrapperURL.appendingPathComponent(firstAppFile.lastPathComponent)
|
||||
if let wrappedAppInfo = getWrappedAppInfo(atPath: fullPath) {
|
||||
return wrappedAppInfo
|
||||
}
|
||||
} else {
|
||||
print("No .app files found in the 'Wrapper' directory.")
|
||||
}
|
||||
} catch {
|
||||
print("Error reading contents of 'Wrapper' directory: \(error.localizedDescription)")
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
print("Bundle not found at path: \(path)")
|
||||
|
||||
@@ -23,15 +23,15 @@ struct PearcleanerApp: App {
|
||||
|
||||
var body: some Scene {
|
||||
|
||||
|
||||
|
||||
WindowGroup {
|
||||
Group {
|
||||
|
||||
if !mini {
|
||||
AppListView(search: $search, showPopover: $showPopover)
|
||||
.frame(minWidth: 800, minHeight: 500)
|
||||
} else {
|
||||
MiniMode(search: $search, showPopover: $showPopover)
|
||||
.frame(minWidth: 300, minHeight: 300)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -49,22 +49,15 @@ struct PearcleanerApp: App {
|
||||
if let data = data as? Data, let url = URL(dataRepresentation: data, relativeTo: nil) {
|
||||
let deeplinkManager = DeeplinkManager()
|
||||
deeplinkManager.manage(url: url, appState: appState)
|
||||
// // Check if the file URL has a ".app" extension
|
||||
// if url.pathExtension.lowercased() == "app" {
|
||||
// // Handle the dropped file URL here
|
||||
// print("Dropped .app file URL: \(url)")
|
||||
// } else {
|
||||
// // Print a message for non-.app files
|
||||
// print("Unsupported file type. Only .app files are accepted.")
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
.onAppear {
|
||||
// Disable tabbing
|
||||
NSWindow.allowsAutomaticWindowTabbing = false
|
||||
|
||||
|
||||
// Get Apps
|
||||
let sortedApps = getSortedApps()
|
||||
appState.sortedApps.userApps = sortedApps.userApps
|
||||
@@ -112,7 +105,7 @@ struct PearcleanerApp: App {
|
||||
CommandGroup(replacing: .newItem, addition: { })
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Settings {
|
||||
SettingsView()
|
||||
@@ -128,7 +121,11 @@ struct PearcleanerApp: App {
|
||||
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool {
|
||||
#if DEBUG
|
||||
return true
|
||||
#else
|
||||
return false
|
||||
#endif
|
||||
}
|
||||
// func application(_ sender: NSApplication, open urls: [URL]) {
|
||||
// for url in urls {
|
||||
|
||||
@@ -97,10 +97,11 @@ struct GeneralSettingsTab: View {
|
||||
})
|
||||
.toggleStyle(.switch)
|
||||
.onChange(of: mini) { newVal in
|
||||
resizeWindow(width: 300, height: 300)
|
||||
if mini {
|
||||
resizeWindow(width: 300, height: 300)
|
||||
appState.currentView = .empty
|
||||
} else {
|
||||
resizeWindow(width: 700, height: 500)
|
||||
if appState.appInfo.appName.isEmpty {
|
||||
appState.currentView = .empty
|
||||
} else {
|
||||
|
||||
@@ -30,6 +30,7 @@ struct AppListItems: View {
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fit)
|
||||
.frame(width: 30, height: 30)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 8))
|
||||
}
|
||||
VStack(alignment: .leading, spacing: 5) {
|
||||
Text(appInfo.appName)
|
||||
|
||||
@@ -144,6 +144,7 @@ struct AppListView: View {
|
||||
|
||||
Spacer()
|
||||
}
|
||||
.frame(minWidth: 700, minHeight: 500)
|
||||
.edgesIgnoringSafeArea(.all)
|
||||
// .onOpenURL(perform: { url in
|
||||
// let deeplinkManager = DeeplinkManager()
|
||||
|
||||
@@ -41,6 +41,7 @@ struct FilesView: View {
|
||||
.scaledToFit()
|
||||
// .aspectRatio(contentMode: .fit)
|
||||
.frame(width: 50, height: 50)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 8))
|
||||
.padding(.leading)
|
||||
}
|
||||
//app title, size and items
|
||||
@@ -310,6 +311,8 @@ struct FileDetailsItem: View {
|
||||
.resizable()
|
||||
.aspectRatio(contentMode: .fit)
|
||||
.frame(width: 30, height: 30)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 8))
|
||||
|
||||
}
|
||||
VStack(alignment: .leading, spacing: 5) {
|
||||
Text(path.lastPathComponent)
|
||||
|
||||
@@ -218,7 +218,7 @@ struct MiniAppView: View {
|
||||
.scrollIndicators(.never)
|
||||
|
||||
}
|
||||
// .padding(.vertical)
|
||||
.padding(.bottom)
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user