| Index: chrome/browser/media_galleries/media_galleries_permission_controller.cc
|
| diff --git a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc b/chrome/browser/media_galleries/media_galleries_permission_controller.cc
|
| similarity index 72%
|
| copy from chrome/browser/media_galleries/media_galleries_dialog_controller.cc
|
| copy to chrome/browser/media_galleries/media_galleries_permission_controller.cc
|
| index 8ad59e86e47a4fc8431729789c557964e5cc576b..f57c23e95682199a153eaa578a37f2b4707bf300 100644
|
| --- a/chrome/browser/media_galleries/media_galleries_dialog_controller.cc
|
| +++ b/chrome/browser/media_galleries/media_galleries_permission_controller.cc
|
| @@ -2,7 +2,7 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/media_galleries/media_galleries_dialog_controller.h"
|
| +#include "chrome/browser/media_galleries/media_galleries_permission_controller.h"
|
|
|
| #include "base/base_paths.h"
|
| #include "base/path_service.h"
|
| @@ -35,13 +35,13 @@ using storage_monitor::StorageMonitor;
|
| namespace {
|
|
|
| // Comparator for sorting GalleryPermissionsVector -- sorts
|
| -// allowed galleries low, and then sorts by absolute path.
|
| +// selected galleries low, and then sorts by absolute path.
|
| bool GalleriesVectorComparator(
|
| - const MediaGalleriesDialogController::GalleryPermission& a,
|
| - const MediaGalleriesDialogController::GalleryPermission& b) {
|
| - if (a.allowed && !b.allowed)
|
| + const MediaGalleriesDialogController::Entry& a,
|
| + const MediaGalleriesDialogController::Entry& b) {
|
| + if (a.selected && !b.selected)
|
| return true;
|
| - if (!a.allowed && b.allowed)
|
| + if (!a.selected && b.selected)
|
| return false;
|
|
|
| return a.pref_info.AbsolutePath() < b.pref_info.AbsolutePath();
|
| @@ -49,7 +49,7 @@ bool GalleriesVectorComparator(
|
|
|
| } // namespace
|
|
|
| -MediaGalleriesDialogController::MediaGalleriesDialogController(
|
| +MediaGalleriesPermissionController::MediaGalleriesPermissionController(
|
| content::WebContents* web_contents,
|
| const Extension& extension,
|
| const base::Closure& on_finish)
|
| @@ -64,17 +64,17 @@ MediaGalleriesDialogController::MediaGalleriesDialogController(
|
| // is self-deleting, and so won't be deleted until it can be shown
|
| // and then closed.
|
| preferences_->EnsureInitialized(
|
| - base::Bind(&MediaGalleriesDialogController::OnPreferencesInitialized,
|
| + base::Bind(&MediaGalleriesPermissionController::OnPreferencesInitialized,
|
| base::Unretained(this)));
|
|
|
| // Unretained is safe because |this| owns |context_menu_|.
|
| context_menu_.reset(
|
| new MediaGalleryContextMenu(
|
| - base::Bind(&MediaGalleriesDialogController::DidForgetGallery,
|
| + base::Bind(&MediaGalleriesPermissionController::DidForgetEntry,
|
| base::Unretained(this))));
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnPreferencesInitialized() {
|
| +void MediaGalleriesPermissionController::OnPreferencesInitialized() {
|
| if (StorageMonitor::GetInstance())
|
| StorageMonitor::GetInstance()->AddObserver(this);
|
|
|
| @@ -87,7 +87,7 @@ void MediaGalleriesDialogController::OnPreferencesInitialized() {
|
| dialog_.reset(create_dialog_callback_.Run(this));
|
| }
|
|
|
| -MediaGalleriesDialogController::MediaGalleriesDialogController(
|
| +MediaGalleriesPermissionController::MediaGalleriesPermissionController(
|
| const extensions::Extension& extension,
|
| MediaGalleriesPreferences* preferences,
|
| const CreateDialogCallback& create_dialog_callback,
|
| @@ -100,7 +100,7 @@ MediaGalleriesDialogController::MediaGalleriesDialogController(
|
| OnPreferencesInitialized();
|
| }
|
|
|
| -MediaGalleriesDialogController::~MediaGalleriesDialogController() {
|
| +MediaGalleriesPermissionController::~MediaGalleriesPermissionController() {
|
| if (StorageMonitor::GetInstance())
|
| StorageMonitor::GetInstance()->RemoveObserver(this);
|
|
|
| @@ -112,12 +112,12 @@ MediaGalleriesDialogController::~MediaGalleriesDialogController() {
|
| select_folder_dialog_->ListenerDestroyed();
|
| }
|
|
|
| -base::string16 MediaGalleriesDialogController::GetHeader() const {
|
| +base::string16 MediaGalleriesPermissionController::GetHeader() const {
|
| return l10n_util::GetStringFUTF16(IDS_MEDIA_GALLERIES_DIALOG_HEADER,
|
| base::UTF8ToUTF16(extension_->name()));
|
| }
|
|
|
| -base::string16 MediaGalleriesDialogController::GetSubtext() const {
|
| +base::string16 MediaGalleriesPermissionController::GetSubtext() const {
|
| extensions::MediaGalleriesPermission::CheckParam copy_to_param(
|
| extensions::MediaGalleriesPermission::kCopyToPermission);
|
| extensions::MediaGalleriesPermission::CheckParam delete_param(
|
| @@ -140,29 +140,43 @@ base::string16 MediaGalleriesDialogController::GetSubtext() const {
|
| return l10n_util::GetStringFUTF16(id, base::UTF8ToUTF16(extension_->name()));
|
| }
|
|
|
| -base::string16 MediaGalleriesDialogController::GetUnattachedLocationsHeader()
|
| - const {
|
| - return l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_UNATTACHED_LOCATIONS);
|
| -}
|
| -
|
| -bool MediaGalleriesDialogController::IsAcceptAllowed() const {
|
| +bool MediaGalleriesPermissionController::IsAcceptAllowed() const {
|
| if (!toggled_galleries_.empty() || !forgotten_galleries_.empty())
|
| return true;
|
|
|
| for (GalleryPermissionsMap::const_iterator iter = new_galleries_.begin();
|
| iter != new_galleries_.end();
|
| ++iter) {
|
| - if (iter->second.allowed)
|
| + if (iter->second.selected)
|
| return true;
|
| }
|
|
|
| return false;
|
| }
|
|
|
| +bool MediaGalleriesPermissionController::ShouldShowFolderViewer(
|
| + const Entry& entry) const {
|
| + return false;
|
| +}
|
| +
|
| +std::vector<base::string16>
|
| +MediaGalleriesPermissionController::GetSectionHeaders() const {
|
| + std::vector<base::string16> result;
|
| + result.push_back(base::string16()); // First section has no header.
|
| + result.push_back(
|
| + l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_UNATTACHED_LOCATIONS));
|
| + return result;
|
| +}
|
| +
|
| // Note: sorts by display criterion: GalleriesVectorComparator.
|
| -MediaGalleriesDialogController::GalleryPermissionsVector
|
| -MediaGalleriesDialogController::FillPermissions(bool attached) const {
|
| - GalleryPermissionsVector result;
|
| +MediaGalleriesDialogController::Entries
|
| +MediaGalleriesPermissionController::GetSectionEntries(size_t index) const {
|
| + DCHECK_GT(2U, index); // This dialog only has two sections.
|
| +
|
| + // TODO(vandebo): Change this to be permitted/non-permitted instead of
|
| + // attached/non-attached.
|
| + bool attached = !index;
|
| + MediaGalleriesDialogController::Entries result;
|
| for (GalleryPermissionsMap::const_iterator iter = known_galleries_.begin();
|
| iter != known_galleries_.end(); ++iter) {
|
| if (!ContainsKey(forgotten_galleries_, iter->first) &&
|
| @@ -181,17 +195,13 @@ MediaGalleriesDialogController::FillPermissions(bool attached) const {
|
| return result;
|
| }
|
|
|
| -MediaGalleriesDialogController::GalleryPermissionsVector
|
| -MediaGalleriesDialogController::AttachedPermissions() const {
|
| - return FillPermissions(true);
|
| -}
|
| -
|
| -MediaGalleriesDialogController::GalleryPermissionsVector
|
| -MediaGalleriesDialogController::UnattachedPermissions() const {
|
| - return FillPermissions(false);
|
| +base::string16
|
| +MediaGalleriesPermissionController::GetAuxiliaryButtonText() const {
|
| + return l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_ADD_GALLERY);
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnAddFolderClicked() {
|
| +// This is the 'Add Folder' button.
|
| +void MediaGalleriesPermissionController::DidClickAuxiliaryButton() {
|
| base::FilePath default_path =
|
| extensions::file_system_api::GetLastChooseEntryDirectory(
|
| extensions::ExtensionPrefs::Get(GetProfile()), extension_->id());
|
| @@ -210,15 +220,15 @@ void MediaGalleriesDialogController::OnAddFolderClicked() {
|
| NULL);
|
| }
|
|
|
| -void MediaGalleriesDialogController::DidToggleGallery(
|
| - GalleryDialogId gallery_id, bool enabled) {
|
| +void MediaGalleriesPermissionController::DidToggleEntry(
|
| + GalleryDialogId gallery_id, bool selected) {
|
| // Check known galleries.
|
| GalleryPermissionsMap::iterator iter = known_galleries_.find(gallery_id);
|
| if (iter != known_galleries_.end()) {
|
| - if (iter->second.allowed == enabled)
|
| + if (iter->second.selected == selected)
|
| return;
|
|
|
| - iter->second.allowed = enabled;
|
| + iter->second.selected = selected;
|
| if (ContainsKey(toggled_galleries_, gallery_id))
|
| toggled_galleries_.erase(gallery_id);
|
| else
|
| @@ -228,14 +238,19 @@ void MediaGalleriesDialogController::DidToggleGallery(
|
|
|
| iter = new_galleries_.find(gallery_id);
|
| if (iter != new_galleries_.end())
|
| - iter->second.allowed = enabled;
|
| + iter->second.selected = selected;
|
|
|
| // Don't sort -- the dialog is open, and we don't want to adjust any
|
| // positions for future updates to the dialog contents until they are
|
| // redrawn.
|
| }
|
|
|
| -void MediaGalleriesDialogController::DidForgetGallery(
|
| +void MediaGalleriesPermissionController::DidClickOpenFolderViewer(
|
| + GalleryDialogId gallery_id) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +void MediaGalleriesPermissionController::DidForgetEntry(
|
| GalleryDialogId gallery_id) {
|
| media_galleries::UsageCount(media_galleries::DIALOG_FORGET_GALLERY);
|
| if (!new_galleries_.erase(gallery_id)) {
|
| @@ -245,7 +260,11 @@ void MediaGalleriesDialogController::DidForgetGallery(
|
| dialog_->UpdateGalleries();
|
| }
|
|
|
| -void MediaGalleriesDialogController::DialogFinished(bool accepted) {
|
| +base::string16 MediaGalleriesPermissionController::GetAcceptButtonText() const {
|
| + return l10n_util::GetStringUTF16(IDS_MEDIA_GALLERIES_DIALOG_CONFIRM);
|
| +}
|
| +
|
| +void MediaGalleriesPermissionController::DialogFinished(bool accepted) {
|
| // The dialog has finished, so there is no need to watch for more updates
|
| // from |preferences_|.
|
| // |preferences_| may be NULL in tests.
|
| @@ -260,13 +279,14 @@ void MediaGalleriesDialogController::DialogFinished(bool accepted) {
|
| delete this;
|
| }
|
|
|
| -content::WebContents* MediaGalleriesDialogController::web_contents() {
|
| +content::WebContents* MediaGalleriesPermissionController::WebContents() {
|
| return web_contents_;
|
| }
|
|
|
| -void MediaGalleriesDialogController::FileSelected(const base::FilePath& path,
|
| - int /*index*/,
|
| - void* /*params*/) {
|
| +void MediaGalleriesPermissionController::FileSelected(
|
| + const base::FilePath& path,
|
| + int /*index*/,
|
| + void* /*params*/) {
|
| extensions::file_system_api::SetLastChooseEntryDirectory(
|
| extensions::ExtensionPrefs::Get(GetProfile()),
|
| extension_->id(),
|
| @@ -283,7 +303,7 @@ void MediaGalleriesDialogController::FileSelected(const base::FilePath& path,
|
| GalleryDialogId gallery_id = GetDialogId(gallery.pref_id);
|
| GalleryPermissionsMap::iterator iter = known_galleries_.find(gallery_id);
|
| DCHECK(iter != known_galleries_.end());
|
| - iter->second.allowed = true;
|
| + iter->second.selected = true;
|
| forgotten_galleries_.erase(gallery_id);
|
| dialog_->UpdateGalleries();
|
| return;
|
| @@ -294,30 +314,30 @@ void MediaGalleriesDialogController::FileSelected(const base::FilePath& path,
|
| iter != new_galleries_.end(); ++iter) {
|
| if (iter->second.pref_info.path == gallery.path &&
|
| iter->second.pref_info.device_id == gallery.device_id) {
|
| - iter->second.allowed = true;
|
| + iter->second.selected = true;
|
| dialog_->UpdateGalleries();
|
| return;
|
| }
|
| }
|
|
|
| // Lastly, if not found, add a new gallery to |new_galleries_|.
|
| - // Note that it will have prefId = kInvalidMediaGalleryPrefId.
|
| - GalleryDialogId gallery_id = GetDialogId(gallery.pref_id);
|
| - new_galleries_[gallery_id] = GalleryPermission(gallery_id, gallery, true);
|
| + DCHECK_EQ(kInvalidMediaGalleryPrefId, gallery.pref_id);
|
| + gallery.pref_id = GetDialogId(kInvalidMediaGalleryPrefId);
|
| + new_galleries_[gallery.pref_id] = Entry(gallery, true);
|
| dialog_->UpdateGalleries();
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnRemovableStorageAttached(
|
| +void MediaGalleriesPermissionController::OnRemovableStorageAttached(
|
| const StorageInfo& info) {
|
| UpdateGalleriesOnDeviceEvent(info.device_id());
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnRemovableStorageDetached(
|
| +void MediaGalleriesPermissionController::OnRemovableStorageDetached(
|
| const StorageInfo& info) {
|
| UpdateGalleriesOnDeviceEvent(info.device_id());
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnPermissionAdded(
|
| +void MediaGalleriesPermissionController::OnPermissionAdded(
|
| MediaGalleriesPreferences* /* prefs */,
|
| const std::string& extension_id,
|
| MediaGalleryPrefId /* pref_id */) {
|
| @@ -326,7 +346,7 @@ void MediaGalleriesDialogController::OnPermissionAdded(
|
| UpdateGalleriesOnPreferencesEvent();
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnPermissionRemoved(
|
| +void MediaGalleriesPermissionController::OnPermissionRemoved(
|
| MediaGalleriesPreferences* /* prefs */,
|
| const std::string& extension_id,
|
| MediaGalleryPrefId /* pref_id */) {
|
| @@ -335,19 +355,19 @@ void MediaGalleriesDialogController::OnPermissionRemoved(
|
| UpdateGalleriesOnPreferencesEvent();
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnGalleryAdded(
|
| +void MediaGalleriesPermissionController::OnGalleryAdded(
|
| MediaGalleriesPreferences* /* prefs */,
|
| MediaGalleryPrefId /* pref_id */) {
|
| UpdateGalleriesOnPreferencesEvent();
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnGalleryRemoved(
|
| +void MediaGalleriesPermissionController::OnGalleryRemoved(
|
| MediaGalleriesPreferences* /* prefs */,
|
| MediaGalleryPrefId /* pref_id */) {
|
| UpdateGalleriesOnPreferencesEvent();
|
| }
|
|
|
| -void MediaGalleriesDialogController::OnGalleryInfoUpdated(
|
| +void MediaGalleriesPermissionController::OnGalleryInfoUpdated(
|
| MediaGalleriesPreferences* prefs,
|
| MediaGalleryPrefId pref_id) {
|
| DCHECK(preferences_);
|
| @@ -361,7 +381,7 @@ void MediaGalleriesDialogController::OnGalleryInfoUpdated(
|
| UpdateGalleriesOnDeviceEvent(gallery_info.device_id);
|
| }
|
|
|
| -void MediaGalleriesDialogController::InitializePermissions() {
|
| +void MediaGalleriesPermissionController::InitializePermissions() {
|
| known_galleries_.clear();
|
| DCHECK(preferences_);
|
| const MediaGalleriesPrefInfoMap& galleries = preferences_->known_galleries();
|
| @@ -373,8 +393,8 @@ void MediaGalleriesDialogController::InitializePermissions() {
|
| continue;
|
|
|
| GalleryDialogId gallery_id = GetDialogId(gallery.pref_id);
|
| - known_galleries_[gallery_id] =
|
| - GalleryPermission(gallery_id, gallery, false);
|
| + known_galleries_[gallery_id] = Entry(gallery, false);
|
| + known_galleries_[gallery_id].pref_info.pref_id = gallery_id;
|
| }
|
|
|
| MediaGalleryPrefIdSet permitted =
|
| @@ -386,23 +406,23 @@ void MediaGalleriesDialogController::InitializePermissions() {
|
| if (ContainsKey(toggled_galleries_, gallery_id))
|
| continue;
|
| DCHECK(ContainsKey(known_galleries_, gallery_id));
|
| - known_galleries_[gallery_id].allowed = true;
|
| + known_galleries_[gallery_id].selected = true;
|
| }
|
| }
|
|
|
| -void MediaGalleriesDialogController::SavePermissions() {
|
| +void MediaGalleriesPermissionController::SavePermissions() {
|
| DCHECK(preferences_);
|
| media_galleries::UsageCount(media_galleries::SAVE_DIALOG);
|
| for (GalleryPermissionsMap::const_iterator iter = known_galleries_.begin();
|
| iter != known_galleries_.end(); ++iter) {
|
| - MediaGalleryPrefId pref_id = iter->second.pref_info.pref_id;
|
| + MediaGalleryPrefId pref_id = GetPrefId(iter->first);
|
| if (ContainsKey(forgotten_galleries_, iter->first)) {
|
| preferences_->ForgetGalleryById(pref_id);
|
| } else {
|
| bool changed = preferences_->SetGalleryPermissionForExtension(
|
| - *extension_, pref_id, iter->second.allowed);
|
| + *extension_, pref_id, iter->second.selected);
|
| if (changed) {
|
| - if (iter->second.allowed) {
|
| + if (iter->second.selected) {
|
| media_galleries::UsageCount(
|
| media_galleries::DIALOG_PERMISSION_ADDED);
|
| } else {
|
| @@ -417,7 +437,7 @@ void MediaGalleriesDialogController::SavePermissions() {
|
| iter != new_galleries_.end(); ++iter) {
|
| media_galleries::UsageCount(media_galleries::DIALOG_GALLERY_ADDED);
|
| // If the user added a gallery then unchecked it, forget about it.
|
| - if (!iter->second.allowed)
|
| + if (!iter->second.selected)
|
| continue;
|
|
|
| const MediaGalleryPrefInfo& gallery = iter->second.pref_info;
|
| @@ -429,7 +449,7 @@ void MediaGalleriesDialogController::SavePermissions() {
|
| }
|
| }
|
|
|
| -void MediaGalleriesDialogController::UpdateGalleriesOnPreferencesEvent() {
|
| +void MediaGalleriesPermissionController::UpdateGalleriesOnPreferencesEvent() {
|
| // Merge in the permissions from |preferences_|. Afterwards,
|
| // |known_galleries_| may contain galleries that no longer belong there,
|
| // but the code below will put |known_galleries_| back in a consistent state.
|
| @@ -441,7 +461,7 @@ void MediaGalleriesDialogController::UpdateGalleriesOnPreferencesEvent() {
|
| for (GalleryPermissionsMap::iterator it = known_galleries_.begin();
|
| it != known_galleries_.end();
|
| ++it) {
|
| - GalleryPermission& gallery = it->second;
|
| + Entry& gallery = it->second;
|
| for (GalleryPermissionsMap::iterator new_it = new_galleries_.begin();
|
| new_it != new_galleries_.end();
|
| ++new_it) {
|
| @@ -449,7 +469,7 @@ void MediaGalleriesDialogController::UpdateGalleriesOnPreferencesEvent() {
|
| new_it->second.pref_info.device_id == gallery.pref_info.device_id) {
|
| // Found duplicate entry. Get the existing permission from it and then
|
| // remove it.
|
| - gallery.allowed = new_it->second.allowed;
|
| + gallery.selected = new_it->second.selected;
|
| new_galleries_to_remove.insert(new_it->first);
|
| break;
|
| }
|
| @@ -465,47 +485,63 @@ void MediaGalleriesDialogController::UpdateGalleriesOnPreferencesEvent() {
|
| dialog_->UpdateGalleries();
|
| }
|
|
|
| -void MediaGalleriesDialogController::UpdateGalleriesOnDeviceEvent(
|
| +void MediaGalleriesPermissionController::UpdateGalleriesOnDeviceEvent(
|
| const std::string& device_id) {
|
| dialog_->UpdateGalleries();
|
| }
|
|
|
| -ui::MenuModel* MediaGalleriesDialogController::GetContextMenu(
|
| +ui::MenuModel* MediaGalleriesPermissionController::GetContextMenu(
|
| GalleryDialogId gallery_id) {
|
| context_menu_->set_pref_id(gallery_id);
|
| return context_menu_.get();
|
| }
|
|
|
| -GalleryDialogId MediaGalleriesDialogController::GetDialogId(
|
| +GalleryDialogId MediaGalleriesPermissionController::GetDialogId(
|
| MediaGalleryPrefId pref_id) {
|
| return id_map_.GetDialogId(pref_id);
|
| }
|
|
|
| -Profile* MediaGalleriesDialogController::GetProfile() {
|
| +MediaGalleryPrefId MediaGalleriesPermissionController::GetPrefId(
|
| + GalleryDialogId id) {
|
| + return id_map_.GetPrefId(id);
|
| +}
|
| +
|
| +Profile* MediaGalleriesPermissionController::GetProfile() {
|
| return Profile::FromBrowserContext(web_contents_->GetBrowserContext());
|
| }
|
|
|
| -MediaGalleriesDialogController::DialogIdMap::DialogIdMap()
|
| +MediaGalleriesPermissionController::DialogIdMap::DialogIdMap()
|
| : next_dialog_id_(1) {
|
| + // Dialog id of 0 is invalid, so fill the slot.
|
| + forward_mapping_.push_back(kInvalidMediaGalleryPrefId);
|
| }
|
|
|
| -MediaGalleriesDialogController::DialogIdMap::~DialogIdMap() {
|
| +MediaGalleriesPermissionController::DialogIdMap::~DialogIdMap() {
|
| }
|
|
|
| GalleryDialogId
|
| -MediaGalleriesDialogController::DialogIdMap::GetDialogId(
|
| +MediaGalleriesPermissionController::DialogIdMap::GetDialogId(
|
| MediaGalleryPrefId pref_id) {
|
| std::map<GalleryDialogId, MediaGalleryPrefId>::const_iterator it =
|
| - mapping_.find(pref_id);
|
| - if (it != mapping_.end())
|
| + back_map_.find(pref_id);
|
| + if (it != back_map_.end())
|
| return it->second;
|
|
|
| GalleryDialogId result = next_dialog_id_++;
|
| + DCHECK_EQ(result, forward_mapping_.size());
|
| + forward_mapping_.push_back(pref_id);
|
| if (pref_id != kInvalidMediaGalleryPrefId)
|
| - mapping_[pref_id] = result;
|
| + back_map_[pref_id] = result;
|
| return result;
|
| }
|
|
|
| +MediaGalleryPrefId
|
| +MediaGalleriesPermissionController::DialogIdMap::GetPrefId(
|
| + GalleryDialogId id) {
|
| + DCHECK_LT(id, next_dialog_id_);
|
| + return forward_mapping_[id];
|
| +}
|
| +
|
| // MediaGalleries dialog -------------------------------------------------------
|
|
|
| MediaGalleriesDialog::~MediaGalleriesDialog() {}
|
|
|