OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "chrome/browser/undo/bookmark_undo_service.h" | 5 #include "chrome/browser/undo/bookmark_undo_service.h" |
6 | 6 |
7 #include "chrome/browser/bookmarks/bookmark_model.h" | 7 #include "chrome/browser/bookmarks/bookmark_model.h" |
8 #include "chrome/browser/bookmarks/bookmark_model_factory.h" | 8 #include "chrome/browser/bookmarks/bookmark_model_factory.h" |
9 #include "chrome/browser/bookmarks/bookmark_node_data.h" | 9 #include "chrome/browser/bookmarks/bookmark_node_data.h" |
10 #include "chrome/browser/bookmarks/bookmark_utils.h" | 10 #include "chrome/browser/bookmarks/bookmark_utils.h" |
| 11 #include "chrome/browser/bookmarks/scoped_group_bookmark_actions.h" |
11 #include "chrome/browser/profiles/profile.h" | 12 #include "chrome/browser/profiles/profile.h" |
12 #include "chrome/browser/undo/bookmark_renumber_observer.h" | 13 #include "chrome/browser/undo/bookmark_renumber_observer.h" |
13 #include "chrome/browser/undo/bookmark_undo_service_factory.h" | 14 #include "chrome/browser/undo/bookmark_undo_service_factory.h" |
14 #include "chrome/browser/undo/bookmark_undo_utils.h" | |
15 #include "chrome/browser/undo/undo_operation.h" | 15 #include "chrome/browser/undo/undo_operation.h" |
16 #include "grit/generated_resources.h" | 16 #include "grit/generated_resources.h" |
17 #include "ui/base/l10n/l10n_util.h" | 17 #include "ui/base/l10n/l10n_util.h" |
18 | 18 |
19 namespace { | 19 namespace { |
20 | 20 |
21 // BookmarkUndoOperation ------------------------------------------------------ | 21 // BookmarkUndoOperation ------------------------------------------------------ |
22 | 22 |
23 // Base class for all bookmark related UndoOperations that facilitates access to | 23 // Base class for all bookmark related UndoOperations that facilitates access to |
24 // the BookmarkUndoService. | 24 // the BookmarkUndoService. |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 | 384 |
385 // BookmarkUndoService -------------------------------------------------------- | 385 // BookmarkUndoService -------------------------------------------------------- |
386 | 386 |
387 BookmarkUndoService::BookmarkUndoService(Profile* profile) : profile_(profile) { | 387 BookmarkUndoService::BookmarkUndoService(Profile* profile) : profile_(profile) { |
388 } | 388 } |
389 | 389 |
390 BookmarkUndoService::~BookmarkUndoService() { | 390 BookmarkUndoService::~BookmarkUndoService() { |
391 BookmarkModelFactory::GetForProfile(profile_)->RemoveObserver(this); | 391 BookmarkModelFactory::GetForProfile(profile_)->RemoveObserver(this); |
392 } | 392 } |
393 | 393 |
394 void BookmarkUndoService::OnBookmarkRenumbered(int64 old_id, int64 new_id) { | |
395 std::vector<UndoOperation*> all_operations = | |
396 undo_manager()->GetAllUndoOperations(); | |
397 for (std::vector<UndoOperation*>::iterator it = all_operations.begin(); | |
398 it != all_operations.end(); ++it) { | |
399 static_cast<BookmarkUndoOperation*>(*it)->OnBookmarkRenumbered(old_id, | |
400 new_id); | |
401 } | |
402 } | |
403 | |
404 void BookmarkUndoService::BookmarkModelLoaded(BookmarkModel* model, | 394 void BookmarkUndoService::BookmarkModelLoaded(BookmarkModel* model, |
405 bool ids_reassigned) { | 395 bool ids_reassigned) { |
406 undo_manager_.RemoveAllOperations(); | 396 undo_manager_.RemoveAllOperations(); |
407 } | 397 } |
408 | 398 |
409 void BookmarkUndoService::BookmarkModelBeingDeleted(BookmarkModel* model) { | 399 void BookmarkUndoService::BookmarkModelBeingDeleted(BookmarkModel* model) { |
410 undo_manager_.RemoveAllOperations(); | 400 undo_manager_.RemoveAllOperations(); |
411 } | 401 } |
412 | 402 |
413 void BookmarkUndoService::BookmarkNodeMoved(BookmarkModel* model, | 403 void BookmarkUndoService::BookmarkNodeMoved(BookmarkModel* model, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
459 const BookmarkNode* node) { | 449 const BookmarkNode* node) { |
460 scoped_ptr<UndoOperation> op(new BookmarkEditOperation(profile_, node)); | 450 scoped_ptr<UndoOperation> op(new BookmarkEditOperation(profile_, node)); |
461 undo_manager()->AddUndoOperation(op.Pass()); | 451 undo_manager()->AddUndoOperation(op.Pass()); |
462 } | 452 } |
463 | 453 |
464 void BookmarkUndoService::OnWillReorderBookmarkNode(BookmarkModel* model, | 454 void BookmarkUndoService::OnWillReorderBookmarkNode(BookmarkModel* model, |
465 const BookmarkNode* node) { | 455 const BookmarkNode* node) { |
466 scoped_ptr<UndoOperation> op(new BookmarkReorderOperation(profile_, node)); | 456 scoped_ptr<UndoOperation> op(new BookmarkReorderOperation(profile_, node)); |
467 undo_manager()->AddUndoOperation(op.Pass()); | 457 undo_manager()->AddUndoOperation(op.Pass()); |
468 } | 458 } |
| 459 |
| 460 void BookmarkUndoService::GroupedBookmarkChangesBeginning( |
| 461 BookmarkModel* model) { |
| 462 undo_manager()->StartGroupingActions(); |
| 463 } |
| 464 |
| 465 void BookmarkUndoService::GroupedBookmarkChangesEnded(BookmarkModel* model) { |
| 466 undo_manager()->EndGroupingActions(); |
| 467 } |
| 468 |
| 469 void BookmarkUndoService::OnBookmarkRenumbered(int64 old_id, int64 new_id) { |
| 470 std::vector<UndoOperation*> all_operations = |
| 471 undo_manager()->GetAllUndoOperations(); |
| 472 for (std::vector<UndoOperation*>::iterator it = all_operations.begin(); |
| 473 it != all_operations.end(); ++it) { |
| 474 static_cast<BookmarkUndoOperation*>(*it)->OnBookmarkRenumbered(old_id, |
| 475 new_id); |
| 476 } |
| 477 } |
| 478 |
OLD | NEW |