This commit is contained in:
Alin
2023-12-20 15:02:31 -07:00
parent 85d1a87e9c
commit 9405e02ca0
8 changed files with 37 additions and 22 deletions
+16 -4
View File
@@ -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)")
+9 -12
View File
@@ -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 {
+2 -1
View File
@@ -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 {
+1
View File
@@ -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)
+1
View File
@@ -144,6 +144,7 @@ struct AppListView: View {
Spacer()
}
.frame(minWidth: 700, minHeight: 500)
.edgesIgnoringSafeArea(.all)
// .onOpenURL(perform: { url in
// let deeplinkManager = DeeplinkManager()
+3
View File
@@ -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)
+1 -1
View File
@@ -218,7 +218,7 @@ struct MiniAppView: View {
.scrollIndicators(.never)
}
// .padding(.vertical)
.padding(.bottom)
}