зеркало из https://github.com/mozilla/gecko-dev.git
Fixing bug 223111. Making the page-setup settings shrink-to-fit and scaling persist across Mozilla instances. Patch by jblanco@us.ibm.com, and modiefied by me. r=ben, sr=bienvenu, a=asa.
This commit is contained in:
Родитель
a1e64427b9
Коммит
f0b208edf2
|
@ -94,6 +94,8 @@ interface nsIPrintSettings : nsISupports
|
||||||
const unsigned long kInitSaveMargins = 0x01000000;
|
const unsigned long kInitSaveMargins = 0x01000000;
|
||||||
const unsigned long kInitSaveNativeData = 0x02000000;
|
const unsigned long kInitSaveNativeData = 0x02000000;
|
||||||
const unsigned long kInitSavePlexName = 0x04000000;
|
const unsigned long kInitSavePlexName = 0x04000000;
|
||||||
|
const unsigned long kInitSaveShrinkToFit = 0x08000000;
|
||||||
|
const unsigned long kInitSaveScaling = 0x10000000;
|
||||||
const unsigned long kInitSaveAll = 0xFFFFFFFF;
|
const unsigned long kInitSaveAll = 0xFFFFFFFF;
|
||||||
|
|
||||||
/* Print Option Flags for Bit Field*/
|
/* Print Option Flags for Bit Field*/
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
#include "nsISimpleEnumerator.h"
|
#include "nsISimpleEnumerator.h"
|
||||||
#include "nsISupportsPrimitives.h"
|
#include "nsISupportsPrimitives.h"
|
||||||
#include "nsGfxCIID.h"
|
#include "nsGfxCIID.h"
|
||||||
|
#include "stdlib.h"
|
||||||
|
|
||||||
static NS_DEFINE_IID(kCPrinterEnumerator, NS_PRINTER_ENUMERATOR_CID);
|
static NS_DEFINE_IID(kCPrinterEnumerator, NS_PRINTER_ENUMERATOR_CID);
|
||||||
|
|
||||||
|
@ -101,8 +102,10 @@ const char kPrinterName[] = "print_printer";
|
||||||
const char kPrintToFile[] = "print_to_file";
|
const char kPrintToFile[] = "print_to_file";
|
||||||
const char kPrintToFileName[] = "print_to_filename";
|
const char kPrintToFileName[] = "print_to_filename";
|
||||||
const char kPrintPageDelay[] = "print_pagedelay";
|
const char kPrintPageDelay[] = "print_pagedelay";
|
||||||
const char kPrintBGColors[] = "print_bgcolor";
|
const char kPrintBGColors[] = "print_bgcolor";
|
||||||
const char kPrintBGImages[] = "print_bgimages";
|
const char kPrintBGImages[] = "print_bgimages";
|
||||||
|
const char kPrintShrinkToFit[] = "print_shrink_to_fit";
|
||||||
|
const char kPrintScaling[] = "print_scaling";
|
||||||
|
|
||||||
const char kJustLeft[] = "left";
|
const char kJustLeft[] = "left";
|
||||||
const char kJustCenter[] = "center";
|
const char kJustCenter[] = "center";
|
||||||
|
@ -578,9 +581,21 @@ nsPrintOptions::ReadPrefs(nsIPrintSettings* aPS, const nsString& aPrefName, PRUi
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (aFlags & nsIPrintSettings::kInitSaveShrinkToFit) {
|
||||||
|
if (NS_SUCCEEDED(mPrefBranch->GetBoolPref(GetPrefName(kPrintShrinkToFit, aPrefName), &b))) {
|
||||||
|
aPS->SetShrinkToFit(b);
|
||||||
|
DUMP_BOOL(kReadStr, kPrintShrinkToFit, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aFlags & nsIPrintSettings::kInitSaveScaling) {
|
||||||
|
if (NS_SUCCEEDED(ReadPrefDouble(GetPrefName(kPrintScaling, aPrefName), dbl))) {
|
||||||
|
aPS->SetScaling(dbl);
|
||||||
|
DUMP_DBL(kReadStr, kPrintScaling, dbl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Not Reading In:
|
// Not Reading In:
|
||||||
// Scaling
|
|
||||||
// ShrinkToFit
|
|
||||||
// Number of Copies
|
// Number of Copies
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -798,9 +813,21 @@ nsPrintOptions::WritePrefs(nsIPrintSettings *aPS, const nsString& aPrefName, PRU
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (aFlags & nsIPrintSettings::kInitSaveShrinkToFit) {
|
||||||
|
if (NS_SUCCEEDED(aPS->GetShrinkToFit(&b))) {
|
||||||
|
DUMP_BOOL(kWriteStr, kPrintShrinkToFit, b);
|
||||||
|
mPrefBranch->SetBoolPref(GetPrefName(kPrintShrinkToFit, aPrefName), b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aFlags & nsIPrintSettings::kInitSaveScaling) {
|
||||||
|
if (NS_SUCCEEDED(aPS->GetScaling(&dbl))) {
|
||||||
|
DUMP_DBL(kWriteStr, kPrintScaling, dbl);
|
||||||
|
WritePrefDouble(GetPrefName(kPrintScaling, aPrefName), dbl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Not Writing Out:
|
// Not Writing Out:
|
||||||
// Scaling
|
|
||||||
// ShrinkToFit
|
|
||||||
// Number of Copies
|
// Number of Copies
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -1092,12 +1119,10 @@ nsresult nsPrintOptions::ReadPrefDouble(const char * aPrefId,
|
||||||
double& aVal)
|
double& aVal)
|
||||||
{
|
{
|
||||||
NS_ENSURE_STATE(mPrefBranch);
|
NS_ENSURE_STATE(mPrefBranch);
|
||||||
char * str = nsnull;
|
char * str;
|
||||||
nsresult rv = mPrefBranch->GetCharPref(aPrefId, &str);
|
nsresult rv = mPrefBranch->GetCharPref(aPrefId, &str);
|
||||||
if (NS_SUCCEEDED(rv) && str) {
|
if (NS_SUCCEEDED(rv) && str) {
|
||||||
float f;
|
aVal = atof(str);
|
||||||
PR_sscanf(str, "%f", &f);
|
|
||||||
aVal = double(f);
|
|
||||||
nsMemory::Free(str);
|
nsMemory::Free(str);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -1248,6 +1273,7 @@ Tester::Tester()
|
||||||
ps->SetPrintToFile(PR_TRUE);
|
ps->SetPrintToFile(PR_TRUE);
|
||||||
ps->SetToFileName(NS_ConvertUTF8toUCS2("File Name").get());
|
ps->SetToFileName(NS_ConvertUTF8toUCS2("File Name").get());
|
||||||
ps->SetPrintPageDelay(1000);
|
ps->SetPrintPageDelay(1000);
|
||||||
|
ps->SetShrinkToFit(PR_TRUE);
|
||||||
|
|
||||||
struct SettingsType {
|
struct SettingsType {
|
||||||
const char* mName;
|
const char* mName;
|
||||||
|
@ -1263,6 +1289,7 @@ Tester::Tester()
|
||||||
{kPrintFooterStrRight, nsIPrintSettings::kInitSaveFooterRight},
|
{kPrintFooterStrRight, nsIPrintSettings::kInitSaveFooterRight},
|
||||||
{kPrintBGColors, nsIPrintSettings::kInitSaveBGColors},
|
{kPrintBGColors, nsIPrintSettings::kInitSaveBGColors},
|
||||||
{kPrintBGImages, nsIPrintSettings::kInitSaveBGImages},
|
{kPrintBGImages, nsIPrintSettings::kInitSaveBGImages},
|
||||||
|
{kPrintShrinkToFit, nsIPrintSettings::kInitSaveShrinkToFit},
|
||||||
{kPrintPaperSize, nsIPrintSettings::kInitSavePaperSize},
|
{kPrintPaperSize, nsIPrintSettings::kInitSavePaperSize},
|
||||||
{kPrintPaperName, nsIPrintSettings::kInitSavePaperName},
|
{kPrintPaperName, nsIPrintSettings::kInitSavePaperName},
|
||||||
{kPrintPlexName, nsIPrintSettings::kInitSavePlexName},
|
{kPrintPlexName, nsIPrintSettings::kInitSavePlexName},
|
||||||
|
|
Загрузка…
Ссылка в новой задаче