From 8369eefa1bbaf2a387b1b647c79a6e2429d94730 Mon Sep 17 00:00:00 2001 From: Stefano Ceccherini Date: Mon, 20 Feb 2006 09:06:34 +0000 Subject: [PATCH] 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 --- src/kits/interface/PrintJob.cpp | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/kits/interface/PrintJob.cpp b/src/kits/interface/PrintJob.cpp index 17a22dfda2..a4263af78a 100644 --- a/src/kits/interface/PrintJob.cpp +++ b/src/kits/interface/PrintJob.cpp @@ -37,16 +37,19 @@ struct _page_header_ { static BMessenger *sPrintServer = NULL; -static bool +static status_t EnsureValidMessenger() { if (sPrintServer == NULL) sPrintServer = new BMessenger; + if (sPrintServer == NULL) + return B_NO_MEMORY; + if (!sPrintServer->IsValid()) *sPrintServer = BMessenger(PSRV_SIGNATURE_TYPE); - return sPrintServer->IsValid(); + return sPrintServer->IsValid() ? B_OK : B_ERROR; } @@ -124,19 +127,19 @@ BPrintJob::CommitJob() return; } - if (!EnsureValidMessenger()) + if (EnsureValidMessenger() != B_OK) return; BMessage *message = new BMessage(PSRV_GET_ACTIVE_PRINTER); BMessage *reply = new BMessage; const char *printerName = NULL; - if (sPrintServer->SendMessage(message, reply) < B_OK || - reply->FindString("printer_name", &printerName) < B_OK) { + if (sPrintServer->SendMessage(message, reply) < B_OK + || reply->FindString("printer_name", &printerName) < B_OK) { // TODO: Show an alert - delete message; + delete message; delete reply; - return; + return; } delete message; @@ -238,8 +241,10 @@ BPrintJob::SetSettings(BMessage *message) if (message != NULL) { HandlePageSetup(message); HandlePrintSetup(message); + + } else if (fSetupMessage != NULL) { delete fSetupMessage; - fSetupMessage = message; + fSetupMessage = NULL; } } @@ -330,7 +335,7 @@ BPrintJob::LastPage() int32 BPrintJob::PrinterType(void *) const { - if (!EnsureValidMessenger()) + if (EnsureValidMessenger() != B_OK) return B_COLOR_PRINTER; // default BMessage message(PSRV_GET_ACTIVE_PRINTER); @@ -460,7 +465,7 @@ BPrintJob::AddPicture(BPicture *picture, BRect *rect, BPoint where) char * BPrintJob::GetCurrentPrinterName() const { - if (!EnsureValidMessenger()) + if (EnsureValidMessenger() != B_OK) return NULL; BMessage message(PSRV_GET_ACTIVE_PRINTER); @@ -478,7 +483,7 @@ BPrintJob::GetCurrentPrinterName() const void BPrintJob::LoadDefaultSettings() { - if (!EnsureValidMessenger()) + if (EnsureValidMessenger() != B_OK) return; BMessage message(PSRV_GET_DEFAULT_SETTINGS);