From 6ff00b7819e6c34a703cee4f483678248f4fa1bc Mon Sep 17 00:00:00 2001 From: michael starke Date: Wed, 19 Mar 2014 01:56:39 +0100 Subject: [PATCH] Testing QuickLook --- MacPass.xcodeproj/project.pbxproj | 4 +++ MacPass/Base.lproj/MainMenu.xib | 6 ++--- MacPass/MPDocument+Search.m | 3 ++- MacPass/MPDocumentWindowController.h | 3 ++- MacPass/MPDocumentWindowController.m | 40 +++++++++++++++++++++++----- 5 files changed, 44 insertions(+), 12 deletions(-) diff --git a/MacPass.xcodeproj/project.pbxproj b/MacPass.xcodeproj/project.pbxproj index 28f13685..fe100822 100644 --- a/MacPass.xcodeproj/project.pbxproj +++ b/MacPass.xcodeproj/project.pbxproj @@ -245,6 +245,7 @@ 4CC6DB7A17D23719002C6091 /* KPKNode+IconImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6DB7917D23719002C6091 /* KPKNode+IconImage.m */; }; 4CC6DB7D17D23DCE002C6091 /* KPKUTIs.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC6DB7C17D23DCE002C6091 /* KPKUTIs.m */; }; 4CC7EA1B17807E7E0089D4F3 /* HNHRoundedTextFieldCellHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CC7EA1A17807E7E0089D4F3 /* HNHRoundedTextFieldCellHelper.m */; }; + 4CCA8E9B18D91ED9001A6754 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4CCA8E9A18D91ED9001A6754 /* Quartz.framework */; }; 4CCEDE2A179F203B008402BE /* MPOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEDE29179F203B008402BE /* MPOutlineView.m */; }; 4CCEDE2E179F213B008402BE /* MPNotifications.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEDE2D179F213B008402BE /* MPNotifications.m */; }; 4CCEDE32179F5B6C008402BE /* KPKDataStreamReader.m in Sources */ = {isa = PBXBuildFile; fileRef = 4CCEDE31179F5B6C008402BE /* KPKDataStreamReader.m */; }; @@ -791,6 +792,7 @@ 4CC7EA1A17807E7E0089D4F3 /* HNHRoundedTextFieldCellHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HNHRoundedTextFieldCellHelper.m; sourceTree = ""; }; 4CCA7EEC1797866F00B0B55E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/GeneralSettings.strings; sourceTree = ""; }; 4CCA7EEE1797867200B0B55E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/GeneralSettings.strings; sourceTree = ""; }; + 4CCA8E9A18D91ED9001A6754 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; 4CCEDE28179F203B008402BE /* MPOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPOutlineView.h; sourceTree = ""; }; 4CCEDE29179F203B008402BE /* MPOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPOutlineView.m; sourceTree = ""; }; 4CCEDE2C179F2122008402BE /* MPNotifications.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MPNotifications.h; sourceTree = ""; }; @@ -911,6 +913,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 4CCA8E9B18D91ED9001A6754 /* Quartz.framework in Frameworks */, 4CC5D36418A1162D00AF7FA8 /* Sparkle.framework in Frameworks */, 4C00E33B17D8FAC100F37192 /* Carbon.framework in Frameworks */, 4CAD748E15B88AC100104512 /* libz.dylib in Frameworks */, @@ -1430,6 +1433,7 @@ 4C77E36515B84A240093A587 /* Frameworks */ = { isa = PBXGroup; children = ( + 4CCA8E9A18D91ED9001A6754 /* Quartz.framework */, 4C473A8518AFD7250073FD2E /* XCTest.framework */, 4CAD748D15B88AC100104512 /* libz.dylib */, 4C00E33A17D8FAC100F37192 /* Carbon.framework */, diff --git a/MacPass/Base.lproj/MainMenu.xib b/MacPass/Base.lproj/MainMenu.xib index e51d6638..40048b00 100644 --- a/MacPass/Base.lproj/MainMenu.xib +++ b/MacPass/Base.lproj/MainMenu.xib @@ -1,8 +1,8 @@ - + - + @@ -305,4 +305,4 @@ - \ No newline at end of file + diff --git a/MacPass/MPDocument+Search.m b/MacPass/MPDocument+Search.m index 26c06554..cb9460ee 100644 --- a/MacPass/MPDocument+Search.m +++ b/MacPass/MPDocument+Search.m @@ -69,7 +69,8 @@ NSString *const kMPDocumentSearchResultsKey = @"kMPDocumentSearchResul MPEntrySearchFlags toggleFlag = [sender tag]; MPEntrySearchFlags newFlags = MPEntrySearchNone; BOOL isDoublePasswordFlag = (toggleFlag == MPEntrySearchDoublePasswords); - switch([sender state]) { + NSButton *button = sender; + switch([button state]) { case NSOffState: toggleFlag ^= MPEntrySearchAllFlags; newFlags = isDoublePasswordFlag ? oldFlags : (self.activeFlags & toggleFlag); diff --git a/MacPass/MPDocumentWindowController.h b/MacPass/MPDocumentWindowController.h index 0fecb78f..3cd5df47 100644 --- a/MacPass/MPDocumentWindowController.h +++ b/MacPass/MPDocumentWindowController.h @@ -7,6 +7,7 @@ // #import +#import #import "MPPasswordEditWindowController.h" @class MPViewController; @@ -16,7 +17,7 @@ @class MPOutlineViewController; @class MPToolbarDelegate; -@interface MPDocumentWindowController : NSWindowController +@interface MPDocumentWindowController : NSWindowController @property (readonly, strong) MPPasswordInputController *passwordInputController; @property (readonly, strong) MPEntryViewController *entryViewController; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index e4b9a0df..92436401 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -51,6 +51,8 @@ typedef void (^MPPasswordChangedBlock)(void); @property (nonatomic, copy) MPPasswordChangedBlock passwordChangedBlock; +@property (strong) QLPreviewPanel *previewPanel; + @end @implementation MPDocumentWindowController @@ -437,14 +439,38 @@ typedef void (^MPPasswordChangedBlock)(void); } -- (NSSearchField *)locateToolbarSearchField { - for(NSToolbarItem *toolbarItem in [[self.window toolbar] items]) { - NSView *view = [toolbarItem view]; - if([view isKindOfClass:[NSSearchField class]]) { - return (NSSearchField *)view; - } +- (void)toggleQuicklookPreview:(id)sender { + if([QLPreviewPanel sharedPreviewPanelExists] && [[QLPreviewPanel sharedPreviewPanel] isVisible]) { + [[QLPreviewPanel sharedPreviewPanel] orderOut:sender]; } - return nil; + else { + [[QLPreviewPanel sharedPreviewPanel] makeKeyAndOrderFront:sender]; + } +} + +#pragma mark - +#pragma mark QLPreviewDelegate +- (BOOL)acceptsPreviewPanelControl:(QLPreviewPanel *)panel { + return YES; +} +- (void)beginPreviewPanelControl:(QLPreviewPanel *)panel { + self.previewPanel = panel; + [self.previewPanel setDataSource:self]; +} + +- (void)endPreviewPanelControl:(QLPreviewPanel *)panel { + self.previewPanel = nil; +} + +#pragma mark - +#pragma mark QLPreviewDataSource + +- (NSInteger)numberOfPreviewItemsInPreviewPanel:(QLPreviewPanel *)panel { + return (self.previewPanel == panel ? 1 : 0); +} + +- (id)previewPanel:(QLPreviewPanel *)panel previewItemAtIndex:(NSInteger)index { + return [[NSURL alloc] initWithString:@"file:///test.txt"]; } @end