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

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

Issue 310383004: Make a controller interface for media galleries dialogs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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
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)));

Powered by Google App Engine
This is Rietveld 408576698