Skip to content

Commit

Permalink
Merge pull request #2061 from quicksilver/t/fix-2060
Browse files Browse the repository at this point in the history
Move pasteboard "hidden" UTI filtering into class methods
  • Loading branch information
skurfer committed May 27, 2015
2 parents 85b2220 + 3cc6f9d commit 1171552
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
1 change: 0 additions & 1 deletion Quicksilver/Code-App/QSController.m
Original file line number Diff line number Diff line change
Expand Up @@ -499,7 +499,6 @@ - (void)startDropletConnection {

- (void)handlePasteboardDrop:(NSPasteboard *)pb commandPath:(NSString *)path {
QSObject *drop = [QSObject objectWithPasteboard:pb];
NSLog(@"got droplet item");
[self setDropletProxy:drop];
[self executeCommandAtPath:path];
[self setDropletProxy:nil];
Expand Down
4 changes: 3 additions & 1 deletion Quicksilver/Code-QuickStepCore/QSObject_Pasteboard.m
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,9 @@ @implementation QSObject (Pasteboard)
+ (id)objectWithPasteboard:(NSPasteboard *)pasteboard {
id theObject = nil;

if ([pasteboard isTransient] || [pasteboard isAutoGenerated])
if ([NSPasteboard isPasteboardTransient:pasteboard]
|| [NSPasteboard isPasteboardAutoGenerated:pasteboard]
|| [NSPasteboard isPasteboardConcealed:pasteboard])
return nil;

if ([[pasteboard types] containsObject:QSPasteboardObjectIdentifier])
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,23 @@

extern NSString *QSPasteboardTransientType;
extern NSString *QSPasteboardAutoGeneratedType;
extern NSString *QSPasteboardConcealedType;

#define QSPasteboardTransientTypes @[QSPasteboardTransientType, @"QSPrivatePboardType", \
@"de.petermaurer.TransientPasteboardType", @"com.typeit4me.clipping", @"Pasteboard generator type", @"com.agilebits.onepassword"]

#define QSPasteboardAutoGeneratedTypes @[QSPasteboardAutoGeneratedType]

#define QSPasteboardConcealedTypes @[QSPasteboardConcealedType, @"com.agilebits.onepassword"]

void QSForcePaste();

@interface NSPasteboard (Clippings)
+ (NSPasteboard *)pasteboardByFilteringClipping:(NSString *)pacg;
- (BOOL)isTransient;
- (BOOL)isAutoGenerated;
// We cannot use instance methods because we might get passed a proxy through NSConnection
+ (BOOL)isPasteboardTransient:(NSPasteboard *)pasteboard;
+ (BOOL)isPasteboardAutoGenerated:(NSPasteboard *)pasteboard;
+ (BOOL)isPasteboardConcealed:(NSPasteboard *)pasteboard;
@end

#define QSPrivatePboardType QSPasteboardTransientType // Deprecated, use QSPasteboardTransientType or -[NSPasteboard isTransient]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

NSString *QSPasteboardTransientType = @"org.nspasteboard.TransientType";
NSString *QSPasteboardAutoGeneratedType = @"org.nspasteboard.AutoGeneratedType";
NSString *QSPasteboardConcealedType = @"org.nspasteboard.ConcealedType";

void QSForcePaste() {
CGKeyCode pasteKeyCode = [[NDKeyboardLayout keyboardLayout] keyCodeForCharacter:'v'];
Expand Down Expand Up @@ -67,11 +68,15 @@ + (NSPasteboard *)pasteboardByFilteringClipping:(NSString *)path { // Not thread
return [NSPasteboard pasteboardByFilteringTypesInPasteboard:pboard];
}

- (BOOL)isTransient {
return [self availableTypeFromArray:QSPasteboardTransientTypes] != nil;
+ (BOOL)isPasteboardTransient:(NSPasteboard *)pasteboard {
return [pasteboard availableTypeFromArray:QSPasteboardTransientTypes] != nil;
}

- (BOOL)isAutoGenerated {
return [self availableTypeFromArray:[NSArray arrayWithObject:QSPasteboardAutoGeneratedType]] != nil;
+ (BOOL)isPasteboardAutoGenerated:(NSPasteboard *)pasteboard {
return [pasteboard availableTypeFromArray:QSPasteboardAutoGeneratedTypes] != nil;
}

+ (BOOL)isPasteboardConcealed:(NSPasteboard *)pasteboard {
return [pasteboard availableTypeFromArray:QSPasteboardConcealedTypes] != nil;
}
@end

0 comments on commit 1171552

Please sign in to comment.