Changed return type of EnsureValidMessenger after Marcus's advice. Changed the semaptics of BPrintJob::SetSettings() to match R5 ones.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16476 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2006-02-20 09:06:34 +00:00
parent 8900925bf7
commit 8369eefa1b
+16 -11
View File
@@ -37,16 +37,19 @@ struct _page_header_ {
static BMessenger *sPrintServer = NULL; static BMessenger *sPrintServer = NULL;
static bool static status_t
EnsureValidMessenger() EnsureValidMessenger()
{ {
if (sPrintServer == NULL) if (sPrintServer == NULL)
sPrintServer = new BMessenger; sPrintServer = new BMessenger;
if (sPrintServer == NULL)
return B_NO_MEMORY;
if (!sPrintServer->IsValid()) if (!sPrintServer->IsValid())
*sPrintServer = BMessenger(PSRV_SIGNATURE_TYPE); *sPrintServer = BMessenger(PSRV_SIGNATURE_TYPE);
return sPrintServer->IsValid(); return sPrintServer->IsValid() ? B_OK : B_ERROR;
} }
@@ -124,19 +127,19 @@ BPrintJob::CommitJob()
return; return;
} }
if (!EnsureValidMessenger()) if (EnsureValidMessenger() != B_OK)
return; return;
BMessage *message = new BMessage(PSRV_GET_ACTIVE_PRINTER); BMessage *message = new BMessage(PSRV_GET_ACTIVE_PRINTER);
BMessage *reply = new BMessage; BMessage *reply = new BMessage;
const char *printerName = NULL; const char *printerName = NULL;
if (sPrintServer->SendMessage(message, reply) < B_OK || if (sPrintServer->SendMessage(message, reply) < B_OK
reply->FindString("printer_name", &printerName) < B_OK) { || reply->FindString("printer_name", &printerName) < B_OK) {
// TODO: Show an alert // TODO: Show an alert
delete message; delete message;
delete reply; delete reply;
return; return;
} }
delete message; delete message;
@@ -238,8 +241,10 @@ BPrintJob::SetSettings(BMessage *message)
if (message != NULL) { if (message != NULL) {
HandlePageSetup(message); HandlePageSetup(message);
HandlePrintSetup(message); HandlePrintSetup(message);
} else if (fSetupMessage != NULL) {
delete fSetupMessage; delete fSetupMessage;
fSetupMessage = message; fSetupMessage = NULL;
} }
} }
@@ -330,7 +335,7 @@ BPrintJob::LastPage()
int32 int32
BPrintJob::PrinterType(void *) const BPrintJob::PrinterType(void *) const
{ {
if (!EnsureValidMessenger()) if (EnsureValidMessenger() != B_OK)
return B_COLOR_PRINTER; // default return B_COLOR_PRINTER; // default
BMessage message(PSRV_GET_ACTIVE_PRINTER); BMessage message(PSRV_GET_ACTIVE_PRINTER);
@@ -460,7 +465,7 @@ BPrintJob::AddPicture(BPicture *picture, BRect *rect, BPoint where)
char * char *
BPrintJob::GetCurrentPrinterName() const BPrintJob::GetCurrentPrinterName() const
{ {
if (!EnsureValidMessenger()) if (EnsureValidMessenger() != B_OK)
return NULL; return NULL;
BMessage message(PSRV_GET_ACTIVE_PRINTER); BMessage message(PSRV_GET_ACTIVE_PRINTER);
@@ -478,7 +483,7 @@ BPrintJob::GetCurrentPrinterName() const
void void
BPrintJob::LoadDefaultSettings() BPrintJob::LoadDefaultSettings()
{ {
if (!EnsureValidMessenger()) if (EnsureValidMessenger() != B_OK)
return; return;
BMessage message(PSRV_GET_DEFAULT_SETTINGS); BMessage message(PSRV_GET_DEFAULT_SETTINGS);