Revision: 28160
http://sourceforge.net/p/bibdesk/svn/28160
Author: hofman
Date: 2023-01-02 15:42:17 +0000 (Mon, 02 Jan 2023)
Log Message:
-----------
Backup implementation for action to change the save format in case this is
changed by the system
Modified Paths:
--------------
trunk/bibdesk/BDSKSaveAccessoryViewController.h
trunk/bibdesk/BDSKSaveAccessoryViewController.m
trunk/bibdesk/BibDocument.m
Modified: trunk/bibdesk/BDSKSaveAccessoryViewController.h
===================================================================
--- trunk/bibdesk/BDSKSaveAccessoryViewController.h 2023-01-02 15:20:46 UTC
(rev 28159)
+++ trunk/bibdesk/BDSKSaveAccessoryViewController.h 2023-01-02 15:42:17 UTC
(rev 28160)
@@ -45,6 +45,7 @@
NSButton *exportSelectionCheckButton;
NSTextField *formatLabelField;
NSTextField *encodingLabelField;
+ NSString *lastSelectedFileType;
}
@property (nonatomic, assign) IBOutlet BDSKEncodingPopUpButton
*saveTextEncodingPopupButton;
@@ -61,5 +62,6 @@
@property (nonatomic) BOOL exportSelection;
@property (nonatomic, getter=isSaveTextEncodingPopupButtonEnabled) BOOL
saveTextEncodingPopupButtonEnabled;
@property (nonatomic, getter=isExportSelectionCheckButtonEnabled) BOOL
exportSelectionCheckButtonEnabled;
+@property (nonatomic, retain) NSString *lastSelectedFileType;
@end
Modified: trunk/bibdesk/BDSKSaveAccessoryViewController.m
===================================================================
--- trunk/bibdesk/BDSKSaveAccessoryViewController.m 2023-01-02 15:20:46 UTC
(rev 28159)
+++ trunk/bibdesk/BDSKSaveAccessoryViewController.m 2023-01-02 15:42:17 UTC
(rev 28160)
@@ -43,7 +43,7 @@
@implementation BDSKSaveAccessoryViewController
-@synthesize saveTextEncodingPopupButton, exportSelectionCheckButton,
formatLabelField, encodingLabelField;
+@synthesize saveTextEncodingPopupButton, exportSelectionCheckButton,
formatLabelField, encodingLabelField, lastSelectedFileType;
@dynamic saveAccessoryView, exportAccessoryView, saveTextEncoding,
exportSelection,saveTextEncodingPopupButtonEnabled,
exportSelectionCheckButtonEnabled;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle
*)nibBundleOrNil {
@@ -55,6 +55,11 @@
return self;
}
+- (void)dealloc {
+ BDSKDESTROY(lastSelectedFileType);
+ [super dealloc];
+}
+
- (NSView *)saveAccessoryView {
[formatLabelField removeFromSuperview];
[exportSelectionCheckButton removeFromSuperview];
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2023-01-02 15:20:46 UTC (rev 28159)
+++ trunk/bibdesk/BibDocument.m 2023-01-02 15:42:17 UTC (rev 28160)
@@ -1061,6 +1061,16 @@
return nil;
}
+- (void)fallbackChangeSaveType:(id)sender{
+ NSString *type = [[sender selectedItem] representedObject];
+ [(NSSavePanel *)[sender window] setAllowedFileTypes:[NSArray
arrayWithObjects:[self fileNameExtensionForType:type
saveOperation:NSSaveToOperation], nil]];
+ [saveAccessoryController setLastSelectedFileType:type];
+}
+
+- (NSString *)fileTypeFromLastRunSavePanel {
+ return [saveAccessoryController lastSelectedFileType] ?: [super
fileTypeFromLastRunSavePanel];
+}
+
// if the user is saving in one of our plain text formats, give them an
encoding option as well
// this also requires overriding
saveToURL:ofType:forSaveOperation:delegate:didSaveSelector:contextInfo:
// to set the document's encoding before after to the file
@@ -1086,8 +1096,12 @@
}
[saveAccessoryController
addSaveFormatPopUpButton:saveFormatPopupButton];
[savePanel setAccessoryView:[saveAccessoryController
exportAccessoryView]];
- if (createPopup && [NSDocument
instancesRespondToSelector:@selector(changeSaveType:)])
- [super changeSaveType:saveFormatPopupButton];
+ if (createPopup) {
+ if ([NSDocument
instancesRespondToSelector:@selector(changeSaveType:)])
+ [super changeSaveType:saveFormatPopupButton];
+ else
+ [self fallbackChangeSaveType:saveFormatPopupButton];
+ }
}else{
[savePanel setAccessoryView:[saveAccessoryController
saveAccessoryView]];
}
@@ -1111,6 +1125,8 @@
- (void)changeSaveType:(id)sender{
if ([NSDocument instancesRespondToSelector:@selector(changeSaveType:)])
[super changeSaveType:sender];
+ else
+ [self fallbackChangeSaveType:sender];
[saveAccessoryController setSaveTextEncodingPopupButtonEnabled:[self
needsEncodingForType:[self fileTypeFromLastRunSavePanel]]];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit