mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 12:52:21 +00:00
Using hacked refresh (which doesn't seem to work)
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
@interface MPDocumentController : NSDocumentController <NSOpenSavePanelDelegate>
|
@interface MPDocumentController : NSDocumentController
|
||||||
|
|
||||||
- (IBAction)toggleAllowAllFilesButton:(id)sender;
|
- (IBAction)toggleAllowAllFilesButton:(id)sender;
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
|
// Copyright (c) 2014 HicknHack Software GmbH. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
#import "MPDocumentController.h"
|
#import "MPDocumentController.h"
|
||||||
#import "MPConstants.h"
|
#import "MPConstants.h"
|
||||||
|
|
||||||
@@ -18,6 +19,7 @@
|
|||||||
|
|
||||||
@property (strong) IBOutlet NSView *accessoryView;
|
@property (strong) IBOutlet NSView *accessoryView;
|
||||||
@property (weak) NSOpenPanel *openPanel;
|
@property (weak) NSOpenPanel *openPanel;
|
||||||
|
@property (strong) id openPanelTableHack;
|
||||||
@property (assign) BOOL allowAllFiles;
|
@property (assign) BOOL allowAllFiles;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
@@ -40,7 +42,6 @@
|
|||||||
[myBundle loadNibNamed:@"OpenPanelAccessoryView" owner:self topLevelObjects:&topLevelObjects];
|
[myBundle loadNibNamed:@"OpenPanelAccessoryView" owner:self topLevelObjects:&topLevelObjects];
|
||||||
}
|
}
|
||||||
self.openPanel.accessoryView = self.accessoryView;
|
self.openPanel.accessoryView = self.accessoryView;
|
||||||
//self.openPanel.delegate = self;
|
|
||||||
[super beginOpenPanel:openPanel forTypes:inTypes completionHandler:completionHandler];
|
[super beginOpenPanel:openPanel forTypes:inTypes completionHandler:completionHandler];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,9 +49,7 @@
|
|||||||
NSButton *button = (NSButton *)sender;
|
NSButton *button = (NSButton *)sender;
|
||||||
self.allowAllFiles = HNHBoolForState(button.state);
|
self.allowAllFiles = HNHBoolForState(button.state);
|
||||||
self.openPanel.allowedFileTypes = self.allowAllFiles ? nil : @[MPLegacyDocumentUTI, MPXMLDocumentUTI];
|
self.openPanel.allowedFileTypes = self.allowAllFiles ? nil : @[MPLegacyDocumentUTI, MPXMLDocumentUTI];
|
||||||
self.openPanel.canChooseDirectories = self.allowAllFiles;
|
//[self _refreshOpenPanel];
|
||||||
self.openPanel.delegate = self.allowAllFiles ? self : nil;
|
|
||||||
[self.openPanel validateVisibleColumns];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)typeForContentsOfURL:(NSURL *)url error:(NSError *__autoreleasing *)outError {
|
- (NSString *)typeForContentsOfURL:(NSURL *)url error:(NSError *__autoreleasing *)outError {
|
||||||
@@ -61,12 +60,35 @@
|
|||||||
return [super typeForContentsOfURL:url error:outError];
|
return [super typeForContentsOfURL:url error:outError];
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma mark NSOpenSavePanelDelegate
|
/*
|
||||||
- (BOOL)panel:(id)sender shouldEnableURL:(NSURL *)url {
|
Hack is from http://stackoverflow.com/users/1564216/eidola at
|
||||||
if(self.allowAllFiles) {
|
http://stackoverflow.com/questions/18192986/nsopenpanel-doesnt-validatevisiblecolumns
|
||||||
return YES;
|
*/
|
||||||
|
#pragma mark NSOpenPanel Refresh Hack
|
||||||
|
- (id)_openPanelFindTable:(NSArray*)subviews; {
|
||||||
|
id table;
|
||||||
|
for(id view in subviews) {
|
||||||
|
if([[view className] isEqualToString: @"FI_TListView"]) {
|
||||||
|
table = view;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
table = [self _openPanelFindTable:[view subviews]];
|
||||||
|
if (table != nil) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return NO;
|
return table;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
- (void)_refreshOpenPanel {
|
||||||
|
if(self.openPanelTableHack == nil) {
|
||||||
|
self.openPanelTableHack = [self _openPanelFindTable:[[self.openPanel contentView] subviews]];
|
||||||
|
}
|
||||||
|
[_openPanelTableHack reloadData];
|
||||||
|
[_openPanel validateVisibleColumns];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Reference in New Issue
Block a user