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

Unified Diff: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc

Issue 2259723003: ExtensionInstallDialogView: Make scroll view and icon not overlap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
diff --git a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
index 91b82db2bb205f9ae42d1c5d866542998e9477b2..817119c6015cf2f31367c21d2b85a0df6abab529 100644
--- a/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
+++ b/chrome/browser/ui/views/extensions/extension_install_dialog_view.cc
@@ -200,11 +200,15 @@ void ExtensionInstallDialogView::InitView() {
// +---------------------+
//
// No webstore data (all other types)
- // +--------------+------+
- // | title | icon |
- // +--------------| |
- // | scroll_view | |
- // +--------------+------+
+ // w/ permissions no permissions
+ // +--------------+------+ +--------------+------+
+ // | title | icon | | title | icon |
+ // +--------------+------+ +--------------+------+
+ // | separator | | scroll_view (empty) |
+ // +---------------------+ +---------------------+
+ // | scroll_view |
+ // +---------------------+
+
// The scroll_view contains permissions (if there are any) and retained
// files/devices (if there are any; post-install-permissions prompt only).
int left_column_width =
@@ -248,43 +252,34 @@ void ExtensionInstallDialogView::InitView() {
store_link->SetFontList(small_font_list);
store_link->set_listener(this);
layout->AddView(store_link);
+ }
- if (prompt_->ShouldShowPermissions()) {
- layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
- layout->StartRow(0, column_set_id);
- layout->AddView(new views::Separator(views::Separator::HORIZONTAL),
- 3,
- 1,
- views::GridLayout::FILL,
- views::GridLayout::FILL);
- }
+ if (prompt_->ShouldShowPermissions()) {
+ layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
+ layout->StartRow(0, column_set_id);
+ layout->AddView(new views::Separator(views::Separator::HORIZONTAL), 3, 1,
+ views::GridLayout::FILL, views::GridLayout::FILL);
}
- int content_width = left_column_width + views::kPanelHorizMargin + kIconSize;
+ const int content_width =
+ left_column_width + views::kPanelHorizMargin + kIconSize;
// Create the scrollable view which will contain the permissions and retained
- // files/devices.
+ // files/devices. It will span the full content width.
CustomScrollableView* scrollable = new CustomScrollableView();
views::GridLayout* scroll_layout = new views::GridLayout(scrollable);
scrollable->SetLayoutManager(scroll_layout);
views::ColumnSet* scrollable_column_set =
scroll_layout->AddColumnSet(column_set_id);
- // If we have webstore data, there's a separator below it, so we can span the
- // whole content width. Otherwise just use the width of the left column so
- // that we don't overlap the icon.
- int scrollable_width = prompt_->has_webstore_data() ? content_width
- : left_column_width;
- scrollable_column_set->AddColumn(views::GridLayout::LEADING,
- views::GridLayout::LEADING,
- 0, // no resizing
- views::GridLayout::USE_PREF,
- scrollable_width,
- scrollable_width);
+
+ scrollable_column_set->AddColumn(
+ views::GridLayout::LEADING, views::GridLayout::LEADING,
+ 0, // no resizing
+ views::GridLayout::USE_PREF, content_width, content_width);
+
// Pad to the very right of the dialog, so the scrollbar will be on the edge.
- int padding_width =
- content_width + views::kButtonHEdgeMarginNew - scrollable_width;
- scrollable_column_set->AddPaddingColumn(0, padding_width);
+ scrollable_column_set->AddPaddingColumn(0, views::kButtonHEdgeMarginNew);
layout->StartRow(0, column_set_id);
scroll_view_ = new views::ScrollView();
@@ -298,16 +293,10 @@ void ExtensionInstallDialogView::InitView() {
ExtensionInstallPrompt::PermissionsType::ALL_PERMISSIONS) > 0;
if (has_permissions) {
AddPermissions(
- scroll_layout,
- rb,
- column_set_id,
- scrollable_width,
+ scroll_layout, rb, column_set_id, content_width,
ExtensionInstallPrompt::PermissionsType::REGULAR_PERMISSIONS);
AddPermissions(
- scroll_layout,
- rb,
- column_set_id,
- scrollable_width,
+ scroll_layout, rb, column_set_id, content_width,
ExtensionInstallPrompt::PermissionsType::WITHHELD_PERMISSIONS);
} else {
scroll_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing);
@@ -316,7 +305,7 @@ void ExtensionInstallDialogView::InitView() {
l10n_util::GetStringUTF16(IDS_EXTENSION_NO_SPECIAL_PERMISSIONS));
permission_label->SetMultiLine(true);
permission_label->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- permission_label->SizeToFit(scrollable_width);
+ permission_label->SizeToFit(content_width);
scroll_layout->AddView(permission_label);
}
}
@@ -329,7 +318,7 @@ void ExtensionInstallDialogView::InitView() {
new views::Label(prompt_->GetRetainedFilesHeading());
retained_files_header->SetMultiLine(true);
retained_files_header->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- retained_files_header->SizeToFit(scrollable_width);
+ retained_files_header->SizeToFit(content_width);
scroll_layout->AddView(retained_files_header);
scroll_layout->StartRow(0, column_set_id);
@@ -338,7 +327,7 @@ void ExtensionInstallDialogView::InitView() {
details.push_back(prompt_->GetRetainedFile(i));
}
ExpandableContainerView* issue_advice_view =
- new ExpandableContainerView(details, scrollable_width, false);
+ new ExpandableContainerView(details, content_width, false);
scroll_layout->AddView(issue_advice_view);
}
@@ -350,7 +339,7 @@ void ExtensionInstallDialogView::InitView() {
new views::Label(prompt_->GetRetainedDevicesHeading());
retained_devices_header->SetMultiLine(true);
retained_devices_header->SetHorizontalAlignment(gfx::ALIGN_LEFT);
- retained_devices_header->SizeToFit(scrollable_width);
+ retained_devices_header->SizeToFit(content_width);
scroll_layout->AddView(retained_devices_header);
scroll_layout->StartRow(0, column_set_id);
@@ -359,7 +348,7 @@ void ExtensionInstallDialogView::InitView() {
details.push_back(prompt_->GetRetainedDeviceMessageString(i));
}
ExpandableContainerView* issue_advice_view =
- new ExpandableContainerView(details, scrollable_width, false);
+ new ExpandableContainerView(details, content_width, false);
scroll_layout->AddView(issue_advice_view);
}
@@ -461,7 +450,10 @@ views::GridLayout* ExtensionInstallDialogView::CreateLayout(
title->SetMultiLine(true);
title->SetHorizontalAlignment(gfx::ALIGN_LEFT);
title->SizeToFit(left_column_width);
- layout->AddView(title);
+
+ // Center align the title along the vertical axis.
+ layout->AddView(title, 1, 1, views::GridLayout::LEADING,
karandeepb 2016/08/19 02:30:02 This helps decrease the gap b/w the title and body
+ views::GridLayout::CENTER);
// Scale down to icon size, but allow smaller icons (don't scale up).
const gfx::ImageSkia* image = prompt_->icon().ToImageSkia();
@@ -472,15 +464,9 @@ views::GridLayout* ExtensionInstallDialogView::CreateLayout(
icon->SetImageSize(size);
icon->SetImage(*image);
- int icon_row_span = 1; // Always span the title.
- if (prompt_->has_webstore_data()) {
- // Also span the rating, user_count and store_link rows.
- icon_row_span += 3;
- // Note: Do not span the permissions here, there's a separator in between!
- } else {
- // Also span the scrollable container with permissions, retained files etc.
- icon_row_span += 1;
- }
+ // Span the title row. In case the webstore data is available, also span the
+ // rating, user_count and store_link rows.
+ const int icon_row_span = prompt_->has_webstore_data() ? 4 : 1;
layout->AddView(icon, 1, icon_row_span);
return layout;
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698