Revision: 12732 http://sourceforge.net/p/skim-app/code/12732 Author: hofman Date: 2022-01-21 14:25:58 +0000 (Fri, 21 Jan 2022) Log Message: ----------- convenience accessor for full width of all visible columns
Modified Paths: -------------- trunk/SKMainWindowController_UI.m trunk/SKNoteOutlineView.h trunk/SKNoteOutlineView.m trunk/SKNotesDocument.m Modified: trunk/SKMainWindowController_UI.m =================================================================== --- trunk/SKMainWindowController_UI.m 2022-01-21 13:52:50 UTC (rev 12731) +++ trunk/SKMainWindowController_UI.m 2022-01-21 14:25:58 UTC (rev 12732) @@ -886,13 +886,8 @@ [cell setObjectValue:[item objectValue]]; // don't use cellFrameAtRow:column: as this needs the row height which we are calculating if ([(PDFAnnotation *)item type] == nil) { - CGFloat spacing = [ov intercellSpacing].width; - for (NSTableColumn *tc in [ov tableColumns]) { - if ([tc isHidden] == NO) - width += [tc width] + spacing; - } - width -= spacing; - if ([tableColumn isHidden] == NO && tableColumn == [[ov tableColumns] firstObject]) + width = [(SKNoteOutlineView *)ov visibleColumnsWidth]; + if (tableColumn == [(SKNoteOutlineView *)ov firstVisibleTableColumn]) width -= NOTE_COLUMN_WIDTH_OFFSET; width = fmax(10.0, width); } else if ([tableColumn isHidden] == NO) { Modified: trunk/SKNoteOutlineView.h =================================================================== --- trunk/SKNoteOutlineView.h 2022-01-21 13:52:50 UTC (rev 12731) +++ trunk/SKNoteOutlineView.h 2022-01-21 14:25:58 UTC (rev 12732) @@ -50,6 +50,7 @@ @property (nonatomic, readonly) NSTableColumn *firstVisibleTableColumn; @property (nonatomic, readonly) NSTableColumn *lastVisibleTableColumn; +@property (nonatomic, readonly) CGFloat visibleColumnsWidth; @end Modified: trunk/SKNoteOutlineView.m =================================================================== --- trunk/SKNoteOutlineView.m 2022-01-21 13:52:50 UTC (rev 12731) +++ trunk/SKNoteOutlineView.m 2022-01-21 14:25:58 UTC (rev 12732) @@ -61,7 +61,7 @@ @implementation SKNoteOutlineView -@dynamic firstVisibleTableColumn, lastVisibleTableColumn; +@dynamic firstVisibleTableColumn, lastVisibleTableColumn, visibleColumnsWidth; static inline NSString *titleForTableColumnIdentifier(NSString *identifier) { if ([identifier isEqualToString:NOTE_COLUMNID]) @@ -190,6 +190,16 @@ return nil; } +- (CGFloat)visibleColumnsWidth { + CGFloat spacing = [self intercellSpacing].width; + CGFloat width = -spacing; + for (NSTableColumn *tc in [self tableColumns]) { + if ([tc isHidden] == NO) + width += [tc width] + spacing; + } + return width; +} + #pragma mark Delegate - (id <SKNoteOutlineViewDelegate>)delegate { return (id <SKNoteOutlineViewDelegate>)[super delegate]; } Modified: trunk/SKNotesDocument.m =================================================================== --- trunk/SKNotesDocument.m 2022-01-21 13:52:50 UTC (rev 12731) +++ trunk/SKNotesDocument.m 2022-01-21 14:25:58 UTC (rev 12732) @@ -827,13 +827,8 @@ id cell = [tableColumn dataCell]; [cell setObjectValue:[item objectValue]]; if ([(PDFAnnotation *)item type] == nil) { - CGFloat spacing = [outlineView intercellSpacing].width; - for (NSTableColumn *tc in [outlineView tableColumns]) { - if ([tc isHidden] == NO) - width += [tc width] + spacing; - } - width -= spacing; - if ([tableColumn isHidden] == NO && tableColumn == [[ov tableColumns] firstObject]) + width = [outlineView visibleColumnsWidth]; + if (tableColumn == [outlineView firstVisibleTableColumn]) width -= NOTE_COLUMN_WIDTH_OFFSET; width = fmax(10.0, width); } else if ([tableColumn isHidden] == NO) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit