Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3180)

Unified Diff: chrome/browser/ui/webui/print_preview_handler.cc

Issue 7042034: Print Preview: Remembering last used printer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removing log statements Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..e46e948040b124a2c87829443598bb9e98fb8e42 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;
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,9 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) {
if (!settings.get())
return;
+ // Storing last used printer.
+ settings->GetString("deviceName", &last_used_printer_);
+
bool print_to_pdf = false;
settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf);
@@ -559,11 +566,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() {

Powered by Google App Engine
This is Rietveld 408576698