Revision: 14997
http://sourceforge.net/p/skim-app/code/14997
Author: hofman
Date: 2025-03-21 17:38:09 +0000 (Fri, 21 Mar 2025)
Log Message:
-----------
break up selection in separated ranges to get cleaned string
Modified Paths:
--------------
trunk/PDFSelection_SKExtensions.m
Modified: trunk/PDFSelection_SKExtensions.m
===================================================================
--- trunk/PDFSelection_SKExtensions.m 2025-03-21 14:19:00 UTC (rev 14996)
+++ trunk/PDFSelection_SKExtensions.m 2025-03-21 17:38:09 UTC (rev 14997)
@@ -89,7 +89,7 @@
}
- (NSString *)compactedCleanedString {
- NSArray *lines = [self selectionsByLine];
+ NSArray *lines = [self selectionComponentsOnPage:nil];
if ([lines count] < 2)
return [[[self string] stringByRemovingAliens]
stringByCollapsingWhitespaceAndNewlinesAndRemovingSurroundingWhitespaceAndNewlines];
NSMutableString *string = [NSMutableString string];
@@ -237,22 +237,17 @@
}
- (NSArray *)selectionComponentsOnPage:(PDFPage *)page {
- if (page == nil) {
- page = [self safeFirstPage];
- if (page == nil)
- return @[];
- }
-
NSMutableArray *components = [NSMutableArray array];
for (PDFSelection *sel in [self selectionsByLine]) {
- NSUInteger count = [sel numberOfTextRangesOnPage:page];
+ PDFPage *aPage = page ?: [[sel pages] firstObject];
+ NSUInteger count = [sel numberOfTextRangesOnPage:aPage];
if (count == 1) {
[components addObject:sel];
} else if (count > 1) {
NSRange range = NSMakeRange(0, 0);
for (NSUInteger i = 0; i < count; i++) {
- NSRange nextRange = [sel rangeAtIndex:i onPage:page];
+ NSRange nextRange = [sel rangeAtIndex:i onPage:aPage];
if (nextRange.length == 0) {
} else if (range.length == 0) {
range = nextRange;
@@ -259,12 +254,12 @@
} else if (NSMaxRange(range) == nextRange.location) {
range.length += nextRange.length;
} else {
- [components addObject:[page selectionForRange:range]];
+ [components addObject:[aPage selectionForRange:range]];
range = nextRange;
}
}
if (range.length)
- [components addObject:[page selectionForRange:range]];
+ [components addObject:[aPage selectionForRange:range]];
}
}
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