Applied patch given by Mark Tracy for printing improvements.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@23877 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
gcasa 2006-10-15 15:30:27 +00:00
parent cc3cafa874
commit dff9b0e8ff
4 changed files with 33 additions and 5 deletions

View file

@ -1,3 +1,21 @@
2006-10-15 11:23-EDT Mark Tracy <tracy454 at concentric dot net>
* Source/NSPageLayout.m: NSPageLayout was setting a default page
scale of 100 cause: pageScale factor is displayed as percentage fix:
pageScale*100 sent to textfield and textfield/100 stored in pageScale.
NSPageLayout had different limits on scaling than NSPrintPanel fix:
adjust formatter max.
* Source/NSPrintOperation.m: NSPrintOperation would loop randomly
if a custom view replies YES to -knowsPageRange cause:
-_printPaginateWithInfo did not initialize info->pageScale,
info->xpages, info->ypages fix: in -_printPaginateWithInfo
set default pageScale=1.0 outside conditional fix: in -_print
set xpages and ypages from viewPageRange as reported by custom view.
* Source/NSView.m: -beginDocument was misplacing subviews when
generating PostScript for printing fix: force regeneration of
coordinates.
Patch Applied by Gregory Casamento
2006-10-15 Richard Frith-Macdonald <rfm@gnu.org>
* Source/NSBrowser.m:

View file

@ -451,7 +451,7 @@ enum {
[NSDecimalNumber decimalNumberWithString: @"1.0"]];
[scaleFormatter setMaximum:
[NSDecimalNumber decimalNumberWithString: @"100000.0"]];
[NSDecimalNumber decimalNumberWithString: @"1000.0"]];
[scaleFormatter setHasThousandSeparators: NO];
[scaleTextField setFormatter: scaleFormatter];
@ -836,6 +836,10 @@ enum {
NSLog(@"NSPrintScalingFactor was nil in NSPrintInfo");
scaleNumber = [NSNumber numberWithFloat: 100.0];
}
else
{
scaleNumber = [NSNumber numberWithDouble: (100.0*[scaleNumber doubleValue])];
}
[scaleTextField setObjectValue: scaleNumber];
@ -909,8 +913,8 @@ enum {
[_printInfo setOrientation: NSLandscapeOrientation];
}
//Write scaling
scaleNumber = [NSNumber numberWithFloat: [scaleTextField floatValue]];
//Write scaling and don't forget to convert from percent
scaleNumber = [NSNumber numberWithDouble: [scaleTextField doubleValue]/100.0];
[[_printInfo dictionary] setObject: scaleNumber
forKey: NSPrintScalingFactor];

View file

@ -734,11 +734,11 @@ scaleRect(NSRect rect, double scale)
/* Scale bounds by the user specified scaling */
info->scaledBounds = scaleRect(_rect, info->printScale);
info->pageScale = 1; // default
if (knowsRange == NO)
{
/* Now calculate page fitting to get page scale */
info->pageScale = 1;
if ([_printInfo horizontalPagination] == NSFitPagination)
info->pageScale = info->paperBounds.size.width
/ NSWidth(info->scaledBounds);
@ -879,6 +879,12 @@ scaleRect(NSRect rect, double scale)
{
viewPageRange = NSMakeRange(1, (info.xpages * info.ypages));
}
else
{
info.xpages = 1;
info.ypages = viewPageRange.length;
}
[dict setObject: NSNUMBER(NSMaxRange(viewPageRange))
forKey: @"NSPrintTotalPages"];
if (allPages == YES)

View file

@ -3826,7 +3826,7 @@ static NSView* findByTag(NSView *view, int aTag, unsigned *level)
[ctxt resetUsedFonts];
/* Make sure we set the visible rect so everything is printed. */
[self _rebuildCoordinates];
[self _invalidateCoordinates];
_visibleRect = _bounds;
}