diff options
author | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-11 16:49:38 +0000 |
---|---|---|
committer | kmadhusu@chromium.org <kmadhusu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-11 16:49:38 +0000 |
commit | 7cf127e24d03711073a98105d9ad9f0329ddb8f4 (patch) | |
tree | 8d43f63772dee0cab1e01ff6c87fc524f9cc300b /chrome/browser/printing | |
parent | 68ecadd8e4594220f98cdbbbeedcdd5a4211d216 (diff) | |
download | chromium_src-7cf127e24d03711073a98105d9ad9f0329ddb8f4.zip chromium_src-7cf127e24d03711073a98105d9ad9f0329ddb8f4.tar.gz chromium_src-7cf127e24d03711073a98105d9ad9f0329ddb8f4.tar.bz2 |
Print preview page selection should not require a rerendering of draft pages.
On page selection, regenerate the complete document with the selection, but preserve the existing draft pages and simply display a subset of them.
1. Added a new param |clear all preview data| to |PrintHostMsg_DidGetPreviewPageCount|.
2. Removed |requested_preview_page_index| from |PrintMsg_ContinuePreview|
BUG=84383
TEST=print preview works after code changes.
Review URL: http://codereview.chromium.org/7544018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96406 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
-rw-r--r-- | chrome/browser/printing/print_preview_message_handler.cc | 28 | ||||
-rw-r--r-- | chrome/browser/printing/print_preview_message_handler.h | 5 |
2 files changed, 16 insertions, 17 deletions
diff --git a/chrome/browser/printing/print_preview_message_handler.cc b/chrome/browser/printing/print_preview_message_handler.cc index 11be054..e853e81 100644 --- a/chrome/browser/printing/print_preview_message_handler.cc +++ b/chrome/browser/printing/print_preview_message_handler.cc @@ -82,9 +82,11 @@ void PrintPreviewMessageHandler::OnRequestPrintPreview() { PrintPreviewTabController::PrintPreview(tab_contents()); } -void PrintPreviewMessageHandler::OnDidGetPreviewPageCount(int document_cookie, - int page_count, - bool is_modifiable) { +void PrintPreviewMessageHandler::OnDidGetPreviewPageCount( + int document_cookie, + int page_count, + bool is_modifiable, + bool clear_preview_data) { if (page_count <= 0) return; @@ -94,6 +96,10 @@ void PrintPreviewMessageHandler::OnDidGetPreviewPageCount(int document_cookie, PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(print_preview_tab->web_ui()); + + if (!is_modifiable || clear_preview_data) + print_preview_ui->ClearAllPreviewData(); + print_preview_ui->OnDidGetPreviewPageCount( document_cookie, page_count, is_modifiable); } @@ -119,12 +125,7 @@ void PrintPreviewMessageHandler::OnDidPreviewPage( return; } - int requested_preview_page_index = INVALID_PAGE_INDEX; int page_number = params.page_number; - - if (page_number == FIRST_PAGE_INDEX) - print_preview_ui->ClearAllPreviewData(); - if (page_number >= FIRST_PAGE_INDEX && params.data_size) { RefCountedBytes* data_bytes = GetDataFromHandle(params.metafile_data_handle, params.data_size); @@ -132,15 +133,12 @@ void PrintPreviewMessageHandler::OnDidPreviewPage( print_preview_ui->SetPrintPreviewDataForIndex(page_number, data_bytes); print_preview_ui->OnDidPreviewPage(page_number); - // TODO(kmadhusu): Query |PrintPreviewUI| and update - // |requested_preview_page_index| accordingly. } - rvh->Send(new PrintMsg_ContinuePreview(rvh->routing_id(), - requested_preview_page_index)); + rvh->Send(new PrintMsg_ContinuePreview(rvh->routing_id())); } -void PrintPreviewMessageHandler::OnPagesReadyForPreview( +void PrintPreviewMessageHandler::OnMetafileReadyForPrinting( const PrintHostMsg_DidPreviewDocument_Params& params) { StopWorker(params.document_cookie); @@ -218,8 +216,8 @@ bool PrintPreviewMessageHandler::OnMessageReceived( OnDidGetPreviewPageCount) IPC_MESSAGE_HANDLER(PrintHostMsg_DidPreviewPage, OnDidPreviewPage) - IPC_MESSAGE_HANDLER(PrintHostMsg_PagesReadyForPreview, - OnPagesReadyForPreview) + IPC_MESSAGE_HANDLER(PrintHostMsg_MetafileReadyForPrinting, + OnMetafileReadyForPrinting) IPC_MESSAGE_HANDLER(PrintHostMsg_PrintPreviewFailed, OnPrintPreviewFailed) IPC_MESSAGE_UNHANDLED(handled = false) diff --git a/chrome/browser/printing/print_preview_message_handler.h b/chrome/browser/printing/print_preview_message_handler.h index ff56b01..cd056e7 100644 --- a/chrome/browser/printing/print_preview_message_handler.h +++ b/chrome/browser/printing/print_preview_message_handler.h @@ -33,10 +33,11 @@ class PrintPreviewMessageHandler : public TabContentsObserver { void OnRequestPrintPreview(); void OnDidGetPreviewPageCount(int document_cookie, int page_count, - bool is_modifiable); + bool is_modifiable, + bool clear_preview_data); // |page_number| is 0-based. void OnDidPreviewPage(const PrintHostMsg_DidPreviewPage_Params& params); - void OnPagesReadyForPreview( + void OnMetafileReadyForPrinting( const PrintHostMsg_DidPreviewDocument_Params& params); void OnPrintPreviewFailed(int document_cookie); |