зеркало из https://github.com/mozilla/gecko-dev.git
bug 235763 Print dialog show list printer descriptions if available
patch by Roland Mainz <roland.mainz@nrubsig.org> r+sr=roc
This commit is contained in:
Родитель
67c419f59c
Коммит
a3393d8b9b
|
@ -1033,6 +1033,11 @@ nsresult GlobalPrinters::InitializeGlobalPrinters ()
|
||||||
mGlobalPrinterList = new nsStringArray();
|
mGlobalPrinterList = new nsStringArray();
|
||||||
if (!mGlobalPrinterList)
|
if (!mGlobalPrinterList)
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
return NS_ERROR_OUT_OF_MEMORY;
|
||||||
|
|
||||||
|
nsresult rv;
|
||||||
|
nsCOMPtr<nsIPref> pPrefs = do_GetService(NS_PREF_CONTRACTID, &rv);
|
||||||
|
if (NS_FAILED(rv))
|
||||||
|
return rv;
|
||||||
|
|
||||||
#ifdef USE_XPRINT
|
#ifdef USE_XPRINT
|
||||||
XPPrinterList plist = XpuGetPrinterList(nsnull, &mGlobalNumPrinters);
|
XPPrinterList plist = XpuGetPrinterList(nsnull, &mGlobalNumPrinters);
|
||||||
|
@ -1040,9 +1045,13 @@ nsresult GlobalPrinters::InitializeGlobalPrinters ()
|
||||||
if (plist && (mGlobalNumPrinters > 0))
|
if (plist && (mGlobalNumPrinters > 0))
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for( i = 0 ; i < mGlobalNumPrinters ; i++ )
|
for( i = 0 ; i < mGlobalNumPrinters ; i++ )
|
||||||
{
|
{
|
||||||
mGlobalPrinterList->AppendString(nsString(NS_ConvertASCIItoUCS2(plist[i].name)));
|
/* Add name to our list of printers... */
|
||||||
|
mGlobalPrinterList->AppendString(nsString(NS_ConvertUTF8toUCS2(plist[i].name)));
|
||||||
|
|
||||||
|
/* ... and store the description text for this printer */
|
||||||
|
pPrefs->SetCharPref(nsPrintfCString(256, "print.printer_%s.printer_description", plist[i].name).get(), plist[i].desc);
|
||||||
}
|
}
|
||||||
|
|
||||||
XpuFreePrinterList(plist);
|
XpuFreePrinterList(plist);
|
||||||
|
@ -1050,7 +1059,6 @@ nsresult GlobalPrinters::InitializeGlobalPrinters ()
|
||||||
#endif /* USE_XPRINT */
|
#endif /* USE_XPRINT */
|
||||||
|
|
||||||
#ifdef USE_POSTSCRIPT
|
#ifdef USE_POSTSCRIPT
|
||||||
nsCOMPtr<nsIPref> pPrefs = do_GetService(NS_PREF_CONTRACTID);
|
|
||||||
PRBool psPrintModuleEnabled = PR_TRUE;
|
PRBool psPrintModuleEnabled = PR_TRUE;
|
||||||
|
|
||||||
const char *val = PR_GetEnv("MOZILLA_POSTSCRIPT_ENABLED");
|
const char *val = PR_GetEnv("MOZILLA_POSTSCRIPT_ENABLED");
|
||||||
|
@ -1060,10 +1068,8 @@ nsresult GlobalPrinters::InitializeGlobalPrinters ()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (pPrefs) {
|
if (NS_FAILED(pPrefs->GetBoolPref("print.postscript.enabled", &psPrintModuleEnabled))) {
|
||||||
if (NS_FAILED(pPrefs->GetBoolPref("print.postscript.enabled", &psPrintModuleEnabled))) {
|
psPrintModuleEnabled = PR_TRUE;
|
||||||
psPrintModuleEnabled = PR_TRUE;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1076,9 +1082,7 @@ nsresult GlobalPrinters::InitializeGlobalPrinters ()
|
||||||
printerList = PR_GetEnv("MOZILLA_POSTSCRIPT_PRINTER_LIST");
|
printerList = PR_GetEnv("MOZILLA_POSTSCRIPT_PRINTER_LIST");
|
||||||
|
|
||||||
if (!printerList) {
|
if (!printerList) {
|
||||||
if (pPrefs) {
|
(void) pPrefs->CopyCharPref("print.printer_list", &printerList);
|
||||||
(void) pPrefs->CopyCharPref("print.printer_list", &printerList);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (printerList) {
|
if (printerList) {
|
||||||
|
|
Загрузка…
Ссылка в новой задаче