OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include <stack> | 5 #include <stack> |
6 | 6 |
7 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.h" | 7 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_editor_base_controller.h" |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 } | 116 } |
117 | 117 |
118 // Adapter to tell BookmarkEditorBaseController when bookmarks change. | 118 // Adapter to tell BookmarkEditorBaseController when bookmarks change. |
119 class BookmarkEditorBaseControllerBridge : public BookmarkModelObserver { | 119 class BookmarkEditorBaseControllerBridge : public BookmarkModelObserver { |
120 public: | 120 public: |
121 BookmarkEditorBaseControllerBridge(BookmarkEditorBaseController* controller) | 121 BookmarkEditorBaseControllerBridge(BookmarkEditorBaseController* controller) |
122 : controller_(controller), | 122 : controller_(controller), |
123 importing_(false) | 123 importing_(false) |
124 { } | 124 { } |
125 | 125 |
126 virtual void BookmarkModelLoaded(BookmarkModel* model, | 126 void BookmarkModelLoaded(BookmarkModel* model, bool ids_reassigned) override { |
127 bool ids_reassigned) override { | |
128 [controller_ modelChangedPreserveSelection:YES]; | 127 [controller_ modelChangedPreserveSelection:YES]; |
129 } | 128 } |
130 | 129 |
131 virtual void BookmarkNodeMoved(BookmarkModel* model, | 130 void BookmarkNodeMoved(BookmarkModel* model, |
132 const BookmarkNode* old_parent, | 131 const BookmarkNode* old_parent, |
133 int old_index, | 132 int old_index, |
134 const BookmarkNode* new_parent, | 133 const BookmarkNode* new_parent, |
135 int new_index) override { | 134 int new_index) override { |
136 if (!importing_ && new_parent->GetChild(new_index)->is_folder()) | 135 if (!importing_ && new_parent->GetChild(new_index)->is_folder()) |
137 [controller_ modelChangedPreserveSelection:YES]; | 136 [controller_ modelChangedPreserveSelection:YES]; |
138 } | 137 } |
139 | 138 |
140 virtual void BookmarkNodeAdded(BookmarkModel* model, | 139 void BookmarkNodeAdded(BookmarkModel* model, |
141 const BookmarkNode* parent, | 140 const BookmarkNode* parent, |
142 int index) override { | 141 int index) override { |
143 if (!importing_ && parent->GetChild(index)->is_folder()) | 142 if (!importing_ && parent->GetChild(index)->is_folder()) |
144 [controller_ modelChangedPreserveSelection:YES]; | 143 [controller_ modelChangedPreserveSelection:YES]; |
145 } | 144 } |
146 | 145 |
147 virtual void BookmarkNodeRemoved( | 146 void BookmarkNodeRemoved(BookmarkModel* model, |
148 BookmarkModel* model, | 147 const BookmarkNode* parent, |
149 const BookmarkNode* parent, | 148 int old_index, |
150 int old_index, | 149 const BookmarkNode* node, |
151 const BookmarkNode* node, | 150 const std::set<GURL>& removed_urls) override { |
152 const std::set<GURL>& removed_urls) override { | |
153 [controller_ nodeRemoved:node fromParent:parent]; | 151 [controller_ nodeRemoved:node fromParent:parent]; |
154 if (node->is_folder()) | 152 if (node->is_folder()) |
155 [controller_ modelChangedPreserveSelection:NO]; | 153 [controller_ modelChangedPreserveSelection:NO]; |
156 } | 154 } |
157 | 155 |
158 virtual void BookmarkAllUserNodesRemoved( | 156 void BookmarkAllUserNodesRemoved( |
159 BookmarkModel* model, | 157 BookmarkModel* model, |
160 const std::set<GURL>& removed_urls) override { | 158 const std::set<GURL>& removed_urls) override { |
161 [controller_ modelChangedPreserveSelection:NO]; | 159 [controller_ modelChangedPreserveSelection:NO]; |
162 } | 160 } |
163 | 161 |
164 virtual void BookmarkNodeChanged(BookmarkModel* model, | 162 void BookmarkNodeChanged(BookmarkModel* model, |
165 const BookmarkNode* node) override { | 163 const BookmarkNode* node) override { |
166 if (!importing_ && node->is_folder()) | 164 if (!importing_ && node->is_folder()) |
167 [controller_ modelChangedPreserveSelection:YES]; | 165 [controller_ modelChangedPreserveSelection:YES]; |
168 } | 166 } |
169 | 167 |
170 virtual void BookmarkNodeChildrenReordered( | 168 void BookmarkNodeChildrenReordered(BookmarkModel* model, |
171 BookmarkModel* model, | 169 const BookmarkNode* node) override { |
172 const BookmarkNode* node) override { | |
173 if (!importing_) | 170 if (!importing_) |
174 [controller_ modelChangedPreserveSelection:YES]; | 171 [controller_ modelChangedPreserveSelection:YES]; |
175 } | 172 } |
176 | 173 |
177 virtual void BookmarkNodeFaviconChanged(BookmarkModel* model, | 174 void BookmarkNodeFaviconChanged(BookmarkModel* model, |
178 const BookmarkNode* node) override { | 175 const BookmarkNode* node) override { |
179 // I care nothing for these 'favicons': I only show folders. | 176 // I care nothing for these 'favicons': I only show folders. |
180 } | 177 } |
181 | 178 |
182 virtual void ExtensiveBookmarkChangesBeginning( | 179 void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) override { |
183 BookmarkModel* model) override { | |
184 importing_ = true; | 180 importing_ = true; |
185 } | 181 } |
186 | 182 |
187 // Invoked after a batch import finishes. This tells observers to update | 183 // Invoked after a batch import finishes. This tells observers to update |
188 // themselves if they were waiting for the update to finish. | 184 // themselves if they were waiting for the update to finish. |
189 virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) override { | 185 void ExtensiveBookmarkChangesEnded(BookmarkModel* model) override { |
190 importing_ = false; | 186 importing_ = false; |
191 [controller_ modelChangedPreserveSelection:YES]; | 187 [controller_ modelChangedPreserveSelection:YES]; |
192 } | 188 } |
193 | 189 |
194 private: | 190 private: |
195 BookmarkEditorBaseController* controller_; // weak | 191 BookmarkEditorBaseController* controller_; // weak |
196 bool importing_; | 192 bool importing_; |
197 }; | 193 }; |
198 | 194 |
199 | 195 |
(...skipping 516 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
716 } | 712 } |
717 | 713 |
718 // Implementing isEqual: allows the NSTreeController to preserve the selection | 714 // Implementing isEqual: allows the NSTreeController to preserve the selection |
719 // and open/shut state of outline items when the data changes. | 715 // and open/shut state of outline items when the data changes. |
720 - (BOOL)isEqual:(id)other { | 716 - (BOOL)isEqual:(id)other { |
721 return [other isKindOfClass:[BookmarkFolderInfo class]] && | 717 return [other isKindOfClass:[BookmarkFolderInfo class]] && |
722 folderNode_ == [(BookmarkFolderInfo*)other folderNode]; | 718 folderNode_ == [(BookmarkFolderInfo*)other folderNode]; |
723 } | 719 } |
724 | 720 |
725 @end | 721 @end |
OLD | NEW |