From 7f9591052889c7af4aa9cac8a1a3b64b09873282 Mon Sep 17 00:00:00 2001 From: redstrate Date: Sun, 9 May 2021 21:44:04 -0400 Subject: [PATCH] Add timelapse viewing functionality --- ProcreateViewer.xcodeproj/project.pbxproj | 4 ++ ProcreateViewer/AppDelegate.swift | 7 +- ProcreateViewer/Base.lproj/Main.storyboard | 71 +++++++++++++++++-- ProcreateViewer/TimelapseViewController.swift | 37 ++++++++++ ProcreateViewer/ViewController.swift | 2 + Shared/Shared.swift | 2 + 6 files changed, 118 insertions(+), 5 deletions(-) create mode 100644 ProcreateViewer/TimelapseViewController.swift diff --git a/ProcreateViewer.xcodeproj/project.pbxproj b/ProcreateViewer.xcodeproj/project.pbxproj index e0da1c2..eba8436 100644 --- a/ProcreateViewer.xcodeproj/project.pbxproj +++ b/ProcreateViewer.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ 030F700E2415C6B500A43F01 /* PreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 030F700D2415C6B500A43F01 /* PreviewViewController.swift */; }; 030F70112415C6B500A43F01 /* PreviewViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 030F700F2415C6B500A43F01 /* PreviewViewController.xib */; }; 030F70162415C6B500A43F01 /* QuickLook.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 030F70082415C6B500A43F01 /* QuickLook.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 033F94F92648B8E200099FB7 /* TimelapseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 033F94F82648B8E200099FB7 /* TimelapseViewController.swift */; }; 036AFBB8241687680075400A /* ZIPFoundation in Frameworks */ = {isa = PBXBuildFile; productRef = 036AFBB7241687680075400A /* ZIPFoundation */; }; 036AFBBA24168C030075400A /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 036AFBB924168C030075400A /* ViewController.swift */; }; 036AFBE32417F0A00075400A /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 036AFBE12417F0A00075400A /* Main.storyboard */; }; @@ -87,6 +88,7 @@ 030F70102415C6B500A43F01 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PreviewViewController.xib; sourceTree = ""; }; 030F70122415C6B500A43F01 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 030F70132415C6B500A43F01 /* Quicklook.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Quicklook.entitlements; sourceTree = ""; }; + 033F94F82648B8E200099FB7 /* TimelapseViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelapseViewController.swift; sourceTree = ""; }; 036AFBB924168C030075400A /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 036AFBE22417F0A00075400A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 036AFC0B241800350075400A /* Thumbnail.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Thumbnail.appex; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -181,6 +183,7 @@ 037B4041241821D200392452 /* InfoViewController.swift */, 03CB382324191F620078B3E5 /* cbridge.c */, 03CB382224191F610078B3E5 /* ProcreateViewer-Bridging-Header.h */, + 033F94F82648B8E200099FB7 /* TimelapseViewController.swift */, ); path = ProcreateViewer; sourceTree = ""; @@ -413,6 +416,7 @@ buildActionMask = 2147483647; files = ( 03CB3840241A5AED0078B3E5 /* Shared.swift in Sources */, + 033F94F92648B8E200099FB7 /* TimelapseViewController.swift in Sources */, 036AFBBA24168C030075400A /* ViewController.swift in Sources */, 03CB382424191F620078B3E5 /* cbridge.c in Sources */, 030F6FF42415C5E300A43F01 /* Document.swift in Sources */, diff --git a/ProcreateViewer/AppDelegate.swift b/ProcreateViewer/AppDelegate.swift index e090107..7519fca 100644 --- a/ProcreateViewer/AppDelegate.swift +++ b/ProcreateViewer/AppDelegate.swift @@ -6,8 +6,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserInterfaceValidations { NSApplication.shared.keyWindow?.contentViewController?.performSegue(withIdentifier: "showInfo", sender: self) } + @IBAction func showTimelapseAction(_ sender: Any) { + NSApplication.shared.keyWindow?.contentViewController?.performSegue(withIdentifier: "showTimelapse", sender: self) + } + func validateUserInterfaceItem(_ item: NSValidatedUserInterfaceItem) -> Bool { - if(item.tag == 67) { + // Show timelapse and show info buttons + if(item.tag == 67 || item.tag == 68) { return NSApplication.shared.keyWindow != nil } diff --git a/ProcreateViewer/Base.lproj/Main.storyboard b/ProcreateViewer/Base.lproj/Main.storyboard index cb2424d..38263a0 100644 --- a/ProcreateViewer/Base.lproj/Main.storyboard +++ b/ProcreateViewer/Base.lproj/Main.storyboard @@ -1,7 +1,9 @@ - + - + + + @@ -96,6 +98,12 @@ + + + + + + @@ -184,7 +192,7 @@ Dk51bWJlciBvZiBMYXllcnM6A