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

Side by Side Diff: chrome/browser/printing/print_preview_dialog_controller.cc

Issue 1125343004: Add a "Simplify Page" option to the print preview dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Simplify version of the HiddenPrintPreview and solved issues pointed out by the last review Created 5 years, 5 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/printing/print_preview_dialog_controller.h" 5 #include "chrome/browser/printing/print_preview_dialog_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 if (!preview_dialog) 175 if (!preview_dialog)
176 return CreatePrintPreviewDialog(initiator); 176 return CreatePrintPreviewDialog(initiator);
177 177
178 // Show the initiator holding the existing preview dialog. 178 // Show the initiator holding the existing preview dialog.
179 initiator->GetDelegate()->ActivateContents(initiator); 179 initiator->GetDelegate()->ActivateContents(initiator);
180 return preview_dialog; 180 return preview_dialog;
181 } 181 }
182 182
183 WebContents* PrintPreviewDialogController::GetPrintPreviewForContents( 183 WebContents* PrintPreviewDialogController::GetPrintPreviewForContents(
184 WebContents* contents) const { 184 WebContents* contents) const {
185
186 // If this WebContents relies on another for its preview dialog, we
187 // need to act as if we are looking for the proxied content's dialog.
188 PrintPreviewDialogMap::const_iterator proxied =
189 proxied_dialog_map_.find(contents);
190 if (proxied != proxied_dialog_map_.end()) {
191 contents = const_cast<WebContents*>(proxied->second);
192 }
193
185 // |preview_dialog_map_| is keyed by the preview dialog, so if find() 194 // |preview_dialog_map_| is keyed by the preview dialog, so if find()
186 // succeeds, then |contents| is the preview dialog. 195 // succeeds, then |contents| is the preview dialog.
187 PrintPreviewDialogMap::const_iterator it = preview_dialog_map_.find(contents); 196 PrintPreviewDialogMap::const_iterator it = preview_dialog_map_.find(contents);
188 if (it != preview_dialog_map_.end()) 197 if (it != preview_dialog_map_.end())
189 return contents; 198 return contents;
190 199
191 for (it = preview_dialog_map_.begin(); 200 for (it = preview_dialog_map_.begin();
192 it != preview_dialog_map_.end(); 201 it != preview_dialog_map_.end();
193 ++it) { 202 ++it) {
194 // If |contents| is an initiator. 203 // If |contents| is an initiator.
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 // Add an entry to the map. 376 // Add an entry to the map.
368 preview_dialog_map_[preview_dialog] = initiator; 377 preview_dialog_map_[preview_dialog] = initiator;
369 waiting_for_new_preview_page_ = true; 378 waiting_for_new_preview_page_ = true;
370 379
371 AddObservers(initiator); 380 AddObservers(initiator);
372 AddObservers(preview_dialog); 381 AddObservers(preview_dialog);
373 382
374 return preview_dialog; 383 return preview_dialog;
375 } 384 }
376 385
386 void PrintPreviewDialogController::AddProxyDialogForWebContents(
387 WebContents* source, WebContents* target) {
388 proxied_dialog_map_[source] = target;
389 }
390
391 void PrintPreviewDialogController::RemoveProxyDialogForWebContents(
392 WebContents* source) {
393 proxied_dialog_map_.erase(source);
394 }
395
377 void PrintPreviewDialogController::SaveInitiatorTitle( 396 void PrintPreviewDialogController::SaveInitiatorTitle(
378 WebContents* preview_dialog) { 397 WebContents* preview_dialog) {
379 WebContents* initiator = GetInitiator(preview_dialog); 398 WebContents* initiator = GetInitiator(preview_dialog);
380 if (initiator && preview_dialog->GetWebUI()) { 399 if (initiator && preview_dialog->GetWebUI()) {
381 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>( 400 PrintPreviewUI* print_preview_ui = static_cast<PrintPreviewUI*>(
382 preview_dialog->GetWebUI()->GetController()); 401 preview_dialog->GetWebUI()->GetController());
383 print_preview_ui->SetInitiatorTitle( 402 print_preview_ui->SetInitiatorTitle(
384 PrintViewManager::FromWebContents(initiator)->RenderSourceName()); 403 PrintViewManager::FromWebContents(initiator)->RenderSourceName());
385 } 404 }
386 } 405 }
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 static_cast<PrintPreviewUI*>(web_ui->GetController()); 475 static_cast<PrintPreviewUI*>(web_ui->GetController());
457 if (print_preview_ui) 476 if (print_preview_ui)
458 print_preview_ui->OnPrintPreviewDialogDestroyed(); 477 print_preview_ui->OnPrintPreviewDialogDestroyed();
459 } 478 }
460 479
461 preview_dialog_map_.erase(preview_dialog); 480 preview_dialog_map_.erase(preview_dialog);
462 RemoveObservers(preview_dialog); 481 RemoveObservers(preview_dialog);
463 } 482 }
464 483
465 } // namespace printing 484 } // namespace printing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698