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

Side by Side Diff: chrome/browser/extensions/api/file_system/request_file_system_dialog_view.cc

Issue 1070643002: Fix strings in dialogs for chrome.fileSystem.requestFileSystem. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
« no previous file with comments | « chrome/app/chromeos_strings.grdp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/extensions/api/file_system/request_file_system_dialog_v iew.h" 5 #include "chrome/browser/extensions/api/file_system/request_file_system_dialog_v iew.h"
6 6
7 #include <cstdlib> 7 #include <cstdlib>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/thread_task_runner_handle.h" 10 #include "base/thread_task_runner_handle.h"
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
47 47
48 int RequestFileSystemDialogView::GetDefaultDialogButton() const { 48 int RequestFileSystemDialogView::GetDefaultDialogButton() const {
49 return ui::DIALOG_BUTTON_CANCEL; 49 return ui::DIALOG_BUTTON_CANCEL;
50 } 50 }
51 51
52 base::string16 RequestFileSystemDialogView::GetDialogButtonLabel( 52 base::string16 RequestFileSystemDialogView::GetDialogButtonLabel(
53 ui::DialogButton button) const { 53 ui::DialogButton button) const {
54 switch (button) { 54 switch (button) {
55 case ui::DIALOG_BUTTON_OK: 55 case ui::DIALOG_BUTTON_OK:
56 return l10n_util::GetStringUTF16( 56 return l10n_util::GetStringUTF16(
57 IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_YES_BUTTON); 57 IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_ALLOW_BUTTON);
58 case ui::DIALOG_BUTTON_CANCEL: 58 case ui::DIALOG_BUTTON_CANCEL:
59 return l10n_util::GetStringUTF16( 59 return l10n_util::GetStringUTF16(
60 IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_NO_BUTTON); 60 IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_DENY_BUTTON);
61 default: 61 default:
62 NOTREACHED(); 62 NOTREACHED();
63 } 63 }
64 return base::string16(); 64 return base::string16();
65 } 65 }
66 66
67 ui::ModalType RequestFileSystemDialogView::GetModalType() const { 67 ui::ModalType RequestFileSystemDialogView::GetModalType() const {
68 return ui::MODAL_TYPE_CHILD; 68 return ui::MODAL_TYPE_CHILD;
69 } 69 }
70 70
(...skipping 27 matching lines...) Expand all
98 : callback_(callback), contents_view_(new views::View) { 98 : callback_(callback), contents_view_(new views::View) {
99 DCHECK(!callback_.is_null()); 99 DCHECK(!callback_.is_null());
100 100
101 // If the volume is gone, then cancel the dialog. 101 // If the volume is gone, then cancel the dialog.
102 if (!volume.get()) { 102 if (!volume.get()) {
103 base::ThreadTaskRunnerHandle::Get()->PostTask( 103 base::ThreadTaskRunnerHandle::Get()->PostTask(
104 FROM_HERE, base::Bind(callback, ui::DIALOG_BUTTON_CANCEL)); 104 FROM_HERE, base::Bind(callback, ui::DIALOG_BUTTON_CANCEL));
105 return; 105 return;
106 } 106 }
107 107
108 const base::string16 app_name = base::UTF8ToUTF16(extension.name());
108 // TODO(mtomasz): Improve the dialog contents, so it's easier for the user 109 // TODO(mtomasz): Improve the dialog contents, so it's easier for the user
109 // to understand what device is being requested. 110 // to understand what device is being requested.
110 const base::string16 display_name = 111 const base::string16 volume_name =
111 base::UTF8ToUTF16(!volume->volume_label().empty() ? volume->volume_label() 112 base::UTF8ToUTF16(!volume->volume_label().empty() ? volume->volume_label()
112 : volume->volume_id()); 113 : volume->volume_id());
114 std::vector<size_t> placeholder_offsets;
113 const base::string16 message = l10n_util::GetStringFUTF16( 115 const base::string16 message = l10n_util::GetStringFUTF16(
114 writable ? IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_WRITABLE_MESSAGE 116 writable ? IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_WRITABLE_MESSAGE
115 : IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_MESSAGE, 117 : IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_MESSAGE,
116 display_name); 118 app_name, volume_name, &placeholder_offsets);
117
118 // Find location of the placeholder by comparing message and message_host
119 // strings in order to apply the bold style on the display name.
120 const base::string16 message_host = l10n_util::GetStringFUTF16(
121 writable ? IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_WRITABLE_MESSAGE
122 : IDS_FILE_SYSTEM_REQUEST_FILE_SYSTEM_DIALOG_MESSAGE,
123 base::string16());
124
125 size_t placeholder_start = 0;
126 while (placeholder_start < message.size() &&
127 message[placeholder_start] == message_host[placeholder_start]) {
128 ++placeholder_start;
129 }
130 119
131 views::StyledLabel* const label = new views::StyledLabel(message, nullptr); 120 views::StyledLabel* const label = new views::StyledLabel(message, nullptr);
132 views::StyledLabel::RangeStyleInfo bold_style; 121 views::StyledLabel::RangeStyleInfo bold_style;
133 bold_style.font_style = gfx::Font::BOLD; 122 bold_style.font_style = gfx::Font::BOLD;
134 123
124 DCHECK_EQ(2u, placeholder_offsets.size());
125 label->AddStyleRange(gfx::Range(placeholder_offsets[0],
126 placeholder_offsets[0] + app_name.length()),
127 bold_style);
135 label->AddStyleRange( 128 label->AddStyleRange(
136 gfx::Range(placeholder_start, placeholder_start + display_name.size()), 129 gfx::Range(placeholder_offsets[1],
130 placeholder_offsets[1] + volume_name.length()),
137 bold_style); 131 bold_style);
138 132
139 views::BoxLayout* const layout = new views::BoxLayout( 133 views::BoxLayout* const layout = new views::BoxLayout(
140 views::BoxLayout::kHorizontal, views::kButtonHEdgeMarginNew, 134 views::BoxLayout::kHorizontal, views::kButtonHEdgeMarginNew,
141 views::kPanelVertMargin, 0); 135 views::kPanelVertMargin, 0);
142 contents_view_->SetLayoutManager(layout); 136 contents_view_->SetLayoutManager(layout);
143 137
144 label->SizeToFit(kDialogMaxWidth - 2 * views::kButtonHEdgeMarginNew); 138 label->SizeToFit(kDialogMaxWidth - 2 * views::kButtonHEdgeMarginNew);
145 contents_view_->AddChildView(label); 139 contents_view_->AddChildView(label);
146 } 140 }
OLDNEW
« no previous file with comments | « chrome/app/chromeos_strings.grdp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698