2005-01-12 00:41 Alexander Malmberg <alexander@malmberg.org>

* Printing/GSCUPS/GSCUPSPrinter.h (GSCUPSDummyPrinterName): New
	variable.
	* Printing/GSCUPS/GSCUPSPrinter.m (GSCUPSDummyPrinterName): New
	variable.
	(+printerWithName:): Warn and return a dummy printer when requested.
	* Printing/GSCUPS/GSCUPSPrintInfo.m (defaultPrinter): If there's
	no default CUPS printer set, return a dummy printer.

	Fixes bug #10916.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@20542 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
alexm 2005-01-11 23:39:41 +00:00
parent 9744d66b0c
commit b5c97f812c
4 changed files with 55 additions and 7 deletions

View file

@ -1,3 +1,15 @@
2005-01-12 00:41 Alexander Malmberg <alexander@malmberg.org>
* Printing/GSCUPS/GSCUPSPrinter.h (GSCUPSDummyPrinterName): New
variable.
* Printing/GSCUPS/GSCUPSPrinter.m (GSCUPSDummyPrinterName): New
variable.
(+printerWithName:): Warn and return a dummy printer when requested.
* Printing/GSCUPS/GSCUPSPrintInfo.m (defaultPrinter): If there's
no default CUPS printer set, return a dummy printer.
Fixes bug #10916.
2005-01-11 23:50 Alexander Malmberg <alexander@malmberg.org>
* Headers/AppKit/NSBezierPath.h (NSWindingRule)

View file

@ -65,19 +65,19 @@
+(NSPrinter*) defaultPrinter
{
const char* defaultName;
const char *defaultName;
defaultName = cupsGetDefault();
NSDebugLLog(@"GSCUPS", @"The default printer name is %s", defaultName);
if( defaultName )
if (defaultName)
{
NSLog(@"The default printer name is %s", defaultName);
return [NSPrinter printerWithName:
[NSString stringWithCString: defaultName]];
}
else
{
return nil;
return [NSPrinter printerWithName: GSCUPSDummyPrinterName];
}
}

View file

@ -32,6 +32,9 @@
#include <AppKit/NSPrinter.h>
@class NSString;
extern NSString *GSCUPSDummyPrinterName;
@interface GSCUPSPrinter : NSPrinter <NSCoding>
{

View file

@ -61,6 +61,8 @@
#include <cups/cups.h>
NSString *GSCUPSDummyPrinterName = @"GSCUPSDummyPrinter";
@implementation GSCUPSPrinter
//
@ -91,6 +93,37 @@
NSPrinter* printer;
const char* ppdFile;
if ([name isEqual: GSCUPSDummyPrinterName])
{
/* Create a dummy printer as a fallback. */
static BOOL didWarn;
NSString *ppdPath;
if (!didWarn)
{
NSLog(@"Creating a default printer since no default printer has "
@"been set in CUPS.");
didWarn = YES;
}
ppdPath = [NSBundle
pathForLibraryResource: @"Generic-PostScript_Printer-Postscript"
ofType: @"ppd"
inDirectory: @"PostScript/PPD"];
NSAssert(ppdPath,
@"Couldn't find the PPD file for the fallback printer.");
printer = [(GSCUPSPrinter*)[self alloc]
initWithName: name
withType: @"Unknown"
withHost: @"Unknown"
withNote: @"Automatically Generated"];
[printer parsePPDAtPath: ppdPath];
return printer;
}
printer = [[GSCUPSPrinter alloc]
initWithName: name
withType: @"Type Unknown"