Moved SimplifyDocumentTitle from printing/backend
TBR=noamsml Review URL: https://codereview.chromium.org/59903019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@234127 0039d316-1c4b-4281-b951-d872f2087c98
This commit is contained in:
chrome
printing
@ -17,10 +17,10 @@
|
||||
#include "content/public/browser/browser_thread.h"
|
||||
#include "content/public/browser/notification_service.h"
|
||||
#include "grit/generated_resources.h"
|
||||
#include "printing/backend/print_backend.h"
|
||||
#include "printing/print_job_constants.h"
|
||||
#include "printing/printed_document.h"
|
||||
#include "printing/printed_page.h"
|
||||
#include "printing/printing_utils.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
|
||||
using content::BrowserThread;
|
||||
@ -215,9 +215,9 @@ void PrintJobWorker::StartPrinting(PrintedDocument* new_document) {
|
||||
}
|
||||
|
||||
string16 document_name =
|
||||
printing::PrintBackend::SimplifyDocumentTitle(document_->name());
|
||||
printing::SimplifyDocumentTitle(document_->name());
|
||||
if (document_name.empty()) {
|
||||
document_name = printing::PrintBackend::SimplifyDocumentTitle(
|
||||
document_name = printing::SimplifyDocumentTitle(
|
||||
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
|
||||
}
|
||||
PrintingContext::Result result =
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "printing/emf_win.h"
|
||||
#include "printing/page_range.h"
|
||||
#include "printing/pdf_render_settings.h"
|
||||
#include "printing/printing_utils.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
#include "ui/gfx/rect.h"
|
||||
|
||||
@ -431,8 +432,7 @@ class PrintSystemWin : public PrintSystem {
|
||||
DOCINFO di = {0};
|
||||
di.cbSize = sizeof(DOCINFO);
|
||||
string16 doc_name = UTF8ToUTF16(job_title);
|
||||
DCHECK(printing::PrintBackend::SimplifyDocumentTitle(doc_name) ==
|
||||
doc_name);
|
||||
DCHECK(printing::SimplifyDocumentTitle(doc_name) == doc_name);
|
||||
di.lpszDocName = doc_name.c_str();
|
||||
job_id_ = StartDoc(dc, &di);
|
||||
if (job_id_ <= 0)
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include "net/base/mime_util.h"
|
||||
#include "net/http/http_response_headers.h"
|
||||
#include "net/http/http_status_code.h"
|
||||
#include "printing/backend/print_backend.h"
|
||||
#include "printing/printing_utils.h"
|
||||
#include "ui/base/l10n/l10n_util.h"
|
||||
#include "url/gurl.h"
|
||||
|
||||
@ -767,10 +767,9 @@ void PrinterJobHandler::DoPrint(const JobDetails& job_details,
|
||||
if (!job_spooler_.get())
|
||||
return;
|
||||
string16 document_name =
|
||||
printing::PrintBackend::SimplifyDocumentTitle(
|
||||
UTF8ToUTF16(job_details.job_title_));
|
||||
printing::SimplifyDocumentTitle(UTF8ToUTF16(job_details.job_title_));
|
||||
if (document_name.empty()) {
|
||||
document_name = printing::PrintBackend::SimplifyDocumentTitle(
|
||||
document_name = printing::SimplifyDocumentTitle(
|
||||
l10n_util::GetStringUTF16(IDS_DEFAULT_PRINT_DOCUMENT_TITLE));
|
||||
}
|
||||
UMA_HISTOGRAM_ENUMERATION("CloudPrint.JobHandlerEvent",
|
||||
|
@ -4,13 +4,6 @@
|
||||
|
||||
#include "printing/backend/print_backend.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "third_party/icu/source/common/unicode/uchar.h"
|
||||
#include "ui/gfx/text_elider.h"
|
||||
|
||||
const int kMaxDocumentTitleLength = 50;
|
||||
|
||||
namespace printing {
|
||||
|
||||
PrinterBasicInfo::PrinterBasicInfo()
|
||||
@ -33,15 +26,4 @@ PrinterCapsAndDefaults::~PrinterCapsAndDefaults() {}
|
||||
|
||||
PrintBackend::~PrintBackend() {}
|
||||
|
||||
base::string16 PrintBackend::SimplifyDocumentTitle(
|
||||
const base::string16& title) {
|
||||
base::string16 no_controls(title);
|
||||
no_controls.erase(
|
||||
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
|
||||
no_controls.end());
|
||||
base::string16 result;
|
||||
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace printing
|
||||
|
@ -10,7 +10,6 @@
|
||||
#include <vector>
|
||||
|
||||
#include "base/memory/ref_counted.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "printing/print_job_constants.h"
|
||||
#include "printing/printing_export.h"
|
||||
|
||||
@ -98,9 +97,6 @@ class PRINTING_EXPORT PrintBackend
|
||||
// Returns true if printer_name points to a valid printer.
|
||||
virtual bool IsValidPrinter(const std::string& printer_name) = 0;
|
||||
|
||||
// Simplify title to resolve issue with some drivers.
|
||||
static base::string16 SimplifyDocumentTitle(const base::string16& title);
|
||||
|
||||
// Allocate a print backend. If |print_backend_settings| is NULL, default
|
||||
// settings will be used.
|
||||
// Return NULL if no print backend available.
|
||||
|
@ -38,15 +38,15 @@
|
||||
'emf_win.cc',
|
||||
'emf_win.h',
|
||||
'image.cc',
|
||||
'image.h',
|
||||
'image_android.cc',
|
||||
'image_linux.cc',
|
||||
'image_mac.cc',
|
||||
'image_win.cc',
|
||||
'image.h',
|
||||
'metafile.h',
|
||||
'metafile_impl.h',
|
||||
'metafile_skia_wrapper.h',
|
||||
'metafile_skia_wrapper.cc',
|
||||
'metafile_skia_wrapper.h',
|
||||
'page_number.cc',
|
||||
'page_number.h',
|
||||
'page_range.cc',
|
||||
@ -57,21 +57,11 @@
|
||||
'page_size_margins.h',
|
||||
'pdf_metafile_cg_mac.cc',
|
||||
'pdf_metafile_cg_mac.h',
|
||||
'pdf_metafile_skia.h',
|
||||
'pdf_metafile_skia.cc',
|
||||
'pdf_metafile_skia.h',
|
||||
'print_destination_interface.h',
|
||||
'print_destination_none.cc',
|
||||
'print_destination_win.cc',
|
||||
'printed_document_gtk.cc',
|
||||
'printed_document.cc',
|
||||
'printed_document.h',
|
||||
'printed_document_mac.cc',
|
||||
'printed_document_win.cc',
|
||||
'printed_page.cc',
|
||||
'printed_page.h',
|
||||
'printed_pages_source.h',
|
||||
'printing_context.cc',
|
||||
'printing_context.h',
|
||||
'print_dialog_gtk_interface.h',
|
||||
'print_job_constants.cc',
|
||||
'print_job_constants.h',
|
||||
@ -85,6 +75,18 @@
|
||||
'print_settings_initializer_mac.h',
|
||||
'print_settings_initializer_win.cc',
|
||||
'print_settings_initializer_win.h',
|
||||
'printed_document.cc',
|
||||
'printed_document.h',
|
||||
'printed_document_gtk.cc',
|
||||
'printed_document_mac.cc',
|
||||
'printed_document_win.cc',
|
||||
'printed_page.cc',
|
||||
'printed_page.h',
|
||||
'printed_pages_source.h',
|
||||
'printing_context.cc',
|
||||
'printing_context.h',
|
||||
'printing_utils.cc',
|
||||
'printing_utils.h',
|
||||
'units.cc',
|
||||
'units.h',
|
||||
],
|
||||
@ -244,15 +246,15 @@
|
||||
'../ui/ui.gyp:ui',
|
||||
],
|
||||
'sources': [
|
||||
'backend/print_backend_unittest.cc',
|
||||
'emf_win_unittest.cc',
|
||||
'printing_test.h',
|
||||
'page_number_unittest.cc',
|
||||
'page_range_unittest.cc',
|
||||
'page_setup_unittest.cc',
|
||||
'pdf_metafile_cg_mac_unittest.cc',
|
||||
'printed_page_unittest.cc',
|
||||
'printing_context_win_unittest.cc',
|
||||
'printing_test.h',
|
||||
'printing_utils_unittest.cc',
|
||||
'units_unittest.cc',
|
||||
],
|
||||
'conditions': [
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include "printing/print_job_constants.h"
|
||||
#include "printing/print_settings_initializer_win.h"
|
||||
#include "printing/printed_document.h"
|
||||
#include "printing/printing_utils.h"
|
||||
#include "printing/units.h"
|
||||
#include "skia/ext/platform_device.h"
|
||||
#include "win8/util/win8_util.h"
|
||||
@ -431,7 +432,7 @@ PrintingContext::Result PrintingContextWin::NewDocument(
|
||||
if (SP_ERROR == SetAbortProc(context_, &AbortProc))
|
||||
return OnError();
|
||||
|
||||
DCHECK(PrintBackend::SimplifyDocumentTitle(document_name) == document_name);
|
||||
DCHECK(SimplifyDocumentTitle(document_name) == document_name);
|
||||
DOCINFO di = { sizeof(DOCINFO) };
|
||||
const std::wstring& document_name_wide = UTF16ToWide(document_name);
|
||||
di.lpszDocName = document_name_wide.c_str();
|
||||
|
28
printing/printing_utils.cc
Normal file
28
printing/printing_utils.cc
Normal file
@ -0,0 +1,28 @@
|
||||
// Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "printing/printing_utils.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
#include "third_party/icu/source/common/unicode/uchar.h"
|
||||
#include "ui/gfx/text_elider.h"
|
||||
|
||||
namespace {
|
||||
const int kMaxDocumentTitleLength = 50;
|
||||
}
|
||||
|
||||
namespace printing {
|
||||
|
||||
base::string16 SimplifyDocumentTitle(const base::string16& title) {
|
||||
base::string16 no_controls(title);
|
||||
no_controls.erase(
|
||||
std::remove_if(no_controls.begin(), no_controls.end(), &u_iscntrl),
|
||||
no_controls.end());
|
||||
base::string16 result;
|
||||
gfx::ElideString(no_controls, kMaxDocumentTitleLength, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
} // namespace printing
|
19
printing/printing_utils.h
Normal file
19
printing/printing_utils.h
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef PRINTING_PRINTING_UTILS_H_
|
||||
#define PRINTING_PRINTING_UTILS_H_
|
||||
|
||||
#include "base/strings/string16.h"
|
||||
#include "printing/printing_export.h"
|
||||
|
||||
namespace printing {
|
||||
|
||||
// Simplify title to resolve issue with some drivers.
|
||||
PRINTING_EXPORT base::string16 SimplifyDocumentTitle(
|
||||
const base::string16& title);
|
||||
|
||||
} // namespace printing
|
||||
|
||||
#endif // PRINTING_PRINTING_UTILS_H_
|
@ -1,18 +1,18 @@
|
||||
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
// Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
#include "printing/backend/print_backend.h"
|
||||
#include "printing/printing_utils.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
|
||||
namespace printing {
|
||||
|
||||
std::string Simplify(const char* title) {
|
||||
return UTF16ToUTF8(PrintBackend::SimplifyDocumentTitle(ASCIIToUTF16(title)));
|
||||
return UTF16ToUTF8(SimplifyDocumentTitle(ASCIIToUTF16(title)));
|
||||
}
|
||||
|
||||
TEST(PrintBackendTest, SimplifyDocumentTitle) {
|
||||
TEST(PrintingUtilsTest, SimplifyDocumentTitle) {
|
||||
EXPECT_STREQ("", Simplify("").c_str());
|
||||
EXPECT_STREQ("Long string. Long string...ng string. Long string.",
|
||||
Simplify("Long string. Long string. Long string. Long string. "
|
Reference in New Issue
Block a user