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

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: nit 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
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | printing/backend/print_backend_cups.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..c0db5272edfa1575e71a59516b955e43cceaf0f0 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_ == NULL) {
+ 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_ = NULL;
PrintPreviewHandler::PrintPreviewHandler()
: print_backend_(printing::PrintBackend::CreateInstance(NULL)),
@@ -440,6 +444,12 @@ void PrintPreviewHandler::HandlePrint(const ListValue* args) {
if (!settings.get())
return;
+ // Initializing last_used_printer_ if it is not already initialized.
+ if (!last_used_printer_)
+ last_used_printer_ = new std::string();
+ // Storing last used printer.
+ settings->GetString("deviceName", last_used_printer_);
+
bool print_to_pdf = false;
settings->GetBoolean(printing::kSettingPrintToPDF, &print_to_pdf);
@@ -559,11 +569,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() {
« no previous file with comments | « chrome/browser/ui/webui/print_preview_handler.h ('k') | printing/backend/print_backend_cups.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698