| Index: chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
|
| diff --git a/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc b/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
|
| index 0eb28901cba2c586dd7f52e4293c833957d44a95..20b38a45199152915488910ffa9b186a84b2cd92 100644
|
| --- a/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
|
| +++ b/chrome/browser/ui/views/extensions/media_galleries_dialog_views.cc
|
| @@ -16,6 +16,7 @@
|
| #include "ui/native_theme/native_theme.h"
|
| #include "ui/views/border.h"
|
| #include "ui/views/controls/button/checkbox.h"
|
| +#include "ui/views/controls/button/image_button.h"
|
| #include "ui/views/controls/button/label_button.h"
|
| #include "ui/views/controls/label.h"
|
| #include "ui/views/controls/menu/menu_runner.h"
|
| @@ -62,15 +63,12 @@ void ScrollableView::Layout() {
|
|
|
| } // namespace
|
|
|
| -typedef MediaGalleriesDialogController::GalleryPermissionsVector
|
| - GalleryPermissionsVector;
|
| -
|
| MediaGalleriesDialogViews::MediaGalleriesDialogViews(
|
| MediaGalleriesDialogController* controller)
|
| : controller_(controller),
|
| window_(NULL),
|
| contents_(new views::View()),
|
| - add_gallery_button_(NULL),
|
| + auxilliary_button_(NULL),
|
| confirm_available_(false),
|
| accepted_(false) {
|
| InitChildViews();
|
| @@ -100,6 +98,8 @@ MediaGalleriesDialogViews::~MediaGalleriesDialogViews() {
|
| void MediaGalleriesDialogViews::InitChildViews() {
|
| // Outer dialog layout.
|
| contents_->RemoveAllChildViews(true);
|
| + checkbox_map_.clear();
|
| +
|
| int dialog_content_width = views::Widget::GetLocalizedContentsWidth(
|
| IDS_MEDIA_GALLERIES_DIALOG_CONTENT_WIDTH_CHARS);
|
| views::GridLayout* layout = views::GridLayout::CreatePanel(contents_);
|
| @@ -136,43 +136,36 @@ void MediaGalleriesDialogViews::InitChildViews() {
|
| views::kRelatedControlVerticalSpacing,
|
| 0));
|
|
|
| - // Add attached galleries checkboxes.
|
| - checkbox_map_.clear();
|
| - GalleryPermissionsVector permissions = controller_->AttachedPermissions();
|
| - for (GalleryPermissionsVector::const_iterator iter = permissions.begin();
|
| - iter != permissions.end(); ++iter) {
|
| - int spacing = 0;
|
| - if (iter + 1 == permissions.end())
|
| - spacing = views::kRelatedControlSmallVerticalSpacing;
|
| - AddOrUpdateGallery(*iter, scroll_container, spacing);
|
| - }
|
| + std::vector<base::string16> section_headers =
|
| + controller_->GetSectionHeaders();
|
| + for (size_t i = 0; i < section_headers.size(); i++) {
|
| + MediaGalleriesDialogController::Entries entries =
|
| + controller_->GetSectionEntries(i);
|
| +
|
| + // Header and separator line.
|
| + if (!section_headers[i].empty() && !entries.empty()) {
|
| + views::Separator* separator = new views::Separator(
|
| + views::Separator::HORIZONTAL);
|
| + scroll_container->AddChildView(separator);
|
| +
|
| + views::Label* header = new views::Label(section_headers[i]);
|
| + header->SetMultiLine(true);
|
| + header->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| + header->SetBorder(views::Border::CreateEmptyBorder(
|
| + views::kRelatedControlVerticalSpacing,
|
| + views::kPanelHorizMargin,
|
| + views::kRelatedControlVerticalSpacing,
|
| + 0));
|
| + scroll_container->AddChildView(header);
|
| + }
|
|
|
| - GalleryPermissionsVector unattached_permissions =
|
| - controller_->UnattachedPermissions();
|
| -
|
| - if (!unattached_permissions.empty()) {
|
| - // Separator line.
|
| - views::Separator* separator = new views::Separator(
|
| - views::Separator::HORIZONTAL);
|
| - scroll_container->AddChildView(separator);
|
| -
|
| - // Unattached locations section.
|
| - views::Label* unattached_text = new views::Label(
|
| - controller_->GetUnattachedLocationsHeader());
|
| - unattached_text->SetMultiLine(true);
|
| - unattached_text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| - unattached_text->SetBorder(
|
| - views::Border::CreateEmptyBorder(views::kRelatedControlVerticalSpacing,
|
| - views::kPanelHorizMargin,
|
| - views::kRelatedControlVerticalSpacing,
|
| - 0));
|
| - scroll_container->AddChildView(unattached_text);
|
| -
|
| - // Add unattached galleries checkboxes.
|
| - for (GalleryPermissionsVector::const_iterator iter =
|
| - unattached_permissions.begin();
|
| - iter != unattached_permissions.end(); ++iter) {
|
| - AddOrUpdateGallery(*iter, scroll_container, 0);
|
| + // Checkboxes.
|
| + MediaGalleriesDialogController::Entries::const_iterator iter;
|
| + for (iter = entries.begin(); iter != entries.end(); ++iter) {
|
| + int spacing = 0;
|
| + if (iter + 1 == entries.end())
|
| + spacing = views::kRelatedControlSmallVerticalSpacing;
|
| + AddOrUpdateGallery(*iter, scroll_container, spacing);
|
| }
|
| }
|
|
|
| @@ -196,30 +189,33 @@ void MediaGalleriesDialogViews::UpdateGalleries() {
|
| }
|
|
|
| bool MediaGalleriesDialogViews::AddOrUpdateGallery(
|
| - const MediaGalleriesDialogController::GalleryPermission& gallery,
|
| + const MediaGalleriesDialogController::Entry& gallery,
|
| views::View* container,
|
| int trailing_vertical_space) {
|
| base::string16 label = gallery.pref_info.GetGalleryDisplayName();
|
| base::string16 tooltip_text = gallery.pref_info.GetGalleryTooltip();
|
| base::string16 details = gallery.pref_info.GetGalleryAdditionalDetails();
|
| + bool show_folder_viewer = controller_->ShowFolderViewer(gallery);
|
|
|
| - CheckboxMap::iterator iter = checkbox_map_.find(gallery.gallery_id);
|
| + CheckboxMap::iterator iter = checkbox_map_.find(gallery.pref_info.pref_id);
|
| if (iter != checkbox_map_.end()) {
|
| views::Checkbox* checkbox = iter->second->checkbox();
|
| - checkbox->SetChecked(gallery.allowed);
|
| + checkbox->SetChecked(gallery.selected);
|
| checkbox->SetText(label);
|
| checkbox->SetTooltipText(tooltip_text);
|
| iter->second->secondary_text()->SetText(details);
|
| iter->second->secondary_text()->SetVisible(details.length() > 0);
|
| + iter->second->folder_viewer_button()->SetVisible(show_folder_viewer);
|
| return false;
|
| }
|
|
|
| MediaGalleryCheckboxView* gallery_view =
|
| - new MediaGalleryCheckboxView(label, tooltip_text, details, false,
|
| - trailing_vertical_space, this, this);
|
| - gallery_view->checkbox()->SetChecked(gallery.allowed);
|
| + new MediaGalleryCheckboxView(label, tooltip_text, details,
|
| + show_folder_viewer, trailing_vertical_space,
|
| + this, this);
|
| + gallery_view->checkbox()->SetChecked(gallery.selected);
|
| container->AddChildView(gallery_view);
|
| - checkbox_map_[gallery.gallery_id] = gallery_view;
|
| + checkbox_map_[gallery.pref_info.pref_id] = gallery_view;
|
|
|
| return true;
|
| }
|
| @@ -246,9 +242,9 @@ views::View* MediaGalleriesDialogViews::GetContentsView() {
|
|
|
| base::string16 MediaGalleriesDialogViews::GetDialogButtonLabel(
|
| ui::DialogButton button) const {
|
| - return l10n_util::GetStringUTF16(button == ui::DIALOG_BUTTON_OK ?
|
| - IDS_MEDIA_GALLERIES_DIALOG_CONFIRM :
|
| - IDS_MEDIA_GALLERIES_DIALOG_CANCEL);
|
| + if (button == ui::DIALOG_BUTTON_OK)
|
| + return controller_->GetAcceptButtonText();
|
| + return l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_CANCEL);
|
| }
|
|
|
| bool MediaGalleriesDialogViews::IsDialogButtonEnabled(
|
| @@ -265,11 +261,13 @@ ui::ModalType MediaGalleriesDialogViews::GetModalType() const {
|
| }
|
|
|
| views::View* MediaGalleriesDialogViews::CreateExtraView() {
|
| - DCHECK(!add_gallery_button_);
|
| - add_gallery_button_ = new views::LabelButton(this,
|
| - l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY));
|
| - add_gallery_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| - return add_gallery_button_;
|
| + DCHECK(!auxilliary_button_);
|
| + base::string16 button_label = controller_->GetAuxilliaryButtonText();
|
| + if (!button_label.empty()) {
|
| + auxilliary_button_ = new views::LabelButton(this, button_label);
|
| + auxilliary_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| + }
|
| + return auxilliary_button_;
|
| }
|
|
|
| bool MediaGalleriesDialogViews::Cancel() {
|
| @@ -289,16 +287,20 @@ void MediaGalleriesDialogViews::ButtonPressed(views::Button* sender,
|
| if (ControllerHasWebContents())
|
| GetWidget()->client_view()->AsDialogClientView()->UpdateDialogButtons();
|
|
|
| - if (sender == add_gallery_button_) {
|
| - controller_->OnAddFolderClicked();
|
| + if (sender == auxilliary_button_) {
|
| + controller_->OnAuxilliaryButtonClicked();
|
| return;
|
| }
|
|
|
| for (CheckboxMap::const_iterator iter = checkbox_map_.begin();
|
| iter != checkbox_map_.end(); ++iter) {
|
| if (sender == iter->second->checkbox()) {
|
| - controller_->DidToggleGallery(iter->first,
|
| - iter->second->checkbox()->checked());
|
| + controller_->DidToggleEntry(iter->first,
|
| + iter->second->checkbox()->checked());
|
| + return;
|
| + }
|
| + if (sender == iter->second->folder_viewer_button()) {
|
| + controller_->DidClickOpenFolderViewer(iter->first);
|
| return;
|
| }
|
| }
|
| @@ -319,7 +321,7 @@ void MediaGalleriesDialogViews::ShowContextMenuForView(
|
|
|
| void MediaGalleriesDialogViews::ShowContextMenu(const gfx::Point& point,
|
| ui::MenuSourceType source_type,
|
| - GalleryDialogId id) {
|
| + MediaGalleryPrefId id) {
|
| context_menu_runner_.reset(new views::MenuRunner(
|
| controller_->GetContextMenu(id)));
|
|
|
|
|