Revision: 29279
http://sourceforge.net/p/bibdesk/svn/29279
Author: hofman
Date: 2025-07-15 09:28:35 +0000 (Tue, 15 Jul 2025)
Log Message:
-----------
hook to decide whether sheet can be dismissed, commits edits by default when
NSEditor is implemented.
Modified Paths:
--------------
trunk/bibdesk/BDSKCharacterConversion.m
trunk/bibdesk/BDSKDocumentInfoWindowController.m
trunk/bibdesk/BDSKFieldSheetController.m
trunk/bibdesk/BDSKFilterController.m
trunk/bibdesk/BDSKScriptGroupSheetController.m
trunk/bibdesk/BDSKSearchGroupSheetController.m
trunk/bibdesk/BDSKTextImportController.m
trunk/bibdesk/BDSKURLGroupSheetController.m
trunk/bibdesk/NSWindowController_BDSKExtensions.h
trunk/bibdesk/NSWindowController_BDSKExtensions.m
Modified: trunk/bibdesk/BDSKCharacterConversion.m
===================================================================
--- trunk/bibdesk/BDSKCharacterConversion.m 2025-07-14 16:00:07 UTC (rev
29278)
+++ trunk/bibdesk/BDSKCharacterConversion.m 2025-07-15 09:28:35 UTC (rev
29279)
@@ -167,22 +167,18 @@
#pragma mark Actions
-- (IBAction)dismiss:(id)sender {
+- (BOOL)shouldDismissSheetWithResult:(NSModalResponse)result {
// commit edit before saving
- if ([sender tag] == NSModalResponseCancel) {
- [self discardEditing];
- } else if (NO == [self commitEditing]) {
- NSBeep();
- return;
- }
+ if ([super shouldDismissSheetWithResult:result] == NO)
+ return NO;
- if ([sender tag] == NSModalResponseOK) {
+ if (result == NSModalResponseOK) {
if (!validRoman || !validTex) {
NSAlert *alert = [[NSAlert alloc] init];
[alert setMessageText:NSLocalizedString(@"Invalid Conversion",
@"Message in alert dialog when entering invalid TeX conversion")];
[alert setInformativeText:NSLocalizedString(@"The last item you
entered is invalid or a duplicate. Please first edit it.", @"Informative text
in alert dialog")];
[alert beginSheetModalForWindow:[self window]
completionHandler:NULL];
- return;
+ return NO;
}
NSError *error = nil;
@@ -214,7 +210,7 @@
[tableView reloadData];
}
- [super dismiss:sender];
+ return YES;
}
- (IBAction)changeList:(id)sender {
Modified: trunk/bibdesk/BDSKDocumentInfoWindowController.m
===================================================================
--- trunk/bibdesk/BDSKDocumentInfoWindowController.m 2025-07-14 16:00:07 UTC
(rev 29278)
+++ trunk/bibdesk/BDSKDocumentInfoWindowController.m 2025-07-15 09:28:35 UTC
(rev 29279)
@@ -109,17 +109,6 @@
#pragma mark Button actions
-- (IBAction)dismiss:(id)sender{
- if ([sender tag] == NSModalResponseCancel) {
- [self discardEditing];
- } else if (NO == [self commitEditing]) {
- NSBeep();
- return;
- }
-
- [super dismiss:sender];
-}
-
- (IBAction)addRemoveKey:(id)sender{
if ([sender selectedSegment] == 0) { // add
Modified: trunk/bibdesk/BDSKFieldSheetController.m
===================================================================
--- trunk/bibdesk/BDSKFieldSheetController.m 2025-07-14 16:00:07 UTC (rev
29278)
+++ trunk/bibdesk/BDSKFieldSheetController.m 2025-07-15 09:28:35 UTC (rev
29279)
@@ -117,10 +117,8 @@
[super beginSheetModalForWindow:window completionHandler:handler];
}
-- (IBAction)dismiss:(id)sender {
- if ([sender tag] == NSModalResponseCancel || choosableFields == nil ||
([objectController commitEditing] && [NSString isEmptyString:[self
chosenField]] == NO)) {
- [super dismiss:sender];
- }
+- (BOOL)shouldDissmissSheetWithResult:(NSModalResponse)result {
+ return (result == NSModalResponseCancel || choosableFields == nil ||
([objectController commitEditing] && [NSString isEmptyString:[self
chosenField]] == NO));
}
- (void)didDismissSheet {
Modified: trunk/bibdesk/BDSKFilterController.m
===================================================================
--- trunk/bibdesk/BDSKFilterController.m 2025-07-14 16:00:07 UTC (rev
29278)
+++ trunk/bibdesk/BDSKFilterController.m 2025-07-15 09:28:35 UTC (rev
29279)
@@ -110,14 +110,6 @@
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleScrollerStyleChanged:)
name:NSPreferredScrollerStyleDidChangeNotification object:nil];
}
-- (IBAction)dismiss:(id)sender {
- if ([sender tag] == NSModalResponseOK && [self commitEditing] == NO) {
- NSBeep();
- } else {
- [super dismiss:sender];
- }
-}
-
- (void)didDismissSheet {
[conditionControllers setValue:nil forKey:@"filterController"];
}
Modified: trunk/bibdesk/BDSKScriptGroupSheetController.m
===================================================================
--- trunk/bibdesk/BDSKScriptGroupSheetController.m 2025-07-14 16:00:07 UTC
(rev 29278)
+++ trunk/bibdesk/BDSKScriptGroupSheetController.m 2025-07-15 09:28:35 UTC
(rev 29279)
@@ -107,14 +107,6 @@
return isValid;
}
-- (IBAction)dismiss:(id)sender {
- if ([sender tag] == NSModalResponseOK && [self commitEditing] == NO) {
- NSBeep();
- } else {
- [super dismiss:sender];
- }
-}
-
- (void)didDismissSheet {
[objectController setContent:nil];
}
Modified: trunk/bibdesk/BDSKSearchGroupSheetController.m
===================================================================
--- trunk/bibdesk/BDSKSearchGroupSheetController.m 2025-07-14 16:00:07 UTC
(rev 29278)
+++ trunk/bibdesk/BDSKSearchGroupSheetController.m 2025-07-15 09:28:35 UTC
(rev 29279)
@@ -153,17 +153,12 @@
#pragma mark Actions
-- (IBAction)dismiss:(id)sender {
- if ([sender tag] == NSModalResponseOK) {
- if ([self commitEditing] == NO) {
- NSBeep();
- return;
- }
- if ([self isEditable])
- [serverInfo savePasswordInKeychain];
- }
-
- [super dismiss:sender];
+- (BOOL)shouldDismissSheetWithResult:(NSModalResponse)result {
+ if ([super shouldDismissSheetWithResult:result] == NO)
+ return NO;
+ if (result == NSModalResponseOK && [self isEditable])
+ [serverInfo savePasswordInKeychain];
+ return YES;
}
- (IBAction)selectPredefinedServer:(id)sender;
Modified: trunk/bibdesk/BDSKTextImportController.m
===================================================================
--- trunk/bibdesk/BDSKTextImportController.m 2025-07-14 16:00:07 UTC (rev
29278)
+++ trunk/bibdesk/BDSKTextImportController.m 2025-07-15 09:28:35 UTC (rev
29279)
@@ -252,7 +252,7 @@
[itemTableView setTypeSelectHelper:nil];
- [super dismiss:sender];
+ [self dismiss:sender];
}
- (IBAction)addItemAndCloseAction:(id)sender{
Modified: trunk/bibdesk/BDSKURLGroupSheetController.m
===================================================================
--- trunk/bibdesk/BDSKURLGroupSheetController.m 2025-07-14 16:00:07 UTC (rev
29278)
+++ trunk/bibdesk/BDSKURLGroupSheetController.m 2025-07-15 09:28:35 UTC (rev
29279)
@@ -82,14 +82,6 @@
return @"BDSKURLGroupSheet";
}
-- (IBAction)dismiss:(id)sender {
- if ([sender tag] == NSModalResponseOK && [self commitEditing] == NO) {
- NSBeep();
- } else {
- [super dismiss:sender];
- }
-}
-
- (void)didDismissSheet {
[objectController setContent:nil];
}
Modified: trunk/bibdesk/NSWindowController_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSWindowController_BDSKExtensions.h 2025-07-14 16:00:07 UTC
(rev 29278)
+++ trunk/bibdesk/NSWindowController_BDSKExtensions.h 2025-07-15 09:28:35 UTC
(rev 29279)
@@ -53,6 +53,7 @@
- (IBAction)dismiss:(nullable id)sender;
+- (BOOL)shouldDismissSheetWithResult:(NSModalResponse)result;
- (void)didDismissSheet;
@end
Modified: trunk/bibdesk/NSWindowController_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSWindowController_BDSKExtensions.m 2025-07-14 16:00:07 UTC
(rev 29278)
+++ trunk/bibdesk/NSWindowController_BDSKExtensions.m 2025-07-15 09:28:35 UTC
(rev 29279)
@@ -101,9 +101,23 @@
}];
}
+- (BOOL)shouldDismissSheetWithResult:(NSModalResponse)result {
+ if (result == NSModalResponseCancel) {
+ if ([self respondsToSelector:@selector(discardEditing)])
+ [self discardEditing];
+ } else if ([self respondsToSelector:@selector(commitEditing)]) {
+ return [self commitEditing];
+ }
+ return YES;
+}
+
- (void)didDismissSheet {}
- (IBAction)dismiss:(id)sender {
+ if ([self shouldDismissSheetWithResult:[sender tag]] == NO) {
+ NSBeep();
+ return;
+ }
NSWindow *window = [[self window] sheetParent];
[window endSheet:[self window] returnCode:[sender tag]];
}
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