You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
(23) |
Apr
(254) |
May
(252) |
Jun
(209) |
Jul
(198) |
Aug
(192) |
Sep
(207) |
Oct
(120) |
Nov
(179) |
Dec
(52) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(48) |
Feb
(69) |
Mar
(129) |
Apr
(250) |
May
(113) |
Jun
(177) |
Jul
(228) |
Aug
(155) |
Sep
(218) |
Oct
(185) |
Nov
(109) |
Dec
(88) |
2009 |
Jan
(83) |
Feb
(39) |
Mar
(70) |
Apr
(47) |
May
(48) |
Jun
(67) |
Jul
(61) |
Aug
(97) |
Sep
(221) |
Oct
(141) |
Nov
(70) |
Dec
(61) |
2010 |
Jan
(45) |
Feb
(76) |
Mar
(178) |
Apr
(106) |
May
(57) |
Jun
(32) |
Jul
(64) |
Aug
(98) |
Sep
(96) |
Oct
(19) |
Nov
(34) |
Dec
(117) |
2011 |
Jan
(55) |
Feb
(48) |
Mar
(64) |
Apr
(21) |
May
(39) |
Jun
(53) |
Jul
(99) |
Aug
(56) |
Sep
(39) |
Oct
(26) |
Nov
(19) |
Dec
(69) |
2012 |
Jan
(17) |
Feb
(40) |
Mar
(17) |
Apr
|
May
(2) |
Jun
(8) |
Jul
(2) |
Aug
(10) |
Sep
(10) |
Oct
(38) |
Nov
(48) |
Dec
(70) |
2013 |
Jan
(43) |
Feb
(47) |
Mar
(39) |
Apr
(37) |
May
(25) |
Jun
(6) |
Jul
(20) |
Aug
(49) |
Sep
(33) |
Oct
(34) |
Nov
(75) |
Dec
(6) |
2014 |
Jan
(32) |
Feb
(10) |
Mar
(17) |
Apr
|
May
|
Jun
(26) |
Jul
(5) |
Aug
|
Sep
(4) |
Oct
(23) |
Nov
(80) |
Dec
(48) |
2015 |
Jan
(80) |
Feb
(50) |
Mar
(58) |
Apr
(20) |
May
(11) |
Jun
(16) |
Jul
(24) |
Aug
(27) |
Sep
(56) |
Oct
(30) |
Nov
(16) |
Dec
(6) |
2016 |
Jan
(31) |
Feb
(14) |
Mar
(23) |
Apr
(17) |
May
(40) |
Jun
(12) |
Jul
(17) |
Aug
(9) |
Sep
(32) |
Oct
(36) |
Nov
(23) |
Dec
(9) |
2017 |
Jan
(37) |
Feb
(23) |
Mar
(65) |
Apr
(22) |
May
(6) |
Jun
(3) |
Jul
|
Aug
|
Sep
(3) |
Oct
(22) |
Nov
(63) |
Dec
(71) |
2018 |
Jan
(83) |
Feb
(21) |
Mar
(35) |
Apr
(44) |
May
(14) |
Jun
(12) |
Jul
(8) |
Aug
(18) |
Sep
(10) |
Oct
(145) |
Nov
(144) |
Dec
(76) |
2019 |
Jan
(18) |
Feb
(28) |
Mar
(5) |
Apr
(208) |
May
(291) |
Jun
(158) |
Jul
(27) |
Aug
(8) |
Sep
(10) |
Oct
(83) |
Nov
(41) |
Dec
(31) |
2020 |
Jan
(16) |
Feb
(46) |
Mar
(100) |
Apr
(78) |
May
(69) |
Jun
(71) |
Jul
(28) |
Aug
(131) |
Sep
(176) |
Oct
(89) |
Nov
(147) |
Dec
(19) |
2021 |
Jan
(19) |
Feb
(25) |
Mar
(91) |
Apr
(98) |
May
(14) |
Jun
(44) |
Jul
(8) |
Aug
(3) |
Sep
(38) |
Oct
(57) |
Nov
(97) |
Dec
(74) |
2022 |
Jan
(89) |
Feb
(47) |
Mar
(15) |
Apr
(50) |
May
(54) |
Jun
(56) |
Jul
(80) |
Aug
(12) |
Sep
(11) |
Oct
(60) |
Nov
(48) |
Dec
(4) |
2023 |
Jan
(75) |
Feb
(49) |
Mar
(84) |
Apr
(24) |
May
(13) |
Jun
(74) |
Jul
(32) |
Aug
(66) |
Sep
(50) |
Oct
(38) |
Nov
(105) |
Dec
(181) |
2024 |
Jan
(21) |
Feb
(49) |
Mar
(77) |
Apr
(84) |
May
(20) |
Jun
(71) |
Jul
(53) |
Aug
(33) |
Sep
(54) |
Oct
(124) |
Nov
(151) |
Dec
(73) |
2025 |
Jan
(61) |
Feb
(17) |
Mar
(136) |
Apr
(72) |
May
(200) |
Jun
(238) |
Jul
(91) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ho...@us...> - 2007-03-30 11:27:42
|
Revision: 1675 http://skim-app.svn.sourceforge.net/skim-app/?rev=1675&view=rev Author: hofman Date: 2007-03-30 04:27:41 -0700 (Fri, 30 Mar 2007) Log Message: ----------- Add remark about duplicating a note by option-select. Modified Paths: -------------- trunk/English.lproj/Skim Help/skim.texi Modified: trunk/English.lproj/Skim Help/skim.texi =================================================================== --- trunk/English.lproj/Skim Help/skim.texi 2007-03-30 11:20:04 UTC (rev 1674) +++ trunk/English.lproj/Skim Help/skim.texi 2007-03-30 11:27:41 UTC (rev 1675) @@ -359,6 +359,8 @@ @end itemize @endbox +You can also create a dublicate of a note by selecting the note while holding the Option key. + @heading See also @menu * Pasting notes in a PDF file:: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-30 11:20:09
|
Revision: 1674 http://skim-app.svn.sourceforge.net/skim-app/?rev=1674&view=rev Author: hofman Date: 2007-03-30 04:20:04 -0700 (Fri, 30 Mar 2007) Log Message: ----------- Move readingbar to separate file. Modified Paths: -------------- trunk/SKPDFView.h trunk/SKPDFView.m trunk/Skim.xcodeproj/project.pbxproj Added Paths: ----------- trunk/SKReadingBar.h trunk/SKReadingBar.m Modified: trunk/SKPDFView.h =================================================================== --- trunk/SKPDFView.h 2007-03-30 09:44:50 UTC (rev 1673) +++ trunk/SKPDFView.h 2007-03-30 11:20:04 UTC (rev 1674) @@ -126,28 +126,3 @@ - (void)handleScrollMagnifyNotification:(NSNotification *)note; @end - - -@interface SKReadingBar : NSObject { - PDFPage *page; - NSArray *lineBounds; - int currentLine; -} - -- (PDFPage *)page; -- (void)setPage:(PDFPage *)newPage; - -- (int)currentLine; -- (void)setCurrentLine:(int)lineIndex; - -- (unsigned int)numberOfLines; - -- (NSRect)currentBounds; -- (NSRect)currentBoundsForBox:(PDFDisplayBox)box; - -- (BOOL)goToNextLine; -- (BOOL)goToPreviousLine; -- (BOOL)goToNextPage; -- (BOOL)goToPreviousPage; - -@end Modified: trunk/SKPDFView.m =================================================================== --- trunk/SKPDFView.m 2007-03-30 09:44:50 UTC (rev 1673) +++ trunk/SKPDFView.m 2007-03-30 11:20:04 UTC (rev 1674) @@ -47,6 +47,7 @@ #import "SKApplication.h" #import "SKStringConstants.h" #import "NSUserDefaultsController_SKExtensions.h" +#import "SKReadingBar.h" NSString *SKPDFViewToolModeChangedNotification = @"SKPDFViewToolModeChangedNotification"; NSString *SKPDFViewAnnotationModeChangedNotification = @"SKPDFViewAnnotationModeChangedNotification"; @@ -1973,133 +1974,3 @@ } @end - -#pragma mark - - -@implementation SKReadingBar - -- (id)init { - if (self = [super init]) { - page = nil; - lineBounds = nil; - currentLine = -1; - } - return self; -} - -- (void)dealloc { - [page release]; - [lineBounds release]; - [super dealloc]; -} - -- (PDFPage *)page { - return page; -} - -- (void)setPage:(PDFPage *)newPage { - if (page != newPage) { - [page release]; - page = [newPage retain]; - [lineBounds release]; - lineBounds = [[page lineBounds] retain]; - currentLine = -1; - } -} - -- (int)currentLine { - return currentLine; -} - -- (void)setCurrentLine:(int)lineIndex { - currentLine = lineIndex; -} - -- (unsigned int)numberOfLines { - return [lineBounds count]; -} - -- (NSRect)currentBounds { - if (page == nil || currentLine == -1) - return NSZeroRect; - return [[lineBounds objectAtIndex:currentLine] rectValue]; -} - -- (NSRect)currentBoundsForBox:(PDFDisplayBox)box { - if (page == nil || currentLine == -1) - return NSZeroRect; - NSRect rect = [self currentBounds]; - NSRect bounds = [page boundsForBox:box]; - rect.origin.x = NSMinX(bounds); - rect.size.width = NSWidth(bounds); - return rect; -} - -- (BOOL)goToNextLine { - BOOL didMove = NO; - if (currentLine < (int)[lineBounds count] - 1) { - ++currentLine; - didMove = YES; - } else if ([self goToNextPage]) { - didMove = YES; - } - return didMove; -} - -- (BOOL)goToPreviousLine { - BOOL didMove = NO; - if (currentLine == -1 && [lineBounds count]) - currentLine = [lineBounds count]; - if (currentLine > 0) { - --currentLine; - didMove = YES; - } else if ([self goToPreviousPage]) { - currentLine = [lineBounds count] - 1; - didMove = YES; - } - return didMove; -} - -- (BOOL)goToNextPage { - BOOL didMove = NO; - PDFDocument *doc = [page document]; - int i = [doc indexForPage:page], iMax = [doc pageCount]; - - while (++i < iMax) { - PDFPage *nextPage = [doc pageAtIndex:i]; - NSArray *lines = [nextPage lineBounds]; - if ([lines count]) { - [page release]; - page = [nextPage retain]; - [lineBounds release]; - lineBounds = [lines retain]; - currentLine = 0; - didMove = YES; - break; - } - } - return didMove; -} - -- (BOOL)goToPreviousPage { - BOOL didMove = NO; - PDFDocument *doc = [page document]; - int i = [doc indexForPage:page]; - - while (i-- > 0) { - PDFPage *prevPage = [doc pageAtIndex:i]; - NSArray *lines = [prevPage lineBounds]; - if ([lines count]) { - [page release]; - page = [prevPage retain]; - [lineBounds release]; - lineBounds = [lines retain]; - currentLine = 0; - didMove = YES; - break; - } - } - return didMove; -} - -@end Added: trunk/SKReadingBar.h =================================================================== --- trunk/SKReadingBar.h (rev 0) +++ trunk/SKReadingBar.h 2007-03-30 11:20:04 UTC (rev 1674) @@ -0,0 +1,65 @@ +// +// SKReadingBar.h +// Skim +// +// Created by Christiaan Hofman on 3/30/07. +/* + This software is Copyright (c) 2007 + 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> +#import <Quartz/Quartz.h> + + +@interface SKReadingBar : NSObject { + PDFPage *page; + NSArray *lineBounds; + int currentLine; +} + +- (PDFPage *)page; +- (void)setPage:(PDFPage *)newPage; + +- (int)currentLine; +- (void)setCurrentLine:(int)lineIndex; + +- (unsigned int)numberOfLines; + +- (NSRect)currentBounds; +- (NSRect)currentBoundsForBox:(PDFDisplayBox)box; + +- (BOOL)goToNextLine; +- (BOOL)goToPreviousLine; +- (BOOL)goToNextPage; +- (BOOL)goToPreviousPage; + +@end Added: trunk/SKReadingBar.m =================================================================== --- trunk/SKReadingBar.m (rev 0) +++ trunk/SKReadingBar.m 2007-03-30 11:20:04 UTC (rev 1674) @@ -0,0 +1,169 @@ +// +// SKReadingBar.m +// Skim +// +// Created by Christiaan Hofman on 3/30/07. +/* + This software is Copyright (c) 2007 + 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 "SKReadingBar.h" +#import "PDFPage_SKExtensions.h" + + +@implementation SKReadingBar + +- (id)init { + if (self = [super init]) { + page = nil; + lineBounds = nil; + currentLine = -1; + } + return self; +} + +- (void)dealloc { + [page release]; + [lineBounds release]; + [super dealloc]; +} + +- (PDFPage *)page { + return page; +} + +- (void)setPage:(PDFPage *)newPage { + if (page != newPage) { + [page release]; + page = [newPage retain]; + [lineBounds release]; + lineBounds = [[page lineBounds] retain]; + currentLine = -1; + } +} + +- (int)currentLine { + return currentLine; +} + +- (void)setCurrentLine:(int)lineIndex { + currentLine = lineIndex; +} + +- (unsigned int)numberOfLines { + return [lineBounds count]; +} + +- (NSRect)currentBounds { + if (page == nil || currentLine == -1) + return NSZeroRect; + return [[lineBounds objectAtIndex:currentLine] rectValue]; +} + +- (NSRect)currentBoundsForBox:(PDFDisplayBox)box { + if (page == nil || currentLine == -1) + return NSZeroRect; + NSRect rect = [self currentBounds]; + NSRect bounds = [page boundsForBox:box]; + rect.origin.x = NSMinX(bounds); + rect.size.width = NSWidth(bounds); + return rect; +} + +- (BOOL)goToNextLine { + BOOL didMove = NO; + if (currentLine < (int)[lineBounds count] - 1) { + ++currentLine; + didMove = YES; + } else if ([self goToNextPage]) { + didMove = YES; + } + return didMove; +} + +- (BOOL)goToPreviousLine { + BOOL didMove = NO; + if (currentLine == -1 && [lineBounds count]) + currentLine = [lineBounds count]; + if (currentLine > 0) { + --currentLine; + didMove = YES; + } else if ([self goToPreviousPage]) { + currentLine = [lineBounds count] - 1; + didMove = YES; + } + return didMove; +} + +- (BOOL)goToNextPage { + BOOL didMove = NO; + PDFDocument *doc = [page document]; + int i = [doc indexForPage:page], iMax = [doc pageCount]; + + while (++i < iMax) { + PDFPage *nextPage = [doc pageAtIndex:i]; + NSArray *lines = [nextPage lineBounds]; + if ([lines count]) { + [page release]; + page = [nextPage retain]; + [lineBounds release]; + lineBounds = [lines retain]; + currentLine = 0; + didMove = YES; + break; + } + } + return didMove; +} + +- (BOOL)goToPreviousPage { + BOOL didMove = NO; + PDFDocument *doc = [page document]; + int i = [doc indexForPage:page]; + + while (i-- > 0) { + PDFPage *prevPage = [doc pageAtIndex:i]; + NSArray *lines = [prevPage lineBounds]; + if ([lines count]) { + [page release]; + page = [prevPage retain]; + [lineBounds release]; + lineBounds = [lines retain]; + currentLine = 0; + didMove = YES; + break; + } + } + return didMove; +} + +@end Modified: trunk/Skim.xcodeproj/project.pbxproj =================================================================== --- trunk/Skim.xcodeproj/project.pbxproj 2007-03-30 09:44:50 UTC (rev 1673) +++ trunk/Skim.xcodeproj/project.pbxproj 2007-03-30 11:20:04 UTC (rev 1674) @@ -87,6 +87,7 @@ CE4190C40B94963A00ECF819 /* ToolbarCircleNote.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CE4190C20B94963A00ECF819 /* ToolbarCircleNote.tiff */; }; CE4190C50B94963A00ECF819 /* ToolbarTextNote.tiff in Resources */ = {isa = PBXBuildFile; fileRef = CE4190C30B94963A00ECF819 /* ToolbarTextNote.tiff */; }; CE41A6CC0B975E5000ECF819 /* Skim.sdef in Resources */ = {isa = PBXBuildFile; fileRef = CE41A6CB0B975E5000ECF819 /* Skim.sdef */; }; + CE4294A30BBD29120016FDC2 /* SKReadingBar.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4294A20BBD29120016FDC2 /* SKReadingBar.m */; }; CE4373B40BB5440E00A56987 /* PSDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = CE4373B30BB5440E00A56987 /* PSDocument.icns */; }; CE4A659F0BAB1598004AD07D /* SKBookmarkController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4A659E0BAB1598004AD07D /* SKBookmarkController.m */; }; CE4A65CC0BAB1E2E004AD07D /* BookmarksWindow.nib in Resources */ = {isa = PBXBuildFile; fileRef = CE4A65CA0BAB1E2E004AD07D /* BookmarksWindow.nib */; }; @@ -259,6 +260,8 @@ CE4190C20B94963A00ECF819 /* ToolbarCircleNote.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = ToolbarCircleNote.tiff; path = Images/ToolbarCircleNote.tiff; sourceTree = "<group>"; }; CE4190C30B94963A00ECF819 /* ToolbarTextNote.tiff */ = {isa = PBXFileReference; lastKnownFileType = image.tiff; name = ToolbarTextNote.tiff; path = Images/ToolbarTextNote.tiff; sourceTree = "<group>"; }; CE41A6CB0B975E5000ECF819 /* Skim.sdef */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.sdef; path = Skim.sdef; sourceTree = "<group>"; }; + CE4294A10BBD29120016FDC2 /* SKReadingBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKReadingBar.h; sourceTree = "<group>"; }; + CE4294A20BBD29120016FDC2 /* SKReadingBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKReadingBar.m; sourceTree = "<group>"; }; CE4373B30BB5440E00A56987 /* PSDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = PSDocument.icns; path = Images/PSDocument.icns; sourceTree = "<group>"; }; CE4A659D0BAB1598004AD07D /* SKBookmarkController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKBookmarkController.h; sourceTree = "<group>"; }; CE4A659E0BAB1598004AD07D /* SKBookmarkController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKBookmarkController.m; sourceTree = "<group>"; }; @@ -610,6 +613,8 @@ children = ( CE3A3D2A0B78C0A0006B64D3 /* SKPDFAnnotationNote.h */, CE3A3D2B0B78C0A0006B64D3 /* SKPDFAnnotationNote.m */, + CE4294A10BBD29120016FDC2 /* SKReadingBar.h */, + CE4294A20BBD29120016FDC2 /* SKReadingBar.m */, CE2DE4900B85D48F00D0DA12 /* SKThumbnail.h */, CE2DE4910B85D48F00D0DA12 /* SKThumbnail.m */, CEF7117C0B90B58E003A2771 /* SKVersionNumber.h */, @@ -934,6 +939,7 @@ F98DC2690BA090D8008E46EC /* BDSKImagePopUpButtonCell.m in Sources */, CE4A659F0BAB1598004AD07D /* SKBookmarkController.m in Sources */, CE4A8BA20BB15980004AD07D /* NSWindowController_SKExtensions.m in Sources */, + CE4294A30BBD29120016FDC2 /* SKReadingBar.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-30 09:44:51
|
Revision: 1673 http://skim-app.svn.sourceforge.net/skim-app/?rev=1673&view=rev Author: hofman Date: 2007-03-30 02:44:50 -0700 (Fri, 30 Mar 2007) Log Message: ----------- Fix a few bad pixels in document icons Modified Paths: -------------- trunk/Images/NoteDocument.icns trunk/Images/PDFDocument.icns Modified: trunk/Images/NoteDocument.icns =================================================================== (Binary files differ) Modified: trunk/Images/PDFDocument.icns =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-30 09:32:13
|
Revision: 1672 http://skim-app.svn.sourceforge.net/skim-app/?rev=1672&view=rev Author: hofman Date: 2007-03-30 02:32:11 -0700 (Fri, 30 Mar 2007) Log Message: ----------- edit annotation when double-clicking attributed string of anchored note in outline view Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2007-03-29 23:02:40 UTC (rev 1671) +++ trunk/SKMainWindowController.m 2007-03-30 09:32:11 UTC (rev 1672) @@ -1995,14 +1995,26 @@ - (void)outlineView:(NSOutlineView *)ov setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item{ if ([ov isEqual:noteOutlineView]) { - if ([[tableColumn identifier] isEqualToString:@"note"]) - [item setContents:object]; + if ([[tableColumn identifier] isEqualToString:@"note"]) { + if ([object isEqualToString:[item contents]] == NO) + [item setContents:object]; + } } } - (BOOL)outlineView:(NSOutlineView *)ov shouldEditTableColumn:(NSTableColumn *)tableColumn item:(id)item{ if ([ov isEqual:noteOutlineView]) { - return [[tableColumn identifier] isEqualToString:@"note"] && [item type] && [item isMovable]; + if ([[tableColumn identifier] isEqualToString:@"note"]) { + if ([item type] == nil) { + PDFAnnotation *annotation = [(SKNoteText *)item annotation]; + [pdfView scrollAnnotationToVisible:annotation]; + [pdfView setActiveAnnotation:annotation]; + [self showNote:annotation]; + return NO; + } else if ([item isMovable]) { + return YES; + } + } } return NO; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ama...@us...> - 2007-03-29 23:03:08
|
Revision: 1671 http://skim-app.svn.sourceforge.net/skim-app/?rev=1671&view=rev Author: amaxwell Date: 2007-03-29 16:02:40 -0700 (Thu, 29 Mar 2007) Log Message: ----------- Shorten message text and fix some typos Modified Paths: -------------- trunk/SKDocument.m Modified: trunk/SKDocument.m =================================================================== --- trunk/SKDocument.m 2007-03-29 19:49:44 UTC (rev 1670) +++ trunk/SKDocument.m 2007-03-29 23:02:40 UTC (rev 1671) @@ -238,7 +238,7 @@ defaultButton:NSLocalizedString(@"No", @"Button title") alternateButton:NSLocalizedString(@"Yes", @"Button title") otherButton:nil - informativeTextWithFormat:NSLocalizedString(@"Skim was not able to read the notes at %@. %@ Do you want to continue to open the PDF document anyway?", @"Informative text in alert dialog"), [absoluteURL path], [[error userInfo] objectForKey:NSLocalizedDescriptionKey]]; + informativeTextWithFormat:NSLocalizedString(@"Skim was not able to read the notes at %@. %@ Do you want to continue to open the PDF document anyway?", @"Informative text in alert dialog"), [[absoluteURL path] stringByAbbreviatingWithTildeInPath], [[error userInfo] objectForKey:NSLocalizedDescriptionKey]]; if ([alert runModal] == NSAlertDefaultReturn) { [data release]; data = nil; @@ -252,7 +252,7 @@ defaultButton:NSLocalizedString(@"Yes", @"Button title") alternateButton:NSLocalizedString(@"No", @"Button title") otherButton:nil - informativeTextWithFormat:NSLocalizedString(@"Skim was not able to read the notes at %@, but there a Skim notes file %@ with the same name was found. Do you want Skim the read the from this file?", @"Informative text in alert dialog"), [absoluteURL path], path]; + informativeTextWithFormat:NSLocalizedString(@"Unable to read notes for %@, but a Skim notes file with the same name was found. Do you want Skim to read the notes from this file?", @"Informative text in alert dialog"), [[absoluteURL path] stringByAbbreviatingWithTildeInPath]]; if ([alert runModal] == NSAlertDefaultReturn) { NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithFile:path]; if (array) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-29 19:49:46
|
Revision: 1670 http://skim-app.svn.sourceforge.net/skim-app/?rev=1670&view=rev Author: hofman Date: 2007-03-29 12:49:44 -0700 (Thu, 29 Mar 2007) Log Message: ----------- Fix links in release notes Modified Paths: -------------- trunk/English.lproj/ReleaseNotes.rtf Modified: trunk/English.lproj/ReleaseNotes.rtf =================================================================== --- trunk/English.lproj/ReleaseNotes.rtf 2007-03-29 19:16:56 UTC (rev 1669) +++ trunk/English.lproj/ReleaseNotes.rtf 2007-03-29 19:49:44 UTC (rev 1670) @@ -28,7 +28,7 @@ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f1\i0\b0\fs22 \cf0 \ -The Skim website is at {\field{\*\fldinst{HYPERLINK "http://bibdesk.sourceforge.net/"}}{\fldrslt http://skim-app.sourceforge.net}} - check there for current information and ways to find out more about the program and the development efforts.\ +The Skim website is at {\field{\*\fldinst{HYPERLINK "http://skim-app.sourceforge.net/"}}{\fldrslt http://skim-app.sourceforge.net}} - check there for current information and ways to find out more about the program and the development efforts.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -36,7 +36,7 @@ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \f1\i0\b0\fs22 \cf0 \ -If you have a problem with using the program and you'd like to talk with other users about it, there is a mailing list set up for discussing using Skim. Information about it is available at {\field{\*\fldinst{HYPERLINK "http://lists.sourceforge.net/mailman/listinfo/bibdesk-users"}}{\fldrslt http://lists.sourceforge.net/mailman/listinfo/skim-app-users}}.\ +If you have a problem with using the program and you'd like to talk with other users about it, there is a mailing list set up for discussing using Skim. Information about it is available at {\field{\*\fldinst{HYPERLINK "http://lists.sourceforge.net/mailman/listinfo/skim-app-users"}}{\fldrslt http://lists.sourceforge.net/mailman/listinfo/skim-app-users}}.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-29 19:25:40
|
Revision: 1669 http://skim-app.svn.sourceforge.net/skim-app/?rev=1669&view=rev Author: hofman Date: 2007-03-29 12:16:56 -0700 (Thu, 29 Mar 2007) Log Message: ----------- Use new skim site reverse DNS for app identifier and xattr keys and names. Modified Paths: -------------- trunk/Info.plist trunk/NSFileManager_ExtendedAttributes.m trunk/SKDocument.m trunk/skimnotes.m Modified: trunk/Info.plist =================================================================== --- trunk/Info.plist 2007-03-29 18:25:11 UTC (rev 1668) +++ trunk/Info.plist 2007-03-29 19:16:56 UTC (rev 1669) @@ -223,7 +223,7 @@ <key>CFBundleIconFile</key> <string>Skim</string> <key>CFBundleIdentifier</key> - <string>net.sourceforge.bibdesk.skim</string> + <string>net.sourceforge.skim-app.skim</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> Modified: trunk/NSFileManager_ExtendedAttributes.m =================================================================== --- trunk/NSFileManager_ExtendedAttributes.m 2007-03-29 18:25:11 UTC (rev 1668) +++ trunk/NSFileManager_ExtendedAttributes.m 2007-03-29 19:16:56 UTC (rev 1669) @@ -130,9 +130,9 @@ #define MAX_XATTR_LENGTH 2048 #define UNIQUE_VALUE [[NSProcessInfo processInfo] globallyUniqueString] -#define UNIQUE_KEY @"net_sourceforge_skim_unique_key" -#define WRAPPER_KEY @"net_sourceforge_skim_has_wrapper" -#define FRAGMENTS_KEY @"net_sourceforge_skim_number_of_fragments" +#define UNIQUE_KEY @"net_sourceforge_skim-app_unique_key" +#define WRAPPER_KEY @"net_sourceforge_skim-app_has_wrapper" +#define FRAGMENTS_KEY @"net_sourceforge_skim-app_number_of_fragments" - (NSData *)extendedAttributeNamed:(NSString *)attr atPath:(NSString *)path traverseLink:(BOOL)follow error:(NSError **)error; { Modified: trunk/SKDocument.m =================================================================== --- trunk/SKDocument.m 2007-03-29 18:25:11 UTC (rev 1668) +++ trunk/SKDocument.m 2007-03-29 19:16:56 UTC (rev 1669) @@ -305,7 +305,7 @@ NSError *error = nil; // first remove all old notes - if ([fm removeExtendedAttribute:@"net_sourceforge_skim_notes" atPath:path traverseLink:YES error:&error] == NO) { + if ([fm removeExtendedAttribute:@"net_sourceforge_skim-app_notes" atPath:path traverseLink:YES error:&error] == NO) { // should we set success to NO and return an error? //NSLog(@"%@: %@", self, error); } @@ -315,7 +315,7 @@ [rootObject addObject:[[notes objectAtIndex:i] dictionaryValue]]; } data = [NSKeyedArchiver archivedDataWithRootObject:rootObject]; - if ([fm setExtendedAttributeNamed:@"net_sourceforge_skim_notes" toValue:data atPath:path options:nil error:&error] == NO) { + if ([fm setExtendedAttributeNamed:@"net_sourceforge_skim-app_notes" toValue:data atPath:path options:nil error:&error] == NO) { success = NO; if (outError) *outError = error; NSLog(@"%@: %@", self, error); @@ -331,7 +331,7 @@ if ([aURL isFileURL]) { - NSData *data = [fm extendedAttributeNamed:@"net_sourceforge_skim_notes" atPath:[aURL path] traverseLink:YES error:&error]; + NSData *data = [fm extendedAttributeNamed:@"net_sourceforge_skim-app_notes" atPath:[aURL path] traverseLink:YES error:&error]; if (noteDicts) [noteDicts release]; Modified: trunk/skimnotes.m =================================================================== --- trunk/skimnotes.m 2007-03-29 18:25:11 UTC (rev 1668) +++ trunk/skimnotes.m 2007-03-29 19:16:56 UTC (rev 1669) @@ -1,24 +1,29 @@ #import <Foundation/Foundation.h> #import "NSFileManager_ExtendedAttributes.h" -#define SKIM_NOTES_KEY @"net_sourceforge_skim_notes" +#define SKIM_NOTES_KEY @"net_sourceforge_skim-app_notes" -static char *usageStr = "Usage: skimnotes get|set file.pdf file.skim"; +static char *usageStr = "Usage:\n skimnotes set PDF_FILE SKIM_FILE\n skimnotes get PDF_FILE SKIM_FILE\n skimnotes remove PDF_FILE"; static char *versionStr = "SkimNotes command-line client, version 0.1."; +enum { + SKNActionGet, + SKNActionSet, + SKNActionRemove +}; + int main (int argc, const char * argv[]) { - BOOL get = YES; + int action = 0; - if (argc == 2 && (strcmp("-h", argv[1]) == 0 || strcmp("-help", argv[1]) == 0)) { + if (argc == 2 && (strcmp("-h", argv[1]) == 0 || strcmp("-help", argv[1]) == 0)) { fprintf (stderr, "%s\n%s\n", usageStr, versionStr); exit (0); - } else if (argc < 4 ) { - fprintf (stderr, "%s\n%s\n", usageStr, versionStr); - exit (1); - } else if (strcmp("get", argv[1]) == 0) { - get = YES; - } else if (strcmp("set", argv[1]) == 0) { - get = NO; + } else if (argc > 3 && strcmp("get", argv[1]) == 0) { + action = SKNActionGet; + } else if (argc > 3 && strcmp("set", argv[1]) == 0) { + action = SKNActionSet; + } else if (argc > 2 && strcmp("remove", argv[1]) == 0) { + action = SKNActionRemove; } else { fprintf (stderr, "%s\n%s\n", usageStr, versionStr); exit (1); @@ -29,20 +34,21 @@ NSFileManager *fm = [NSFileManager defaultManager]; BOOL success = NO; NSString *pdfPath = [[[[NSProcessInfo processInfo] arguments] objectAtIndex:2] stringByStandardizingPath]; - NSString *notesPath = [[[[NSProcessInfo processInfo] arguments] objectAtIndex:3] stringByStandardizingPath]; + NSString *notesPath = action == SKNActionRemove ? nil : [[[[NSProcessInfo processInfo] arguments] objectAtIndex:3] stringByStandardizingPath]; BOOL isDir = NO; if ([fm fileExistsAtPath:pdfPath isDirectory:&isDir] == NO || isDir) { - } else if (get) { + } else if (action == SKNActionGet) { NSData *data = [fm extendedAttributeNamed:SKIM_NOTES_KEY atPath:pdfPath traverseLink:YES error:NULL]; if (data) success = [data writeToFile:notesPath atomically:YES]; - } else if (notesPath && [fm fileExistsAtPath:notesPath isDirectory:&isDir] && isDir == NO) { + } else if (action == SKNActionSet && notesPath && [fm fileExistsAtPath:notesPath isDirectory:&isDir] && isDir == NO) { NSData *data = [NSData dataWithContentsOfFile:notesPath]; - if (data) { + if (data) success = [fm removeExtendedAttribute:SKIM_NOTES_KEY atPath:pdfPath traverseLink:YES error:NULL] && [fm setExtendedAttributeNamed:SKIM_NOTES_KEY toValue:data atPath:pdfPath options:0 error:NULL]; - } + } else if (action == SKNActionRemove) { + success = [fm removeExtendedAttribute:SKIM_NOTES_KEY atPath:pdfPath traverseLink:YES error:NULL]; } [pool release]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-29 18:25:12
|
Revision: 1668 http://skim-app.svn.sourceforge.net/skim-app/?rev=1668&view=rev Author: hofman Date: 2007-03-29 11:25:11 -0700 (Thu, 29 Mar 2007) Log Message: ----------- Use popupmenu window level instead of screensaver window level for presentation mode, so it never covers the force quit window. Modified Paths: -------------- trunk/SKMainWindowController.m Modified: trunk/SKMainWindowController.m =================================================================== --- trunk/SKMainWindowController.m 2007-03-29 17:11:16 UTC (rev 1667) +++ trunk/SKMainWindowController.m 2007-03-29 18:25:11 UTC (rev 1668) @@ -977,7 +977,7 @@ [mainWindow makeFirstResponder:nil]; [fullScreenWindow setMainView:pdfView]; [fullScreenWindow setBackgroundColor:backgroundColor]; - [fullScreenWindow setLevel:[self isPresentation] ? NSScreenSaverWindowLevel : NSNormalWindowLevel]; + [fullScreenWindow setLevel:[self isPresentation] ? NSPopUpMenuWindowLevel : NSNormalWindowLevel]; [pdfView setBackgroundColor:backgroundColor]; [pdfView layoutDocumentView]; [pdfView setNeedsDisplay:YES]; @@ -1156,7 +1156,7 @@ NSColor *backgroundColor = [NSColor blackColor]; [pdfView setBackgroundColor:backgroundColor]; [fullScreenWindow setBackgroundColor:backgroundColor]; - [fullScreenWindow setLevel:NSScreenSaverWindowLevel]; + [fullScreenWindow setLevel:NSPopUpMenuWindowLevel]; isPresentation = YES; //} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ho...@us...> - 2007-03-29 17:11:17
|
Revision: 1667 http://skim-app.svn.sourceforge.net/skim-app/?rev=1667&view=rev Author: hofman Date: 2007-03-29 10:11:16 -0700 (Thu, 29 Mar 2007) Log Message: ----------- offset side window in y direction. Modified Paths: -------------- trunk/SKSideWindow.m Modified: trunk/SKSideWindow.m =================================================================== --- trunk/SKSideWindow.m 2007-03-29 14:33:17 UTC (rev 1666) +++ trunk/SKSideWindow.m 2007-03-29 17:11:16 UTC (rev 1667) @@ -82,10 +82,10 @@ - (void)moveToScreen:(NSScreen *)screen { NSRect screenFrame = [screen frame]; - NSRect frame = [self frame]; - frame.size.height = NSHeight(screenFrame); + NSRect frame = screenFrame; frame.size.width = WINDOW_OFFSET; - frame.origin.x = edge == NSMaxXEdge ? NSMaxX(screenFrame) - WINDOW_OFFSET : NSMinX(screenFrame); + if (edge == NSMaxXEdge) + frame.origin.x = NSMaxX(screenFrame) - WINDOW_OFFSET; frame = NSInsetRect(frame, 0.0, WINDOW_INSET); [self setFrame:frame display:NO]; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |