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:
cbiesinger%web.de 2006-02-07 01:14:54 +00:00
Родитель 67c419f59c
Коммит a3393d8b9b
1 изменённых файлов: 14 добавлений и 10 удалений

Просмотреть файл

@ -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) {