Revision: 16071
http://sourceforge.net/p/skim-app/code/16071
Author: hofman
Date: 2026-03-17 15:52:26 +0000 (Tue, 17 Mar 2026)
Log Message:
-----------
make last selected note type in add note toolbar items sticky
Modified Paths:
--------------
trunk/InitialUserDefaults.plist
trunk/SKMainToolbarController.m
Modified: trunk/InitialUserDefaults.plist
===================================================================
--- trunk/InitialUserDefaults.plist 2026-03-16 17:53:50 UTC (rev 16070)
+++ trunk/InitialUserDefaults.plist 2026-03-17 15:52:26 UTC (rev 16071)
@@ -63,6 +63,14 @@
<integer>0</integer>
<key>SKLastSecondarySelectsText</key>
<false/>
+ <key>SKLastTextNoteType</key>
+ <integer>0</integer>
+ <key>SKLastShapeNoteType</key>
+ <integer>2</integer>
+ <key>SKLastMarkupNoteType</key>
+ <integer>4</integer>
+ <key>SKLastLineNoteType</key>
+ <integer>7</integer>
<key>SKTableFontSize</key>
<real>12</real>
<key>SKSequentialPageNumbering</key>
@@ -324,6 +332,10 @@
<string>SKLastToolMode</string>
<string>SKLastAnnotationMode</string>
<string>SKLastSecondarySelectsText</string>
+ <string>SKLastTextNoteType</string>
+ <string>SKLastShapeNoteType</string>
+ <string>SKLastMarkupNoteType</string>
+ <string>SKLastLineNoteType</string>
<string>SKReadMissingNotesFromSkimFileOption</string>
<string>SKReadNonMissingNotesFromSkimFileOption</string>
<string>SKEnableAppleRemote</string>
Modified: trunk/SKMainToolbarController.m
===================================================================
--- trunk/SKMainToolbarController.m 2026-03-16 17:53:50 UTC (rev 16070)
+++ trunk/SKMainToolbarController.m 2026-03-17 15:52:26 UTC (rev 16071)
@@ -113,6 +113,11 @@
#define SKDocumentToolbarSplitPDFItemIdentifier
@"SKDocumentToolbarSplitPDFItemIdentifier"
#define SKDocumentToolbarPrintItemIdentifier
@"SKDocumentToolbarPrintItemIdentifier"
+#define SKLastTextNoteTypeKey @"SKLastTextNoteType"
+#define SKLastShapeNoteTypeKey @"SKLastShapeNoteType"
+#define SKLastMarkupNoteTypeKey @"SKLastMarkupNoteType"
+#define SKLastLineNoteTypeKey @"SKLastLineNoteType"
+
static NSString *noteToolImageNames[] = {@"ToolbarTextNoteMenu",
@"ToolbarAnchoredNoteMenu", @"ToolbarCircleNoteMenu", @"ToolbarSquareNoteMenu",
@"ToolbarHighlightNoteMenu", @"ToolbarUnderlineNoteMenu",
@"ToolbarStrikeOutNoteMenu", @"ToolbarLineNoteMenu", @"ToolbarInkNoteMenu"};
static NSString *addNoteToolImageNames[] = {@"ToolbarAddTextNoteMenu",
@"ToolbarAddAnchoredNoteMenu", @"ToolbarAddCircleNoteMenu",
@"ToolbarAddSquareNoteMenu", @"ToolbarAddHighlightNoteMenu",
@"ToolbarAddUnderlineNoteMenu", @"ToolbarAddStrikeOutNoteMenu",
@"ToolbarAddLineNoteMenu", @"ToolbarAddInkNoteMenu"};
@@ -143,6 +148,7 @@
@interface SKMainToolbarController ()
- (void)handleColorSwatchFrameChangedNotification:(NSNotification
*)notification;
- (void)updateColorsMenu:(NSMenu *)menu;
+- (void)setNoteType:(NSInteger)type forButton:(NSSegmentedControl *)button;
@end
@@ -464,6 +470,8 @@
} else if ([identifier
isEqualToString:SKDocumentToolbarNewTextNoteItemIdentifier]) {
+ [self setNoteType:[[NSUserDefaults standardUserDefaults]
integerForKey:SKLastTextNoteTypeKey] forButton:textNoteButton];
+
menu = [NSMenu menu];
[menu addItemWithTitle:NSLocalizedString(@"Text Note", @"Menu item
title") imageNamed:SKImageNameToolbarAddTextNote
action:@selector(createNewTextNote:) target:self tag:SKNoteTypeFreeText];
[menu addItemWithTitle:NSLocalizedString(@"Anchored Note", @"Menu
item title") imageNamed:SKImageNameToolbarAddAnchoredNote
action:@selector(createNewTextNote:) target:self tag:SKNoteTypeAnchored];
@@ -481,6 +489,8 @@
} else if ([identifier
isEqualToString:SKDocumentToolbarNewCircleNoteItemIdentifier]) {
+ [self setNoteType:[[NSUserDefaults standardUserDefaults]
integerForKey:SKLastShapeNoteTypeKey] forButton:circleNoteButton];
+
menu = [NSMenu menu];
[menu addItemWithTitle:NSLocalizedString(@"Circle", @"Menu item
title") imageNamed:SKImageNameToolbarAddCircleNote
action:@selector(createNewCircleNote:) target:self tag:SKNoteTypeCircle];
[menu addItemWithTitle:NSLocalizedString(@"Box", @"Menu item
title") imageNamed:SKImageNameToolbarAddSquareNote
action:@selector(createNewCircleNote:) target:self tag:SKNoteTypeSquare];
@@ -498,6 +508,8 @@
} else if ([identifier
isEqualToString:SKDocumentToolbarNewMarkupItemIdentifier]) {
+ [self setNoteType:[[NSUserDefaults standardUserDefaults]
integerForKey:SKLastMarkupNoteTypeKey] forButton:markupNoteButton];
+
menu = [NSMenu menu];
[menu addItemWithTitle:NSLocalizedString(@"Highlight", @"Menu item
title") imageNamed:SKImageNameToolbarAddHighlightNote
action:@selector(createNewMarkupNote:) target:self tag:SKNoteTypeHighlight];
[menu addItemWithTitle:NSLocalizedString(@"Underline", @"Menu item
title") imageNamed:SKImageNameToolbarAddUnderlineNote
action:@selector(createNewMarkupNote:) target:self tag:SKNoteTypeUnderline];
@@ -517,6 +529,8 @@
} else if ([identifier
isEqualToString:SKDocumentToolbarNewLineItemIdentifier]) {
+ [self setNoteType:[[NSUserDefaults standardUserDefaults]
integerForKey:SKLastLineNoteTypeKey] forButton:lineNoteButton];
+
menu = [NSMenu menu];
[menu addItemWithTitle:NSLocalizedString(@"Line", @"Menu item
title") imageNamed:SKImageNameToolbarAddLineNote
action:@selector(createNewLineNote:) target:self tag:SKNoteTypeLine];
[menu addItemWithTitle:NSLocalizedString(@"Freehand", @"Menu item
title") imageNamed:SKImageNameToolbarAddInkNote
action:@selector(createNewLineNote:) target:self tag:SKNoteTypeInk];
@@ -1269,30 +1283,38 @@
[mainController.pdfView setDisplaysPageBreaks:NO ==
[mainController.pdfView displaysPageBreaks]];
}
+- (void)setNoteType:(NSInteger)type forButton:(NSSegmentedControl *)button {
+ if (type != [button tagForSegment:0]) {
+ [button setTag:type forSegment:0];
+ [button setImage:[NSImage imageNamed:addNoteToolImageNames[type]]
forSegment:0];
+ }
+}
+
- (void)createNewNoteWithType:(NSInteger)type forButton:(NSSegmentedControl
*)button {
if ([mainController.pdfView canSelectNote]) {
[mainController.pdfView addAnnotationWithType:type];
- if (type != [button tagForSegment:0]) {
- [button setTag:type forSegment:0];
- [button setImage:[NSImage imageNamed:addNoteToolImageNames[type]]
forSegment:0];
- }
+ [self setNoteType:type forButton:button];
} else NSBeep();
}
- (void)createNewTextNote:(id)sender {
[self createNewNoteWithType:[sender tag] forButton:textNoteButton];
+ [[NSUserDefaults standardUserDefaults] setInteger:[sender tag]
forKey:SKLastTextNoteTypeKey];
}
- (void)createNewCircleNote:(id)sender {
[self createNewNoteWithType:[sender tag] forButton:circleNoteButton];
+ [[NSUserDefaults standardUserDefaults] setInteger:[sender tag]
forKey:SKLastShapeNoteTypeKey];
}
- (void)createNewMarkupNote:(id)sender {
[self createNewNoteWithType:[sender tag] forButton:markupNoteButton];
+ [[NSUserDefaults standardUserDefaults] setInteger:[sender tag]
forKey:SKLastMarkupNoteTypeKey];
}
- (void)createNewLineNote:(id)sender {
[self createNewNoteWithType:[sender tag] forButton:lineNoteButton];
+ [[NSUserDefaults standardUserDefaults] setInteger:[sender tag]
forKey:SKLastLineNoteTypeKey];
}
- (IBAction)createNewNote:(id)sender {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit