| OLD | NEW | 
|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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/tabs/tab_strip_model.h" | 5 #include "chrome/browser/tabs/tab_strip_model.h" | 
| 6 | 6 | 
| 7 #include <algorithm> | 7 #include <algorithm> | 
| 8 #include <map> | 8 #include <map> | 
| 9 | 9 | 
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" | 
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 176   contents_data_[index]->contents = new_contents; | 176   contents_data_[index]->contents = new_contents; | 
| 177 | 177 | 
| 178   FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 178   FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 
| 179                     TabReplacedAt(this, old_contents, new_contents, index)); | 179                     TabReplacedAt(this, old_contents, new_contents, index)); | 
| 180 | 180 | 
| 181   // When the selected tab contents is replaced send out selected notification | 181   // When the selected tab contents is replaced send out selected notification | 
| 182   // too. We do this as nearly all observers need to treat a replace of the | 182   // too. We do this as nearly all observers need to treat a replace of the | 
| 183   // selected contents as selection changing. | 183   // selected contents as selection changing. | 
| 184   if (selected_index_ == index) { | 184   if (selected_index_ == index) { | 
| 185     FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 185     FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 
| 186                       TabSelectedAt(old_contents, new_contents, | 186                       TabSelectionChanged(this, old_contents, false)); | 
| 187                                     selected_index_, false)); |  | 
| 188   } | 187   } | 
| 189   return old_contents; | 188   return old_contents; | 
| 190 } | 189 } | 
| 191 | 190 | 
| 192 void TabStripModel::ReplaceNavigationControllerAt( | 191 void TabStripModel::ReplaceNavigationControllerAt( | 
| 193     int index, TabContentsWrapper* contents) { | 192     int index, TabContentsWrapper* contents) { | 
| 194   // This appears to be OK with no flicker since no redraw event | 193   // This appears to be OK with no flicker since no redraw event | 
| 195   // occurs between the call to add an aditional tab and one to close | 194   // occurs between the call to add an aditional tab and one to close | 
| 196   // the previous tab. | 195   // the previous tab. | 
| 197   InsertTabContentsAt( | 196   InsertTabContentsAt( | 
| (...skipping 758 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 956   if (old_contents == new_contents) | 955   if (old_contents == new_contents) | 
| 957     return; | 956     return; | 
| 958 | 957 | 
| 959   TabContentsWrapper* last_selected_contents = old_contents; | 958   TabContentsWrapper* last_selected_contents = old_contents; | 
| 960   if (last_selected_contents) { | 959   if (last_selected_contents) { | 
| 961     FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 960     FOR_EACH_OBSERVER(TabStripModelObserver, observers_, | 
| 962                       TabDeselected(last_selected_contents)); | 961                       TabDeselected(last_selected_contents)); | 
| 963   } | 962   } | 
| 964 | 963 | 
| 965   selected_index_ = to_index; | 964   selected_index_ = to_index; | 
| 966   ObserverListBase<TabStripModelObserver>::Iterator it(observers_); | 965 | 
| 967   TabStripModelObserver* obs; | 966   FOR_EACH_OBSERVER( | 
| 968   while ((obs = it.GetNext()) != NULL) | 967       TabStripModelObserver, observers_, | 
| 969     obs->TabSelectedAt(last_selected_contents, new_contents, | 968       TabSelectionChanged(this, last_selected_contents, user_gesture)); | 
| 970                        selected_index_, user_gesture); |  | 
| 971   /* |  | 
| 972   FOR_EACH_OBSERVER(TabStripModelObserver, observers_, |  | 
| 973       TabSelectedAt(last_selected_contents, new_contents, selected_index_, |  | 
| 974                     user_gesture)); |  | 
| 975                     */ |  | 
| 976 } | 969 } | 
| 977 | 970 | 
| 978 void TabStripModel::SelectRelativeTab(bool next) { | 971 void TabStripModel::SelectRelativeTab(bool next) { | 
| 979   // This may happen during automated testing or if a user somehow buffers | 972   // This may happen during automated testing or if a user somehow buffers | 
| 980   // many key accelerators. | 973   // many key accelerators. | 
| 981   if (contents_data_.empty()) | 974   if (contents_data_.empty()) | 
| 982     return; | 975     return; | 
| 983 | 976 | 
| 984   int index = selected_index_; | 977   int index = selected_index_; | 
| 985   int delta = next ? 1 : -1; | 978   int delta = next ? 1 : -1; | 
| (...skipping 30 matching lines...) Expand all  Loading... | 
| 1016 void TabStripModel::ForgetOpenersAndGroupsReferencing( | 1009 void TabStripModel::ForgetOpenersAndGroupsReferencing( | 
| 1017     const NavigationController* tab) { | 1010     const NavigationController* tab) { | 
| 1018   for (TabContentsDataVector::const_iterator i = contents_data_.begin(); | 1011   for (TabContentsDataVector::const_iterator i = contents_data_.begin(); | 
| 1019        i != contents_data_.end(); ++i) { | 1012        i != contents_data_.end(); ++i) { | 
| 1020     if ((*i)->group == tab) | 1013     if ((*i)->group == tab) | 
| 1021       (*i)->group = NULL; | 1014       (*i)->group = NULL; | 
| 1022     if ((*i)->opener == tab) | 1015     if ((*i)->opener == tab) | 
| 1023       (*i)->opener = NULL; | 1016       (*i)->opener = NULL; | 
| 1024   } | 1017   } | 
| 1025 } | 1018 } | 
| OLD | NEW | 
|---|