Chromium Code Reviews| Index: chrome/browser/ui/webui/print_preview_handler.cc |
| diff --git a/chrome/browser/ui/webui/print_preview_handler.cc b/chrome/browser/ui/webui/print_preview_handler.cc |
| index 70b2b48f1db514d31e5a042a8150db22bdbbee74..438a08f4570fe9dc46377e5d20eee24fd2cd61ce 100644 |
| --- a/chrome/browser/ui/webui/print_preview_handler.cc |
| +++ b/chrome/browser/ui/webui/print_preview_handler.cc |
| @@ -168,9 +168,18 @@ class PrintSystemTaskProxy |
| void GetDefaultPrinter() { |
| VLOG(1) << "Get default printer start"; |
| - StringValue* default_printer = |
| - new StringValue(print_backend_->GetDefaultPrinterName()); |
| - VLOG(1) << "Get default printer finished, found: " << default_printer; |
| + StringValue* default_printer = NULL; |
| + if (PrintPreviewHandler::last_used_printer_.length() == 0) { |
| + default_printer = new StringValue( |
| + print_backend_->GetDefaultPrinterName()); |
| + } else { |
| + default_printer = new StringValue( |
| + PrintPreviewHandler::last_used_printer_); |
| + } |
| + std::string default_printer_string; |
| + default_printer->GetAsString(&default_printer_string); |
| + VLOG(1) << "Get default printer finished, found: " |
| + << default_printer_string; |
|
dpapad
2011/06/07 01:07:45
This is only for debugging purposes.
|
| BrowserThread::PostTask( |
| BrowserThread::UI, FROM_HERE, |
| @@ -188,7 +197,6 @@ class PrintSystemTaskProxy |
| void EnumeratePrinters() { |
| VLOG(1) << "Enumerate printers start"; |
| ListValue* printers = new ListValue; |
| - int default_printer_index = -1; |
| printing::PrinterList printer_list; |
| print_backend_->EnumeratePrinters(&printer_list); |
| @@ -214,8 +222,6 @@ class PrintSystemTaskProxy |
| printer_info->SetString(printing::kSettingPrinterName, printerName); |
| printer_info->SetString(printing::kSettingDeviceName, iter->printer_name); |
| printers->Append(printer_info); |
| - if (iter->is_default) |
| - default_printer_index = i; |
| } |
| VLOG(1) << "Enumerate printers finished, found " << i << " printers"; |
| @@ -223,16 +229,13 @@ class PrintSystemTaskProxy |
| BrowserThread::UI, FROM_HERE, |
| NewRunnableMethod(this, |
| &PrintSystemTaskProxy::SendPrinterList, |
| - printers, |
| - new FundamentalValue(default_printer_index))); |
| + printers)); |
| } |
| - void SendPrinterList(ListValue* printers, |
| - FundamentalValue* default_printer_index) { |
| + void SendPrinterList(ListValue* printers) { |
| if (handler_) |
| - handler_->SendPrinterList(*printers, *default_printer_index); |
| + handler_->SendPrinterList(*printers); |
| delete printers; |
| - delete default_printer_index; |
| } |
| void GetPrinterCapabilities(const std::string& printer_name) { |
| @@ -338,6 +341,7 @@ class PrintToPdfTask : public Task { |
| // static |
| FilePath* PrintPreviewHandler::last_saved_path_ = NULL; |
| +std::string PrintPreviewHandler::last_used_printer_; |
| PrintPreviewHandler::PrintPreviewHandler() |
| : print_backend_(printing::PrintBackend::CreateInstance(NULL)), |
| @@ -440,6 +444,10 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) { |
| if (!settings.get()) |
| return; |
| + LOG(INFO) << "before " << last_used_printer_; |
| + settings->GetString("deviceName", &last_used_printer_); |
| + LOG(INFO) << "after " << last_used_printer_; |
| + |
| bool print_to_pdf = false; |
| settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf); |
| @@ -559,11 +567,8 @@ void PrintPreviewHandler::SendDefaultPrinter( |
| web_ui_->CallJavascriptFunction("setDefaultPrinter", default_printer); |
| } |
| -void PrintPreviewHandler::SendPrinterList( |
| - const ListValue& printers, |
| - const FundamentalValue& default_printer_index) { |
| - web_ui_->CallJavascriptFunction("setPrinters", printers, |
| - default_printer_index); |
| +void PrintPreviewHandler::SendPrinterList(const ListValue& printers) { |
| + web_ui_->CallJavascriptFunction("setPrinters", printers); |
| } |
| TabContents* PrintPreviewHandler::GetInitiatorTab() { |