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

Reply via email to