Moving file preview code to a separate file

This commit is contained in:
Roy Marmelstein
2016-02-13 22:25:33 +01:00
parent 764c84c71c
commit 0ccd2b0e90
4 changed files with 54 additions and 38 deletions
+4
View File
@@ -17,6 +17,7 @@
3437407C1C6E8D7F0090FD6A /* pdf@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 3437407B1C6E8D7F0090FD6A /* pdf@2x.png */; };
3439AB681C6F203A0058AF04 /* FileParser.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3439AB671C6F203A0058AF04 /* FileParser.swift */; };
3439AB6A1C6FC6D90058AF04 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3439AB691C6FC6D90058AF04 /* QuickLook.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
3439AB6C1C6FD6650058AF04 /* FilePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3439AB6B1C6FD6650058AF04 /* FilePreview.swift */; };
344169581C67812400B93D28 /* FileBrowser.h in Headers */ = {isa = PBXBuildFile; fileRef = 344169571C67812400B93D28 /* FileBrowser.h */; settings = {ATTRIBUTES = (Public, ); }; };
3441695F1C67812400B93D28 /* FileBrowser.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 344169541C67812400B93D28 /* FileBrowser.framework */; };
344169641C67812400B93D28 /* FileBrowserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 344169631C67812400B93D28 /* FileBrowserTests.swift */; };
@@ -43,6 +44,7 @@
3437407B1C6E8D7F0090FD6A /* pdf@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pdf@2x.png"; sourceTree = "<group>"; };
3439AB671C6F203A0058AF04 /* FileParser.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileParser.swift; sourceTree = "<group>"; };
3439AB691C6FC6D90058AF04 /* QuickLook.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickLook.framework; path = System/Library/Frameworks/QuickLook.framework; sourceTree = SDKROOT; };
3439AB6B1C6FD6650058AF04 /* FilePreview.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FilePreview.swift; sourceTree = "<group>"; };
344169541C67812400B93D28 /* FileBrowser.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FileBrowser.framework; sourceTree = BUILT_PRODUCTS_DIR; };
344169571C67812400B93D28 /* FileBrowser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileBrowser.h; sourceTree = "<group>"; };
344169591C67812400B93D28 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -108,6 +110,7 @@
children = (
344169571C67812400B93D28 /* FileBrowser.h */,
3437405A1C6E7DA50090FD6A /* FileBrowser.swift */,
3439AB6B1C6FD6650058AF04 /* FilePreview.swift */,
3439AB671C6F203A0058AF04 /* FileParser.swift */,
3439AB691C6FC6D90058AF04 /* QuickLook.framework */,
3437406E1C6E888F0090FD6A /* Resources */,
@@ -242,6 +245,7 @@
files = (
3439AB681C6F203A0058AF04 /* FileParser.swift in Sources */,
3437405B1C6E7DA50090FD6A /* FileBrowser.swift in Sources */,
3439AB6C1C6FD6650058AF04 /* FilePreview.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
+3 -38
View File
@@ -18,7 +18,7 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe
let parser = FileParser()
let quickLookManager = QuickLookManager()
let previewManager = PreviewManager()
let bundle = NSBundle(forClass: FileBrowser.self)
@@ -194,8 +194,8 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe
}
else {
let quickLook = QLPreviewController()
quickLookManager.filePath = file.filePath
quickLook.dataSource = quickLookManager
previewManager.filePath = file.filePath
quickLook.dataSource = previewManager
self.navigationController?.pushViewController(quickLook, animated: true)
}
updateSelection()
@@ -211,41 +211,6 @@ public class FileBrowser: UIViewController, UITableViewDataSource, UITableViewDe
})
tableView.reloadData()
}
//MARK: Search bar delegate
}
class QuickLookManager: NSObject, QLPreviewControllerDataSource {
var filePath: NSURL?
func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int {
return 1
}
func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem {
let item = PreviewItem()
if let filePath = filePath {
item.filePath = filePath
}
return item
}
}
class PreviewItem: NSObject, QLPreviewItem {
var filePath: NSURL?
internal var previewItemURL: NSURL {
if let filePath = filePath {
return filePath
}
return NSURL()
}
internal var previewItemTitle: String?
}
+4
View File
@@ -12,6 +12,10 @@ public class FileParser {
let fileManager = NSFileManager.defaultManager()
func applicationURL() -> NSURL {
return fileManager.URLsForDirectory(.LibraryDirectory, inDomains: .UserDomainMask)[0] as NSURL
}
func documentsURL() -> NSURL {
return fileManager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)[0] as NSURL
}
+43
View File
@@ -0,0 +1,43 @@
//
// FilePreview.swift
// FileBrowser
//
// Created by Roy Marmelstein on 13/02/2016.
// Copyright © 2016 Roy Marmelstein. All rights reserved.
//
import Foundation
import QuickLook
class PreviewManager: NSObject, QLPreviewControllerDataSource {
var filePath: NSURL?
func numberOfPreviewItemsInPreviewController(controller: QLPreviewController) -> Int {
return 1
}
func previewController(controller: QLPreviewController, previewItemAtIndex index: Int) -> QLPreviewItem {
let item = PreviewItem()
if let filePath = filePath {
item.filePath = filePath
}
return item
}
}
class PreviewItem: NSObject, QLPreviewItem {
var filePath: NSURL?
internal var previewItemURL: NSURL {
if let filePath = filePath {
return filePath
}
return NSURL()
}
internal var previewItemTitle: String?
}