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

Side by Side Diff: printing/printed_document.cc

Issue 6826027: Connect the right metafiles for print preview on Linux and Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix compile problems Created 9 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « printing/printed_document.h ('k') | printing/printed_document_cairo.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "printing/printed_document.h" 5 #include "printing/printed_document.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 const PageRange& range = settings.ranges[i]; 57 const PageRange& range = settings.ranges[i];
58 mutable_.expected_page_count_ += range.to - range.from + 1; 58 mutable_.expected_page_count_ += range.to - range.from + 1;
59 } 59 }
60 } 60 }
61 } 61 }
62 62
63 PrintedDocument::~PrintedDocument() { 63 PrintedDocument::~PrintedDocument() {
64 } 64 }
65 65
66 void PrintedDocument::SetPage(int page_number, 66 void PrintedDocument::SetPage(int page_number,
67 NativeMetafile* metafile, 67 Metafile* metafile,
68 double shrink, 68 double shrink,
69 const gfx::Size& paper_size, 69 const gfx::Size& paper_size,
70 const gfx::Rect& page_rect, 70 const gfx::Rect& page_rect,
71 bool has_visible_overlays) { 71 bool has_visible_overlays) {
72 // Notice the page_number + 1, the reason is that this is the value that will 72 // Notice the page_number + 1, the reason is that this is the value that will
73 // be shown. Users dislike 0-based counting. 73 // be shown. Users dislike 0-based counting.
74 scoped_refptr<PrintedPage> page( 74 scoped_refptr<PrintedPage> page(
75 new PrintedPage(page_number + 1, 75 new PrintedPage(page_number + 1,
76 metafile, 76 metafile,
77 paper_size, 77 paper_size,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 118
119 for (; page != PageNumber::npos(); ++page) { 119 for (; page != PageNumber::npos(); ++page) {
120 #if defined(OS_WIN) || defined(OS_MACOSX) 120 #if defined(OS_WIN) || defined(OS_MACOSX)
121 const bool metafile_must_be_valid = true; 121 const bool metafile_must_be_valid = true;
122 #elif defined(OS_POSIX) 122 #elif defined(OS_POSIX)
123 const bool metafile_must_be_valid = (page.ToInt() == mutable_.first_page); 123 const bool metafile_must_be_valid = (page.ToInt() == mutable_.first_page);
124 #endif 124 #endif
125 PrintedPages::const_iterator itr = mutable_.pages_.find(page.ToInt()); 125 PrintedPages::const_iterator itr = mutable_.pages_.find(page.ToInt());
126 if (itr == mutable_.pages_.end() || !itr->second.get()) 126 if (itr == mutable_.pages_.end() || !itr->second.get())
127 return false; 127 return false;
128 if (metafile_must_be_valid && !itr->second->native_metafile()) 128 if (metafile_must_be_valid && !itr->second->metafile())
129 return false; 129 return false;
130 } 130 }
131 return true; 131 return true;
132 } 132 }
133 133
134 void PrintedDocument::DisconnectSource() { 134 void PrintedDocument::DisconnectSource() {
135 base::AutoLock lock(lock_); 135 base::AutoLock lock(lock_);
136 mutable_.source_ = NULL; 136 mutable_.source_ = NULL;
137 } 137 }
138 138
139 uint32 PrintedDocument::MemoryUsage() const { 139 uint32 PrintedDocument::MemoryUsage() const {
140 std::vector< scoped_refptr<PrintedPage> > pages_copy; 140 std::vector< scoped_refptr<PrintedPage> > pages_copy;
141 { 141 {
142 base::AutoLock lock(lock_); 142 base::AutoLock lock(lock_);
143 pages_copy.reserve(mutable_.pages_.size()); 143 pages_copy.reserve(mutable_.pages_.size());
144 PrintedPages::const_iterator end = mutable_.pages_.end(); 144 PrintedPages::const_iterator end = mutable_.pages_.end();
145 for (PrintedPages::const_iterator itr = mutable_.pages_.begin(); 145 for (PrintedPages::const_iterator itr = mutable_.pages_.begin();
146 itr != end; ++itr) { 146 itr != end; ++itr) {
147 if (itr->second.get()) { 147 if (itr->second.get()) {
148 pages_copy.push_back(itr->second); 148 pages_copy.push_back(itr->second);
149 } 149 }
150 } 150 }
151 } 151 }
152 uint32 total = 0; 152 uint32 total = 0;
153 for (size_t i = 0; i < pages_copy.size(); ++i) { 153 for (size_t i = 0; i < pages_copy.size(); ++i) {
154 total += pages_copy[i]->native_metafile()->GetDataSize(); 154 total += pages_copy[i]->metafile()->GetDataSize();
155 } 155 }
156 return total; 156 return total;
157 } 157 }
158 158
159 void PrintedDocument::set_page_count(int max_page) { 159 void PrintedDocument::set_page_count(int max_page) {
160 base::AutoLock lock(lock_); 160 base::AutoLock lock(lock_);
161 DCHECK_EQ(0, mutable_.page_count_); 161 DCHECK_EQ(0, mutable_.page_count_);
162 mutable_.page_count_ = max_page; 162 mutable_.page_count_ = max_page;
163 if (immutable_.settings_.ranges.empty()) { 163 if (immutable_.settings_.ranges.empty()) {
164 mutable_.expected_page_count_ = max_page; 164 mutable_.expected_page_count_ = max_page;
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 string16 filename; 256 string16 filename;
257 filename += date(); 257 filename += date();
258 filename += ASCIIToUTF16("_"); 258 filename += ASCIIToUTF16("_");
259 filename += time(); 259 filename += time();
260 filename += ASCIIToUTF16("_"); 260 filename += ASCIIToUTF16("_");
261 filename += name(); 261 filename += name();
262 filename += ASCIIToUTF16("_"); 262 filename += ASCIIToUTF16("_");
263 filename += ASCIIToUTF16(StringPrintf("%02d", page.page_number())); 263 filename += ASCIIToUTF16(StringPrintf("%02d", page.page_number()));
264 #if defined(OS_WIN) 264 #if defined(OS_WIN)
265 filename += ASCIIToUTF16("_.emf"); 265 filename += ASCIIToUTF16("_.emf");
266 page.native_metafile()->SaveTo( 266 page.metafile()->SaveTo(
267 g_debug_dump_info.Get().debug_dump_path.Append(filename)); 267 g_debug_dump_info.Get().debug_dump_path.Append(filename));
268 #else // OS_WIN 268 #else // OS_WIN
269 filename += ASCIIToUTF16("_.pdf"); 269 filename += ASCIIToUTF16("_.pdf");
270 page.native_metafile()->SaveTo( 270 page.metafile()->SaveTo(
271 g_debug_dump_info.Get().debug_dump_path.Append(UTF16ToUTF8(filename))); 271 g_debug_dump_info.Get().debug_dump_path.Append(UTF16ToUTF8(filename)));
272 #endif // OS_WIN 272 #endif // OS_WIN
273 } 273 }
274 274
275 void PrintedDocument::set_debug_dump_path(const FilePath& debug_dump_path) { 275 void PrintedDocument::set_debug_dump_path(const FilePath& debug_dump_path) {
276 g_debug_dump_info.Get().enabled = !debug_dump_path.empty(); 276 g_debug_dump_info.Get().enabled = !debug_dump_path.empty();
277 g_debug_dump_info.Get().debug_dump_path = debug_dump_path; 277 g_debug_dump_info.Get().debug_dump_path = debug_dump_path;
278 } 278 }
279 279
280 const FilePath& PrintedDocument::debug_dump_path() { 280 const FilePath& PrintedDocument::debug_dump_path() {
(...skipping 21 matching lines...) Expand all
302 name_(source->RenderSourceName()), 302 name_(source->RenderSourceName()),
303 url_(source->RenderSourceUrl()), 303 url_(source->RenderSourceUrl()),
304 cookie_(cookie) { 304 cookie_(cookie) {
305 SetDocumentDate(); 305 SetDocumentDate();
306 } 306 }
307 307
308 PrintedDocument::Immutable::~Immutable() { 308 PrintedDocument::Immutable::~Immutable() {
309 } 309 }
310 310
311 } // namespace printing 311 } // namespace printing
OLDNEW
« no previous file with comments | « printing/printed_document.h ('k') | printing/printed_document_cairo.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698