You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
(9) |
Apr
(2) |
May
(8) |
Jun
|
Jul
(17) |
Aug
(1) |
Sep
(14) |
Oct
(28) |
Nov
(34) |
Dec
(43) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(37) |
Feb
(52) |
Mar
(130) |
Apr
(52) |
May
(23) |
Jun
(48) |
Jul
(78) |
Aug
(97) |
Sep
(73) |
Oct
(53) |
Nov
(148) |
Dec
(322) |
| 2005 |
Jan
(164) |
Feb
(259) |
Mar
(287) |
Apr
(413) |
May
(272) |
Jun
(231) |
Jul
(353) |
Aug
(363) |
Sep
(245) |
Oct
(361) |
Nov
(802) |
Dec
(493) |
| 2006 |
Jan
(345) |
Feb
(438) |
Mar
(388) |
Apr
(283) |
May
(416) |
Jun
(216) |
Jul
(180) |
Aug
(442) |
Sep
(150) |
Oct
(454) |
Nov
(416) |
Dec
(338) |
| 2007 |
Jan
(516) |
Feb
(512) |
Mar
(364) |
Apr
(152) |
May
(165) |
Jun
(93) |
Jul
(106) |
Aug
(160) |
Sep
(160) |
Oct
(256) |
Nov
(421) |
Dec
(418) |
| 2008 |
Jan
(620) |
Feb
(180) |
Mar
(236) |
Apr
(163) |
May
(196) |
Jun
(281) |
Jul
(175) |
Aug
(72) |
Sep
(56) |
Oct
(95) |
Nov
(73) |
Dec
(82) |
| 2009 |
Jan
(261) |
Feb
(340) |
Mar
(371) |
Apr
(334) |
May
(131) |
Jun
(104) |
Jul
(125) |
Aug
(106) |
Sep
(106) |
Oct
(133) |
Nov
(268) |
Dec
(201) |
| 2010 |
Jan
(183) |
Feb
(112) |
Mar
(77) |
Apr
(52) |
May
(79) |
Jun
(49) |
Jul
(46) |
Aug
(44) |
Sep
(95) |
Oct
(225) |
Nov
(203) |
Dec
(60) |
| 2011 |
Jan
(58) |
Feb
(33) |
Mar
(66) |
Apr
(57) |
May
(49) |
Jun
(72) |
Jul
(44) |
Aug
(66) |
Sep
(53) |
Oct
(49) |
Nov
(62) |
Dec
(83) |
| 2012 |
Jan
(109) |
Feb
(70) |
Mar
(47) |
Apr
(37) |
May
(43) |
Jun
(44) |
Jul
(40) |
Aug
(34) |
Sep
(18) |
Oct
(65) |
Nov
(114) |
Dec
(47) |
| 2013 |
Jan
(46) |
Feb
(51) |
Mar
(49) |
Apr
(47) |
May
(37) |
Jun
(64) |
Jul
(45) |
Aug
(36) |
Sep
(42) |
Oct
(36) |
Nov
(54) |
Dec
(58) |
| 2014 |
Jan
(42) |
Feb
(33) |
Mar
(48) |
Apr
(105) |
May
(58) |
Jun
(39) |
Jul
(53) |
Aug
(32) |
Sep
(34) |
Oct
(56) |
Nov
(34) |
Dec
(27) |
| 2015 |
Jan
(51) |
Feb
(62) |
Mar
(37) |
Apr
(36) |
May
(41) |
Jun
(31) |
Jul
(25) |
Aug
(32) |
Sep
(49) |
Oct
(80) |
Nov
(33) |
Dec
(32) |
| 2016 |
Jan
(35) |
Feb
(55) |
Mar
(58) |
Apr
(51) |
May
(33) |
Jun
(52) |
Jul
(35) |
Aug
(66) |
Sep
(37) |
Oct
(42) |
Nov
(32) |
Dec
(33) |
| 2017 |
Jan
(48) |
Feb
(11) |
Mar
(70) |
Apr
(30) |
May
(43) |
Jun
(27) |
Jul
(33) |
Aug
(34) |
Sep
(27) |
Oct
(50) |
Nov
(22) |
Dec
(33) |
| 2018 |
Jan
(157) |
Feb
(238) |
Mar
(75) |
Apr
(40) |
May
(72) |
Jun
(105) |
Jul
(93) |
Aug
(73) |
Sep
(146) |
Oct
(213) |
Nov
(101) |
Dec
(136) |
| 2019 |
Jan
(213) |
Feb
(84) |
Mar
(210) |
Apr
(117) |
May
(77) |
Jun
(61) |
Jul
(189) |
Aug
(79) |
Sep
(87) |
Oct
(95) |
Nov
(55) |
Dec
(79) |
| 2020 |
Jan
(80) |
Feb
(79) |
Mar
(40) |
Apr
(51) |
May
(41) |
Jun
(79) |
Jul
(37) |
Aug
(37) |
Sep
(34) |
Oct
(65) |
Nov
(62) |
Dec
(169) |
| 2021 |
Jan
(233) |
Feb
(61) |
Mar
(107) |
Apr
(131) |
May
(305) |
Jun
(210) |
Jul
(199) |
Aug
(248) |
Sep
(201) |
Oct
(120) |
Nov
(54) |
Dec
(45) |
| 2022 |
Jan
(34) |
Feb
(18) |
Mar
(79) |
Apr
(55) |
May
(118) |
Jun
(150) |
Jul
(112) |
Aug
(74) |
Sep
(124) |
Oct
(77) |
Nov
(36) |
Dec
(66) |
| 2023 |
Jan
(15) |
Feb
(8) |
Mar
(22) |
Apr
(39) |
May
(31) |
Jun
(33) |
Jul
(28) |
Aug
(1) |
Sep
(47) |
Oct
(30) |
Nov
(56) |
Dec
(26) |
| 2024 |
Jan
(192) |
Feb
(129) |
Mar
(19) |
Apr
(38) |
May
(42) |
Jun
|
Jul
(3) |
Aug
(17) |
Sep
(5) |
Oct
(19) |
Nov
(7) |
Dec
(1) |
| 2025 |
Jan
(7) |
Feb
(96) |
Mar
(11) |
Apr
(159) |
May
(18) |
Jun
(6) |
Jul
(134) |
Aug
(108) |
Sep
(131) |
Oct
(110) |
Nov
(163) |
Dec
(19) |
| 2026 |
Jan
(42) |
Feb
(104) |
Mar
(94) |
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <ho...@us...> - 2026-04-14 09:00:31
|
Revision: 30193
http://sourceforge.net/p/bibdesk/svn/30193
Author: hofman
Date: 2026-04-14 09:00:28 +0000 (Tue, 14 Apr 2026)
Log Message:
-----------
separate updating preview display view and preview content
Modified Paths:
--------------
trunk/bibdesk/BibDocument.m
trunk/bibdesk/BibDocument_Actions.m
trunk/bibdesk/BibDocument_UI.h
trunk/bibdesk/BibDocument_UI.m
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2026-04-13 22:10:49 UTC (rev 30192)
+++ trunk/bibdesk/BibDocument.m 2026-04-14 09:00:28 UTC (rev 30193)
@@ -457,10 +457,9 @@
[sidePreviewButton setMenu:sideTemplatePreviewMenu forSegment:0];
[sidePreviewButton selectSegmentWithTag:sidePreviewDisplay];
- if (bottomPreviewDisplay != BDSKPreviewDisplayTeX)
- [[bottomPreviewController tabView] selectTabViewItemAtIndex:bottomPreviewDisplay];
- [[sidePreviewController tabView] selectTabViewItemAtIndex:sidePreviewDisplay];
-
+ [self updateBottomPreviewPaneDisplay];
+ [self updateSidePreviewPaneDisplay];
+
// this gives NSZeroRect for incompatible or nil values
NSRect frameRect = NSRectFromString([self objectForSetupKey:BDSKDocumentWindowFrameKey defaultValue:nil]);
Modified: trunk/bibdesk/BibDocument_Actions.m
===================================================================
--- trunk/bibdesk/BibDocument_Actions.m 2026-04-13 22:10:49 UTC (rev 30192)
+++ trunk/bibdesk/BibDocument_Actions.m 2026-04-14 09:00:28 UTC (rev 30193)
@@ -1230,6 +1230,7 @@
if (bottomPreviewDisplay != tag) {
bottomPreviewDisplay = tag;
changed = YES;
+ [self updateBottomPreviewPaneDisplay];
}
if (tag == BDSKPreviewDisplayText && style && NO == [style isEqualToString:bottomPreviewDisplayTemplate]) {
bottomPreviewDisplayTemplate = style;
@@ -1252,6 +1253,7 @@
if (sidePreviewDisplay != tag) {
sidePreviewDisplay = tag;
changed = YES;
+ [self updateSidePreviewPaneDisplay];
}
if (tag == BDSKPreviewDisplayText && style && NO == [style isEqualToString:sidePreviewDisplayTemplate]) {
sidePreviewDisplayTemplate = style;
Modified: trunk/bibdesk/BibDocument_UI.h
===================================================================
--- trunk/bibdesk/BibDocument_UI.h 2026-04-13 22:10:49 UTC (rev 30192)
+++ trunk/bibdesk/BibDocument_UI.h 2026-04-14 09:00:28 UTC (rev 30193)
@@ -51,6 +51,8 @@
- (void)updatePreviews;
- (void)doUpdatePreviews;
- (void)updatePreviewer:(BDSKPreviewer *)aPreviewer;
+- (void)updateBottomPreviewPaneDisplay;
+- (void)updateSidePreviewPaneDisplay;
- (void)updateBottomPreviewPane;
- (void)updateSidePreviewPane;
Modified: trunk/bibdesk/BibDocument_UI.m
===================================================================
--- trunk/bibdesk/BibDocument_UI.m 2026-04-13 22:10:49 UTC (rev 30192)
+++ trunk/bibdesk/BibDocument_UI.m 2026-04-14 09:00:28 UTC (rev 30193)
@@ -246,7 +246,7 @@
[previewer updateWithoutBibTeXString];
}
-- (void)updateBottomPreviewPane{
+- (void)updateBottomPreviewPaneDisplay{
NSTabView *tabView = [bottomPreviewController tabView];
BDSKPreviewDisplay tabIndex = [tabView indexOfTabViewItem:[tabView selectedTabViewItem]];
if (bottomPreviewDisplay != tabIndex) {
@@ -256,20 +256,24 @@
[self cleanupAfterTeXPreview];
[tabView selectTabViewItemAtIndex:bottomPreviewDisplay];
}
-
- if (bottomPreviewDisplay == BDSKPreviewDisplayTeX)
- [self updatePreviewer:previewer];
- else if (bottomPreviewDisplay == BDSKPreviewDisplayText)
- [self displayTemplatedPreview:bottomPreviewDisplayTemplate inTextView:[bottomPreviewController textView]];
}
-- (void)updateSidePreviewPane{
+- (void)updateSidePreviewPaneDisplay{
NSTabView *tabView = [sidePreviewController tabView];
BDSKPreviewDisplay tabIndex = [tabView indexOfTabViewItem:[tabView selectedTabViewItem]];
if (sidePreviewDisplay != tabIndex) {
[tabView selectTabViewItemAtIndex:sidePreviewDisplay];
}
-
+}
+
+- (void)updateBottomPreviewPane{
+ if (bottomPreviewDisplay == BDSKPreviewDisplayText)
+ [self displayTemplatedPreview:bottomPreviewDisplayTemplate inTextView:[bottomPreviewController textView]];
+ else if (bottomPreviewDisplay == BDSKPreviewDisplayTeX)
+ [self updatePreviewer:previewer];
+}
+
+- (void)updateSidePreviewPane{
if (sidePreviewDisplay == BDSKPreviewDisplayText)
[self displayTemplatedPreview:sidePreviewDisplayTemplate inTextView:[sidePreviewController textView]];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 22:10:51
|
Revision: 30192
http://sourceforge.net/p/bibdesk/svn/30192
Author: hofman
Date: 2026-04-13 22:10:49 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
no need to reload file view when updating previews, they will be reloaded separately through updateFileViews when needed
Modified Paths:
--------------
trunk/bibdesk/BibDocument_UI.m
Modified: trunk/bibdesk/BibDocument_UI.m
===================================================================
--- trunk/bibdesk/BibDocument_UI.m 2026-04-13 21:26:27 UTC (rev 30191)
+++ trunk/bibdesk/BibDocument_UI.m 2026-04-13 22:10:49 UTC (rev 30192)
@@ -259,9 +259,7 @@
if (bottomPreviewDisplay == BDSKPreviewDisplayTeX)
[self updatePreviewer:previewer];
- else if (bottomPreviewDisplay == BDSKPreviewDisplayFiles)
- [[bottomPreviewController fileView] reloadIcons];
- else
+ else if (bottomPreviewDisplay == BDSKPreviewDisplayText)
[self displayTemplatedPreview:bottomPreviewDisplayTemplate inTextView:[bottomPreviewController textView]];
}
@@ -272,9 +270,7 @@
[tabView selectTabViewItemAtIndex:sidePreviewDisplay];
}
- if (sidePreviewDisplay == BDSKPreviewDisplayFiles)
- [[sidePreviewController fileView] reloadIcons];
- else
+ if (sidePreviewDisplay == BDSKPreviewDisplayText)
[self displayTemplatedPreview:sidePreviewDisplayTemplate inTextView:[sidePreviewController textView]];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 21:26:31
|
Revision: 30191
http://sourceforge.net/p/bibdesk/svn/30191
Author: hofman
Date: 2026-04-13 21:26:27 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
initially display correct preview display, except for teX which needs to be set up properly
Modified Paths:
--------------
trunk/bibdesk/BibDocument.m
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2026-04-13 16:36:57 UTC (rev 30190)
+++ trunk/bibdesk/BibDocument.m 2026-04-13 21:26:27 UTC (rev 30191)
@@ -457,6 +457,10 @@
[sidePreviewButton setMenu:sideTemplatePreviewMenu forSegment:0];
[sidePreviewButton selectSegmentWithTag:sidePreviewDisplay];
+ if (bottomPreviewDisplay != BDSKPreviewDisplayTeX)
+ [[bottomPreviewController tabView] selectTabViewItemAtIndex:bottomPreviewDisplay];
+ [[sidePreviewController tabView] selectTabViewItemAtIndex:sidePreviewDisplay];
+
// this gives NSZeroRect for incompatible or nil values
NSRect frameRect = NSRectFromString([self objectForSetupKey:BDSKDocumentWindowFrameKey defaultValue:nil]);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 16:37:00
|
Revision: 30190
http://sourceforge.net/p/bibdesk/svn/30190
Author: hofman
Date: 2026-04-13 16:36:57 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
move headers to headers group
Modified Paths:
--------------
trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
Modified: trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
===================================================================
--- trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2026-04-13 16:22:32 UTC (rev 30189)
+++ trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj 2026-04-13 16:36:57 UTC (rev 30190)
@@ -2815,11 +2815,8 @@
CE38FB85091D946A00BCB69D /* BDSKConditionController.m */,
CE7A4A8D0B0B475B00D1B333 /* BDSKCustomCiteDrawerController.m */,
CE56D6500A2DAB55003CE000 /* BDSKDocumentController.m */,
- CE0DFCB52F895F580043888A /* BDSKDocumentGroupViewController.h */,
CE0DFCB62F895F580043888A /* BDSKDocumentGroupViewController.m */,
- CE0DFCBF2F8967DB0043888A /* BDSKDocumentMainTableController.h */,
CE0DFCC02F8967DB0043888A /* BDSKDocumentMainTableController.m */,
- CE0DFCB92F895F6C0043888A /* BDSKDocumentPreviewController.h */,
CE0DFCBA2F895F6C0043888A /* BDSKDocumentPreviewController.m */,
CE2391600A334890009F3A5B /* BDSKDocumentInfoWindowController.m */,
F9022C68075802E300C3F701 /* BDSKEditor.m */,
@@ -3335,7 +3332,10 @@
CE7A4A8C0B0B475B00D1B333 /* BDSKCustomCiteDrawerController.h */,
F97198BF0DADD32F00CA57AA /* BDSKDBLPGroupServer.h */,
CE56D67B0A2DAB66003CE000 /* BDSKDocumentController.h */,
+ CE0DFCB52F895F580043888A /* BDSKDocumentGroupViewController.h */,
CE23915F0A334890009F3A5B /* BDSKDocumentInfoWindowController.h */,
+ CE0DFCBF2F8967DB0043888A /* BDSKDocumentMainTableController.h */,
+ CE0DFCB92F895F6C0043888A /* BDSKDocumentPreviewController.h */,
F990C5890D42D58D00B5425E /* BDSKDocumentSearch.h */,
CE522F731D5CA7FD00348D7D /* BDSKDOIParser.h */,
CE7B88902045664200D6A648 /* BDSKDOIWebParser.h */,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 16:22:35
|
Revision: 30189
http://sourceforge.net/p/bibdesk/svn/30189
Author: hofman
Date: 2026-04-13 16:22:32 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
Use split view controllers for editor
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.h
trunk/bibdesk/BDSKEditor.m
trunk/bibdesk/Base.lproj/BDSKEditor.xib
Modified: trunk/bibdesk/BDSKEditor.h
===================================================================
--- trunk/bibdesk/BDSKEditor.h 2026-04-13 15:54:25 UTC (rev 30188)
+++ trunk/bibdesk/BDSKEditor.h 2026-04-13 16:22:32 UTC (rev 30189)
@@ -50,9 +50,14 @@
@class BDSKCiteKeyFormatter, BDSKComplexStringFormatter;
@class BibItem, BibAuthor;
-@interface BDSKEditor : NSWindowController <NSWindowDelegate, NSTableViewDelegate, NSTableViewDataSource, NSSplitViewDelegate, NSControlTextEditingDelegate, BDSKStatusBarDelegate, BDSKCitationFormatterDelegate, FVFileViewDelegate, FVFileViewDataSource, QLPreviewPanelDelegate, QLPreviewPanelDataSource, NSTouchBarDelegate> {
- NSSplitView *mainSplitView;
- NSSplitView *fileSplitView;
+@interface BDSKEditor : NSWindowController <NSWindowDelegate, NSTableViewDelegate, NSTableViewDataSource, NSControlTextEditingDelegate, BDSKStatusBarDelegate, BDSKCitationFormatterDelegate, FVFileViewDelegate, FVFileViewDataSource, QLPreviewPanelDelegate, QLPreviewPanelDataSource, NSTouchBarDelegate> {
+ NSSplitViewController *splitViewController;
+ NSSplitViewController *sidebarSplitViewController;
+
+ NSViewController *mainViewController;
+ NSViewController *fileViewController;
+ NSViewController *authorViewController;
+
NSPopUpButton *bibTypeButton;
BDSKEditorTableView *tableView;
NSCollectionView *collectionView;
@@ -126,8 +131,9 @@
- (instancetype)initWithWindow:(nullable NSWindow *)window NS_UNAVAILABLE;
- (nullable instancetype)initWithCoder:(NSCoder *)coder NS_UNAVAILABLE;
-@property (nonatomic, nullable, strong) IBOutlet NSSplitView *mainSplitView;
-@property (nonatomic, nullable, strong) IBOutlet NSSplitView *fileSplitView;
+@property (nonatomic, nullable, strong) IBOutlet NSViewController *mainViewController;
+@property (nonatomic, nullable, strong) IBOutlet NSViewController *fileViewController;
+@property (nonatomic, nullable, strong) IBOutlet NSViewController *authorViewController;
@property (nonatomic, nullable, strong) IBOutlet NSPopUpButton *bibTypeButton;
@property (nonatomic, nullable, strong) IBOutlet BDSKEditorTableView *tableView;
@property (nonatomic, nullable, strong) IBOutlet NSCollectionView *collectionView;
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-04-13 15:54:25 UTC (rev 30188)
+++ trunk/bibdesk/BDSKEditor.m 2026-04-13 16:22:32 UTC (rev 30189)
@@ -78,7 +78,6 @@
#import "NSColor_BDSKExtensions.h"
#import "BDSKURLSheetController.h"
#import "NSEvent_BDSKExtensions.h"
-#import "BDSKSplitView.h"
#import "BDSKTemplate.h"
#import "BDSKGroupsArray.h"
#import "BDSKExternalGroup.h"
@@ -92,11 +91,14 @@
#import "NSBezierPath_BDSKExtensions.h"
#import "NSFont_BDSKExtensions.h"
#import "BDSKTextUndoManager.h"
+#import "NSObject_BDSKExtensions.h"
+#import "NSAnimationContext_BDSKExtensions.h"
#define BDSKEditorFrameAutosaveName @"BDSKEditor window autosave name"
-#define BDSKEditorMainSplitViewAutosaveName @"BDSKEditorMainSplitView"
-#define BDSKEditorFileSplitViewAutosaveName @"BDSKEditorFileSplitView"
+#define BDSKEditorSidebarWidthKey @"BDSKEditorSidebarWidth"
+#define BDSKEditorAuthorTableHeightKey @"BDSKEditorAuthorTableHeight"
+
#define BDSKTouchBarItemIdentifierQuickLook @"edu.ucsd.mmccrack.bibdesk.touchbar-item.quickLook"
#define BDSKNeedsToGenerateCiteKeyIdentifier @"BDSKNeedsToGenerateCiteKey"
@@ -155,7 +157,7 @@
@implementation BDSKEditor
-@synthesize mainSplitView, fileSplitView, bibTypeButton, tableView, collectionView, tabView, notesView, abstractView, rssDescriptionView, citeKeyField, citeKeyTitle, actionButton, addFieldButton, contextMenu, statusBar, citeKeyWarningButton, authorTableView, fileView, heightConstraint, publication;
+@synthesize mainViewController, fileViewController, authorViewController, bibTypeButton, tableView, collectionView, tabView, notesView, abstractView, rssDescriptionView, citeKeyField, citeKeyTitle, actionButton, addFieldButton, contextMenu, statusBar, citeKeyWarningButton, authorTableView, fileView, heightConstraint, publication;
@dynamic status, keyField, numberOfPersons, persons;
- (NSString *)windowNibName{
@@ -186,6 +188,41 @@
// we should have a document at this point, as the nib is not loaded before -window is called, which shouldn't happen before the document shows us
BDSKASSERT([self document]);
+ splitViewController = [[NSSplitViewController alloc] init];
+ sidebarSplitViewController = [[NSSplitViewController alloc] init];
+
+ NSSplitViewItem *item = [NSSplitViewItem splitViewItemWithViewController:fileViewController];
+ [sidebarSplitViewController addSplitViewItem:item];
+ item = [NSSplitViewItem splitViewItemWithViewController:authorViewController];
+ [item setCanCollapse:YES];
+ [item setCollapsed:NO];
+ [item setMinimumThickness:50.0];
+ [item setHoldingPriority:260.0];
+ [sidebarSplitViewController addSplitViewItem:item];
+ [[sidebarSplitViewController splitView] setVertical:NO];
+ [[sidebarSplitViewController splitView] setDividerStyle:NSSplitViewDividerStylePaneSplitter];
+
+ item = [NSSplitViewItem splitViewItemWithViewController:mainViewController];
+ [item setMinimumThickness:200.0];
+ [splitViewController addSplitViewItem:item];
+ item = [NSSplitViewItem splitViewItemWithViewController:sidebarSplitViewController];
+ [item setCanCollapse:YES];
+ [item setCollapsed:NO];
+ [item setMinimumThickness:50.0];
+ [item setHoldingPriority:260.0];
+ [splitViewController addSplitViewItem:item];
+
+ NSView *view = [splitViewController view];
+ NSView *contentView = [[self window] contentView];
+ NSArray *constraints = @[
+ [[view leadingAnchor] constraintEqualToAnchor:[contentView leadingAnchor]],
+ [[contentView trailingAnchor] constraintEqualToAnchor:[view trailingAnchor]],
+ [[view topAnchor] constraintEqualToAnchor:[contentView topAnchor]],
+ [[statusBar topAnchor] constraintEqualToAnchor:[view bottomAnchor]]];
+ [view setTranslatesAutoresizingMaskIntoConstraints:NO];
+ [contentView addSubview:view];
+ [NSLayoutConstraint activateConstraints:constraints];
+
[[self window] setAutorecalculatesContentBorderThickness:NO forEdge:NSRectEdgeMinY];
[[self window] setContentBorderThickness:NSHeight([statusBar frame]) forEdge:NSRectEdgeMinY];
@@ -215,14 +252,28 @@
[self setWindowFrameAutosaveNameOrCascade:BDSKEditorFrameAutosaveName];
- // Setup the splitview autosave frames, should be done after the statusBar and splitViews are setup
- [mainSplitView setAutosaveName:BDSKEditorMainSplitViewAutosaveName];
- [fileSplitView setAutosaveName:BDSKEditorFileSplitViewAutosaveName];
- if ([NSString isEmptyString:[[self window] frameAutosaveName]]) {
- // Only autosave the frames when the window's autosavename is set to avoid inconsistencies
- [mainSplitView setAutosaveName:nil];
- [fileSplitView setAutosaveName:nil];
+ NSNumber *number = [[NSUserDefaults standardUserDefaults] objectForKey:BDSKEditorSidebarWidthKey];
+ if (number) {
+ CGFloat width = [number doubleValue];
+ item = [[splitViewController splitViewItems] lastObject];
+ if (width > 0.0) {
+ NSSplitView *splitView = [splitViewController splitView];
+ [splitView setPosition:NSWidth([splitView frame]) - [splitView dividerThickness] - width ofDividerAtIndex:0];
+ } else {
+ [item setCollapsed:YES];
+ }
}
+ number = [[NSUserDefaults standardUserDefaults] objectForKey:BDSKEditorAuthorTableHeightKey];
+ if (number) {
+ CGFloat height = [number doubleValue];
+ item = [[sidebarSplitViewController splitViewItems] lastObject];
+ if (height > 0.0) {
+ NSSplitView *splitView = [sidebarSplitViewController splitView];
+ [splitView setPosition:NSHeight([splitView frame]) - [splitView dividerThickness] - height ofDividerAtIndex:0];
+ } else {
+ [item setCollapsed:YES];
+ }
+ }
tableCellFormatter = [[BDSKComplexStringFormatter alloc] initWithMacroResolver:[publication macroResolver]];
crossrefFormatter = [[BDSKCiteKeyFormatter alloc] init];
@@ -1292,22 +1343,22 @@
}
- (IBAction)toggleSideBar:(id)sender {
- CGFloat position = [mainSplitView maxPossiblePositionOfDividerAtIndex:0];
+ NSSplitViewItem *item = [[splitViewController splitViewItems] lastObject];
+ NSTimeInterval duration = [NSAnimationContext defaultAnimationTimeInterval];
- if ([mainSplitView isSubviewCollapsed:fileSplitView]) {
- if (lastFileViewWidth <= 0.0)
- lastFileViewWidth = 150.0; // a reasonable value to start
- position -= lastFileViewWidth;
+ if (duration > 0.0) {
+ [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context){
+ [context setDuration:duration];
+ [[item animator] setCollapsed:[item isCollapsed] == NO];
+ }];
} else {
- lastFileViewWidth = NSWidth([fileSplitView frame]);
+ [item setCollapsed:[item isCollapsed] == NO];
}
-
- [(BDSKSplitView *)mainSplitView setPosition:position ofDividerAtIndex:0 animate:sender != nil];
}
- (IBAction)toggleStatusBar:(id)sender {
[[NSUserDefaults standardUserDefaults] setBool:[statusBar isVisible] == NO forKey:BDSKShowEditorStatusBarKey];
- [statusBar toggleBelowView:mainSplitView animate:sender != nil];
+ [statusBar toggleBelowView:[splitViewController view] animate:sender != nil];
}
- (IBAction)editAction:(id)sender {
@@ -1568,7 +1619,7 @@
[[fields objectAtIndex:row] isEqualToString:BDSKCrossrefString] == NO && [[fields objectAtIndex:row] isCitationField] == NO);
}
else if (theAction == @selector(toggleSideBar:)) {
- if ([mainSplitView isSubviewCollapsed:fileSplitView])
+ if ([[[splitViewController splitViewItems] lastObject] isCollapsed])
[menuItem setTitle:NSLocalizedString(@"Show Sidebar", @"Menu item title")];
else
[menuItem setTitle:NSLocalizedString(@"Hide Sidebar", @"Menu item title")];
@@ -3096,109 +3147,6 @@
return [tv makeViewWithIdentifier:@"rowView" owner:self];
}
-#pragma mark Splitview delegate methods
-
-- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview {
- if ([sender isEqual:mainSplitView]) {
- return [subview isEqual:fileSplitView];
- } else if ([sender isEqual:fileSplitView]) {
- return [subview isEqual:[authorTableView enclosingScrollView]];
- }
- return NO;
-}
-
-- (BOOL)splitView:(NSSplitView *)sender doubleClickedOnDividerAtIndex:(NSInteger)dividerIndex {
- if ([sender isEqual:mainSplitView]) {
- [self toggleSideBar:sender];
- } else if ([sender isEqual:fileSplitView]) {
- NSView *subview = [authorTableView enclosingScrollView];
- CGFloat position = [fileSplitView maxPossiblePositionOfDividerAtIndex:dividerIndex];
- if ([fileSplitView isSubviewCollapsed:subview]) {
- if (lastAuthorsHeight <= 0.0)
- lastAuthorsHeight = 150.0;
- if (lastAuthorsHeight > NSHeight([[fileView enclosingScrollView] frame]))
- lastAuthorsHeight = floor(0.5 * NSHeight([[fileView enclosingScrollView] frame]));
- position -= lastAuthorsHeight;
- } else {
- lastAuthorsHeight = NSHeight([subview frame]);
- position += 1.0;
- }
- [(BDSKSplitView *)fileSplitView setPosition:position ofDividerAtIndex:dividerIndex animate:YES];
- }
- return NO;
-}
-
-- (BOOL)splitView:(NSSplitView *)sender shouldCollapseSubview:(NSView *)subview forDoubleClickOnDividerAtIndex:(NSInteger)dividerIndex {
- if ([sender isEqual:mainSplitView]) {
- if ([subview isEqual:fileSplitView])
- [self toggleSideBar:sender];
- } else if ([sender isEqual:fileSplitView]) {
- if ([subview isEqual:[authorTableView enclosingScrollView]]) {
- CGFloat position = [fileSplitView maxPossiblePositionOfDividerAtIndex:dividerIndex];
- if ([fileSplitView isSubviewCollapsed:subview]) {
- if (lastAuthorsHeight <= 0.0)
- lastAuthorsHeight = 150.0;
- if (lastAuthorsHeight > NSHeight([[fileView enclosingScrollView] frame]))
- lastAuthorsHeight = floor(0.5 * NSHeight([[fileView enclosingScrollView] frame]));
- position -= lastAuthorsHeight;
- } else {
- lastAuthorsHeight = NSHeight([subview frame]);
- position += 1.0;
- }
- [(BDSKSplitView *)fileSplitView setPosition:position ofDividerAtIndex:dividerIndex animate:YES];
- }
- }
- return NO;
-}
-
-- (BOOL)splitView:(NSSplitView *)sender shouldHideDividerAtIndex:(NSInteger)dividerIndex {
- return [sender isEqual:mainSplitView];
-}
-
-- (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)dividerIndex {
- if ([sender respondsToSelector:@selector(isAnimating)] && [(BDSKSplitView *)sender isAnimating])
- return proposedMax;
- return proposedMax - 50.0;
-}
-
-- (CGFloat)splitView:(NSSplitView *)sender constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)dividerIndex {
- if ([sender respondsToSelector:@selector(isAnimating)] && [(BDSKSplitView *)sender isAnimating])
- return proposedMin;
- else if ([sender isEqual:mainSplitView])
- return fmax(proposedMin, 390.0);
- return proposedMin;
-}
-
-- (void)splitView:(NSSplitView *)sender resizeSubviewsWithOldSize:(NSSize)oldSize {
- NSView *mainView = [[sender subviews] objectAtIndex:0];
- NSView *sideView = [[sender subviews] objectAtIndex:1];
- BOOL collapsed = [sender isSubviewCollapsed:sideView];
- NSSize mainSize = [mainView frame].size;
- NSSize sideSize = [sideView frame].size;
-
- if ([sender isEqual:mainSplitView]) {
- CGFloat contentWidth = NSWidth([sender frame]) - [sender dividerThickness];
- if (collapsed)
- sideSize.width = 0.0;
- else if (contentWidth < sideSize.width)
- sideSize.width = floor(contentWidth * sideSize.width / (oldSize.width - [sender dividerThickness]));
- mainSize.width = contentWidth - sideSize.width;
- sideSize.height = mainSize.height = NSHeight([sender frame]);
- } else if ([sender isEqual:fileSplitView]) {
- CGFloat contentHeight = NSHeight([sender frame]) - [sender dividerThickness];
- if (collapsed)
- sideSize.height = 0.0;
- else if (contentHeight < sideSize.height)
- sideSize.height = floor(contentHeight * sideSize.height / (oldSize.height - [sender dividerThickness]));
- mainSize.height = contentHeight - sideSize.height;
- sideSize.width = mainSize.width = NSHeight([sender frame]);
- }
- if (collapsed == NO)
- [sideView setFrameSize:sideSize];
- [mainView setFrameSize:mainSize];
- [sender adjustSubviews];
-}
-
#pragma mark Touch Bar
- (NSTouchBar *)makeTouchBar {
@@ -3433,6 +3381,22 @@
}
}
+- (void)autosaveThicknessForSplitView:(NSSplitView *)splitView {
+ if (splitView == [splitViewController splitView]) {
+ NSSplitViewItem *item = [[splitViewController splitViewItems] lastObject];
+ CGFloat width = [item isCollapsed] ? 0.0 : NSWidth([[[item viewController] view] frame]);
+ [[NSUserDefaults standardUserDefaults] setDouble:width forKey:BDSKEditorSidebarWidthKey];
+ } else {
+ NSSplitViewItem *item = [[sidebarSplitViewController splitViewItems] lastObject];
+ CGFloat height = [item isCollapsed] ? 0.0 : NSHeight([[[item viewController] view] frame]);
+ [[NSUserDefaults standardUserDefaults] setDouble:height forKey:BDSKEditorAuthorTableHeightKey];
+ }
+}
+
+- (void)splitViewResizedSubviews:(NSNotification *)note {
+ [self performSelectorOnce:@selector(autosaveThicknessForSplitView:) withObject:[note object] afterDelay:0.0];
+}
+
- (void)setupTypePopUp{
[bibTypeButton removeAllItems];
[bibTypeButton addItemsWithTitles:[[BDSKTypeManager sharedManager] types]];
@@ -3507,6 +3471,18 @@
selector:@selector(collectionViewFrameDidChange:)
name:NSViewFrameDidChangeNotification
object:view];
+ if ([NSString isEmptyString:[[self window] frameAutosaveName]] == NO) {
+ view = [splitViewController splitView];
+ [nc addObserver:self
+ selector:@selector(splitViewResizedSubviews:)
+ name:NSSplitViewDidResizeSubviewsNotification
+ object:view];
+ view = [sidebarSplitViewController splitView];
+ [nc addObserver:self
+ selector:@selector(splitViewResizedSubviews:)
+ name:NSSplitViewDidResizeSubviewsNotification
+ object:view];
+ }
}
- (void)updateCiteKeyDuplicateWarning{
Modified: trunk/bibdesk/Base.lproj/BDSKEditor.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BDSKEditor.xib 2026-04-13 15:54:25 UTC (rev 30188)
+++ trunk/bibdesk/Base.lproj/BDSKEditor.xib 2026-04-13 16:22:32 UTC (rev 30189)
@@ -11,7 +11,8 @@
<outlet property="abstractView" destination="827" id="853"/>
<outlet property="actionButton" destination="699" id="724"/>
<outlet property="addFieldButton" destination="710" id="781"/>
- <outlet property="authorTableView" destination="844" id="868"/>
+ <outlet property="authorTableView" destination="a7F-FF-jHw" id="DQY-03-6sC"/>
+ <outlet property="authorViewController" destination="H1V-ok-22U" id="VPX-yV-Qbo"/>
<outlet property="bibTypeButton" destination="815" id="864"/>
<outlet property="citeKeyField" destination="820" id="931"/>
<outlet property="citeKeyTitle" destination="814" id="862"/>
@@ -18,10 +19,10 @@
<outlet property="citeKeyWarningButton" destination="813" id="932"/>
<outlet property="collectionView" destination="lV3-5Y-Xrk" id="Kzg-IM-mA2"/>
<outlet property="contextMenu" destination="1073" id="1096"/>
- <outlet property="fileSplitView" destination="846" id="866"/>
- <outlet property="fileView" destination="842" id="867"/>
+ <outlet property="fileView" destination="wRj-nO-Fua" id="rtM-3D-9eb"/>
+ <outlet property="fileViewController" destination="Owh-y4-UF6" id="6hj-Yp-3u0"/>
<outlet property="heightConstraint" destination="0et-YV-gX6" id="Otz-WN-d5e"/>
- <outlet property="mainSplitView" destination="847" id="865"/>
+ <outlet property="mainViewController" destination="jBh-co-D8y" id="epL-kJ-uph"/>
<outlet property="notesView" destination="810" id="852"/>
<outlet property="rssDescriptionView" destination="831" id="856"/>
<outlet property="statusBar" destination="587" id="639"/>
@@ -139,511 +140,10 @@
<outlet property="bottomConstraint" destination="RCD-fy-k19" id="Cc9-W8-pem"/>
</connections>
</customView>
- <splitView dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="847" customClass="BDSKSplitView">
- <rect key="frame" x="0.0" y="24" width="700" height="376"/>
- <subviews>
- <customView id="805" userLabel="TabContentView">
- <rect key="frame" x="0.0" y="0.0" width="521" height="376"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <tabView drawsBackground="NO" translatesAutoresizingMaskIntoConstraints="NO" id="806" customClass="BDSKTabView">
- <rect key="frame" x="-10" y="-13" width="541" height="383"/>
- <font key="font" metaFont="system"/>
- <tabViewItems>
- <tabViewItem label="BibTeX" identifier="1" id="811">
- <view key="view" id="812">
- <rect key="frame" x="10" y="33" width="521" height="337"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="815">
- <rect key="frame" x="466" y="303" width="39" height="25"/>
- <popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="clipping" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="819" id="1008">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="cellTitle"/>
- <menu key="menu" id="816">
- <items>
- <menuItem state="on" id="819"/>
- </items>
- </menu>
- </popUpButtonCell>
- <connections>
- <action selector="changeType:" target="-2" id="876"/>
- </connections>
- </popUpButton>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="814">
- <rect key="frame" x="18" y="309" width="55" height="16"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" title="Cite Key" id="1007">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="820">
- <rect key="frame" x="76" y="306" width="377" height="21"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" alignment="left" drawsBackground="YES" id="1009">
- <customFormatter key="formatter" id="SBB-E6-GGd" customClass="BDSKCiteKeyFormatter"/>
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <accessibilityConnection property="title" destination="814" id="974"/>
- <action selector="changeCiteKey:" target="-2" id="LX8-er-jHB"/>
- <outlet property="delegate" destination="-2" id="930"/>
- </connections>
- </textField>
- <button horizontalHuggingPriority="750" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="813">
- <rect key="frame" x="461" y="317" width="0.0" height="0.0"/>
- <constraints>
- <constraint firstAttribute="width" secondItem="813" secondAttribute="height" multiplier="1:1" id="BLk-hX-XBh"/>
- <constraint firstAttribute="width" relation="lessThanOrEqual" constant="16" id="sxT-GJ-i9d"/>
- </constraints>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" imagePosition="only" alignment="left" imageScaling="proportionallyDown" inset="2" id="1006">
- <behavior key="behavior" lightByContents="YES"/>
- <font key="font" metaFont="label"/>
- </buttonCell>
- </button>
- <scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="10" verticalLineScroll="24" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="951">
- <rect key="frame" x="17" y="19" width="504" height="278"/>
- <clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="04E-PM-4cc">
- <rect key="frame" x="0.0" y="0.0" width="504" height="278"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="22" viewBased="YES" id="952" customClass="BDSKEditorTableView">
- <rect key="frame" x="0.0" y="0.0" width="504" height="278"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <size key="intercellSpacing" width="3" height="2"/>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
- <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
- <tableColumns>
- <tableColumn identifier="field" editable="NO" width="57" minWidth="40" maxWidth="1000" id="955">
- <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
- <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
- </tableHeaderCell>
- <textFieldCell key="dataCell" lineBreakMode="clipping" selectable="YES" alignment="left" id="956">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <tableColumnResizingMask key="resizingMask" resizeWithTable="YES"/>
- <prototypeCellViews>
- <tableCellView id="GLC-XX-wB3">
- <rect key="frame" x="11" y="1" width="62" height="22"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="4zD-l0-ac5">
- <rect key="frame" x="0.0" y="3" width="62" height="16"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" id="SNI-uD-CzD">
- <font key="font" usesAppearanceFont="YES"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- </subviews>
- <constraints>
- <constraint firstItem="4zD-l0-ac5" firstAttribute="leading" secondItem="GLC-XX-wB3" secondAttribute="leading" constant="2" id="DcK-tY-wvF"/>
- <constraint firstItem="4zD-l0-ac5" firstAttribute="centerY" secondItem="GLC-XX-wB3" secondAttribute="centerY" id="XIw-G1-VvC"/>
- <constraint firstAttribute="trailing" secondItem="4zD-l0-ac5" secondAttribute="trailing" constant="2" id="YRT-xJ-R8E"/>
- </constraints>
- <connections>
- <outlet property="textField" destination="4zD-l0-ac5" id="gbO-U8-mn7"/>
- </connections>
- </tableCellView>
- <customView identifier="rowView" id="UM6-cN-RZw" customClass="BDSKEditorRowView">
- <rect key="frame" x="11" y="25" width="62" height="22"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
- </customView>
- </prototypeCellViews>
- </tableColumn>
- <tableColumn identifier="value" width="412" minWidth="8" maxWidth="1000" id="953">
- <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
- <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
- </tableHeaderCell>
- <textFieldCell key="dataCell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" alignment="left" drawsBackground="YES" id="954" customClass="BDSKEditorTextFieldCell">
- <font key="font" metaFont="system"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <tableColumnResizingMask key="resizingMask" resizeWithTable="YES"/>
- <prototypeCellViews>
- <tableCellView id="WSC-RJ-GoF">
- <rect key="frame" x="76" y="1" width="416" height="22"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="KJ8-73-C65" customClass="BDSKEditorTextField">
- <rect key="frame" x="0.0" y="1" width="416" height="21"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="JS8-KM-s9E" customClass="BDSKEditorTextFieldCell">
- <font key="font" usesAppearanceFont="YES"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <connections>
- <action selector="changeValue:" target="-2" id="cjw-Kp-Gj9"/>
- <outlet property="delegate" destination="-2" id="oWn-Ae-G6C"/>
- </connections>
- </textField>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="KJ8-73-C65" secondAttribute="trailing" id="Ncf-4w-J0M"/>
- <constraint firstItem="KJ8-73-C65" firstAttribute="centerY" secondItem="WSC-RJ-GoF" secondAttribute="centerY" id="PEc-R8-qzY"/>
- <constraint firstItem="KJ8-73-C65" firstAttribute="leading" secondItem="WSC-RJ-GoF" secondAttribute="leading" id="VlP-Zq-5Gv"/>
- </constraints>
- <connections>
- <outlet property="textField" destination="KJ8-73-C65" id="UlF-Xl-1bV"/>
- </connections>
- </tableCellView>
- </prototypeCellViews>
- </tableColumn>
- </tableColumns>
- <connections>
- <outlet property="dataSource" destination="-2" id="957"/>
- <outlet property="delegate" destination="-2" id="958"/>
- <outlet property="menu" destination="1097" id="1102"/>
- </connections>
- </tableView>
- </subviews>
- </clipView>
- <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" controlSize="small" horizontal="YES" id="1019">
- <rect key="frame" x="0.0" y="264" width="504" height="14"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" controlSize="small" horizontal="NO" id="1018">
- <rect key="frame" x="494" y="0.0" width="14" height="0.0"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- </scrollView>
- <customView translatesAutoresizingMaskIntoConstraints="NO" id="966" customClass="BDSKEdgeView">
- <rect key="frame" x="0.0" y="0.0" width="521" height="19"/>
- <subviews>
- <scrollView wantsLayer="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="UZF-sC-NKx">
- <rect key="frame" x="14" y="0.0" width="507" height="18"/>
- <clipView key="contentView" drawsBackground="NO" id="5yl-4A-l4f">
- <rect key="frame" x="0.0" y="0.0" width="507" height="18"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <collectionView placeholderIntrinsicWidth="508" placeholderIntrinsicHeight="18" translatesAutoresizingMaskIntoConstraints="NO" id="lV3-5Y-Xrk">
- <rect key="frame" x="0.0" y="0.0" width="507" height="18"/>
- <color key="primaryBackgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
- <connections>
- <outlet property="itemPrototype" destination="Xpb-YD-O0s" id="tpp-pY-nCj"/>
- </connections>
- </collectionView>
- </subviews>
- <constraints>
- <constraint firstItem="lV3-5Y-Xrk" firstAttribute="leading" secondItem="5yl-4A-l4f" secondAttribute="leading" id="Cqi-Ds-dRZ"/>
- <constraint firstItem="lV3-5Y-Xrk" firstAttribute="top" secondItem="5yl-4A-l4f" secondAttribute="top" id="d1Y-Fu-D25"/>
- </constraints>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
- </clipView>
- <constraints>
- <constraint firstAttribute="height" constant="18" id="0et-YV-gX6"/>
- </constraints>
- <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="w54-a2-bgP">
- <rect key="frame" x="-100" y="-100" width="233" height="15"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- <scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="KhT-RQ-Jh8">
- <rect key="frame" x="234" y="0.0" width="16" height="18"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- </scrollView>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="UZF-sC-NKx" secondAttribute="trailing" id="3LC-1y-QlA"/>
- <constraint firstItem="UZF-sC-NKx" firstAttribute="leading" secondItem="966" secondAttribute="leading" constant="14" id="9fV-0B-4Ir"/>
- <constraint firstItem="UZF-sC-NKx" firstAttribute="top" secondItem="966" secondAttribute="top" constant="1" id="XbR-Nb-2tu"/>
- <constraint firstAttribute="bottom" secondItem="UZF-sC-NKx" secondAttribute="bottom" id="ern-nX-moc"/>
- </constraints>
- </customView>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="815" secondAttribute="trailing" constant="20" symbolic="YES" id="2ER-fN-bvN"/>
- <constraint firstItem="813" firstAttribute="centerY" secondItem="820" secondAttribute="centerY" id="BYe-uU-lpd"/>
- <constraint firstItem="966" firstAttribute="top" secondItem="951" secondAttribute="bottom" id="CiZ-Dh-Hrp"/>
- <constraint firstItem="820" firstAttribute="leading" secondItem="814" secondAttribute="trailing" constant="5" id="E8L-Wa-SwT"/>
- <constraint firstItem="966" firstAttribute="leading" secondItem="812" secondAttribute="leading" id="M8i-ep-Odc"/>
- <constraint firstItem="815" firstAttribute="centerY" secondItem="814" secondAttribute="centerY" id="OpV-AF-GUh"/>
- <constraint firstItem="815" firstAttribute="leading" secondItem="813" secondAttribute="trailing" constant="8" symbolic="YES" id="QYn-Zt-06W"/>
- <constraint firstItem="951" firstAttribute="top" secondItem="820" secondAttribute="bottom" constant="9" id="YIH-ph-sZI"/>
- <constraint firstAttribute="bottom" secondItem="966" secondAttribute="bottom" id="bEV-AZ-61F"/>
- <constraint firstItem="951" firstAttribute="leading" secondItem="812" secondAttribute="leading" constant="17" id="f07-Be-sUJ"/>
- <constraint firstAttribute="trailing" secondItem="951" secondAttribute="trailing" id="gNt-rr-rGW"/>
- <constraint firstItem="813" firstAttribute="leading" secondItem="820" secondAttribute="trailing" constant="8" symbolic="YES" id="hKv-AN-TSx"/>
- <constraint firstItem="814" firstAttribute="leading" secondItem="812" secondAttribute="leading" constant="20" id="lZ1-xZ-HWv"/>
- <constraint firstAttribute="trailing" secondItem="966" secondAttribute="trailing" id="nir-uD-MY4"/>
- <constraint firstItem="820" firstAttribute="centerY" secondItem="814" secondAttribute="centerY" id="oLe-1q-1YD"/>
- <constraint firstItem="820" firstAttribute="top" secondItem="812" secondAttribute="top" constant="10" id="wiN-Z2-R0J"/>
- </constraints>
- </view>
- </tabViewItem>
- <tabViewItem label="Annote" identifier="2" id="807">
- <view key="view" id="808">
- <rect key="frame" x="10" y="33" width="523" height="337"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="809">
- <rect key="frame" x="-1" y="-1" width="525" height="338"/>
- <clipView key="contentView" id="nAe-py-TxG">
- <rect key="frame" x="1" y="1" width="523" height="336"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <textView importsGraphics="NO" verticallyResizable="YES" usesFontPanel="YES" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" spellingCorrection="YES" smartInsertDelete="YES" id="810" customClass="BDSKEditorTextView">
- <rect key="frame" x="0.0" y="0.0" width="524" height="336"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- <size key="minSize" width="523" height="336"/>
- <size key="maxSize" width="988" height="10000000"/>
- <color key="insertionPointColor" name="textColor" catalog="System" colorSpace="catalog"/>
- <connections>
- <outlet property="delegate" destination="-2" id="855"/>
- </connections>
- </textView>
- </subviews>
- </clipView>
- <scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="YES" id="1017">
- <rect key="frame" x="-100" y="-100" width="87" height="18"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- <scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="1016">
- <rect key="frame" x="508" y="1" width="16" height="336"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- </scrollView>
- </subviews>
- <constraints>
- <constraint firstItem="809" firstAttribute="top" secondItem="808" secondAttribute="top" id="5Pv-7L-8g5"/>
- <constraint firstItem="809" firstAttribute="leading" secondItem="808" secondAttribute="leading" constant="-1" id="JNA-EM-H6E"/>
- <constraint firstAttribute="trailing" secondItem="809" secondAttribute="trailing" constant="-1" id="MtK-0K-QbE"/>
- <constraint firstAttribute="bottom" secondItem="809" secondAttribute="bottom" constant="-1" id="iaR-rb-Thi"/>
- </constraints>
- </view>
- </tabViewItem>
- <tabViewItem label="Abstract" identifier="3" id="824">
- <view key="view" id="825">
- <rect key="frame" x="10" y="33" width="523" height="337"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="826">
- <rect key="frame" x="-1" y="-1" width="525" height="338"/>
- <clipView key="contentView" id="yfH-Xd-JPs">
- <rect key="frame" x="1" y="1" width="523" height="336"/>
- <autoresizingMask key="autoresizingMask"/>
- <subviews>
- <textView importsGraphics="NO" verticallyResizable="YES" usesFontPanel="YES" findStyle="panel" continuousSpellChecking="YES" allowsUndo="YES" usesRuler="YES" spellingCorrection="YES" smartInsertDelete="YES" id="827" customClass="BDSKEditorTextView">
- <rect key="frame" x="0.0" y="0.0" width="523" height="336"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- <size key="minSize" width="523" height="336"/>
- <size key="maxSize" width="987" height="10000000"/>
- <color key="insertionPointColor" name="textColor" catalog="System" colorSpace="catalog"/>
- <connections>
- <outlet property="delegate" destination="-2" id="854"/>
- </connections>
- </textView>
- ...
[truncated message content] |
|
From: <ho...@us...> - 2026-04-13 15:54:27
|
Revision: 30188
http://sourceforge.net/p/bibdesk/svn/30188
Author: hofman
Date: 2026-04-13 15:54:25 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
use correct splitview to set fraction
Modified Paths:
--------------
trunk/bibdesk/BibDocument.m
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2026-04-13 14:11:05 UTC (rev 30187)
+++ trunk/bibdesk/BibDocument.m 2026-04-13 15:54:25 UTC (rev 30188)
@@ -482,10 +482,12 @@
number = [self objectForSetupKey:BDSKMainTableSplitViewFractionKey];
if ([number respondsToSelector:@selector(doubleValue)]) {
CGFloat fraction = [number doubleValue];
- if (fraction > 0.0)
- [[centerSplitViewController splitView] setPosition:round((1.0 - fraction) * fmax(1.0, NSHeight([splitView frame]) - [splitView dividerThickness])) ofDividerAtIndex:0];
- else
+ if (fraction > 0.0) {
+ splitView = [centerSplitViewController splitView];
+ [splitView setPosition:round((1.0 - fraction) * fmax(1.0, NSHeight([splitView frame]) - [splitView dividerThickness])) ofDividerAtIndex:0];
+ } else {
[[[centerSplitViewController splitViewItems] lastObject] setCollapsed:NO];
+ }
}
[statusBar layoutSubtreeIfNeeded];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 14:11:07
|
Revision: 30187
http://sourceforge.net/p/bibdesk/svn/30187
Author: hofman
Date: 2026-04-13 14:11:05 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
declare IBOutlet for delegate and dataSource
Modified Paths:
--------------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h 2026-04-13 09:27:20 UTC (rev 30186)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.h 2026-04-13 14:11:05 UTC (rev 30187)
@@ -380,7 +380,7 @@
A non-nil datasource is required for drag-and-drop support.
@see @link <FVFileViewDataSource> @endlink */
-@property (nonatomic, weak) id<FVFileViewDataSource> dataSource;
+@property (nonatomic, weak) IBOutlet id<FVFileViewDataSource> dataSource;
/** The delegate for the view.
Nonretained, and may be set to nil.
@@ -388,7 +388,7 @@
The delegate may implement any or all of the methods in the @link NSObject(FileViewDelegate) @endlink protocol.
@param obj The object to set as delegate. Not retained.*/
-@property (nonatomic, weak) id<FVFileViewDelegate> delegate;
+@property (nonatomic, weak) IBOutlet id<FVFileViewDelegate> delegate;
/** Change drop index and drop operation for a drop on the view.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-13 09:27:38
|
Revision: 30186
http://sourceforge.net/p/bibdesk/svn/30186
Author: hofman
Date: 2026-04-13 09:27:20 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
Replace splitviews in document window y splitview controllers. Add nibs and view controllers for component views in document window.
Modified Paths:
--------------
trunk/bibdesk/Base.lproj/BibDocument.xib
trunk/bibdesk/BibDocument.h
trunk/bibdesk/BibDocument.m
trunk/bibdesk/BibDocument_Actions.m
trunk/bibdesk/BibDocument_DataSource.h
trunk/bibdesk/BibDocument_DataSource.m
trunk/bibdesk/BibDocument_Groups.m
trunk/bibdesk/BibDocument_Menus.m
trunk/bibdesk/BibDocument_Search.m
trunk/bibdesk/BibDocument_UI.h
trunk/bibdesk/BibDocument_UI.m
trunk/bibdesk/Bibdesk.xcodeproj/project.pbxproj
trunk/bibdesk/de.lproj/BibDocument.strings
trunk/bibdesk/en.lproj/BibDocument.strings
trunk/bibdesk/fr.lproj/BibDocument.strings
Added Paths:
-----------
trunk/bibdesk/BDSKDocumentGroupViewController.h
trunk/bibdesk/BDSKDocumentGroupViewController.m
trunk/bibdesk/BDSKDocumentMainTableController.h
trunk/bibdesk/BDSKDocumentMainTableController.m
trunk/bibdesk/BDSKDocumentPreviewController.h
trunk/bibdesk/BDSKDocumentPreviewController.m
trunk/bibdesk/Base.lproj/DocumentMainTable.xib
trunk/bibdesk/DocumentGroupView.xib
trunk/bibdesk/DocumentPreview.xib
trunk/bibdesk/de.lproj/DocumentMainTable.strings
trunk/bibdesk/en.lproj/DocumentMainTable.strings
trunk/bibdesk/fr.lproj/DocumentMainTable.strings
Added: trunk/bibdesk/BDSKDocumentGroupViewController.h
===================================================================
--- trunk/bibdesk/BDSKDocumentGroupViewController.h (rev 0)
+++ trunk/bibdesk/BDSKDocumentGroupViewController.h 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,57 @@
+//
+// BDSKDocumentGroupViewController.h
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class BibDocument;
+@class BDSKGroupOutlineView;
+
+@interface BDSKDocumentGroupViewController : NSViewController {
+ __weak BibDocument *document;
+ BDSKGroupOutlineView *outlineView;
+}
+
+@property (nonatomic, nullable, strong) IBOutlet BDSKGroupOutlineView *outlineView;
+
+@property (nonatomic, nullable, weak) BibDocument *document;
+
+@end
+
+NS_ASSUME_NONNULL_END
Added: trunk/bibdesk/BDSKDocumentGroupViewController.m
===================================================================
--- trunk/bibdesk/BDSKDocumentGroupViewController.m (rev 0)
+++ trunk/bibdesk/BDSKDocumentGroupViewController.m 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,93 @@
+//
+// BDSKDocumentGroupViewController.m
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKDocumentGroupViewController.h"
+#import "BibDocument.h"
+#import "BibDocument_DataSource.h"
+#import "BibDocument_UI.h"
+#import "BDSKGroupOutlineView.h"
+#import "BDSKTypeSelectHelper.h"
+#import "BDSKStringConstants.h"
+
+@implementation BDSKDocumentGroupViewController
+
+@synthesize document, outlineView;
+
+- (NSString *)nibName {
+ return @"DocumentGroupView";
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ [outlineView setStronglyReferencesItems:YES];
+
+ [outlineView setFontNamePreferenceKey:BDSKGroupTableViewFontNameKey];
+ [outlineView setFontSizePreferenceKey:BDSKGroupTableViewFontSizeKey];
+
+ [outlineView sizeToFit];
+
+ BDSKTypeSelectHelper *typeSelectHelper = [[BDSKTypeSelectHelper alloc] init];
+ [typeSelectHelper setCyclesSimilarResults:NO];
+ [typeSelectHelper setMatchesPrefix:NO];
+ [outlineView setTypeSelectHelper:typeSelectHelper];
+
+ [outlineView setDelegate:document];
+ [outlineView setDataSource:document];
+ [[outlineView menu] setDelegate:document];
+
+ [outlineView registerForDraggedTypes:@[BDSKPasteboardTypePublications, NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSFilenamesPboardType, NSURLPboardType, NSPasteboardTypeString]];
+
+ [outlineView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
+ [outlineView setDraggingSourceOperationMask:NSDragOperationCopy forLocal:NO];
+}
+
+- (void)setDocument:(BibDocument *)newDocument {
+ if (document != newDocument) {
+ if (newDocument == nil) {
+ [outlineView setDataSource:newDocument];
+ [outlineView setDelegate:newDocument];
+ [[outlineView menu] setDelegate:newDocument];
+ [outlineView setFontNamePreferenceKey:nil];
+ [outlineView setFontSizePreferenceKey:nil];
+ [outlineView setTypeSelectHelper:nil];
+ }
+ document = newDocument;
+ }
+}
+
+@end
Added: trunk/bibdesk/BDSKDocumentMainTableController.h
===================================================================
--- trunk/bibdesk/BDSKDocumentMainTableController.h (rev 0)
+++ trunk/bibdesk/BDSKDocumentMainTableController.h 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,58 @@
+//
+// BDSKDocumentMainTableController.h
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class BibDocument;
+@class BDSKMainTableView;
+
+@interface BDSKDocumentMainTableController : NSViewController {
+ __weak BibDocument *document;
+ BDSKMainTableView *tableView;
+}
+
+@property (nonatomic, nullable, strong) IBOutlet BDSKMainTableView *tableView;
+@property (nonatomic, nullable, strong) IBOutlet NSScrollView *scrollView;
+
+@property (nonatomic, nullable, weak) BibDocument *document;
+
+@end
+
+NS_ASSUME_NONNULL_END
Added: trunk/bibdesk/BDSKDocumentMainTableController.m
===================================================================
--- trunk/bibdesk/BDSKDocumentMainTableController.m (rev 0)
+++ trunk/bibdesk/BDSKDocumentMainTableController.m 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,96 @@
+//
+// BDSKDocumentMainTableController.m
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKDocumentMainTableController.h"
+#import "BibDocument.h"
+#import "BibDocument_DataSource.h"
+#import "BibDocument_UI.h"
+#import "BibDocument_Actions.h"
+#import "BDSKMainTableView.h"
+#import "BDSKTypeSelectHelper.h"
+#import "BDSKStringConstants.h"
+
+@implementation BDSKDocumentMainTableController
+
+@synthesize document, tableView, scrollView;
+
+- (NSString *)nibName {
+ return @"DocumentMainTable";
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+
+ [tableView setFontNamePreferenceKey:BDSKMainTableViewFontNameKey];
+ [tableView setFontSizePreferenceKey:BDSKMainTableViewFontSizeKey];
+
+ if (@available(macOS 11.0, *))
+ [tableView setStyle:NSTableViewStyleFullWidth];
+
+ BDSKTypeSelectHelper *typeSelectHelper = [[BDSKTypeSelectHelper alloc] init];
+ [typeSelectHelper setCyclesSimilarResults:YES];
+ [typeSelectHelper setMatchesPrefix:NO];
+ [tableView setTypeSelectHelper:typeSelectHelper];
+
+ [tableView setDelegate:document];
+ [tableView setDataSource:document];
+ [[tableView menu] setDelegate:document];
+
+ [tableView registerForDraggedTypes:@[BDSKPasteboardTypePublications, NSPasteboardTypeURL, NSPasteboardTypeFileURL, NSFilenamesPboardType, NSURLPboardType, NSPasteboardTypeString, NSPasteboardTypeColor]];
+
+ [tableView setDraggingSourceOperationMask:NSDragOperationEvery forLocal:YES];
+ [tableView setDraggingSourceOperationMask:NSDragOperationCopy forLocal:NO];
+
+ [tableView setDoubleAction:@selector(editPubOrOpenURLAction:)];
+}
+
+- (void)setDocument:(BibDocument *)newDocument {
+ if (document != newDocument) {
+ if (newDocument == nil) {
+ [tableView setDataSource:nil];
+ [tableView setDelegate:nil];
+ [[tableView menu] setDelegate:nil];
+ [tableView setFontNamePreferenceKey:nil];
+ [tableView setFontSizePreferenceKey:nil];
+ [tableView setTypeSelectHelper:nil];
+ }
+ document = newDocument;
+ }
+}
+
+@end
Added: trunk/bibdesk/BDSKDocumentPreviewController.h
===================================================================
--- trunk/bibdesk/BDSKDocumentPreviewController.h (rev 0)
+++ trunk/bibdesk/BDSKDocumentPreviewController.h 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,61 @@
+//
+// BDSKDocumentPreviewController.h
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@class BibDocument;
+@class FVFileView;
+
+@interface BDSKDocumentPreviewController : NSViewController {
+ __weak BibDocument *document;
+ NSTabView *tabView;
+ NSTextView *textView;
+ FVFileView *fileView;
+}
+
+@property (nonatomic, nullable, strong) IBOutlet NSTabView *tabView;
+@property (nonatomic, nullable, strong) IBOutlet NSTextView *textView;
+@property (nonatomic, nullable, strong) IBOutlet FVFileView *fileView;
+
+@property (nonatomic, nullable, weak) BibDocument *document;
+
+@end
+
+NS_ASSUME_NONNULL_END
Added: trunk/bibdesk/BDSKDocumentPreviewController.m
===================================================================
--- trunk/bibdesk/BDSKDocumentPreviewController.m (rev 0)
+++ trunk/bibdesk/BDSKDocumentPreviewController.m 2026-04-13 09:27:20 UTC (rev 30186)
@@ -0,0 +1,74 @@
+//
+// BDSKDocumentPreviewController.m
+// BibDesk
+//
+// Created by Christiaan Hofman on 10/04/2026.
+/*
+ This software is Copyright (c) 2026
+ Christiaan Hofman. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Christiaan Hofman nor the names of any
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "BDSKDocumentPreviewController.h"
+#import "BibDocument.h"
+#import "BibDocument_DataSource.h"
+#import <FileView/FileView.h>
+
+@interface BDSKDocumentPreviewController ()
+
+@end
+
+@implementation BDSKDocumentPreviewController
+
+@synthesize document, tabView, textView, fileView;
+
+- (NSString *)nibName {
+ return @"DocumentPreview";
+}
+
+- (void)viewDidLoad {
+ [super viewDidLoad];
+ [textView setDelegate:(id<NSTextViewDelegate>)document];
+ [fileView setDelegate:document];
+ [fileView setDataSource:document];
+}
+
+- (void)setDocument:(BibDocument *)newDocument {
+ if (document != newDocument) {
+ if (newDocument == nil) {
+ [textView setDelegate:nil];
+ [fileView setDataSource:nil];
+ [fileView setDelegate:nil];
+ }
+ document = newDocument;
+ }
+}
+
+@end
Modified: trunk/bibdesk/Base.lproj/BibDocument.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BibDocument.xib 2026-04-13 09:20:39 UTC (rev 30185)
+++ trunk/bibdesk/Base.lproj/BibDocument.xib 2026-04-13 09:27:20 UTC (rev 30186)
@@ -11,12 +11,7 @@
<outlet property="actionMenu" destination="433" id="532"/>
<outlet property="actionMenuButton" destination="834" id="841"/>
<outlet property="alternateCopyMenu" destination="101143" id="101453"/>
- <outlet property="bottomFileView" destination="101218" id="101221"/>
<outlet property="bottomPreviewButton" destination="101662" id="101678"/>
- <outlet property="bottomPreviewTabView" destination="101207" id="101258"/>
- <outlet property="bottomPreviewTextView" destination="101215" id="101239"/>
- <outlet property="controlContentView" destination="Ics-7k-gsA" id="Ufg-re-JUN"/>
- <outlet property="controlContentViewHeightConstraint" destination="cPw-7P-Igg" id="0hW-Zs-ST6"/>
<outlet property="documentWindow" destination="5" id="206"/>
<outlet property="groupActionButton" destination="101665" id="101677"/>
<outlet property="groupActionMenuButton" destination="872" id="877"/>
@@ -25,309 +20,17 @@
<outlet property="groupButtonViewWidthConstraint" destination="7QF-9x-IzU" id="ABc-X2-aZr"/>
<outlet property="groupFieldMenu" destination="101632" id="101637"/>
<outlet property="groupMenu" destination="819" id="876"/>
- <outlet property="groupOutlineView" destination="101527" id="101535"/>
- <outlet property="groupSplitView" destination="101311" id="101313"/>
- <outlet property="mainBox" destination="101580" id="101595"/>
- <outlet property="mainScrollView" destination="101584" id="KBv-eG-Vfq"/>
- <outlet property="mainView" destination="101582" id="101591"/>
<outlet property="searchField" destination="833" id="840"/>
<outlet property="sharingMenu" destination="BHY-Lx-e9N" id="SQe-BZ-7Cm"/>
- <outlet property="sideFileView" destination="101234" id="101240"/>
<outlet property="sidePreviewButton" destination="101673" id="101679"/>
<outlet property="sidePreviewButtonView" destination="wyF-ch-LiL" id="uD2-1M-dtX"/>
<outlet property="sidePreviewButtonViewWidthConstraint" destination="60d-JF-gyX" id="4Ie-A2-gGT"/>
- <outlet property="sidePreviewTabView" destination="101224" id="101259"/>
- <outlet property="sidePreviewTextView" destination="101230" id="101238"/>
- <outlet property="splitView" destination="101581" id="101590"/>
<outlet property="statusBar" destination="101726" id="101743"/>
- <outlet property="tableView" destination="101585" id="101592"/>
<outlet property="window" destination="5" id="512"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
- <scrollView focusRingType="none" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" borderType="none" horizontalLineScroll="18" horizontalPageScroll="10" verticalLineScroll="18" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="101584">
- <rect key="frame" x="0.0" y="0.0" width="518" height="250"/>
- <clipView key="contentView" id="Cwk-iE-Ppe">
- <rect key="frame" x="0.0" y="0.0" width="518" height="250"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <tableView focusRingType="none" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" alternatingRowBackgroundColors="YES" autosaveColumns="NO" typeSelect="NO" rowHeight="16" headerView="101624" viewBased="YES" id="101585" customClass="BDSKMainTableView">
- <rect key="frame" x="0.0" y="25" width="518" height="225"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <size key="intercellSpacing" width="3" height="2"/>
- <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
- <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
- <tableColumns>
- <tableColumn width="88" minWidth="10" maxWidth="3.4028234663852886e+38" id="qKo-wk-4Me" customClass="BDSKTableColumn">
- <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
- <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
- </tableHeaderCell>
- <textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" id="jor-L7-RGg">
- <font key="font" metaFont="cellTitle"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
- <prototypeCellViews>
- <tableCellView identifier="text" id="NxV-Jm-UUJ">
- <rect key="frame" x="11" y="1" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="eQ6-je-G23" customClass="BDSKLineTextField">
- <rect key="frame" x="0.0" y="1" width="97" height="15"/>
- <textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" id="4af-gC-Qt0">
- <font key="font" metaFont="cellTitle"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="eQ6-je-G23" secondAttribute="trailing" constant="2" id="GPr-8H-fAk"/>
- <constraint firstItem="eQ6-je-G23" firstAttribute="centerY" secondItem="NxV-Jm-UUJ" secondAttribute="centerY" id="WML-3Z-dVR"/>
- <constraint firstItem="eQ6-je-G23" firstAttribute="leading" secondItem="NxV-Jm-UUJ" secondAttribute="leading" constant="2" id="Y3v-cH-MsQ"/>
- </constraints>
- <connections>
- <outlet property="textField" destination="eQ6-je-G23" id="fDX-Gb-olX"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="image" id="zWR-x8-0Qs">
- <rect key="frame" x="11" y="20" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="Yj9-zr-5ne">
- <rect key="frame" x="0.0" y="0.0" width="97" height="17"/>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="WrO-yQ-eHS"/>
- </imageView>
- </subviews>
- <constraints>
- <constraint firstAttribute="bottom" secondItem="Yj9-zr-5ne" secondAttribute="bottom" id="IBy-rz-NTN"/>
- <constraint firstItem="Yj9-zr-5ne" firstAttribute="top" secondItem="zWR-x8-0Qs" secondAttribute="top" id="i2u-UH-ZfM"/>
- <constraint firstItem="Yj9-zr-5ne" firstAttribute="leading" secondItem="zWR-x8-0Qs" secondAttribute="leading" id="kyj-og-7MT"/>
- <constraint firstAttribute="trailing" secondItem="Yj9-zr-5ne" secondAttribute="trailing" id="vQP-fj-hQt"/>
- </constraints>
- <connections>
- <outlet property="imageView" destination="Yj9-zr-5ne" id="li2-uU-rUG"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="linkedFile" id="sGo-xV-Lj6">
- <rect key="frame" x="11" y="39" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <imageView horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="jNo-4T-1c0">
- <rect key="frame" x="1" y="2" width="14" height="14"/>
- <constraints>
- <constraint firstAttribute="width" secondItem="jNo-4T-1c0" secondAttribute="height" multiplier="1:1" id="LPA-ks-bWI"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="K6s-Ka-NoT"/>
- </imageView>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="751" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KzU-zJ-HXq">
- <rect key="frame" x="15" y="1" width="82" height="15"/>
- <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" id="JwA-1T-fo1">
- <font key="font" metaFont="cellTitle"/>
- <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- </textField>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="KzU-zJ-HXq" secondAttribute="trailing" priority="750" constant="2" id="967-xO-igg"/>
- <constraint firstItem="KzU-zJ-HXq" firstAttribute="centerY" secondItem="sGo-xV-Lj6" secondAttribute="centerY" id="Anu-lx-9Mx"/>
- <constraint firstItem="KzU-zJ-HXq" firstAttribute="leading" secondItem="jNo-4T-1c0" secondAttribute="trailing" constant="2" id="MSm-FY-6P7"/>
- <constraint firstItem="KzU-zJ-HXq" firstAttribute="top" secondItem="jNo-4T-1c0" secondAttribute="top" id="UQn-Zz-atp"/>
- <constraint firstItem="jNo-4T-1c0" firstAttribute="leading" secondItem="sGo-xV-Lj6" secondAttribute="leading" constant="1" id="aey-FW-gqT"/>
- <constraint firstItem="KzU-zJ-HXq" firstAttribute="bottom" secondItem="jNo-4T-1c0" secondAttribute="bottom" constant="1" id="uOe-ZL-tih"/>
- </constraints>
- <connections>
- <outlet property="imageView" destination="jNo-4T-1c0" id="4Fd-gN-EYQ"/>
- <outlet property="textField" destination="KzU-zJ-HXq" id="zvC-Ov-sDE"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="rating" id="D9E-M8-OEd" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="58" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <button verticalHuggingPriority="750" placeholderIntrinsicWidth="82" placeholderIntrinsicHeight="14" translatesAutoresizingMaskIntoConstraints="NO" id="9uI-KA-pR8" customClass="BDSKRatingButton">
- <rect key="frame" x="0.0" y="2" width="97" height="14"/>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" imagePosition="only" alignment="center" enabled="NO" imageScaling="proportionallyDown" inset="2" id="seK-d0-Dvs" customClass="BDSKRatingButtonCell">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="cellTitle"/>
- </buttonCell>
- </button>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="9uI-KA-pR8" secondAttribute="trailing" id="Qrh-RJ-fx6"/>
- <constraint firstItem="9uI-KA-pR8" firstAttribute="centerY" secondItem="D9E-M8-OEd" secondAttribute="centerY" id="dNi-9m-xNH"/>
- <constraint firstItem="9uI-KA-pR8" firstAttribute="leading" secondItem="D9E-M8-OEd" secondAttribute="leading" id="g30-kf-qpx"/>
- </constraints>
- <connections>
- <outlet property="control" destination="9uI-KA-pR8" id="Q2y-3l-Xzf"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="boolean" id="1dH-IC-fp9" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="77" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <button horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="6H3-Bn-ozf">
- <rect key="frame" x="0.0" y="0.0" width="97" height="18"/>
- <buttonCell key="cell" type="check" bezelStyle="regularSquare" imagePosition="only" enabled="NO" inset="2" id="QFp-cs-1o1">
- <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
- <font key="font" metaFont="cellTitle"/>
- </buttonCell>
- <connections>
- <action selector="changeFlag:" target="-2" id="xKC-5I-oL0"/>
- </connections>
- </button>
- </subviews>
- <constraints>
- <constraint firstItem="6H3-Bn-ozf" firstAttribute="centerY" secondItem="1dH-IC-fp9" secondAttribute="centerY" id="aUQ-cO-u9k"/>
- <constraint firstAttribute="trailing" secondItem="6H3-Bn-ozf" secondAttribute="trailing" constant="2" id="d4H-42-4Hp"/>
- <constraint firstItem="6H3-Bn-ozf" firstAttribute="leading" secondItem="1dH-IC-fp9" secondAttribute="leading" constant="2" id="ycc-yg-44S"/>
- </constraints>
- <connections>
- <outlet property="control" destination="6H3-Bn-ozf" id="ee6-yY-8g5"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="triState" id="rBJ-gs-0cf" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="96" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <button horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Pur-Ca-mxh">
- <rect key="frame" x="0.0" y="0.0" width="97" height="18"/>
- <buttonCell key="cell" type="check" bezelStyle="regularSquare" imagePosition="only" enabled="NO" allowsMixedState="YES" inset="2" id="3A7-m1-RPp">
- <behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
- <font key="font" metaFont="cellTitle"/>
- </buttonCell>
- <connections>
- <action selector="changeFlag:" target="-2" id="7HH-su-B7Y"/>
- </connections>
- </button>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="Pur-Ca-mxh" secondAttribute="trailing" constant="2" id="2FJ-mw-Z2q"/>
- <constraint firstItem="Pur-Ca-mxh" firstAttribute="leading" secondItem="rBJ-gs-0cf" secondAttribute="leading" constant="2" id="YHp-2S-nqS"/>
- <constraint firstItem="Pur-Ca-mxh" firstAttribute="centerY" secondItem="rBJ-gs-0cf" secondAttribute="centerY" id="frG-kc-a88"/>
- </constraints>
- <connections>
- <outlet property="control" destination="Pur-Ca-mxh" id="09J-mw-LE5"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="crossref" id="rrX-vK-7j6" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="115" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <button horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="2qd-1r-2Jp">
- <rect key="frame" x="0.0" y="1" width="97" height="14.5"/>
- <buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSFollowLinkFreestandingTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyDown" inset="2" id="qLG-m5-dj1">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="cellTitle"/>
- </buttonCell>
- <connections>
- <action selector="openParentItem:" target="-2" id="vIz-3l-9Rf"/>
- </connections>
- </button>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="2qd-1r-2Jp" secondAttribute="trailing" id="9gH-TA-eIK"/>
- <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="2qd-1r-2Jp" secondAttribute="bottom" id="LvW-Bm-dtf"/>
- <constraint firstItem="2qd-1r-2Jp" firstAttribute="centerY" secondItem="rrX-vK-7j6" secondAttribute="centerY" id="MVO-Iy-sGR"/>
- <constraint firstItem="2qd-1r-2Jp" firstAttribute="leading" secondItem="rrX-vK-7j6" secondAttribute="leading" id="RUy-Dm-sMw"/>
- </constraints>
- <connections>
- <outlet property="control" destination="2qd-1r-2Jp" id="NjI-Nq-9Zb"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="importOrder" id="Nbr-8H-Suw" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="134" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <button horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="3LE-2K-p9e">
- <rect key="frame" x="25" y="0.0" width="47" height="17"/>
- <buttonCell key="cell" type="inline" title="Import" bezelStyle="inline" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="bqL-Fx-4RD">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="smallSystemBold"/>
- </buttonCell>
- <connections>
- <action selector="importItem:" target="-2" id="Sv6-om-Chx"/>
- </connections>
- </button>
- </subviews>
- <constraints>
- <constraint firstAttribute="bottom" relation="greaterThanOrEqual" secondItem="3LE-2K-p9e" secondAttribute="bottom" id="JRF-JS-Hvf"/>
- <constraint firstItem="3LE-2K-p9e" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="Nbr-8H-Suw" secondAttribute="leading" id="dgq-XX-9zn"/>
- <constraint firstItem="3LE-2K-p9e" firstAttribute="centerY" secondItem="Nbr-8H-Suw" secondAttribute="centerY" id="of0-de-VW9"/>
- <constraint firstItem="3LE-2K-p9e" firstAttribute="centerX" secondItem="Nbr-8H-Suw" secondAttribute="centerX" id="z5K-6y-tTZ"/>
- </constraints>
- <connections>
- <outlet property="control" destination="3LE-2K-p9e" id="PqB-55-zGA"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="relevance" id="H9Y-0a-yPF" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="153" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <levelIndicator verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="hbm-Da-qXR" customClass="BDSKLevelIndicator">
- <rect key="frame" x="0.0" y="3" width="97" height="12"/>
- <levelIndicatorCell key="cell" controlSize="small" enabled="NO" alignment="left" doubleValue="1" maxValue="1" levelIndicatorStyle="relevancy" id="aQZ-I1-VYZ" customClass="BDSKLevelIndicatorCell"/>
- </levelIndicator>
- </subviews>
- <constraints>
- <constraint firstAttribute="trailing" secondItem="hbm-Da-qXR" secondAttribute="trailing" id="0At-Gj-OhN"/>
- <constraint firstItem="hbm-Da-qXR" firstAttribute="leading" secondItem="H9Y-0a-yPF" secondAttribute="leading" id="303-WA-2eN"/>
- <constraint firstItem="hbm-Da-qXR" firstAttribute="centerY" secondItem="H9Y-0a-yPF" secondAttribute="centerY" id="pKl-0K-PE1"/>
- </constraints>
- <connections>
- <outlet property="control" destination="hbm-Da-qXR" id="yul-Ag-y0w"/>
- </connections>
- </tableCellView>
- <tableCellView identifier="color" id="xkI-Jf-QuE" customClass="BDSKControlTableCellView">
- <rect key="frame" x="11" y="172" width="97" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <customView horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="b4S-xU-aoO" customClass="BDSKColorView">
- <rect key="frame" x="0.0" y="0.0" width="97" height="17"/>
- </customView>
- </subviews>
- <constraints>
- <constraint firstItem="b4S-xU-aoO" firstAttribute="top" secondItem="xkI-Jf-QuE" secondAttribute="top" id="7J5-0f-C7i"/>
- <constraint firstItem="b4S-xU-aoO" firstAttribute="leading" secondItem="xkI-Jf-QuE" secondAttribute="leading" id="Szq-0M-Ki2"/>
- <constraint firstAttribute="trailing" secondItem="b4S-xU-aoO" secondAttribute="trailing" id="gq6-jd-qcS"/>
- <constraint firstAttribute="bottom" secondItem="b4S-xU-aoO" secondAttribute="bottom" id="ihs-PK-ONY"/>
- </constraints>
- <connections>
- <outlet property="control" destination="b4S-xU-aoO" id="GJI-L1-mMh"/>
- </connections>
- </tableCellView>
- </prototypeCellViews>
- </tableColumn>
- </tableColumns>
- <connections>
- <outlet property="dataSource" destination="-2" id="101593"/>
- <outlet property="delegate" destination="-2" id="101594"/>
- <outlet property="menu" destination="101750" id="101752"/>
- </connections>
- </tableView>
- </subviews>
- </clipView>
- <constraints>
- <constraint firstAttribute="height" constant="250" placeholder="YES" id="0P8-I1-0yK"/>
- </constraints>
- <scroller key="horizontalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="101623">
- <rect key="frame" x="0.0" y="234" width="518" height="16"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- <scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="101622">
- <rect key="frame" x="502" y="25" width="16" height="225"/>
- <autoresizingMask key="autoresizingMask"/>
- </scroller>
- <tableHeaderView key="headerView" wantsLayer="YES" id="101624" customClass="BDSKMainTableHeaderView">
- <rect key="frame" x="0.0" y="0.0" width="518" height="25"/>
- <autoresizingMask key="autoresizingMask"/>
- </tableHeaderView>
- <point key="canvasLocation" x="-574" y="390"/>
- </scrollView>
<window allowsToolTipsWhenApplicationIsInactive="NO" visibleAtLaunch="NO" animationBehavior="default" id="5" userLabel="Window">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowCollectionBehavior key="collectionBehavior" fullScreenPrimary="YES"/>
@@ -337,367 +40,8 @@
<value key="minSize" type="size" width="400" height="300"/>
<view key="contentView" id="6">
<rect key="frame" x="0.0" y="0.0" width="760" height="480"/>
- <autoresizingMask key="autoresizingMask"/>
+ <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
- <splitView dividerStyle="thin" vertical="YES" translatesAutoresizingMaskIntoConstraints="NO" id="101311" customClass="BDSKSplitView">
- <rect key="frame" x="0.0" y="24" width="760" height="456"/>
- <subviews>
- <scrollView focusRingType="none" fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="20" horizontalPageScroll="10" verticalLineScroll="20" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" id="101524" userLabel="Group Scroll View (Outline View)">
- <rect key="frame" x="0.0" y="0.0" width="120" height="456"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
- <clipView key="contentView" drawsBackground="NO" id="dhN-dj-WmG">
- <rect key="frame" x="0.0" y="0.0" width="120" height="456"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" selectionHighlightStyle="sourceList" columnReordering="NO" columnResizing="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="18" viewBased="YES" floatsGroupRows="NO" outlineTableColumn="101529" id="101527" customClass="BDSKGroupOutlineView">
- <rect key="frame" x="0.0" y="0.0" width="120" height="456"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <constraints>
- <constraint firstAttribute="height" constant="456" placeholder="YES" id="pp7-HO-D0B"/>
- </constraints>
- <size key="intercellSpacing" width="3" height="2"/>
- <color key="backgroundColor" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
- <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
- <tableColumns>
- <tableColumn identifier="groups" width="83" minWidth="16" maxWidth="1000" id="101529">
- <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Groups">
- <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" white="0.33333298560000002" alpha="1" colorSpace="calibratedWhite"/>
- </tableHeaderCell>
- <textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" id="101532">
- <font key="font" metaFont="smallSystem"/>
- <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
- <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
- </textFieldCell>
- <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
- <prototypeCellViews>
- <tableCellView id="rYE-x2-KCZ" customClass="BDSKGroupCellView">
- <rect key="frame" x="11" y="1" width="92" height="17"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <subviews>
- <imageView wantsLayer="YES" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Mm1-Fi-uzg" customClass="BDSKGroupImageView">
- <rect key="frame" x="3" y="1" width="16" height="16"/>
- <constraints>
- <constraint firstAttribute="width" secondItem="Mm1-Fi-uzg" secondAttribute="height" multiplier="1:1" id="hO9-QJ-dFh"/>
- </constraints>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="nti-tE-Fac"/>
- <connections>
- <action selector="editGroupDoubleClickAction:" target="-2" id="cjk-Kx-QaR"/>
- <binding destination="rYE-x2-KCZ" name="value" keyPath="objectValue.icon" id="y5O-gZ-slZ"/>
- </connections>
- </imageView>
- <imageView hidden="YES" wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="251" horizontalCompressionResistancePriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="0tL-Oa-e04" customClass="BDSKGroupBubbleView">
- <rect key="frame" x="92" y="9" width="0.0" height="0.0"/>
- <imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" id="eOM-PZ-O5b" customClass="BDSKGroupBubbleCell"/>
- </imageView>
- <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" verticalCompressionResistancePriority="751" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oFI-uU-pLf" customClass="BDSKLineTextField">
- <rect key="frame" x="20" y="2" width="74" height="12"/>
- <textFieldCell k...
[truncated message content] |
|
From: <ho...@us...> - 2026-04-13 09:20:40
|
Revision: 30185
http://sourceforge.net/p/bibdesk/svn/30185
Author: hofman
Date: 2026-04-13 09:20:39 +0000 (Mon, 13 Apr 2026)
Log Message:
-----------
remove unused method implementation
Modified Paths:
--------------
trunk/bibdesk/NSView_BDSKExtensions.m
Modified: trunk/bibdesk/NSView_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSView_BDSKExtensions.m 2026-04-10 14:48:33 UTC (rev 30184)
+++ trunk/bibdesk/NSView_BDSKExtensions.m 2026-04-13 09:20:39 UTC (rev 30185)
@@ -153,12 +153,3 @@
}
@end
-
-
-@interface NSScrollView (BDSKExtensions)
-@end
-
-@implementation NSScrollView (BDSKExtensions)
-- (NSScrollView *)enclosedScrollView { return self; }
-@end
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-10 14:48:35
|
Revision: 30184
http://sourceforge.net/p/bibdesk/svn/30184
Author: hofman
Date: 2026-04-10 14:48:33 +0000 (Fri, 10 Apr 2026)
Log Message:
-----------
automatic change to nib
Modified Paths:
--------------
trunk/bibdesk/Base.lproj/BibDocument.xib
Modified: trunk/bibdesk/Base.lproj/BibDocument.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BibDocument.xib 2026-04-10 14:25:01 UTC (rev 30183)
+++ trunk/bibdesk/Base.lproj/BibDocument.xib 2026-04-10 14:48:33 UTC (rev 30184)
@@ -1164,6 +1164,7 @@
</connections>
</menuItem>
</items>
+ <point key="canvasLocation" x="139" y="528"/>
</menu>
<menu title="Group Field" id="101632" userLabel="Group Field Menu">
<items>
@@ -1181,6 +1182,7 @@
</connections>
</menuItem>
</items>
+ <point key="canvasLocation" x="139" y="133"/>
</menu>
<menu id="101126" userLabel="Search Menu">
<items>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-10 14:25:06
|
Revision: 30183
http://sourceforge.net/p/bibdesk/svn/30183
Author: hofman
Date: 2026-04-10 14:25:01 +0000 (Fri, 10 Apr 2026)
Log Message:
-----------
fix layout of main table
Modified Paths:
--------------
trunk/bibdesk/BibDocument.m
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2026-04-09 14:43:30 UTC (rev 30182)
+++ trunk/bibdesk/BibDocument.m 2026-04-10 14:25:01 UTC (rev 30183)
@@ -406,8 +406,8 @@
NSArray *constraints = @[
[[scrollView leadingAnchor] constraintEqualToAnchor:[mainView leadingAnchor]],
[[mainView trailingAnchor] constraintEqualToAnchor:[scrollView trailingAnchor]],
- [[scrollView bottomAnchor] constraintEqualToAnchor:[mainView bottomAnchor]],
- [[mainView topAnchor] constraintEqualToAnchor:[scrollView topAnchor] constant:-1]];
+ [[scrollView topAnchor] constraintEqualToAnchor:[mainView topAnchor] constant:-1],
+ [[mainView bottomAnchor] constraintEqualToAnchor:[scrollView bottomAnchor]]];
[NSLayoutConstraint activateConstraints:constraints];
// TableView setup
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-09 14:43:33
|
Revision: 30182
http://sourceforge.net/p/bibdesk/svn/30182
Author: hofman
Date: 2026-04-09 14:43:30 +0000 (Thu, 09 Apr 2026)
Log Message:
-----------
Get frameAutosaveName from window rather than windowFrameAutosaveName as they are not the same. Compare to empty string as it is not nil anymore.
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
trunk/bibdesk/BDSKNotesWindowController.m
trunk/bibdesk/BibDocument.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-04-05 22:06:42 UTC (rev 30181)
+++ trunk/bibdesk/BDSKEditor.m 2026-04-09 14:43:30 UTC (rev 30182)
@@ -218,7 +218,7 @@
// Setup the splitview autosave frames, should be done after the statusBar and splitViews are setup
[mainSplitView setAutosaveName:BDSKEditorMainSplitViewAutosaveName];
[fileSplitView setAutosaveName:BDSKEditorFileSplitViewAutosaveName];
- if ([self windowFrameAutosaveName] == nil) {
+ if ([NSString isEmptyString:[[self window] frameAutosaveName]]) {
// Only autosave the frames when the window's autosavename is set to avoid inconsistencies
[mainSplitView setAutosaveName:nil];
[fileSplitView setAutosaveName:nil];
Modified: trunk/bibdesk/BDSKNotesWindowController.m
===================================================================
--- trunk/bibdesk/BDSKNotesWindowController.m 2026-04-05 22:06:42 UTC (rev 30181)
+++ trunk/bibdesk/BDSKNotesWindowController.m 2026-04-09 14:43:30 UTC (rev 30182)
@@ -91,7 +91,7 @@
[self setWindowFrameAutosaveNameOrCascade:@"NotesWindow"];
[splitView setAutosaveName:BDSKNotesWindowAutosaveName];
- if ([self windowFrameAutosaveName] == nil) {
+ if ([NSString isEmptyString:[[self window] frameAutosaveName]]) {
// Only autosave the frames when the window's autosavename is set to avoid inconsistencies
[splitView setAutosaveName:nil];
}
Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2026-04-05 22:06:42 UTC (rev 30181)
+++ trunk/bibdesk/BibDocument.m 2026-04-09 14:43:30 UTC (rev 30182)
@@ -378,7 +378,7 @@
// set autosave names first
[splitView setAutosaveName:@"Main Window"];
[groupSplitView setAutosaveName:@"Group Table"];
- if ([aController windowFrameAutosaveName] == nil) {
+ if ([NSString isEmptyString:[[aController window] frameAutosaveName]]) {
// Only autosave the frames when the window's autosavename is set to avoid inconsistencies
[splitView setAutosaveName:nil];
[groupSplitView setAutosaveName:nil];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-04-05 22:06:45
|
Revision: 30181
http://sourceforge.net/p/bibdesk/svn/30181
Author: hofman
Date: 2026-04-05 22:06:42 +0000 (Sun, 05 Apr 2026)
Log Message:
-----------
Use CATransition to animate reflection view
Modified Paths:
--------------
trunk/bibdesk/BDSKEdgeView.m
Modified: trunk/bibdesk/BDSKEdgeView.m
===================================================================
--- trunk/bibdesk/BDSKEdgeView.m 2026-03-13 23:32:18 UTC (rev 30180)
+++ trunk/bibdesk/BDSKEdgeView.m 2026-04-05 22:06:42 UTC (rev 30181)
@@ -39,6 +39,7 @@
#import "BDSKEdgeView.h"
#import "NSColor_BDSKExtensions.h"
#import "NSView_BDSKExtensions.h"
+#import <Quartz/Quartz.h>
#define BORDER_SIZE 1.0
@@ -263,19 +264,9 @@
return;
if (scrollView == [(BDSKReflectionView *)backgroundView reflectedScrollView])
return;
- if (animate == NO) {
- [(BDSKReflectionView *)backgroundView setReflectedScrollView:scrollView];
- } else {
- NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:[NSKeyedArchiver archivedDataWithRootObject:backgroundView requiringSecureCoding:NO error:NULL] error:NULL];
- [unarchiver setRequiresSecureCoding:NO];
- BDSKReflectionView *bgView = [unarchiver decodeObjectForKey:NSKeyedArchiveRootObjectKey];
- [unarchiver finishDecoding];
- [bgView setReflectedScrollView:scrollView];
- wantsSubviews = YES;
- [[self animator] replaceSubview:backgroundView with:bgView];
- wantsSubviews = NO;
- backgroundView = bgView;
- }
+ if (animate)
+ [[backgroundView layer] addAnimation:[CATransition animation] forKey:@"animation"];
+ [(BDSKReflectionView *)backgroundView setReflectedScrollView:scrollView];
}
- (BOOL)isAccessibilityElement {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 23:32:19
|
Revision: 30180
http://sourceforge.net/p/bibdesk/svn/30180
Author: hofman
Date: 2026-03-13 23:32:18 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
already got max
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 23:28:14 UTC (rev 30179)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 23:32:18 UTC (rev 30180)
@@ -3423,7 +3423,7 @@
NSSize size = [collectionView minItemSize];
NSInteger count = [[collectionView content] count];
CGFloat width = fmax(size.width, NSWidth([[collectionView enclosingScrollView] frame]));
- CGFloat height = ceil(count / fmax(1.0, floor(width / size.width))) * size.height;
+ CGFloat height = ceil(count / floor(width / size.width)) * size.height;
if (height > 110.0) {
[heightConstraint setConstant:110.0];
[[collectionView enclosingScrollView] setVerticalScrollElasticity:NSScrollElasticityAutomatic];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 23:28:16
|
Revision: 30179
http://sourceforge.net/p/bibdesk/svn/30179
Author: hofman
Date: 2026-03-13 23:28:14 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
better calculation of expected height
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 23:16:59 UTC (rev 30178)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 23:28:14 UTC (rev 30179)
@@ -3423,7 +3423,7 @@
NSSize size = [collectionView minItemSize];
NSInteger count = [[collectionView content] count];
CGFloat width = fmax(size.width, NSWidth([[collectionView enclosingScrollView] frame]));
- CGFloat height = ceil(count * size.width / width) * size.height;
+ CGFloat height = ceil(count / fmax(1.0, floor(width / size.width))) * size.height;
if (height > 110.0) {
[heightConstraint setConstant:110.0];
[[collectionView enclosingScrollView] setVerticalScrollElasticity:NSScrollElasticityAutomatic];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 23:17:00
|
Revision: 30178
http://sourceforge.net/p/bibdesk/svn/30178
Author: hofman
Date: 2026-03-13 23:16:59 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
don't scroll flag fieeld collection view unless not all can bbe shown
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 23:09:34 UTC (rev 30177)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 23:16:59 UTC (rev 30178)
@@ -3423,7 +3423,14 @@
NSSize size = [collectionView minItemSize];
NSInteger count = [[collectionView content] count];
CGFloat width = fmax(size.width, NSWidth([[collectionView enclosingScrollView] frame]));
- [heightConstraint setConstant:fmin(110.0, ceil(count * size.width / width) * size.height)];
+ CGFloat height = ceil(count * size.width / width) * size.height;
+ if (height > 110.0) {
+ [heightConstraint setConstant:110.0];
+ [[collectionView enclosingScrollView] setVerticalScrollElasticity:NSScrollElasticityAutomatic];
+ } else {
+ [heightConstraint setConstant:height];
+ [[collectionView enclosingScrollView] setVerticalScrollElasticity:NSScrollElasticityNone];
+ }
}
- (void)setupTypePopUp{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 23:09:36
|
Revision: 30177
http://sourceforge.net/p/bibdesk/svn/30177
Author: hofman
Date: 2026-03-13 23:09:34 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
rename action method
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.h
trunk/bibdesk/BDSKEditor.m
trunk/bibdesk/Base.lproj/BDSKEditor.xib
Modified: trunk/bibdesk/BDSKEditor.h
===================================================================
--- trunk/bibdesk/BDSKEditor.h 2026-03-13 23:01:46 UTC (rev 30176)
+++ trunk/bibdesk/BDSKEditor.h 2026-03-13 23:09:34 UTC (rev 30177)
@@ -191,7 +191,7 @@
- (IBAction)showCiteKeyWarning:(nullable id)sender;
-- (IBAction)bibTypeDidChange:(nullable id)sender;
+- (IBAction)changeType:(nullable id)sender;
- (IBAction)changeFlag:(nullable id)sender;
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 23:01:46 UTC (rev 30176)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 23:09:34 UTC (rev 30177)
@@ -1173,7 +1173,7 @@
}
}
-- (IBAction)bibTypeDidChange:(id)sender{
+- (IBAction)changeType:(id)sender{
if ([self commitEditing]) {
NSString *newType = [bibTypeButton titleOfSelectedItem];
if(![[publication pubType] isEqualToString:newType]){
@@ -1585,7 +1585,7 @@
return [[self window] firstResponder] == authorTableView && [authorTableView numberOfSelectedRows] > 0;
}
else if (theAction == @selector(raiseAddField:) ||
- theAction == @selector(raiseChangeFieldName:) ||
+ theAction == @selector(raiseChangeFieldName:) ||
theAction == @selector(chooseLocalFile:) ||
theAction == @selector(chooseRemoteURL:) ||
theAction == @selector(addLinkedFileFromMenuItem:) ||
Modified: trunk/bibdesk/Base.lproj/BDSKEditor.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BDSKEditor.xib 2026-03-13 23:01:46 UTC (rev 30176)
+++ trunk/bibdesk/Base.lproj/BDSKEditor.xib 2026-03-13 23:09:34 UTC (rev 30177)
@@ -167,7 +167,7 @@
</menu>
</popUpButtonCell>
<connections>
- <action selector="bibTypeDidChange:" target="-2" id="876"/>
+ <action selector="changeType:" target="-2" id="876"/>
</connections>
</popUpButton>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="814">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 23:01:47
|
Revision: 30176
http://sourceforge.net/p/bibdesk/svn/30176
Author: hofman
Date: 2026-03-13 23:01:46 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
disable delete field wwhen no field to delete
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 22:48:52 UTC (rev 30175)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 23:01:46 UTC (rev 30176)
@@ -1585,7 +1585,6 @@
return [[self window] firstResponder] == authorTableView && [authorTableView numberOfSelectedRows] > 0;
}
else if (theAction == @selector(raiseAddField:) ||
- theAction == @selector(raiseDelField:) ||
theAction == @selector(raiseChangeFieldName:) ||
theAction == @selector(chooseLocalFile:) ||
theAction == @selector(chooseRemoteURL:) ||
@@ -1593,6 +1592,9 @@
theAction == @selector(addLinkedURLFromMenuItem:)) {
return editorFlags.isEditable;
}
+ else if (theAction == @selector(raiseDelField:)) {
+ return editorFlags.isEditable && [customFieldRows count];
+ }
else if (theAction == @selector(pasteAndMerge:)) {
return [BibItem canReadItemFromPasteboard:[NSPasteboard generalPasteboard]];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 22:48:55
|
Revision: 30175
http://sourceforge.net/p/bibdesk/svn/30175
Author: hofman
Date: 2026-03-13 22:48:52 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
no need for separate meethod
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 22:45:59 UTC (rev 30174)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 22:48:52 UTC (rev 30175)
@@ -135,8 +135,6 @@
- (void)deleteURLsAtIndexes:(NSIndexSet *)indexSet moveToTrash:(BDSKMoveToTrashOption)moveToTrash;
-- (void)updateTypePopup;
-
- (void)setupCollectionView;
- (void)collectionViewFrameDidChange:(NSNotification *)notification;
- (void)setupTypePopUp;
@@ -1191,12 +1189,6 @@
}
}
-- (void)updateTypePopup{ // used to update UI after dragging into the editor
- if ([bibTypeButton itemWithTitle:[publication pubType]] == nil)
- [bibTypeButton addItemWithTitle:[publication pubType]];
- [bibTypeButton selectItemWithTitle:[publication pubType]];
-}
-
- (IBAction)changeFlag:(id)sender{
NSString *field = [[sender cell] representedObject];
NSInteger oldValue = [publication integerValueOfField:field];
@@ -2322,7 +2314,9 @@
NSArray *currentFields = [self currentFields];
if (currentFields)
[self reloadTableWithFields:currentFields ignoreEditing:nil];
- [self updateTypePopup];
+ if ([bibTypeButton itemWithTitle:newValue] == nil)
+ [bibTypeButton addItemWithTitle:newValue];
+ [bibTypeButton selectItemWithTitle:newValue];
[self synchronizeWindowTitleWithDocumentName];
}
else if([changeKey isEqualToString:BDSKCrossrefString]){
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 22:46:03
|
Revision: 30174
http://sourceforge.net/p/bibdesk/svn/30174
Author: hofman
Date: 2026-03-13 22:45:59 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
make sure pubtype is in pubtype button
Modified Paths:
--------------
trunk/bibdesk/BDSKEditor.m
Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m 2026-03-13 22:23:33 UTC (rev 30173)
+++ trunk/bibdesk/BDSKEditor.m 2026-03-13 22:45:59 UTC (rev 30174)
@@ -1192,6 +1192,8 @@
}
- (void)updateTypePopup{ // used to update UI after dragging into the editor
+ if ([bibTypeButton itemWithTitle:[publication pubType]] == nil)
+ [bibTypeButton addItemWithTitle:[publication pubType]];
[bibTypeButton selectItemWithTitle:[publication pubType]];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 22:23:35
|
Revision: 30173
http://sourceforge.net/p/bibdesk/svn/30173
Author: hofman
Date: 2026-03-13 22:23:33 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
allow setting default flag for Author and Editor fields
Modified Paths:
--------------
trunk/bibdesk/BibPref_Defaults.m
Modified: trunk/bibdesk/BibPref_Defaults.m
===================================================================
--- trunk/bibdesk/BibPref_Defaults.m 2026-03-13 22:11:42 UTC (rev 30172)
+++ trunk/bibdesk/BibPref_Defaults.m 2026-03-13 22:23:33 UTC (rev 30173)
@@ -514,7 +514,7 @@
field = [dict objectForKey:FIELD_KEY];
}
[control setObjectValue:value];
- [control setEnabled:NO == [alwaysDisabledFields containsObject:field]];
+ [control setEnabled:NO == [alwaysDisabledFields containsObject:field] || [identifier isEqualToString:DEFAULT_KEY]];
} else if (tableView == globalMacroFilesTableView) {
NSString *path = [globalMacroFiles objectAtIndex:row];
[[view textField] setObjectValue:[path stringByAbbreviatingWithTildeInPath]];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 22:11:44
|
Revision: 30172
http://sourceforge.net/p/bibdesk/svn/30172
Author: hofman
Date: 2026-03-13 22:11:42 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
reuse variable
Modified Paths:
--------------
trunk/bibdesk/BDSKTypeManager.m
Modified: trunk/bibdesk/BDSKTypeManager.m
===================================================================
--- trunk/bibdesk/BDSKTypeManager.m 2026-03-13 19:13:53 UTC (rev 30171)
+++ trunk/bibdesk/BDSKTypeManager.m 2026-03-13 22:11:42 UTC (rev 30172)
@@ -224,28 +224,26 @@
citationFieldsSet = [NSSet setWithArray:[sud stringArrayForKey:BDSKCitationFieldsKey]];
personFieldsSet = [NSSet setWithArray:[sud stringArrayForKey:BDSKPersonFieldsKey]];
- NSMutableSet *allURLFields = [NSMutableSet setWithSet:localFileFieldsSet];
- [allURLFields unionSet:remoteURLFieldsSet];
- allURLFieldsSet = [allURLFields copy];
+ NSMutableSet *tmpSet = [NSMutableSet setWithSet:localFileFieldsSet];
+ [tmpSet unionSet:remoteURLFieldsSet];
+ allURLFieldsSet = [tmpSet copy];
- NSMutableSet *integerFields = [NSMutableSet setWithSet:ratingFieldsSet];
- [integerFields unionSet:triStateFieldsSet];
- [integerFields unionSet:booleanFieldsSet];
- integerFieldsSet = [integerFields copy];
+ tmpSet = [NSMutableSet setWithSet:ratingFieldsSet];
+ [tmpSet unionSet:triStateFieldsSet];
+ [tmpSet unionSet:booleanFieldsSet];
+ integerFieldsSet = [tmpSet copy];
- NSMutableSet *invalidFields = [NSMutableSet setWithObjects:
+ tmpSet = [NSMutableSet setWithObjects:
BDSKDateModifiedString, BDSKDateAddedString, BDSKDateString,
BDSKTitleString, BDSKContainerString, BDSKChapterString,
BDSKVolumeString, BDSKNumberString, BDSKPagesString, BDSKItemNumberString,
BDSKAbstractString, BDSKAnnoteString, BDSKRssDescriptionString, nil];
- [invalidFields unionSet:allURLFields];
- invalidGroupFieldsSet = [invalidFields copy];
+ [tmpSet unionSet:allURLFieldsSet];
+ invalidGroupFieldsSet = [tmpSet copy];
- NSMutableSet *singleValuedFields = [NSMutableSet setWithObjects:BDSKPubTypeString, BDSKTypeString, BDSKCrossrefString, BDSKJournalString, BDSKBooktitleString, BDSKVolumetitleString, BDSKSeriesString, BDSKYearString, BDSKMonthString, BDSKPublisherString, BDSKAddressString, BDSKInstitutionString, BDSKSchoolString, BDSKOrganizationString, BDSKLocationString, BDSKColorString, nil];
- [singleValuedFields unionSet:ratingFieldsSet];
- [singleValuedFields unionSet:booleanFieldsSet];
- [singleValuedFields unionSet:triStateFieldsSet];
- singleValuedGroupFieldsSet = [singleValuedFields copy];
+ tmpSet = [NSMutableSet setWithObjects:BDSKPubTypeString, BDSKTypeString, BDSKCrossrefString, BDSKJournalString, BDSKBooktitleString, BDSKVolumetitleString, BDSKSeriesString, BDSKYearString, BDSKMonthString, BDSKPublisherString, BDSKAddressString, BDSKInstitutionString, BDSKSchoolString, BDSKOrganizationString, BDSKLocationString, BDSKColorString, nil];
+ [tmpSet unionSet:integerFieldsSet];
+ singleValuedGroupFieldsSet = [tmpSet copy];
[self reloadAllFieldNames];
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 19:13:56
|
Revision: 30171
http://sourceforge.net/p/bibdesk/svn/30171
Author: hofman
Date: 2026-03-13 19:13:53 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
Fix pref key. Make sure Url and Local-Url are not declared as the rong field type.
Modified Paths:
--------------
trunk/bibdesk/BDSKAppController.m
Modified: trunk/bibdesk/BDSKAppController.m
===================================================================
--- trunk/bibdesk/BDSKAppController.m 2026-03-13 18:54:44 UTC (rev 30170)
+++ trunk/bibdesk/BDSKAppController.m 2026-03-13 19:13:53 UTC (rev 30171)
@@ -270,9 +270,14 @@
if ([fields containsObject:BDSKLocalUrlString] == NO) {
fields = [fields mutableCopy];
[(NSMutableArray *)fields insertObject:BDSKLocalUrlString atIndex:0];
- [sud setObject:fields forKey:BDSKUseLocalUrlAndUrlKey];
+ [sud setObject:fields forKey:BDSKLocalFileFieldsKey];
changedTypes |= BDSKFieldTypeMaskURL;
}
+ if ([fields containsObject:BDSKUrlString]) {
+ fields = [fields mutableCopy];
+ [(NSMutableArray *)fields removeObject:BDSKUrlString];
+ [sud setObject:fields forKey:BDSKLocalFileFieldsKey];
+ }
fields = [sud stringArrayForKey:BDSKRemoteURLFieldsKey];
if ([fields containsObject:BDSKUrlString] == NO) {
fields = [fields mutableCopy];
@@ -280,6 +285,11 @@
[sud setObject:fields forKey:BDSKRemoteURLFieldsKey];
changedTypes |= BDSKFieldTypeMaskURL;
}
+ if ([fields containsObject:BDSKLocalUrlString]) {
+ fields = [fields mutableCopy];
+ [(NSMutableArray *)fields removeObject:BDSKLocalUrlString];
+ [sud setObject:fields forKey:BDSKRemoteURLFieldsKey];
+ }
}
if (changedTypes)
[[BDSKTypeManager sharedManager] updateCustomFields:changedTypes];
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 18:54:46
|
Revision: 30170
http://sourceforge.net/p/bibdesk/svn/30170
Author: hofman
Date: 2026-03-13 18:54:44 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
reuse variable
Modified Paths:
--------------
trunk/bibdesk/BibPref_Defaults.m
Modified: trunk/bibdesk/BibPref_Defaults.m
===================================================================
--- trunk/bibdesk/BibPref_Defaults.m 2026-03-13 18:50:36 UTC (rev 30169)
+++ trunk/bibdesk/BibPref_Defaults.m 2026-03-13 18:54:44 UTC (rev 30170)
@@ -608,7 +608,7 @@
if ([field isEqualToString:oldField])
return;
- [customFieldsSet removeObject:[[customFieldsArray objectAtIndex:row] objectForKey:FIELD_KEY]];
+ [customFieldsSet removeObject:oldField];
if ([field isEqualToString:@""]) {
[customFieldsArray removeObjectAtIndex:row];
} else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ho...@us...> - 2026-03-13 18:50:38
|
Revision: 30169
http://sourceforge.net/p/bibdesk/svn/30169
Author: hofman
Date: 2026-03-13 18:50:36 +0000 (Fri, 13 Mar 2026)
Log Message:
-----------
don't check twice
Modified Paths:
--------------
trunk/bibdesk/BibPref_Defaults.m
Modified: trunk/bibdesk/BibPref_Defaults.m
===================================================================
--- trunk/bibdesk/BibPref_Defaults.m 2026-03-13 18:28:33 UTC (rev 30168)
+++ trunk/bibdesk/BibPref_Defaults.m 2026-03-13 18:50:36 UTC (rev 30169)
@@ -827,20 +827,22 @@
- (void)observeValueForUserDefaultsKey:(NSString *)key {
// make sure Local-Url and Url are defined as Local File and remote URL fields
- if ([sud boolForKey:BDSKUseLocalUrlAndUrlKey] &&
- ([customFieldsSet containsObject:BDSKLocalUrlString] == NO || [customFieldsSet containsObject:BDSKUrlString] == NO)) {
- NSMutableDictionary *newDict;
+ if ([sud boolForKey:BDSKUseLocalUrlAndUrlKey]) {
+ BOOL needsUpdate = NO;
if ([customFieldsSet containsObject:BDSKLocalUrlString] == NO) {
- newDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: BDSKLocalUrlString, FIELD_KEY, [NSNumber numberWithInteger:BDSKLocalFileType], TYPE_KEY, @NO, DEFAULT_KEY, nil];
- [customFieldsArray addObject:newDict];
+ NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: BDSKLocalUrlString, FIELD_KEY, [NSNumber numberWithInteger:BDSKLocalFileType], TYPE_KEY, @NO, DEFAULT_KEY, nil];
+ [customFieldsArray addObject:dict];
[customFieldsSet addObject:BDSKLocalUrlString];
+ needsUpdate = YES;
}
if ([customFieldsSet containsObject:BDSKUrlString] == NO) {
- newDict = [NSMutableDictionary dictionaryWithObjectsAndKeys: BDSKUrlString, FIELD_KEY, [NSNumber numberWithInteger:BDSKRemoteURLType], TYPE_KEY, @NO, DEFAULT_KEY, nil];
- [customFieldsArray addObject:newDict];
+ NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys: BDSKUrlString, FIELD_KEY, [NSNumber numberWithInteger:BDSKRemoteURLType], TYPE_KEY, @NO, DEFAULT_KEY, nil];
+ [customFieldsArray addObject:dict];
[customFieldsSet addObject:BDSKUrlString];
+ needsUpdate = YES;
}
- [self updatePrefs];
+ if (needsUpdate)
+ [self updatePrefs];
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|