forked from mirrors/gecko-dev
Bug 1407103 - Convert wstring attributes to AString in widget/nsIPrint*.idl. r=bobowen.
This avoids a lot of mismatches between nsAString and char16_t*, thus removing many getter_Copies() and ToNewUnicode() and get() calls, and generally making things simpler. Note: the patch removes GetDefaultPrinterNameFromGlobalPrinters() by simply inlining it at its two callsites, which is easy with the changed types. --HG-- extra : rebase_source : 9ab9b3694f093fc9b22c7f8e2394a98674d76c11
This commit is contained in:
parent
2790ca829a
commit
c0a1cf9b49
26 changed files with 286 additions and 470 deletions
|
|
@ -8156,7 +8156,7 @@ nsGlobalWindow::PrintOuter(ErrorResult& aError)
|
|||
printSettingsService->GetGlobalPrintSettings(getter_AddRefs(printSettings));
|
||||
|
||||
nsAutoString printerName;
|
||||
printSettings->GetPrinterName(getter_Copies(printerName));
|
||||
printSettings->GetPrinterName(printerName);
|
||||
|
||||
bool shouldGetDefaultPrinterName = printerName.IsEmpty();
|
||||
#ifdef MOZ_X11
|
||||
|
|
@ -8170,10 +8170,10 @@ nsGlobalWindow::PrintOuter(ErrorResult& aError)
|
|||
}
|
||||
#endif
|
||||
if (shouldGetDefaultPrinterName) {
|
||||
printSettingsService->GetDefaultPrinterName(getter_Copies(printerName));
|
||||
printSettings->SetPrinterName(printerName.get());
|
||||
printSettingsService->GetDefaultPrinterName(printerName);
|
||||
printSettings->SetPrinterName(printerName);
|
||||
}
|
||||
printSettingsService->InitPrintSettingsFromPrinter(printerName.get(),
|
||||
printSettingsService->InitPrintSettingsFromPrinter(printerName,
|
||||
printSettings);
|
||||
printSettingsService->InitPrintSettingsFromPrefs(printSettings,
|
||||
true,
|
||||
|
|
|
|||
|
|
@ -642,17 +642,17 @@ nsPageFrame::PaintHeaderFooter(gfxContext& aRenderingContext,
|
|||
|
||||
// print document headers and footers
|
||||
nsString headerLeft, headerCenter, headerRight;
|
||||
mPD->mPrintSettings->GetHeaderStrLeft(getter_Copies(headerLeft));
|
||||
mPD->mPrintSettings->GetHeaderStrCenter(getter_Copies(headerCenter));
|
||||
mPD->mPrintSettings->GetHeaderStrRight(getter_Copies(headerRight));
|
||||
mPD->mPrintSettings->GetHeaderStrLeft(headerLeft);
|
||||
mPD->mPrintSettings->GetHeaderStrCenter(headerCenter);
|
||||
mPD->mPrintSettings->GetHeaderStrRight(headerRight);
|
||||
DrawHeaderFooter(aRenderingContext, *fontMet, eHeader,
|
||||
headerLeft, headerCenter, headerRight,
|
||||
rect, ascent, visibleHeight);
|
||||
|
||||
nsString footerLeft, footerCenter, footerRight;
|
||||
mPD->mPrintSettings->GetFooterStrLeft(getter_Copies(footerLeft));
|
||||
mPD->mPrintSettings->GetFooterStrCenter(getter_Copies(footerCenter));
|
||||
mPD->mPrintSettings->GetFooterStrRight(getter_Copies(footerRight));
|
||||
mPD->mPrintSettings->GetFooterStrLeft(footerLeft);
|
||||
mPD->mPrintSettings->GetFooterStrCenter(footerCenter);
|
||||
mPD->mPrintSettings->GetFooterStrRight(footerRight);
|
||||
DrawHeaderFooter(aRenderingContext, *fontMet, eFooter,
|
||||
footerLeft, footerCenter, footerRight,
|
||||
rect, ascent, visibleHeight);
|
||||
|
|
|
|||
|
|
@ -1011,7 +1011,7 @@ nsPrintEngine::CheckForPrinters(nsIPrintSettings* aPrintSettings)
|
|||
|
||||
// See if aPrintSettings already has a printer
|
||||
nsString printerName;
|
||||
nsresult rv = aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
||||
nsresult rv = aPrintSettings->GetPrinterName(printerName);
|
||||
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
@ -1021,9 +1021,9 @@ nsPrintEngine::CheckForPrinters(nsIPrintSettings* aPrintSettings)
|
|||
do_GetService(sPrintSettingsServiceContractID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
rv = printSettingsService->GetDefaultPrinterName(getter_Copies(printerName));
|
||||
rv = printSettingsService->GetDefaultPrinterName(printerName);
|
||||
if (NS_SUCCEEDED(rv) && !printerName.IsEmpty()) {
|
||||
rv = aPrintSettings->SetPrinterName(printerName.get());
|
||||
rv = aPrintSettings->SetPrinterName(printerName);
|
||||
}
|
||||
return rv;
|
||||
#endif
|
||||
|
|
@ -1455,21 +1455,8 @@ nsPrintEngine::GetDisplayTitleAndURL(const UniquePtr<nsPrintObject>& aPO,
|
|||
// First check to see if the PrintSettings has defined an alternate title
|
||||
// and use that if it did
|
||||
if (mPrt->mPrintSettings) {
|
||||
char16_t * docTitleStrPS = nullptr;
|
||||
char16_t * docURLStrPS = nullptr;
|
||||
mPrt->mPrintSettings->GetTitle(&docTitleStrPS);
|
||||
mPrt->mPrintSettings->GetDocURL(&docURLStrPS);
|
||||
|
||||
if (docTitleStrPS) {
|
||||
aTitle = docTitleStrPS;
|
||||
}
|
||||
|
||||
if (docURLStrPS) {
|
||||
aURLStr = docURLStrPS;
|
||||
}
|
||||
|
||||
free(docTitleStrPS);
|
||||
free(docURLStrPS);
|
||||
mPrt->mPrintSettings->GetTitle(aTitle);
|
||||
mPrt->mPrintSettings->GetDocURL(aURLStr);
|
||||
}
|
||||
|
||||
nsAutoString docTitle;
|
||||
|
|
@ -1828,7 +1815,7 @@ nsPrintEngine::SetupToPrintContent()
|
|||
printData->mPrintSettings->GetPrintToFile(&isPrintToFile);
|
||||
if (isPrintToFile) {
|
||||
// On some platforms The BeginDocument needs to know the name of the file.
|
||||
printData->mPrintSettings->GetToFileName(getter_Copies(fileNameStr));
|
||||
printData->mPrintSettings->GetToFileName(fileNameStr);
|
||||
}
|
||||
|
||||
nsAutoString docTitleStr;
|
||||
|
|
|
|||
|
|
@ -137,17 +137,17 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
|||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsString printerName;
|
||||
settings->GetPrinterName(getter_Copies(printerName));
|
||||
settings->GetPrinterName(printerName);
|
||||
#ifdef MOZ_X11
|
||||
// Requesting the default printer name on Linux has been removed in the child,
|
||||
// because it was causing a sandbox violation (see Bug 1329216).
|
||||
// If no printer name is set at this point, use the print settings service
|
||||
// to get the default printer name.
|
||||
if (printerName.IsEmpty()) {
|
||||
mPrintSettingsSvc->GetDefaultPrinterName(getter_Copies(printerName));
|
||||
settings->SetPrinterName(printerName.get());
|
||||
mPrintSettingsSvc->GetDefaultPrinterName(printerName);
|
||||
settings->SetPrinterName(printerName);
|
||||
}
|
||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName.get(), settings);
|
||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName, settings);
|
||||
#endif
|
||||
|
||||
// If this is for print preview or we are printing silently then we just need
|
||||
|
|
@ -155,8 +155,7 @@ PrintingParent::ShowPrintDialog(PBrowserParent* aParent,
|
|||
if (isPrintPreview || printSilently ||
|
||||
Preferences::GetBool("print.always_print_silent", printSilently)) {
|
||||
settings->SetIsInitializedFromPrinter(false);
|
||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName.get(),
|
||||
settings);
|
||||
mPrintSettingsSvc->InitPrintSettingsFromPrinter(printerName, settings);
|
||||
} else {
|
||||
rv = pps->ShowPrintDialog(parentWin, wbp, settings);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
|
|
|||
|
|
@ -535,7 +535,7 @@ static void GetDefaultPrinterNameFromGlobalPrinters(nsAString &printerName)
|
|||
{
|
||||
nsCOMPtr<nsIPrinterEnumerator> prtEnum = do_GetService("@mozilla.org/gfx/printerenumerator;1");
|
||||
if (prtEnum) {
|
||||
prtEnum->GetDefaultPrinterName(getter_Copies(printerName));
|
||||
prtEnum->GetDefaultPrinterName(printerName);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -570,7 +570,7 @@ ShowNativePrintDialog(HWND aHWnd,
|
|||
|
||||
// Get the Print Name to be used
|
||||
nsString printerName;
|
||||
aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
||||
aPrintSettings->GetPrinterName(printerName);
|
||||
|
||||
// If there is no name then use the default printer
|
||||
if (printerName.IsEmpty()) {
|
||||
|
|
@ -696,12 +696,12 @@ ShowNativePrintDialog(HWND aHWnd,
|
|||
if (prntdlg.Flags & PD_PRINTTOFILE) {
|
||||
char16ptr_t fileName = &(((wchar_t *)devnames)[devnames->wOutputOffset]);
|
||||
NS_ASSERTION(wcscmp(fileName, L"FILE:") == 0, "FileName must be `FILE:`");
|
||||
aPrintSettings->SetToFileName(fileName);
|
||||
aPrintSettings->SetToFileName(nsDependentString(fileName));
|
||||
aPrintSettings->SetPrintToFile(true);
|
||||
} else {
|
||||
// clear "print to file" info
|
||||
aPrintSettings->SetPrintToFile(false);
|
||||
aPrintSettings->SetToFileName(nullptr);
|
||||
aPrintSettings->SetToFileName(EmptyString());
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
||||
|
|
@ -710,15 +710,15 @@ ShowNativePrintDialog(HWND aHWnd,
|
|||
}
|
||||
|
||||
// Setup local Data members
|
||||
psWin->SetDeviceName(device);
|
||||
psWin->SetDriverName(driver);
|
||||
psWin->SetDeviceName(nsDependentString(device));
|
||||
psWin->SetDriverName(nsDependentString(driver));
|
||||
|
||||
#if defined(DEBUG_rods) || defined(DEBUG_dcone)
|
||||
wprintf(L"printer: driver %s, device %s flags: %d\n", driver, device, prntdlg.Flags);
|
||||
#endif
|
||||
// fill the print options with the info from the dialog
|
||||
|
||||
aPrintSettings->SetPrinterName(device);
|
||||
aPrintSettings->SetPrinterName(nsDependentString(device));
|
||||
|
||||
if (prntdlg.Flags & PD_SELECTION) {
|
||||
aPrintSettings->SetPrintRange(nsIPrintSettings::kRangeSelection);
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ nsDeviceContextSpecAndroid::EndDocument()
|
|||
{
|
||||
nsString targetPath;
|
||||
nsCOMPtr<nsIFile> destFile;
|
||||
mPrintSettings->GetToFileName(getter_Copies(targetPath));
|
||||
mPrintSettings->GetToFileName(targetPath);
|
||||
|
||||
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
|
|
|||
|
|
@ -12,8 +12,7 @@ public:
|
|||
{
|
||||
// The aim here is to set up the objects enough that silent printing works
|
||||
SetOutputFormat(nsIPrintSettings::kOutputFormatPDF);
|
||||
SetPrinterName(u"PDF printer");
|
||||
|
||||
SetPrinterName(NS_LITERAL_STRING("PDF printer"));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -515,32 +515,32 @@ static const char sHeaderFooterTags[][4] = {"", "&T", "&U", "&D", "&P", "&PT"};
|
|||
// Lists
|
||||
nsString sel;
|
||||
|
||||
mSettings->GetHeaderStrLeft(getter_Copies(sel));
|
||||
mSettings->GetHeaderStrLeft(sel);
|
||||
mHeaderLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 44, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mHeaderLeftList];
|
||||
|
||||
mSettings->GetHeaderStrCenter(getter_Copies(sel));
|
||||
mSettings->GetHeaderStrCenter(sel);
|
||||
mHeaderCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 44, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mHeaderCenterList];
|
||||
|
||||
mSettings->GetHeaderStrRight(getter_Copies(sel));
|
||||
mSettings->GetHeaderStrRight(sel);
|
||||
mHeaderRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 44, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mHeaderRightList];
|
||||
|
||||
mSettings->GetFooterStrLeft(getter_Copies(sel));
|
||||
mSettings->GetFooterStrLeft(sel);
|
||||
mFooterLeftList = [self headerFooterItemListWithFrame:NSMakeRect(156, 0, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mFooterLeftList];
|
||||
|
||||
mSettings->GetFooterStrCenter(getter_Copies(sel));
|
||||
mSettings->GetFooterStrCenter(sel);
|
||||
mFooterCenterList = [self headerFooterItemListWithFrame:NSMakeRect(256, 0, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mFooterCenterList];
|
||||
|
||||
mSettings->GetFooterStrRight(getter_Copies(sel));
|
||||
mSettings->GetFooterStrRight(sel);
|
||||
mFooterRightList = [self headerFooterItemListWithFrame:NSMakeRect(356, 0, 100, 22)
|
||||
selectedItem:sel];
|
||||
[self addSubview:mFooterRightList];
|
||||
|
|
@ -570,22 +570,22 @@ static const char sHeaderFooterTags[][4] = {"", "&T", "&U", "&D", "&P", "&PT"};
|
|||
{
|
||||
const char* headerFooterStr;
|
||||
headerFooterStr = [self headerFooterStringForList:mHeaderLeftList];
|
||||
mSettings->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
|
||||
headerFooterStr = [self headerFooterStringForList:mHeaderCenterList];
|
||||
mSettings->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
|
||||
headerFooterStr = [self headerFooterStringForList:mHeaderRightList];
|
||||
mSettings->SetHeaderStrRight(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetHeaderStrRight(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
|
||||
headerFooterStr = [self headerFooterStringForList:mFooterLeftList];
|
||||
mSettings->SetFooterStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetFooterStrLeft(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
|
||||
headerFooterStr = [self headerFooterStringForList:mFooterCenterList];
|
||||
mSettings->SetFooterStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetFooterStrCenter(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
|
||||
headerFooterStr = [self headerFooterStringForList:mFooterRightList];
|
||||
mSettings->SetFooterStrRight(NS_ConvertUTF8toUTF16(headerFooterStr).get());
|
||||
mSettings->SetFooterStrRight(NS_ConvertUTF8toUTF16(headerFooterStr));
|
||||
}
|
||||
|
||||
// Summary
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public:
|
|||
NS_IMETHOD SetScaling(double aScaling) override;
|
||||
NS_IMETHOD GetScaling(double *aScaling) override;
|
||||
|
||||
NS_IMETHOD SetToFileName(const char16_t * aToFileName) override;
|
||||
NS_IMETHOD SetToFileName(const nsAString& aToFileName) override;
|
||||
|
||||
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
||||
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@ nsPrintSettingsX::GetScaling(double *aScaling)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsX::SetToFileName(const char16_t *aToFileName)
|
||||
nsPrintSettingsX::SetToFileName(const nsAString& aToFileName)
|
||||
{
|
||||
NS_OBJC_BEGIN_TRY_ABORT_BLOCK_NSRESULT;
|
||||
|
||||
|
|
@ -341,10 +341,9 @@ nsPrintSettingsX::SetToFileName(const char16_t *aToFileName)
|
|||
|
||||
NSMutableDictionary* printInfoDict = [mPrintInfo dictionary];
|
||||
|
||||
if (aToFileName && aToFileName[0]) {
|
||||
if (!aToFileName.IsEmpty()) {
|
||||
NSURL* jobSavingURL =
|
||||
[NSURL fileURLWithPath: nsCocoaUtils::ToNSString(
|
||||
nsDependentString(aToFileName))];
|
||||
[NSURL fileURLWithPath: nsCocoaUtils::ToNSString(aToFileName)];
|
||||
if (jobSavingURL) {
|
||||
[printInfoDict setObject: NSPrintSaveJob forKey: NSPrintJobDisposition];
|
||||
[printInfoDict setObject: jobSavingURL forKey: NSPrintJobSavingURL];
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ public:
|
|||
uint32_t GetNumPrinters()
|
||||
{ return mGlobalPrinterList ? mGlobalPrinterList->Length() : 0; }
|
||||
nsString* GetStringAt(int32_t aInx) { return &mGlobalPrinterList->ElementAt(aInx); }
|
||||
void GetDefaultPrinterName(char16_t **aDefaultPrinterName);
|
||||
void GetDefaultPrinterName(nsAString& aDefaultPrinterName);
|
||||
|
||||
protected:
|
||||
GlobalPrinters() {}
|
||||
|
|
@ -246,7 +246,7 @@ gboolean nsDeviceContextSpecGTK::PrinterEnumerator(GtkPrinter *aPrinter,
|
|||
// Find the printer whose name matches the one inside the settings.
|
||||
nsString printerName;
|
||||
nsresult rv =
|
||||
spec->mPrintSettings->GetPrinterName(getter_Copies(printerName));
|
||||
spec->mPrintSettings->GetPrinterName(printerName);
|
||||
if (NS_SUCCEEDED(rv) && !printerName.IsVoid()) {
|
||||
NS_ConvertUTF16toUTF8 requestedName(printerName);
|
||||
const char* currentName = gtk_printer_get_name(aPrinter);
|
||||
|
|
@ -328,7 +328,7 @@ NS_IMETHODIMP nsDeviceContextSpecGTK::EndDocument()
|
|||
// Handle print-to-file ourselves for the benefit of embedders
|
||||
nsString targetPath;
|
||||
nsCOMPtr<nsIFile> destFile;
|
||||
mPrintSettings->GetToFileName(getter_Copies(targetPath));
|
||||
mPrintSettings->GetToFileName(targetPath);
|
||||
|
||||
nsresult rv = NS_NewLocalFile(targetPath, false, getter_AddRefs(destFile));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
|
@ -388,18 +388,19 @@ NS_IMETHODIMP nsPrinterEnumeratorGTK::GetPrinterNameList(nsIStringEnumerator **a
|
|||
return NS_NewAdoptingStringEnumerator(aPrinterNameList, printers);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrinterEnumeratorGTK::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
||||
NS_IMETHODIMP nsPrinterEnumeratorGTK::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||
{
|
||||
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::GetDefaultPrinterName()\n"));
|
||||
NS_ENSURE_ARG_POINTER(aDefaultPrinterName);
|
||||
|
||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(aDefaultPrinterName);
|
||||
|
||||
DO_PR_DEBUG_LOG(("GetDefaultPrinterName(): default printer='%s'.\n", NS_ConvertUTF16toUTF8(*aDefaultPrinterName).get()));
|
||||
DO_PR_DEBUG_LOG(("GetDefaultPrinterName(): default printer='%s'.\n", NS_ConvertUTF16toUTF8(aDefaultPrinterName).get()));
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const char16_t *aPrinterName, nsIPrintSettings *aPrintSettings)
|
||||
NS_IMETHODIMP
|
||||
nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||
nsIPrintSettings *aPrintSettings)
|
||||
{
|
||||
DO_PR_DEBUG_LOG(("nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter()"));
|
||||
|
||||
|
|
@ -418,7 +419,7 @@ NS_IMETHODIMP nsPrinterEnumeratorGTK::InitPrintSettingsFromPrinter(const char16_
|
|||
filename.AssignLiteral("mozilla.pdf");
|
||||
|
||||
DO_PR_DEBUG_LOG(("Setting default filename to '%s'\n", filename.get()));
|
||||
aPrintSettings->SetToFileName(NS_ConvertUTF8toUTF16(filename).get());
|
||||
aPrintSettings->SetToFileName(NS_ConvertUTF8toUTF16(filename));
|
||||
|
||||
aPrintSettings->SetIsInitializedFromPrinter(true);
|
||||
|
||||
|
|
@ -470,9 +471,9 @@ void GlobalPrinters::FreeGlobalPrinters()
|
|||
}
|
||||
|
||||
void
|
||||
GlobalPrinters::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
||||
GlobalPrinters::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||
{
|
||||
*aDefaultPrinterName = nullptr;
|
||||
aDefaultPrinterName.Truncate();
|
||||
|
||||
bool allocate = !GlobalPrinters::GetInstance()->PrintersAreAllocated();
|
||||
|
||||
|
|
@ -487,7 +488,7 @@ GlobalPrinters::GetDefaultPrinterName(char16_t **aDefaultPrinterName)
|
|||
if (GlobalPrinters::GetInstance()->GetNumPrinters() == 0)
|
||||
return;
|
||||
|
||||
*aDefaultPrinterName = ToNewUnicode(*GlobalPrinters::GetInstance()->GetStringAt(0));
|
||||
aDefaultPrinterName = *GlobalPrinters::GetInstance()->GetStringAt(0);
|
||||
|
||||
if (allocate) {
|
||||
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
||||
|
|
|
|||
|
|
@ -277,9 +277,9 @@ nsPrintDialogWidgetGTK::nsPrintDialogWidgetGTK(nsPIDOMWindowOuter *aParent,
|
|||
GtkWidget* header_footer_table = gtk_table_new(3, 3, FALSE); // 3x3 table
|
||||
nsString header_footer_str[3];
|
||||
|
||||
aSettings->GetHeaderStrLeft(getter_Copies(header_footer_str[0]));
|
||||
aSettings->GetHeaderStrCenter(getter_Copies(header_footer_str[1]));
|
||||
aSettings->GetHeaderStrRight(getter_Copies(header_footer_str[2]));
|
||||
aSettings->GetHeaderStrLeft(header_footer_str[0]);
|
||||
aSettings->GetHeaderStrCenter(header_footer_str[1]);
|
||||
aSettings->GetHeaderStrRight(header_footer_str[2]);
|
||||
|
||||
for (unsigned int i = 0; i < ArrayLength(header_dropdown); i++) {
|
||||
header_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
||||
|
|
@ -296,9 +296,9 @@ nsPrintDialogWidgetGTK::nsPrintDialogWidgetGTK(nsPIDOMWindowOuter *aParent,
|
|||
i, (i + 1), 1, 2, (GtkAttachOptions) 0, (GtkAttachOptions) 0, 2, 2);
|
||||
}
|
||||
|
||||
aSettings->GetFooterStrLeft(getter_Copies(header_footer_str[0]));
|
||||
aSettings->GetFooterStrCenter(getter_Copies(header_footer_str[1]));
|
||||
aSettings->GetFooterStrRight(getter_Copies(header_footer_str[2]));
|
||||
aSettings->GetFooterStrLeft(header_footer_str[0]);
|
||||
aSettings->GetFooterStrCenter(header_footer_str[1]);
|
||||
aSettings->GetFooterStrRight(header_footer_str[2]);
|
||||
|
||||
for (unsigned int i = 0; i < ArrayLength(footer_dropdown); i++) {
|
||||
footer_dropdown[i] = ConstructHeaderFooterDropdown(header_footer_str[i].get());
|
||||
|
|
@ -371,22 +371,22 @@ nsPrintDialogWidgetGTK::ExportHeaderFooter(nsIPrintSettings *aNS)
|
|||
{
|
||||
const char* header_footer_str;
|
||||
header_footer_str = OptionWidgetToString(header_dropdown[0]);
|
||||
aNS->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetHeaderStrLeft(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
|
||||
header_footer_str = OptionWidgetToString(header_dropdown[1]);
|
||||
aNS->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetHeaderStrCenter(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
|
||||
header_footer_str = OptionWidgetToString(header_dropdown[2]);
|
||||
aNS->SetHeaderStrRight(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetHeaderStrRight(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
|
||||
header_footer_str = OptionWidgetToString(footer_dropdown[0]);
|
||||
aNS->SetFooterStrLeft(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetFooterStrLeft(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
|
||||
header_footer_str = OptionWidgetToString(footer_dropdown[1]);
|
||||
aNS->SetFooterStrCenter(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetFooterStrCenter(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
|
||||
header_footer_str = OptionWidgetToString(footer_dropdown[2]);
|
||||
aNS->SetFooterStrRight(NS_ConvertUTF8toUTF16(header_footer_str).get());
|
||||
aNS->SetFooterStrRight(NS_ConvertUTF8toUTF16(header_footer_str));
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
@ -583,10 +583,10 @@ nsPrintDialogServiceGTK::ShowPageSetup(nsPIDOMWindowOuter *aParent,
|
|||
nsCOMPtr<nsIPrintSettingsService> psService = do_GetService("@mozilla.org/gfx/printsettings-service;1");
|
||||
if (psService) {
|
||||
nsString printName;
|
||||
aNSSettings->GetPrinterName(getter_Copies(printName));
|
||||
aNSSettings->GetPrinterName(printName);
|
||||
if (printName.IsVoid()) {
|
||||
psService->GetDefaultPrinterName(getter_Copies(printName));
|
||||
aNSSettings->SetPrinterName(printName.get());
|
||||
psService->GetDefaultPrinterName(printName);
|
||||
aNSSettings->SetPrinterName(printName);
|
||||
}
|
||||
psService->InitPrintSettingsFromPrefs(aNSSettings, true, nsIPrintSettings::kInitSaveAll);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -409,12 +409,12 @@ nsPrintSettingsGTK::SetOrientation(int32_t aOrientation)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::GetToFileName(char16_t * *aToFileName)
|
||||
nsPrintSettingsGTK::GetToFileName(nsAString& aToFileName)
|
||||
{
|
||||
// Get the gtk output filename
|
||||
const char* gtk_output_uri = gtk_print_settings_get(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI);
|
||||
if (!gtk_output_uri) {
|
||||
*aToFileName = ToNewUnicode(mToFileName);
|
||||
aToFileName = mToFileName;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -426,33 +426,27 @@ nsPrintSettingsGTK::GetToFileName(char16_t * *aToFileName)
|
|||
return rv;
|
||||
|
||||
// Extract the path
|
||||
nsAutoString path;
|
||||
rv = file->GetPath(path);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
*aToFileName = ToNewUnicode(path);
|
||||
return NS_OK;
|
||||
return file->GetPath(aToFileName);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::SetToFileName(const char16_t * aToFileName)
|
||||
nsPrintSettingsGTK::SetToFileName(const nsAString& aToFileName)
|
||||
{
|
||||
if (aToFileName[0] == 0) {
|
||||
if (aToFileName.IsEmpty()) {
|
||||
mToFileName.SetLength(0);
|
||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_URI,
|
||||
nullptr);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
if (StringEndsWith(nsDependentString(aToFileName), NS_LITERAL_STRING(".ps"))) {
|
||||
if (StringEndsWith(aToFileName, NS_LITERAL_STRING(".ps"))) {
|
||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "ps");
|
||||
} else {
|
||||
gtk_print_settings_set(mPrintSettings, GTK_PRINT_SETTINGS_OUTPUT_FILE_FORMAT, "pdf");
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIFile> file;
|
||||
nsresult rv = NS_NewLocalFile(nsDependentString(aToFileName), true,
|
||||
getter_AddRefs(file));
|
||||
nsresult rv = NS_NewLocalFile(aToFileName, true, getter_AddRefs(file));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Convert the nsIFile to a URL
|
||||
|
|
@ -467,7 +461,7 @@ nsPrintSettingsGTK::SetToFileName(const char16_t * aToFileName)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::GetPrinterName(char16_t * *aPrinter)
|
||||
nsPrintSettingsGTK::GetPrinterName(nsAString& aPrinter)
|
||||
{
|
||||
const char* gtkPrintName = gtk_print_settings_get_printer(mPrintSettings);
|
||||
if (!gtkPrintName) {
|
||||
|
|
@ -475,17 +469,16 @@ nsPrintSettingsGTK::GetPrinterName(char16_t * *aPrinter)
|
|||
gtkPrintName = gtk_printer_get_name(mGTKPrinter);
|
||||
} else {
|
||||
// This mimics what nsPrintSettingsImpl does when we try to Get before we Set
|
||||
nsString nullPrintName;
|
||||
*aPrinter = ToNewUnicode(nullPrintName);
|
||||
aPrinter.Truncate();
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
*aPrinter = UTF8ToNewUnicode(nsDependentCString(gtkPrintName));
|
||||
aPrinter = NS_ConvertUTF8toUTF16(gtkPrintName);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::SetPrinterName(const char16_t * aPrinter)
|
||||
nsPrintSettingsGTK::SetPrinterName(const nsAString& aPrinter)
|
||||
{
|
||||
NS_ConvertUTF16toUTF8 gtkPrinter(aPrinter);
|
||||
|
||||
|
|
@ -537,16 +530,15 @@ nsPrintSettingsGTK::SetScaling(double aScaling)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::GetPaperName(char16_t * *aPaperName)
|
||||
nsPrintSettingsGTK::GetPaperName(nsAString& aPaperName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPaperName);
|
||||
const gchar* name =
|
||||
gtk_paper_size_get_name(gtk_page_setup_get_paper_size(mPageSetup));
|
||||
*aPaperName = ToNewUnicode(NS_ConvertUTF8toUTF16(name));
|
||||
aPaperName = NS_ConvertUTF8toUTF16(name);
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP
|
||||
nsPrintSettingsGTK::SetPaperName(const char16_t * aPaperName)
|
||||
nsPrintSettingsGTK::SetPaperName(const nsAString& aPaperName)
|
||||
{
|
||||
NS_ConvertUTF16toUTF8 gtkPaperName(aPaperName);
|
||||
|
||||
|
|
|
|||
|
|
@ -68,13 +68,13 @@ public:
|
|||
NS_IMETHOD GetOrientation(int32_t *aOrientation) override;
|
||||
NS_IMETHOD SetOrientation(int32_t aOrientation) override;
|
||||
|
||||
NS_IMETHOD GetToFileName(char16_t * *aToFileName) override;
|
||||
NS_IMETHOD SetToFileName(const char16_t * aToFileName) override;
|
||||
NS_IMETHOD GetToFileName(nsAString& aToFileName) override;
|
||||
NS_IMETHOD SetToFileName(const nsAString& aToFileName) override;
|
||||
|
||||
// Gets/Sets the printer name in the GtkPrintSettings. If no printer name is specified there,
|
||||
// you will get back the name of the current internal GtkPrinter.
|
||||
NS_IMETHOD GetPrinterName(char16_t * *aPrinter) override;
|
||||
NS_IMETHOD SetPrinterName(const char16_t * aPrinter) override;
|
||||
NS_IMETHOD GetPrinterName(nsAString& Printer) override;
|
||||
NS_IMETHOD SetPrinterName(const nsAString& aPrinter) override;
|
||||
|
||||
// Number of copies is stored/gotten from the GtkPrintSettings.
|
||||
NS_IMETHOD GetNumCopies(int32_t *aNumCopies) override;
|
||||
|
|
@ -84,8 +84,8 @@ public:
|
|||
NS_IMETHOD SetScaling(double aScaling) override;
|
||||
|
||||
// A name recognised by GTK is strongly advised here, as this is used to create a GtkPaperSize.
|
||||
NS_IMETHOD GetPaperName(char16_t * *aPaperName) override;
|
||||
NS_IMETHOD SetPaperName(const char16_t * aPaperName) override;
|
||||
NS_IMETHOD GetPaperName(nsAString& aPaperName) override;
|
||||
NS_IMETHOD SetPaperName(const nsAString& aPaperName) override;
|
||||
|
||||
NS_IMETHOD SetUnwriteableMarginInTwips(nsIntMargin& aUnwriteableMargin) override;
|
||||
NS_IMETHOD SetUnwriteableMarginTop(double aUnwriteableMarginTop) override;
|
||||
|
|
|
|||
|
|
@ -202,16 +202,16 @@ interface nsIPrintSettings : nsISupports
|
|||
|
||||
attribute short printRange;
|
||||
|
||||
attribute wstring title;
|
||||
attribute wstring docURL;
|
||||
attribute AString title;
|
||||
attribute AString docURL;
|
||||
|
||||
attribute wstring headerStrLeft;
|
||||
attribute wstring headerStrCenter;
|
||||
attribute wstring headerStrRight;
|
||||
attribute AString headerStrLeft;
|
||||
attribute AString headerStrCenter;
|
||||
attribute AString headerStrRight;
|
||||
|
||||
attribute wstring footerStrLeft;
|
||||
attribute wstring footerStrCenter;
|
||||
attribute wstring footerStrRight;
|
||||
attribute AString footerStrLeft;
|
||||
attribute AString footerStrCenter;
|
||||
attribute AString footerStrRight;
|
||||
|
||||
attribute short howToEnableFrameUI; /* indicates how to enable the frameset UI */
|
||||
attribute boolean isCancelled; /* indicates whether the print job has been cancelled */
|
||||
|
|
@ -222,7 +222,7 @@ interface nsIPrintSettings : nsISupports
|
|||
attribute boolean showPrintProgress; /* indicates whether the progress dialog should be shown */
|
||||
|
||||
/* Additional XP Related */
|
||||
attribute wstring paperName; /* name of paper */
|
||||
attribute AString paperName; /* name of paper */
|
||||
attribute short paperData; /* native data value */
|
||||
attribute double paperWidth; /* width of the paper in inches or mm */
|
||||
attribute double paperHeight; /* height of the paper in inches or mm */
|
||||
|
|
@ -233,10 +233,10 @@ interface nsIPrintSettings : nsISupports
|
|||
attribute long orientation; /* see orientation consts */
|
||||
attribute long numCopies;
|
||||
|
||||
attribute wstring printerName; /* name of destination printer */
|
||||
attribute AString printerName; /* name of destination printer */
|
||||
|
||||
attribute boolean printToFile;
|
||||
attribute wstring toFileName;
|
||||
attribute AString toFileName;
|
||||
attribute short outputFormat;
|
||||
|
||||
attribute long printPageDelay; /* in milliseconds */
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ interface nsIPrintSettingsService : nsISupports
|
|||
/**
|
||||
* The name of the last printer used, or else the system default printer.
|
||||
*/
|
||||
readonly attribute wstring defaultPrinterName;
|
||||
readonly attribute AString defaultPrinterName;
|
||||
|
||||
/**
|
||||
* Initializes certain settings from the native printer into the PrintSettings
|
||||
|
|
@ -68,7 +68,8 @@ interface nsIPrintSettingsService : nsISupports
|
|||
* Page Size
|
||||
* Number of Copies
|
||||
*/
|
||||
void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);
|
||||
void initPrintSettingsFromPrinter(in AString aPrinterName,
|
||||
in nsIPrintSettings aPrintSettings);
|
||||
|
||||
/**
|
||||
* Reads PrintSettings values from Prefs,
|
||||
|
|
|
|||
|
|
@ -35,8 +35,8 @@ interface nsIPrintSettingsWin : nsISupports
|
|||
* via the "m_pd" data member of the CPrintDialog
|
||||
* in MFC.
|
||||
*/
|
||||
[noscript] attribute wstring deviceName;
|
||||
[noscript] attribute wstring driverName;
|
||||
[noscript] attribute AString deviceName;
|
||||
[noscript] attribute AString driverName;
|
||||
|
||||
[noscript] attribute nsDevMode devMode;
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ interface nsIPrinterEnumerator : nsISupports
|
|||
* default printer; see nsIPrintSettingsService.defaultPrinterName
|
||||
* for that.
|
||||
*/
|
||||
readonly attribute wstring defaultPrinterName;
|
||||
readonly attribute AString defaultPrinterName;
|
||||
|
||||
/**
|
||||
* Initializes certain settings from the native printer into the PrintSettings
|
||||
|
|
@ -27,7 +27,8 @@ interface nsIPrinterEnumerator : nsISupports
|
|||
* Page Size
|
||||
* Number of Copies
|
||||
*/
|
||||
void initPrintSettingsFromPrinter(in wstring aPrinterName, in nsIPrintSettings aPrintSettings);
|
||||
void initPrintSettingsFromPrinter(in AString aPrinterName,
|
||||
in nsIPrintSettings aPrintSettings);
|
||||
|
||||
/**
|
||||
* The list of printer names
|
||||
|
|
|
|||
|
|
@ -138,40 +138,16 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
|||
aSettings->GetPrintBGImages(&data->printBGImages());
|
||||
aSettings->GetPrintRange(&data->printRange());
|
||||
|
||||
// I have no idea if I'm doing this string copying correctly...
|
||||
nsString title;
|
||||
aSettings->GetTitle(getter_Copies(title));
|
||||
data->title() = title;
|
||||
aSettings->GetTitle(data->title());
|
||||
aSettings->GetDocURL(data->docURL());
|
||||
|
||||
nsString docURL;
|
||||
aSettings->GetDocURL(getter_Copies(docURL));
|
||||
data->docURL() = docURL;
|
||||
aSettings->GetHeaderStrLeft(data->headerStrLeft());
|
||||
aSettings->GetHeaderStrCenter(data->headerStrCenter());
|
||||
aSettings->GetHeaderStrRight(data->headerStrRight());
|
||||
|
||||
// Header strings...
|
||||
nsString headerStrLeft;
|
||||
aSettings->GetHeaderStrLeft(getter_Copies(headerStrLeft));
|
||||
data->headerStrLeft() = headerStrLeft;
|
||||
|
||||
nsString headerStrCenter;
|
||||
aSettings->GetHeaderStrCenter(getter_Copies(headerStrCenter));
|
||||
data->headerStrCenter() = headerStrCenter;
|
||||
|
||||
nsString headerStrRight;
|
||||
aSettings->GetHeaderStrRight(getter_Copies(headerStrRight));
|
||||
data->headerStrRight() = headerStrRight;
|
||||
|
||||
// Footer strings...
|
||||
nsString footerStrLeft;
|
||||
aSettings->GetFooterStrLeft(getter_Copies(footerStrLeft));
|
||||
data->footerStrLeft() = footerStrLeft;
|
||||
|
||||
nsString footerStrCenter;
|
||||
aSettings->GetFooterStrCenter(getter_Copies(footerStrCenter));
|
||||
data->footerStrCenter() = footerStrCenter;
|
||||
|
||||
nsString footerStrRight;
|
||||
aSettings->GetFooterStrRight(getter_Copies(footerStrRight));
|
||||
data->footerStrRight() = footerStrRight;
|
||||
aSettings->GetFooterStrLeft(data->footerStrLeft());
|
||||
aSettings->GetFooterStrCenter(data->footerStrCenter());
|
||||
aSettings->GetFooterStrRight(data->footerStrRight());
|
||||
|
||||
aSettings->GetHowToEnableFrameUI(&data->howToEnableFrameUI());
|
||||
aSettings->GetIsCancelled(&data->isCancelled());
|
||||
|
|
@ -181,10 +157,7 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
|||
aSettings->GetShrinkToFit(&data->shrinkToFit());
|
||||
aSettings->GetShowPrintProgress(&data->showPrintProgress());
|
||||
|
||||
nsString paperName;
|
||||
aSettings->GetPaperName(getter_Copies(paperName));
|
||||
data->paperName() = paperName;
|
||||
|
||||
aSettings->GetPaperName(data->paperName());
|
||||
aSettings->GetPaperData(&data->paperData());
|
||||
aSettings->GetPaperWidth(&data->paperWidth());
|
||||
aSettings->GetPaperHeight(&data->paperHeight());
|
||||
|
|
@ -196,15 +169,11 @@ nsPrintOptions::SerializeToPrintData(nsIPrintSettings* aSettings,
|
|||
|
||||
aSettings->GetNumCopies(&data->numCopies());
|
||||
|
||||
nsString printerName;
|
||||
aSettings->GetPrinterName(getter_Copies(printerName));
|
||||
data->printerName() = printerName;
|
||||
aSettings->GetPrinterName(data->printerName());
|
||||
|
||||
aSettings->GetPrintToFile(&data->printToFile());
|
||||
|
||||
nsString toFileName;
|
||||
aSettings->GetToFileName(getter_Copies(toFileName));
|
||||
data->toFileName() = toFileName;
|
||||
aSettings->GetToFileName(data->toFileName());
|
||||
|
||||
aSettings->GetOutputFormat(&data->outputFormat());
|
||||
aSettings->GetPrintPageDelay(&data->printPageDelay());
|
||||
|
|
@ -276,19 +245,18 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
|||
settings->SetPrintBGImages(data.printBGImages());
|
||||
settings->SetPrintRange(data.printRange());
|
||||
|
||||
// I have no idea if I'm doing this string copying correctly...
|
||||
settings->SetTitle(data.title().get());
|
||||
settings->SetDocURL(data.docURL().get());
|
||||
settings->SetTitle(data.title());
|
||||
settings->SetDocURL(data.docURL());
|
||||
|
||||
// Header strings...
|
||||
settings->SetHeaderStrLeft(data.headerStrLeft().get());
|
||||
settings->SetHeaderStrCenter(data.headerStrCenter().get());
|
||||
settings->SetHeaderStrRight(data.headerStrRight().get());
|
||||
settings->SetHeaderStrLeft(data.headerStrLeft());
|
||||
settings->SetHeaderStrCenter(data.headerStrCenter());
|
||||
settings->SetHeaderStrRight(data.headerStrRight());
|
||||
|
||||
// Footer strings...
|
||||
settings->SetFooterStrLeft(data.footerStrLeft().get());
|
||||
settings->SetFooterStrCenter(data.footerStrCenter().get());
|
||||
settings->SetFooterStrRight(data.footerStrRight().get());
|
||||
settings->SetFooterStrLeft(data.footerStrLeft());
|
||||
settings->SetFooterStrCenter(data.footerStrCenter());
|
||||
settings->SetFooterStrRight(data.footerStrRight());
|
||||
|
||||
settings->SetHowToEnableFrameUI(data.howToEnableFrameUI());
|
||||
settings->SetIsCancelled(data.isCancelled());
|
||||
|
|
@ -298,7 +266,7 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
|||
settings->SetShrinkToFit(data.shrinkToFit());
|
||||
settings->SetShowPrintProgress(data.showPrintProgress());
|
||||
|
||||
settings->SetPaperName(data.paperName().get());
|
||||
settings->SetPaperName(data.paperName());
|
||||
|
||||
settings->SetPaperData(data.paperData());
|
||||
settings->SetPaperWidth(data.paperWidth());
|
||||
|
|
@ -311,11 +279,11 @@ nsPrintOptions::DeserializeToPrintSettings(const PrintData& data,
|
|||
|
||||
settings->SetNumCopies(data.numCopies());
|
||||
|
||||
settings->SetPrinterName(data.printerName().get());
|
||||
settings->SetPrinterName(data.printerName());
|
||||
|
||||
settings->SetPrintToFile(data.printToFile());
|
||||
|
||||
settings->SetToFileName(data.toFileName().get());
|
||||
settings->SetToFileName(data.toFileName());
|
||||
|
||||
settings->SetOutputFormat(data.outputFormat());
|
||||
settings->SetPrintPageDelay(data.printPageDelay());
|
||||
|
|
@ -533,7 +501,7 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
|||
DUMP_DBL(kReadStr, kPrintPaperWidth, width);
|
||||
aPS->SetPaperHeight(height);
|
||||
DUMP_DBL(kReadStr, kPrintPaperHeight, height);
|
||||
aPS->SetPaperName(str.get());
|
||||
aPS->SetPaperName(str);
|
||||
DUMP_STR(kReadStr, kPrintPaperName, str.get());
|
||||
#if defined(XP_WIN)
|
||||
if (saveSanitizedSizePrefs) {
|
||||
|
|
@ -560,42 +528,42 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
|||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
||||
if (GETSTRPREF(kPrintHeaderStrLeft, str)) {
|
||||
aPS->SetHeaderStrLeft(str.get());
|
||||
aPS->SetHeaderStrLeft(str);
|
||||
DUMP_STR(kReadStr, kPrintHeaderStrLeft, str.get());
|
||||
}
|
||||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
||||
if (GETSTRPREF(kPrintHeaderStrCenter, str)) {
|
||||
aPS->SetHeaderStrCenter(str.get());
|
||||
aPS->SetHeaderStrCenter(str);
|
||||
DUMP_STR(kReadStr, kPrintHeaderStrCenter, str.get());
|
||||
}
|
||||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
||||
if (GETSTRPREF(kPrintHeaderStrRight, str)) {
|
||||
aPS->SetHeaderStrRight(str.get());
|
||||
aPS->SetHeaderStrRight(str);
|
||||
DUMP_STR(kReadStr, kPrintHeaderStrRight, str.get());
|
||||
}
|
||||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
||||
if (GETSTRPREF(kPrintFooterStrLeft, str)) {
|
||||
aPS->SetFooterStrLeft(str.get());
|
||||
aPS->SetFooterStrLeft(str);
|
||||
DUMP_STR(kReadStr, kPrintFooterStrLeft, str.get());
|
||||
}
|
||||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
||||
if (GETSTRPREF(kPrintFooterStrCenter, str)) {
|
||||
aPS->SetFooterStrCenter(str.get());
|
||||
aPS->SetFooterStrCenter(str);
|
||||
DUMP_STR(kReadStr, kPrintFooterStrCenter, str.get());
|
||||
}
|
||||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
||||
if (GETSTRPREF(kPrintFooterStrRight, str)) {
|
||||
aPS->SetFooterStrRight(str.get());
|
||||
aPS->SetFooterStrRight(str);
|
||||
DUMP_STR(kReadStr, kPrintFooterStrRight, str.get());
|
||||
}
|
||||
}
|
||||
|
|
@ -651,7 +619,7 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsAString& aPrinterName,
|
|||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
||||
if (GETSTRPREF(kPrintToFileName, str)) {
|
||||
aPS->SetToFileName(str.get());
|
||||
aPS->SetToFileName(str);
|
||||
DUMP_STR(kReadStr, kPrintToFileName, str.get());
|
||||
}
|
||||
}
|
||||
|
|
@ -771,7 +739,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
NS_SUCCEEDED(aPS->GetPaperSizeUnit(&sizeUnit)) &&
|
||||
NS_SUCCEEDED(aPS->GetPaperWidth(&width)) &&
|
||||
NS_SUCCEEDED(aPS->GetPaperHeight(&height)) &&
|
||||
NS_SUCCEEDED(aPS->GetPaperName(getter_Copies(name)))
|
||||
NS_SUCCEEDED(aPS->GetPaperName(name))
|
||||
) {
|
||||
DUMP_INT(kWriteStr, kPrintPaperSizeUnit, sizeUnit);
|
||||
Preferences::SetInt(GetPrefName(kPrintPaperSizeUnit, aPrinterName),
|
||||
|
|
@ -822,7 +790,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderLeft) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrLeft(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrLeft(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintHeaderStrLeft, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintHeaderStrLeft, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -830,7 +798,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderCenter) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrCenter(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrCenter(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintHeaderStrCenter, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintHeaderStrCenter, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -838,7 +806,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveHeaderRight) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrRight(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetHeaderStrRight(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintHeaderStrRight, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintHeaderStrRight, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -846,7 +814,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterLeft) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrLeft(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrLeft(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintFooterStrLeft, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintFooterStrLeft, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -854,7 +822,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterCenter) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrCenter(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrCenter(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintFooterStrCenter, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintFooterStrCenter, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -862,7 +830,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveFooterRight) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrRight(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetFooterStrRight(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintFooterStrRight, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintFooterStrRight, aPrinterName),
|
||||
uStr);
|
||||
|
|
@ -915,7 +883,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
// Only the general version of this pref is saved
|
||||
if ((aFlags & nsIPrintSettings::kInitSavePrinterName)
|
||||
&& aPrinterName.IsEmpty()) {
|
||||
if (NS_SUCCEEDED(aPS->GetPrinterName(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetPrinterName(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrinterName, uStr.get());
|
||||
Preferences::SetString(kPrinterName, uStr);
|
||||
}
|
||||
|
|
@ -929,7 +897,7 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsAString& aPrinterName,
|
|||
}
|
||||
|
||||
if (aFlags & nsIPrintSettings::kInitSaveToFileName) {
|
||||
if (NS_SUCCEEDED(aPS->GetToFileName(getter_Copies(uStr)))) {
|
||||
if (NS_SUCCEEDED(aPS->GetToFileName(uStr))) {
|
||||
DUMP_STR(kWriteStr, kPrintToFileName, uStr.get());
|
||||
Preferences::SetString(GetPrefName(kPrintToFileName, aPrinterName), uStr);
|
||||
}
|
||||
|
|
@ -985,9 +953,9 @@ nsresult nsPrintOptions::_CreatePrintSettings(nsIPrintSettings **_retval)
|
|||
NS_ADDREF(*_retval = printSettings); // ref count
|
||||
|
||||
nsString printerName;
|
||||
nsresult rv = GetDefaultPrinterName(getter_Copies(printerName));
|
||||
nsresult rv = GetDefaultPrinterName(printerName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
(*_retval)->SetPrinterName(printerName.get());
|
||||
(*_retval)->SetPrinterName(printerName);
|
||||
|
||||
(void)InitPrintSettingsFromPrefs(*_retval, false,
|
||||
nsIPrintSettings::kInitSaveAll);
|
||||
|
|
@ -1015,7 +983,7 @@ nsPrintOptions::GetNewPrintSettings(nsIPrintSettings * *aNewPrintSettings)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
||||
nsPrintOptions::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||
{
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIPrinterEnumerator> prtEnum =
|
||||
|
|
@ -1040,7 +1008,7 @@ nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
|||
}
|
||||
}
|
||||
if (isValid) {
|
||||
*aDefaultPrinterName = ToNewUnicode(lastPrinterName);
|
||||
aDefaultPrinterName = lastPrinterName;
|
||||
return NS_OK;
|
||||
}
|
||||
}
|
||||
|
|
@ -1052,7 +1020,7 @@ nsPrintOptions::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
|||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrintOptions::InitPrintSettingsFromPrinter(const char16_t *aPrinterName,
|
||||
nsPrintOptions::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||
nsIPrintSettings *aPrintSettings)
|
||||
{
|
||||
// Don't get print settings from the printer in the child when printing via
|
||||
|
|
@ -1062,11 +1030,10 @@ nsPrintOptions::InitPrintSettingsFromPrinter(const char16_t *aPrinterName,
|
|||
}
|
||||
|
||||
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
||||
NS_ENSURE_ARG_POINTER(aPrinterName);
|
||||
|
||||
#ifdef DEBUG
|
||||
nsString printerName;
|
||||
aPrintSettings->GetPrinterName(getter_Copies(printerName));
|
||||
aPrintSettings->GetPrinterName(printerName);
|
||||
if (!printerName.Equals(aPrinterName)) {
|
||||
NS_WARNING("Printer names should match!");
|
||||
}
|
||||
|
|
@ -1105,7 +1072,7 @@ GetAdjustedPrinterName(nsIPrintSettings* aPS, bool aUsePNP,
|
|||
|
||||
// Get the Printer Name from the PrintSettings
|
||||
// to use as a prefix for Pref Names
|
||||
nsresult rv = aPS->GetPrinterName(getter_Copies(aPrinterName));
|
||||
nsresult rv = aPS->GetPrinterName(aPrinterName);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// Convert any whitespaces, carriage returns or newlines to _
|
||||
|
|
|
|||
|
|
@ -192,19 +192,15 @@ NS_IMETHODIMP nsPrintSettings::SetDuplex(const int32_t aDuplex)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetPrinterName(char16_t * *aPrinter)
|
||||
NS_IMETHODIMP nsPrintSettings::GetPrinterName(nsAString& aPrinter)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPrinter);
|
||||
|
||||
*aPrinter = ToNewUnicode(mPrinter);
|
||||
NS_ENSURE_TRUE(*aPrinter, NS_ERROR_OUT_OF_MEMORY);
|
||||
|
||||
aPrinter = mPrinter;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::SetPrinterName(const char16_t * aPrinter)
|
||||
NS_IMETHODIMP nsPrintSettings::SetPrinterName(const nsAString& aPrinter)
|
||||
{
|
||||
if (!aPrinter || !mPrinter.Equals(aPrinter)) {
|
||||
if (!mPrinter.Equals(aPrinter)) {
|
||||
mIsInitedFromPrinter = false;
|
||||
mIsInitedFromPrefs = false;
|
||||
}
|
||||
|
|
@ -237,19 +233,14 @@ NS_IMETHODIMP nsPrintSettings::SetPrintToFile(bool aPrintToFile)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetToFileName(char16_t * *aToFileName)
|
||||
NS_IMETHODIMP nsPrintSettings::GetToFileName(nsAString& aToFileName)
|
||||
{
|
||||
//NS_ENSURE_ARG_POINTER(aToFileName);
|
||||
*aToFileName = ToNewUnicode(mToFileName);
|
||||
aToFileName = mToFileName;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetToFileName(const char16_t * aToFileName)
|
||||
NS_IMETHODIMP nsPrintSettings::SetToFileName(const nsAString& aToFileName)
|
||||
{
|
||||
if (aToFileName) {
|
||||
mToFileName = aToFileName;
|
||||
} else {
|
||||
mToFileName.SetLength(0);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -501,43 +492,25 @@ NS_IMETHODIMP nsPrintSettings::SetPrintRange(int16_t aPrintRange)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetTitle(char16_t * *aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::GetTitle(nsAString& aTitle)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aTitle);
|
||||
if (!mTitle.IsEmpty()) {
|
||||
*aTitle = ToNewUnicode(mTitle);
|
||||
} else {
|
||||
*aTitle = nullptr;
|
||||
}
|
||||
aTitle = mTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetTitle(const char16_t * aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::SetTitle(const nsAString& aTitle)
|
||||
{
|
||||
if (aTitle) {
|
||||
mTitle = aTitle;
|
||||
} else {
|
||||
mTitle.SetLength(0);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetDocURL(char16_t * *aDocURL)
|
||||
NS_IMETHODIMP nsPrintSettings::GetDocURL(nsAString& aDocURL)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aDocURL);
|
||||
if (!mURL.IsEmpty()) {
|
||||
*aDocURL = ToNewUnicode(mURL);
|
||||
} else {
|
||||
*aDocURL = nullptr;
|
||||
}
|
||||
aDocURL = mURL;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetDocURL(const char16_t * aDocURL)
|
||||
NS_IMETHODIMP nsPrintSettings::SetDocURL(const nsAString& aDocURL)
|
||||
{
|
||||
if (aDocURL) {
|
||||
mURL = aDocURL;
|
||||
} else {
|
||||
mURL.SetLength(0);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -586,103 +559,70 @@ nsPrintSettings::SetPrintOptionsBits(int32_t aBits)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsPrintSettings::GetMarginStrs(char16_t * *aTitle,
|
||||
nsHeaderFooterEnum aType,
|
||||
int16_t aJust)
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrLeft(nsAString& aTitle)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aTitle);
|
||||
*aTitle = nullptr;
|
||||
if (aType == eHeader) {
|
||||
switch (aJust) {
|
||||
case kJustLeft: *aTitle = ToNewUnicode(mHeaderStrs[0]);break;
|
||||
case kJustCenter: *aTitle = ToNewUnicode(mHeaderStrs[1]);break;
|
||||
case kJustRight: *aTitle = ToNewUnicode(mHeaderStrs[2]);break;
|
||||
} //switch
|
||||
} else {
|
||||
switch (aJust) {
|
||||
case kJustLeft: *aTitle = ToNewUnicode(mFooterStrs[0]);break;
|
||||
case kJustCenter: *aTitle = ToNewUnicode(mFooterStrs[1]);break;
|
||||
case kJustRight: *aTitle = ToNewUnicode(mFooterStrs[2]);break;
|
||||
} //switch
|
||||
aTitle = mHeaderStrs[0];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrLeft(const nsAString& aTitle)
|
||||
{
|
||||
mHeaderStrs[0] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsPrintSettings::SetMarginStrs(const char16_t * aTitle,
|
||||
nsHeaderFooterEnum aType,
|
||||
int16_t aJust)
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrCenter(nsAString& aTitle)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aTitle);
|
||||
if (aType == eHeader) {
|
||||
switch (aJust) {
|
||||
case kJustLeft: mHeaderStrs[0] = aTitle;break;
|
||||
case kJustCenter: mHeaderStrs[1] = aTitle;break;
|
||||
case kJustRight: mHeaderStrs[2] = aTitle;break;
|
||||
} //switch
|
||||
} else {
|
||||
switch (aJust) {
|
||||
case kJustLeft: mFooterStrs[0] = aTitle;break;
|
||||
case kJustCenter: mFooterStrs[1] = aTitle;break;
|
||||
case kJustRight: mFooterStrs[2] = aTitle;break;
|
||||
} //switch
|
||||
aTitle = mHeaderStrs[1];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrCenter(const nsAString& aTitle)
|
||||
{
|
||||
mHeaderStrs[1] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrLeft(char16_t * *aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrRight(nsAString& aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eHeader, kJustLeft);
|
||||
aTitle = mHeaderStrs[2];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrLeft(const char16_t * aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrRight(const nsAString& aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eHeader, kJustLeft);
|
||||
mHeaderStrs[2] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrCenter(char16_t * *aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrLeft(nsAString& aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eHeader, kJustCenter);
|
||||
aTitle = mFooterStrs[0];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrCenter(const char16_t * aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrLeft(const nsAString& aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eHeader, kJustCenter);
|
||||
mFooterStrs[0] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetHeaderStrRight(char16_t * *aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrCenter(nsAString& aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eHeader, kJustRight);
|
||||
aTitle = mFooterStrs[1];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetHeaderStrRight(const char16_t * aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrCenter(const nsAString& aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eHeader, kJustRight);
|
||||
mFooterStrs[1] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrLeft(char16_t * *aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrRight(nsAString& aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eFooter, kJustLeft);
|
||||
aTitle = mFooterStrs[2];
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrLeft(const char16_t * aTitle)
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrRight(const nsAString& aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eFooter, kJustLeft);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrCenter(char16_t * *aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eFooter, kJustCenter);
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrCenter(const char16_t * aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eFooter, kJustCenter);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetFooterStrRight(char16_t * *aTitle)
|
||||
{
|
||||
return GetMarginStrs(aTitle, eFooter, kJustRight);
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetFooterStrRight(const char16_t * aTitle)
|
||||
{
|
||||
return SetMarginStrs(aTitle, eFooter, kJustRight);
|
||||
mFooterStrs[2] = aTitle;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetPrintFrameTypeUsage(int16_t *aPrintFrameTypeUsage)
|
||||
|
|
@ -745,23 +685,14 @@ NS_IMETHODIMP nsPrintSettings::SetShowPrintProgress(bool aShowPrintProgress)
|
|||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettings::GetPaperName(char16_t * *aPaperName)
|
||||
NS_IMETHODIMP nsPrintSettings::GetPaperName(nsAString& aPaperName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPaperName);
|
||||
if (!mPaperName.IsEmpty()) {
|
||||
*aPaperName = ToNewUnicode(mPaperName);
|
||||
} else {
|
||||
*aPaperName = nullptr;
|
||||
}
|
||||
aPaperName = mPaperName;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettings::SetPaperName(const char16_t * aPaperName)
|
||||
NS_IMETHODIMP nsPrintSettings::SetPaperName(const nsAString& aPaperName)
|
||||
{
|
||||
if (aPaperName) {
|
||||
mPaperName = aPaperName;
|
||||
} else {
|
||||
mPaperName.SetLength(0);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -42,9 +42,6 @@ protected:
|
|||
} nsHeaderFooterEnum;
|
||||
|
||||
|
||||
nsresult GetMarginStrs(char16_t * *aTitle, nsHeaderFooterEnum aType, int16_t aJust);
|
||||
nsresult SetMarginStrs(const char16_t * aTitle, nsHeaderFooterEnum aType, int16_t aJust);
|
||||
|
||||
// Members
|
||||
nsWeakPtr mSession; // Should never be touched by Clone or Assign
|
||||
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ public:
|
|||
bool PrintersAreAllocated() { return mPrinters != nullptr; }
|
||||
LPWSTR GetItemFromList(int32_t aInx) { return mPrinters?mPrinters->ElementAt(aInx):nullptr; }
|
||||
nsresult EnumeratePrinterList();
|
||||
void GetDefaultPrinterName(nsString& aDefaultPrinterName);
|
||||
void GetDefaultPrinterName(nsAString& aDefaultPrinterName);
|
||||
uint32_t GetNumPrinters() { return mPrinters?mPrinters->Length():0; }
|
||||
|
||||
protected:
|
||||
|
|
@ -94,8 +94,6 @@ struct AutoFreeGlobalPrinters
|
|||
//----------------------------------------------------------------------------------
|
||||
nsDeviceContextSpecWin::nsDeviceContextSpecWin()
|
||||
{
|
||||
mDriverName = nullptr;
|
||||
mDeviceName = nullptr;
|
||||
mDevMode = nullptr;
|
||||
#ifdef MOZ_ENABLE_SKIA_PDF
|
||||
mPrintViaSkPDF = false;
|
||||
|
|
@ -113,14 +111,12 @@ NS_IMPL_ISUPPORTS(nsDeviceContextSpecWin, nsIDeviceContextSpec)
|
|||
|
||||
nsDeviceContextSpecWin::~nsDeviceContextSpecWin()
|
||||
{
|
||||
SetDeviceName(nullptr);
|
||||
SetDriverName(nullptr);
|
||||
SetDevMode(nullptr);
|
||||
|
||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(mPrintSettings));
|
||||
if (psWin) {
|
||||
psWin->SetDeviceName(nullptr);
|
||||
psWin->SetDriverName(nullptr);
|
||||
psWin->SetDeviceName(EmptyString());
|
||||
psWin->SetDriverName(EmptyString());
|
||||
psWin->SetDevMode(nullptr);
|
||||
}
|
||||
|
||||
|
|
@ -133,16 +129,6 @@ nsDeviceContextSpecWin::~nsDeviceContextSpecWin()
|
|||
GlobalPrinters::GetInstance()->FreeGlobalPrinters();
|
||||
}
|
||||
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// helper
|
||||
static char16_t * GetDefaultPrinterNameFromGlobalPrinters()
|
||||
{
|
||||
nsAutoString printerName;
|
||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(printerName);
|
||||
return ToNewUnicode(printerName);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
||||
nsIPrintSettings* aPrintSettings,
|
||||
|
|
@ -171,15 +157,15 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
|||
|
||||
nsCOMPtr<nsIPrintSettingsWin> psWin(do_QueryInterface(aPrintSettings));
|
||||
if (psWin) {
|
||||
char16_t* deviceName;
|
||||
char16_t* driverName;
|
||||
psWin->GetDeviceName(&deviceName); // creates new memory (makes a copy)
|
||||
psWin->GetDriverName(&driverName); // creates new memory (makes a copy)
|
||||
nsAutoString deviceName;
|
||||
nsAutoString driverName;
|
||||
psWin->GetDeviceName(deviceName);
|
||||
psWin->GetDriverName(driverName);
|
||||
|
||||
LPDEVMODEW devMode;
|
||||
psWin->GetDevMode(&devMode); // creates new memory (makes a copy)
|
||||
|
||||
if (deviceName && driverName && devMode) {
|
||||
if (!deviceName.IsEmpty() && !driverName.IsEmpty() && devMode) {
|
||||
// Scaling is special, it is one of the few
|
||||
// devMode items that we control in layout
|
||||
if (devMode->dmFields & DM_SCALE) {
|
||||
|
|
@ -194,15 +180,9 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
|||
SetDriverName(driverName);
|
||||
SetDevMode(devMode);
|
||||
|
||||
// clean up
|
||||
free(deviceName);
|
||||
free(driverName);
|
||||
|
||||
return NS_OK;
|
||||
} else {
|
||||
PR_PL(("***** nsDeviceContextSpecWin::Init - deviceName/driverName/devMode was NULL!\n"));
|
||||
if (deviceName) free(deviceName);
|
||||
if (driverName) free(driverName);
|
||||
if (devMode) ::HeapFree(::GetProcessHeap(), 0, devMode);
|
||||
}
|
||||
}
|
||||
|
|
@ -211,41 +191,24 @@ NS_IMETHODIMP nsDeviceContextSpecWin::Init(nsIWidget* aWidget,
|
|||
}
|
||||
|
||||
// Get the Printer Name to be used and output format.
|
||||
char16_t * printerName = nullptr;
|
||||
nsAutoString printerName;
|
||||
if (mPrintSettings) {
|
||||
mPrintSettings->GetPrinterName(&printerName);
|
||||
mPrintSettings->GetPrinterName(printerName);
|
||||
}
|
||||
|
||||
// If there is no name then use the default printer
|
||||
if (!printerName || (printerName && !*printerName)) {
|
||||
printerName = GetDefaultPrinterNameFromGlobalPrinters();
|
||||
if (printerName.IsEmpty()) {
|
||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(printerName);
|
||||
}
|
||||
|
||||
NS_ASSERTION(printerName, "We have to have a printer name");
|
||||
if (!printerName || !*printerName) return rv;
|
||||
if (printerName.IsEmpty()) {
|
||||
return rv;
|
||||
}
|
||||
|
||||
return GetDataFromPrinter(printerName, mPrintSettings);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------
|
||||
// Helper Function - Free and reallocate the string
|
||||
static void CleanAndCopyString(wchar_t*& aStr, const wchar_t* aNewStr)
|
||||
{
|
||||
if (aStr != nullptr) {
|
||||
if (aNewStr != nullptr && wcslen(aStr) > wcslen(aNewStr)) { // reuse it if we can
|
||||
wcscpy(aStr, aNewStr);
|
||||
return;
|
||||
} else {
|
||||
free(aStr);
|
||||
aStr = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
if (nullptr != aNewStr) {
|
||||
aStr = (wchar_t*) malloc(sizeof(wchar_t) * (wcslen(aNewStr) + 1));
|
||||
wcscpy(aStr, aNewStr);
|
||||
}
|
||||
}
|
||||
|
||||
already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
||||
{
|
||||
|
|
@ -266,7 +229,7 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
|||
|
||||
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
||||
nsString filename;
|
||||
mPrintSettings->GetToFileName(getter_Copies(filename));
|
||||
mPrintSettings->GetToFileName(filename);
|
||||
|
||||
nsAutoCString printFile(NS_ConvertUTF16toUTF8(filename).get());
|
||||
auto skStream = MakeUnique<SkFILEWStream>(printFile.get());
|
||||
|
|
@ -311,7 +274,7 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
|||
|
||||
if (mOutputFormat == nsIPrintSettings::kOutputFormatPDF) {
|
||||
nsString filename;
|
||||
mPrintSettings->GetToFileName(getter_Copies(filename));
|
||||
mPrintSettings->GetToFileName(filename);
|
||||
|
||||
double width, height;
|
||||
mPrintSettings->GetEffectivePageSize(&width, &height);
|
||||
|
|
@ -339,8 +302,8 @@ already_AddRefed<PrintTarget> nsDeviceContextSpecWin::MakePrintTarget()
|
|||
}
|
||||
|
||||
if (mDevMode) {
|
||||
NS_WARNING_ASSERTION(mDriverName, "No driver!");
|
||||
HDC dc = ::CreateDCW(mDriverName, mDeviceName, nullptr, mDevMode);
|
||||
NS_WARNING_ASSERTION(!mDriverName.IsEmpty(), "No driver!");
|
||||
HDC dc = ::CreateDCW(mDriverName.get(), mDeviceName.get(), nullptr, mDevMode);
|
||||
if (!dc) {
|
||||
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
||||
<< "Failed to create device context in GetSurfaceForPrinter";
|
||||
|
|
@ -457,8 +420,8 @@ nsDeviceContextSpecWin::BeginDocument(const nsAString& aTitle,
|
|||
// to once we reach EndDocument. The only reason we create it here rather
|
||||
// than in EndDocument is so that we don't need to store aTitle and
|
||||
// aPrintToFileName as member data.
|
||||
NS_WARNING_ASSERTION(mDriverName, "No driver!");
|
||||
mDC = ::CreateDCW(mDriverName, mDeviceName, nullptr, mDevMode);
|
||||
NS_WARNING_ASSERTION(!mDriverName.IsEmpty(), "No driver!");
|
||||
mDC = ::CreateDCW(mDriverName.get(), mDeviceName.get(), nullptr, mDevMode);
|
||||
if (mDC == NULL) {
|
||||
gfxCriticalError(gfxCriticalError::DefaultOptions(false))
|
||||
<< "Failed to create device context in GetSurfaceForPrinter";
|
||||
|
|
@ -527,15 +490,15 @@ nsDeviceContextSpecWin::EndDocument()
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
void nsDeviceContextSpecWin::SetDeviceName(char16ptr_t aDeviceName)
|
||||
void nsDeviceContextSpecWin::SetDeviceName(const nsAString& aDeviceName)
|
||||
{
|
||||
CleanAndCopyString(mDeviceName, aDeviceName);
|
||||
mDeviceName = aDeviceName;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
void nsDeviceContextSpecWin::SetDriverName(char16ptr_t aDriverName)
|
||||
void nsDeviceContextSpecWin::SetDriverName(const nsAString& aDriverName)
|
||||
{
|
||||
CleanAndCopyString(mDriverName, aDriverName);
|
||||
mDriverName = aDriverName;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
|
@ -560,7 +523,8 @@ nsDeviceContextSpecWin::GetDevMode(LPDEVMODEW &aDevMode)
|
|||
//----------------------------------------------------------------------------------
|
||||
// Setup the object's data member with the selected printer's data
|
||||
nsresult
|
||||
nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings* aPS)
|
||||
nsDeviceContextSpecWin::GetDataFromPrinter(const nsAString& aName,
|
||||
nsIPrintSettings* aPS)
|
||||
{
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
|
||||
|
|
@ -574,7 +538,8 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
|||
}
|
||||
|
||||
nsHPRINTER hPrinter = nullptr;
|
||||
wchar_t *name = (wchar_t*)aName; // Windows APIs use non-const name argument
|
||||
const nsString& flat = PromiseFlatString(aName);
|
||||
wchar_t* name = (wchar_t*)flat.get(); // Windows APIs use non-const name argument
|
||||
|
||||
BOOL status = ::OpenPrinterW(name, &hPrinter, nullptr);
|
||||
if (status) {
|
||||
|
|
@ -589,7 +554,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
|||
PR_PL(("**** nsDeviceContextSpecWin::GetDataFromPrinter - Couldn't get "
|
||||
"size of DEVMODE using DocumentPropertiesW(pDeviceName = \"%s\"). "
|
||||
"GetLastEror() = %08x\n",
|
||||
aName ? NS_ConvertUTF16toUTF8(aName).get() : "", GetLastError()));
|
||||
NS_ConvertUTF16toUTF8(aName).get(), GetLastError()));
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
|
|
@ -614,7 +579,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
|||
// because they may have been set from invalid prefs.
|
||||
if (ret == IDOK) {
|
||||
// We need to get information from the device as well.
|
||||
nsAutoHDC printerDC(::CreateICW(kDriverName, aName, nullptr, pDevMode));
|
||||
nsAutoHDC printerDC(::CreateICW(kDriverName, name, nullptr, pDevMode));
|
||||
if (NS_WARN_IF(!printerDC)) {
|
||||
::HeapFree(::GetProcessHeap(), 0, pDevMode);
|
||||
return NS_ERROR_FAILURE;
|
||||
|
|
@ -635,7 +600,7 @@ nsDeviceContextSpecWin::GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings*
|
|||
|
||||
SetDeviceName(aName);
|
||||
|
||||
SetDriverName(kDriverName);
|
||||
SetDriverName(nsDependentString(kDriverName));
|
||||
|
||||
rv = NS_OK;
|
||||
} else {
|
||||
|
|
@ -664,22 +629,19 @@ NS_IMPL_ISUPPORTS(nsPrinterEnumeratorWin, nsIPrinterEnumerator)
|
|||
//----------------------------------------------------------------------------------
|
||||
// Return the Default Printer name
|
||||
NS_IMETHODIMP
|
||||
nsPrinterEnumeratorWin::GetDefaultPrinterName(char16_t * *aDefaultPrinterName)
|
||||
nsPrinterEnumeratorWin::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aDefaultPrinterName);
|
||||
|
||||
*aDefaultPrinterName = GetDefaultPrinterNameFromGlobalPrinters(); // helper
|
||||
|
||||
GlobalPrinters::GetInstance()->GetDefaultPrinterName(aDefaultPrinterName);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const char16_t *aPrinterName, nsIPrintSettings *aPrintSettings)
|
||||
nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const nsAString& aPrinterName,
|
||||
nsIPrintSettings *aPrintSettings)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aPrinterName);
|
||||
NS_ENSURE_ARG_POINTER(aPrintSettings);
|
||||
|
||||
if (!*aPrinterName) {
|
||||
if (aPrinterName.IsEmpty()) {
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -724,7 +686,8 @@ nsPrinterEnumeratorWin::InitPrintSettingsFromPrinter(const char16_t *aPrinterNam
|
|||
aPrintSettings->SetPrinterName(aPrinterName);
|
||||
|
||||
// We need to get information from the device as well.
|
||||
char16ptr_t printerName = aPrinterName;
|
||||
const nsString& flat = PromiseFlatString(aPrinterName);
|
||||
char16ptr_t printerName = flat.get();
|
||||
HDC dc = ::CreateICW(kDriverName, printerName, nullptr, devmode);
|
||||
if (NS_WARN_IF(!dc)) {
|
||||
return NS_ERROR_FAILURE;
|
||||
|
|
@ -833,7 +796,7 @@ GlobalPrinters::EnumerateNativePrinters()
|
|||
//------------------------------------------------------------------
|
||||
// Uses the GetProfileString to get the default printer from the registry
|
||||
void
|
||||
GlobalPrinters::GetDefaultPrinterName(nsString& aDefaultPrinterName)
|
||||
GlobalPrinters::GetDefaultPrinterName(nsAString& aDefaultPrinterName)
|
||||
{
|
||||
aDefaultPrinterName.Truncate();
|
||||
WCHAR szDefaultPrinterName[1024];
|
||||
|
|
@ -853,7 +816,8 @@ GlobalPrinters::GetDefaultPrinterName(nsString& aDefaultPrinterName)
|
|||
aDefaultPrinterName = EmptyString();
|
||||
}
|
||||
|
||||
PR_PL(("DEFAULT PRINTER [%s]\n", aDefaultPrinterName.get()));
|
||||
PR_PL(("DEFAULT PRINTER [%s]\n",
|
||||
PromiseFlatString(aDefaultPrinterName).get()));
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ public:
|
|||
|
||||
float GetPrintingScale() final;
|
||||
|
||||
void GetDriverName(wchar_t *&aDriverName) const { aDriverName = mDriverName; }
|
||||
void GetDeviceName(wchar_t *&aDeviceName) const { aDeviceName = mDeviceName; }
|
||||
void GetDriverName(nsAString& aDriverName) const { aDriverName = mDriverName; }
|
||||
void GetDeviceName(nsAString& aDeviceName) const { aDeviceName = mDeviceName; }
|
||||
|
||||
// The GetDevMode will return a pointer to a DevMode
|
||||
// whether it is from the Global memory handle or just the DevMode
|
||||
|
|
@ -61,18 +61,19 @@ public:
|
|||
void GetDevMode(LPDEVMODEW &aDevMode);
|
||||
|
||||
// helper functions
|
||||
nsresult GetDataFromPrinter(char16ptr_t aName, nsIPrintSettings* aPS = nullptr);
|
||||
nsresult GetDataFromPrinter(const nsAString& aName,
|
||||
nsIPrintSettings* aPS = nullptr);
|
||||
|
||||
protected:
|
||||
|
||||
void SetDeviceName(char16ptr_t aDeviceName);
|
||||
void SetDriverName(char16ptr_t aDriverName);
|
||||
void SetDeviceName(const nsAString& aDeviceName);
|
||||
void SetDriverName(const nsAString& aDriverName);
|
||||
void SetDevMode(LPDEVMODEW aDevMode);
|
||||
|
||||
virtual ~nsDeviceContextSpecWin();
|
||||
|
||||
wchar_t* mDriverName;
|
||||
wchar_t* mDeviceName;
|
||||
nsString mDriverName;
|
||||
nsString mDeviceName;
|
||||
LPDEVMODEW mDevMode;
|
||||
|
||||
nsCOMPtr<nsIPrintSettings> mPrintSettings;
|
||||
|
|
|
|||
|
|
@ -55,18 +55,15 @@ nsPrintOptionsWin::SerializeToPrintData(nsIPrintSettings* aSettings,
|
|||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
|
||||
char16_t* deviceName;
|
||||
char16_t* driverName;
|
||||
nsAutoString deviceName;
|
||||
nsAutoString driverName;
|
||||
|
||||
psWin->GetDeviceName(&deviceName);
|
||||
psWin->GetDriverName(&driverName);
|
||||
psWin->GetDeviceName(deviceName);
|
||||
psWin->GetDriverName(driverName);
|
||||
|
||||
data->deviceName().Assign(deviceName);
|
||||
data->driverName().Assign(driverName);
|
||||
|
||||
free(deviceName);
|
||||
free(driverName);
|
||||
|
||||
// When creating the print dialog on Windows, we only need to send certain
|
||||
// print settings information from the parent to the child not vice versa.
|
||||
if (XRE_IsParentProcess()) {
|
||||
|
|
@ -117,8 +114,8 @@ nsPrintOptionsWin::DeserializeToPrintSettings(const PrintData& data,
|
|||
}
|
||||
|
||||
if (XRE_IsContentProcess()) {
|
||||
psWin->SetDeviceName(data.deviceName().get());
|
||||
psWin->SetDriverName(data.driverName().get());
|
||||
psWin->SetDeviceName(data.deviceName());
|
||||
psWin->SetDriverName(data.driverName());
|
||||
|
||||
psWin->SetPrintableWidthInInches(data.printableWidthInInches());
|
||||
psWin->SetPrintableHeightInInches(data.printableHeightInInches());
|
||||
|
|
|
|||
|
|
@ -154,10 +154,8 @@ nsPrintSettingsWin::nsPrintSettingsWin() :
|
|||
* See documentation in nsPrintSettingsWin.h
|
||||
* @update
|
||||
*/
|
||||
nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS) :
|
||||
mDeviceName(nullptr),
|
||||
mDriverName(nullptr),
|
||||
mDevMode(nullptr)
|
||||
nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS)
|
||||
: mDevMode(nullptr)
|
||||
{
|
||||
*this = aPS;
|
||||
}
|
||||
|
|
@ -168,38 +166,28 @@ nsPrintSettingsWin::nsPrintSettingsWin(const nsPrintSettingsWin& aPS) :
|
|||
*/
|
||||
nsPrintSettingsWin::~nsPrintSettingsWin()
|
||||
{
|
||||
if (mDeviceName) free(mDeviceName);
|
||||
if (mDriverName) free(mDriverName);
|
||||
if (mDevMode) ::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettingsWin::SetDeviceName(const char16_t * aDeviceName)
|
||||
NS_IMETHODIMP nsPrintSettingsWin::SetDeviceName(const nsAString& aDeviceName)
|
||||
{
|
||||
if (mDeviceName) {
|
||||
free(mDeviceName);
|
||||
}
|
||||
mDeviceName = aDeviceName?wcsdup(char16ptr_t(aDeviceName)):nullptr;
|
||||
mDeviceName = aDeviceName;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettingsWin::GetDeviceName(char16_t **aDeviceName)
|
||||
NS_IMETHODIMP nsPrintSettingsWin::GetDeviceName(nsAString& aDeviceName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aDeviceName);
|
||||
*aDeviceName = mDeviceName?reinterpret_cast<char16_t*>(wcsdup(mDeviceName)):nullptr;
|
||||
aDeviceName = mDeviceName;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsPrintSettingsWin::SetDriverName(const char16_t * aDriverName)
|
||||
NS_IMETHODIMP nsPrintSettingsWin::SetDriverName(const nsAString& aDriverName)
|
||||
{
|
||||
if (mDriverName) {
|
||||
free(mDriverName);
|
||||
}
|
||||
mDriverName = aDriverName?wcsdup(char16ptr_t(aDriverName)):nullptr;
|
||||
mDriverName = aDriverName;
|
||||
return NS_OK;
|
||||
}
|
||||
NS_IMETHODIMP nsPrintSettingsWin::GetDriverName(char16_t **aDriverName)
|
||||
NS_IMETHODIMP nsPrintSettingsWin::GetDriverName(nsAString& aDriverName)
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(aDriverName);
|
||||
*aDriverName = mDriverName?reinterpret_cast<char16_t*>(wcsdup(mDriverName)):nullptr;
|
||||
aDriverName = mDriverName;
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
|
@ -425,21 +413,13 @@ nsPrintSettingsWin& nsPrintSettingsWin::operator=(const nsPrintSettingsWin& rhs)
|
|||
|
||||
((nsPrintSettings&) *this) = rhs;
|
||||
|
||||
if (mDeviceName) {
|
||||
free(mDeviceName);
|
||||
}
|
||||
|
||||
if (mDriverName) {
|
||||
free(mDriverName);
|
||||
}
|
||||
|
||||
// Use free because we used the native malloc to create the memory
|
||||
if (mDevMode) {
|
||||
::HeapFree(::GetProcessHeap(), 0, mDevMode);
|
||||
}
|
||||
|
||||
mDeviceName = rhs.mDeviceName?wcsdup(rhs.mDeviceName):nullptr;
|
||||
mDriverName = rhs.mDriverName?wcsdup(rhs.mDriverName):nullptr;
|
||||
mDeviceName = rhs.mDeviceName;
|
||||
mDriverName = rhs.mDriverName;
|
||||
|
||||
if (rhs.mDevMode) {
|
||||
CopyDevMode(rhs.mDevMode, mDevMode);
|
||||
|
|
|
|||
|
|
@ -47,8 +47,8 @@ public:
|
|||
protected:
|
||||
void CopyDevMode(DEVMODEW* aInDevMode, DEVMODEW *& aOutDevMode);
|
||||
|
||||
wchar_t* mDeviceName;
|
||||
wchar_t* mDriverName;
|
||||
nsString mDeviceName;
|
||||
nsString mDriverName;
|
||||
LPDEVMODEW mDevMode;
|
||||
double mPrintableWidthInInches = 0l;
|
||||
double mPrintableHeightInInches = 0l;
|
||||
|
|
|
|||
Loading…
Reference in a new issue