OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/webui/print_preview_handler.h" | 5 #include "chrome/browser/ui/webui/print_preview_handler.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/i18n/file_util_icu.h" | 9 #include "base/i18n/file_util_icu.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
12 #include "base/threading/thread.h" | 12 #include "base/threading/thread.h" |
13 #include "base/threading/thread_restrictions.h" | 13 #include "base/threading/thread_restrictions.h" |
14 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
15 #include "base/values.h" | 15 #include "base/values.h" |
16 #include "chrome/browser/platform_util.h" | 16 #include "chrome/browser/platform_util.h" |
| 17 #include "chrome/browser/printing/printer_manager_dialog.h" |
17 #include "chrome/browser/printing/print_preview_tab_controller.h" | 18 #include "chrome/browser/printing/print_preview_tab_controller.h" |
18 #include "chrome/browser/ui/browser_list.h" | 19 #include "chrome/browser/ui/browser_list.h" |
19 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 20 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
20 #include "chrome/browser/ui/webui/print_preview_ui_html_source.h" | 21 #include "chrome/browser/ui/webui/print_preview_ui_html_source.h" |
21 #include "chrome/browser/ui/webui/print_preview_ui.h" | 22 #include "chrome/browser/ui/webui/print_preview_ui.h" |
22 #include "chrome/common/chrome_paths.h" | 23 #include "chrome/common/chrome_paths.h" |
23 #include "chrome/common/print_messages.h" | 24 #include "chrome/common/print_messages.h" |
24 #include "content/browser/browser_thread.h" | 25 #include "content/browser/browser_thread.h" |
25 #include "content/browser/renderer_host/render_view_host.h" | 26 #include "content/browser/renderer_host/render_view_host.h" |
26 #include "content/browser/tab_contents/tab_contents.h" | 27 #include "content/browser/tab_contents/tab_contents.h" |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 web_ui_->RegisterMessageCallback("getPrinters", | 228 web_ui_->RegisterMessageCallback("getPrinters", |
228 NewCallback(this, &PrintPreviewHandler::HandleGetPrinters)); | 229 NewCallback(this, &PrintPreviewHandler::HandleGetPrinters)); |
229 web_ui_->RegisterMessageCallback("getPreview", | 230 web_ui_->RegisterMessageCallback("getPreview", |
230 NewCallback(this, &PrintPreviewHandler::HandleGetPreview)); | 231 NewCallback(this, &PrintPreviewHandler::HandleGetPreview)); |
231 web_ui_->RegisterMessageCallback("print", | 232 web_ui_->RegisterMessageCallback("print", |
232 NewCallback(this, &PrintPreviewHandler::HandlePrint)); | 233 NewCallback(this, &PrintPreviewHandler::HandlePrint)); |
233 web_ui_->RegisterMessageCallback("getPrinterCapabilities", | 234 web_ui_->RegisterMessageCallback("getPrinterCapabilities", |
234 NewCallback(this, &PrintPreviewHandler::HandleGetPrinterCapabilities)); | 235 NewCallback(this, &PrintPreviewHandler::HandleGetPrinterCapabilities)); |
235 web_ui_->RegisterMessageCallback("showSystemDialog", | 236 web_ui_->RegisterMessageCallback("showSystemDialog", |
236 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); | 237 NewCallback(this, &PrintPreviewHandler::HandleShowSystemDialog)); |
| 238 web_ui_->RegisterMessageCallback("managePrinters", |
| 239 NewCallback(this, &PrintPreviewHandler::HandleManagePrinters)); |
237 } | 240 } |
238 | 241 |
239 TabContents* PrintPreviewHandler::preview_tab() { | 242 TabContents* PrintPreviewHandler::preview_tab() { |
240 return web_ui_->tab_contents(); | 243 return web_ui_->tab_contents(); |
241 } | 244 } |
242 | 245 |
243 void PrintPreviewHandler::HandleGetPrinters(const ListValue*) { | 246 void PrintPreviewHandler::HandleGetPrinters(const ListValue*) { |
244 scoped_refptr<PrintSystemTaskProxy> task = | 247 scoped_refptr<PrintSystemTaskProxy> task = |
245 new PrintSystemTaskProxy(AsWeakPtr(), print_backend_.get()); | 248 new PrintSystemTaskProxy(AsWeakPtr(), print_backend_.get()); |
246 BrowserThread::PostTask( | 249 BrowserThread::PostTask( |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 return; | 330 return; |
328 initiator_tab->Activate(); | 331 initiator_tab->Activate(); |
329 | 332 |
330 TabContentsWrapper* wrapper = | 333 TabContentsWrapper* wrapper = |
331 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); | 334 TabContentsWrapper::GetCurrentWrapperForContents(initiator_tab); |
332 wrapper->print_view_manager()->PrintNow(); | 335 wrapper->print_view_manager()->PrintNow(); |
333 | 336 |
334 ClosePrintPreviewTab(); | 337 ClosePrintPreviewTab(); |
335 } | 338 } |
336 | 339 |
| 340 void PrintPreviewHandler::HandleManagePrinters(const ListValue* args) { |
| 341 printing::PrinterManagerDialog::ShowPrinterManagerDialog(); |
| 342 } |
| 343 |
337 void PrintPreviewHandler::SendPrinterCapabilities( | 344 void PrintPreviewHandler::SendPrinterCapabilities( |
338 const DictionaryValue& settings_info) { | 345 const DictionaryValue& settings_info) { |
339 web_ui_->CallJavascriptFunction("updateWithPrinterCapabilities", | 346 web_ui_->CallJavascriptFunction("updateWithPrinterCapabilities", |
340 settings_info); | 347 settings_info); |
341 } | 348 } |
342 | 349 |
343 void PrintPreviewHandler::SendPrinterList( | 350 void PrintPreviewHandler::SendPrinterList( |
344 const ListValue& printers, | 351 const ListValue& printers, |
345 const FundamentalValue& default_printer_index) { | 352 const FundamentalValue& default_printer_index) { |
346 web_ui_->CallJavascriptFunction("setPrinters", printers, | 353 web_ui_->CallJavascriptFunction("setPrinters", printers, |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 metafile->InitFromData(data.first->memory(), data.second); | 410 metafile->InitFromData(data.first->memory(), data.second); |
404 | 411 |
405 // Updating last_saved_path_ to the newly selected folder. | 412 // Updating last_saved_path_ to the newly selected folder. |
406 *last_saved_path_ = path.DirName(); | 413 *last_saved_path_ = path.DirName(); |
407 | 414 |
408 PrintToPdfTask* task = new PrintToPdfTask(metafile, path); | 415 PrintToPdfTask* task = new PrintToPdfTask(metafile, path); |
409 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, task); | 416 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, task); |
410 | 417 |
411 ClosePrintPreviewTab(); | 418 ClosePrintPreviewTab(); |
412 } | 419 } |
OLD | NEW |