| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h" | 5 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_view_controller.h" |
| 6 | 6 |
| 7 #include <memory> | 7 #include <memory> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #import "base/ios/weak_nsobject.h" | 10 #import "base/ios/weak_nsobject.h" |
| 11 #include "base/logging.h" | 11 #include "base/logging.h" |
| 12 #include "base/mac/objc_property_releaser.h" | 12 #include "base/mac/objc_release_properties.h" |
| 13 #include "base/mac/scoped_nsobject.h" | 13 #include "base/mac/scoped_nsobject.h" |
| 14 #include "base/strings/sys_string_conversions.h" | 14 #include "base/strings/sys_string_conversions.h" |
| 15 #include "components/bookmarks/browser/bookmark_model.h" | 15 #include "components/bookmarks/browser/bookmark_model.h" |
| 16 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.
h" | 16 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_editor_view_controller.
h" |
| 17 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h" | 17 #import "ios/chrome/browser/ui/bookmarks/bookmark_folder_table_view_cell.h" |
| 18 #import "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" | 18 #import "ios/chrome/browser/ui/bookmarks/bookmark_model_bridge_observer.h" |
| 19 #import "ios/chrome/browser/ui/bookmarks/bookmark_navigation_controller.h" | 19 #import "ios/chrome/browser/ui/bookmarks/bookmark_navigation_controller.h" |
| 20 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" | 20 #import "ios/chrome/browser/ui/bookmarks/bookmark_utils_ios.h" |
| 21 #import "ios/chrome/browser/ui/icons/chrome_icon.h" | 21 #import "ios/chrome/browser/ui/icons/chrome_icon.h" |
| 22 #import "ios/chrome/browser/ui/material_components/utils.h" | 22 #import "ios/chrome/browser/ui/material_components/utils.h" |
| (...skipping 25 matching lines...) Expand all Loading... |
| 48 | 48 |
| 49 @interface BookmarkFolderViewController ()< | 49 @interface BookmarkFolderViewController ()< |
| 50 BookmarkFolderEditorViewControllerDelegate, | 50 BookmarkFolderEditorViewControllerDelegate, |
| 51 BookmarkModelBridgeObserver, | 51 BookmarkModelBridgeObserver, |
| 52 UITableViewDataSource, | 52 UITableViewDataSource, |
| 53 UITableViewDelegate> { | 53 UITableViewDelegate> { |
| 54 std::set<const BookmarkNode*> _editedNodes; | 54 std::set<const BookmarkNode*> _editedNodes; |
| 55 std::vector<const BookmarkNode*> _folders; | 55 std::vector<const BookmarkNode*> _folders; |
| 56 std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; | 56 std::unique_ptr<bookmarks::BookmarkModelBridge> _modelBridge; |
| 57 base::scoped_nsobject<MDCAppBar> _appBar; | 57 base::scoped_nsobject<MDCAppBar> _appBar; |
| 58 base::mac::ObjCPropertyReleaser | |
| 59 _propertyReleaser_BookmarkFolderViewController; | |
| 60 } | 58 } |
| 61 | 59 |
| 62 // Should the controller setup Cancel and Done buttons instead of a back button. | 60 // Should the controller setup Cancel and Done buttons instead of a back button. |
| 63 @property(nonatomic, assign) BOOL allowsCancel; | 61 @property(nonatomic, assign) BOOL allowsCancel; |
| 64 | 62 |
| 65 // Should the controller setup a new-folder button. | 63 // Should the controller setup a new-folder button. |
| 66 @property(nonatomic, assign) BOOL allowsNewFolders; | 64 @property(nonatomic, assign) BOOL allowsNewFolders; |
| 67 | 65 |
| 68 // Reference to the main bookmark model. | 66 // Reference to the main bookmark model. |
| 69 @property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; | 67 @property(nonatomic, assign) bookmarks::BookmarkModel* bookmarkModel; |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 allowsNewFolders:(BOOL)allowsNewFolders | 117 allowsNewFolders:(BOOL)allowsNewFolders |
| 120 editedNodes: | 118 editedNodes: |
| 121 (const std::set<const BookmarkNode*>&)nodes | 119 (const std::set<const BookmarkNode*>&)nodes |
| 122 allowsCancel:(BOOL)allowsCancel | 120 allowsCancel:(BOOL)allowsCancel |
| 123 selectedFolder:(const BookmarkNode*)selectedFolder { | 121 selectedFolder:(const BookmarkNode*)selectedFolder { |
| 124 DCHECK(bookmarkModel); | 122 DCHECK(bookmarkModel); |
| 125 DCHECK(bookmarkModel->loaded()); | 123 DCHECK(bookmarkModel->loaded()); |
| 126 DCHECK(selectedFolder == NULL || selectedFolder->is_folder()); | 124 DCHECK(selectedFolder == NULL || selectedFolder->is_folder()); |
| 127 self = [super initWithNibName:nil bundle:nil]; | 125 self = [super initWithNibName:nil bundle:nil]; |
| 128 if (self) { | 126 if (self) { |
| 129 _propertyReleaser_BookmarkFolderViewController.Init( | |
| 130 self, [BookmarkFolderViewController class]); | |
| 131 _allowsCancel = allowsCancel; | 127 _allowsCancel = allowsCancel; |
| 132 _allowsNewFolders = allowsNewFolders; | 128 _allowsNewFolders = allowsNewFolders; |
| 133 _bookmarkModel = bookmarkModel; | 129 _bookmarkModel = bookmarkModel; |
| 134 _editedNodes = nodes; | 130 _editedNodes = nodes; |
| 135 _selectedFolder = selectedFolder; | 131 _selectedFolder = selectedFolder; |
| 136 | 132 |
| 137 // Set up the bookmark model oberver. | 133 // Set up the bookmark model oberver. |
| 138 _modelBridge.reset( | 134 _modelBridge.reset( |
| 139 new bookmarks::BookmarkModelBridge(self, _bookmarkModel)); | 135 new bookmarks::BookmarkModelBridge(self, _bookmarkModel)); |
| 140 | 136 |
| 141 _appBar.reset([[MDCAppBar alloc] init]); | 137 _appBar.reset([[MDCAppBar alloc] init]); |
| 142 [self addChildViewController:[_appBar headerViewController]]; | 138 [self addChildViewController:[_appBar headerViewController]]; |
| 143 } | 139 } |
| 144 return self; | 140 return self; |
| 145 } | 141 } |
| 146 | 142 |
| 147 - (void)changeSelectedFolder:(const BookmarkNode*)selectedFolder { | 143 - (void)changeSelectedFolder:(const BookmarkNode*)selectedFolder { |
| 148 DCHECK(selectedFolder); | 144 DCHECK(selectedFolder); |
| 149 DCHECK(selectedFolder->is_folder()); | 145 DCHECK(selectedFolder->is_folder()); |
| 150 _selectedFolder = selectedFolder; | 146 _selectedFolder = selectedFolder; |
| 151 [self.tableView reloadData]; | 147 [self.tableView reloadData]; |
| 152 } | 148 } |
| 153 | 149 |
| 154 - (void)dealloc { | 150 - (void)dealloc { |
| 155 _tableView.dataSource = nil; | 151 _tableView.dataSource = nil; |
| 156 _tableView.delegate = nil; | 152 _tableView.delegate = nil; |
| 157 _folderAddController.delegate = nil; | 153 _folderAddController.delegate = nil; |
| 154 base::mac::ReleaseProperties(self); |
| 158 [super dealloc]; | 155 [super dealloc]; |
| 159 } | 156 } |
| 160 | 157 |
| 161 - (UIStatusBarStyle)preferredStatusBarStyle { | 158 - (UIStatusBarStyle)preferredStatusBarStyle { |
| 162 return UIStatusBarStyleDefault; | 159 return UIStatusBarStyleDefault; |
| 163 } | 160 } |
| 164 | 161 |
| 165 #pragma mark - View lifecycle | 162 #pragma mark - View lifecycle |
| 166 | 163 |
| 167 - (void)viewDidLoad { | 164 - (void)viewDidLoad { |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 [weakSelf retain]); | 543 [weakSelf retain]); |
| 547 // Early return if the controller has been deallocated. | 544 // Early return if the controller has been deallocated. |
| 548 if (!strongSelf) | 545 if (!strongSelf) |
| 549 return; | 546 return; |
| 550 strongSelf.get().view.userInteractionEnabled = YES; | 547 strongSelf.get().view.userInteractionEnabled = YES; |
| 551 [strongSelf done:nil]; | 548 [strongSelf done:nil]; |
| 552 }); | 549 }); |
| 553 } | 550 } |
| 554 | 551 |
| 555 @end | 552 @end |
| OLD | NEW |