| 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/extensions/extension_toolbar_model.h" | 5 #include "chrome/browser/extensions/extension_toolbar_model.h" |
| 6 | 6 |
| 7 #include "chrome/browser/extensions/extension_prefs.h" | 7 #include "chrome/browser/extensions/extension_prefs.h" |
| 8 #include "chrome/browser/extensions/extensions_service.h" | 8 #include "chrome/browser/extensions/extensions_service.h" |
| 9 #include "chrome/browser/prefs/pref_service.h" | 9 #include "chrome/browser/prefs/pref_service.h" |
| 10 #include "chrome/browser/profile.h" | 10 #include "chrome/browser/profile.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 51 if (pos == end()) { | 51 if (pos == end()) { |
| 52 NOTREACHED(); | 52 NOTREACHED(); |
| 53 return; | 53 return; |
| 54 } | 54 } |
| 55 toolitems_.erase(pos); | 55 toolitems_.erase(pos); |
| 56 | 56 |
| 57 int i = 0; | 57 int i = 0; |
| 58 bool inserted = false; | 58 bool inserted = false; |
| 59 for (ExtensionList::iterator iter = begin(); iter != end(); ++iter, ++i) { | 59 for (ExtensionList::iterator iter = begin(); iter != end(); ++iter, ++i) { |
| 60 if (i == index) { | 60 if (i == index) { |
| 61 toolitems_.insert(iter, extension); | 61 toolitems_.insert(iter, make_scoped_refptr(extension)); |
| 62 inserted = true; | 62 inserted = true; |
| 63 break; | 63 break; |
| 64 } | 64 } |
| 65 } | 65 } |
| 66 | 66 |
| 67 if (!inserted) { | 67 if (!inserted) { |
| 68 DCHECK_EQ(index, static_cast<int>(toolitems_.size())); | 68 DCHECK_EQ(index, static_cast<int>(toolitems_.size())); |
| 69 index = toolitems_.size(); | 69 index = toolitems_.size(); |
| 70 | 70 |
| 71 toolitems_.push_back(extension); | 71 toolitems_.push_back(make_scoped_refptr(extension)); |
| 72 } | 72 } |
| 73 | 73 |
| 74 FOR_EACH_OBSERVER(Observer, observers_, BrowserActionMoved(extension, index)); | 74 FOR_EACH_OBSERVER(Observer, observers_, BrowserActionMoved(extension, index)); |
| 75 | 75 |
| 76 UpdatePrefs(); | 76 UpdatePrefs(); |
| 77 } | 77 } |
| 78 | 78 |
| 79 void ExtensionToolbarModel::SetVisibleIconCount(int count) { | 79 void ExtensionToolbarModel::SetVisibleIconCount(int count) { |
| 80 visible_icon_count_ = count == static_cast<int>(size()) ? -1 : count; | 80 visible_icon_count_ = count == static_cast<int>(size()) ? -1 : count; |
| 81 prefs_->SetInteger(prefs::kExtensionToolbarSize, visible_icon_count_); | 81 prefs_->SetInteger(prefs::kExtensionToolbarSize, visible_icon_count_); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 104 } | 104 } |
| 105 } | 105 } |
| 106 | 106 |
| 107 void ExtensionToolbarModel::AddExtension(const Extension* extension) { | 107 void ExtensionToolbarModel::AddExtension(const Extension* extension) { |
| 108 // We only care about extensions with browser actions. | 108 // We only care about extensions with browser actions. |
| 109 if (!extension->browser_action()) | 109 if (!extension->browser_action()) |
| 110 return; | 110 return; |
| 111 | 111 |
| 112 if (extension->id() == last_extension_removed_ && | 112 if (extension->id() == last_extension_removed_ && |
| 113 last_extension_removed_index_ < toolitems_.size()) { | 113 last_extension_removed_index_ < toolitems_.size()) { |
| 114 toolitems_.insert(begin() + last_extension_removed_index_, extension); | 114 toolitems_.insert(begin() + last_extension_removed_index_, |
| 115 make_scoped_refptr(extension)); |
| 115 FOR_EACH_OBSERVER(Observer, observers_, | 116 FOR_EACH_OBSERVER(Observer, observers_, |
| 116 BrowserActionAdded(extension, last_extension_removed_index_)); | 117 BrowserActionAdded(extension, last_extension_removed_index_)); |
| 117 } else { | 118 } else { |
| 118 toolitems_.push_back(extension); | 119 toolitems_.push_back(make_scoped_refptr(extension)); |
| 119 FOR_EACH_OBSERVER(Observer, observers_, | 120 FOR_EACH_OBSERVER(Observer, observers_, |
| 120 BrowserActionAdded(extension, toolitems_.size() - 1)); | 121 BrowserActionAdded(extension, toolitems_.size() - 1)); |
| 121 } | 122 } |
| 122 | 123 |
| 123 last_extension_removed_ = ""; | 124 last_extension_removed_ = ""; |
| 124 last_extension_removed_index_ = -1; | 125 last_extension_removed_index_ = -1; |
| 125 | 126 |
| 126 UpdatePrefs(); | 127 UpdatePrefs(); |
| 127 } | 128 } |
| 128 | 129 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 165 const Extension* extension = service_->extensions()->at(i); | 166 const Extension* extension = service_->extensions()->at(i); |
| 166 if (!extension->browser_action()) | 167 if (!extension->browser_action()) |
| 167 continue; | 168 continue; |
| 168 | 169 |
| 169 std::vector<std::string>::iterator pos = | 170 std::vector<std::string>::iterator pos = |
| 170 std::find(pref_order.begin(), pref_order.end(), extension->id()); | 171 std::find(pref_order.begin(), pref_order.end(), extension->id()); |
| 171 if (pos != pref_order.end()) { | 172 if (pos != pref_order.end()) { |
| 172 int index = std::distance(pref_order.begin(), pos); | 173 int index = std::distance(pref_order.begin(), pos); |
| 173 sorted[index] = extension; | 174 sorted[index] = extension; |
| 174 } else { | 175 } else { |
| 175 unsorted.push_back(extension); | 176 unsorted.push_back(make_scoped_refptr(extension)); |
| 176 } | 177 } |
| 177 } | 178 } |
| 178 | 179 |
| 179 // Merge the lists. | 180 // Merge the lists. |
| 180 toolitems_.reserve(sorted.size() + unsorted.size()); | 181 toolitems_.reserve(sorted.size() + unsorted.size()); |
| 181 for (ExtensionList::iterator iter = sorted.begin(); | 182 for (ExtensionList::iterator iter = sorted.begin(); |
| 182 iter != sorted.end(); ++iter) { | 183 iter != sorted.end(); ++iter) { |
| 183 if (*iter != NULL) | 184 if (*iter != NULL) |
| 184 toolitems_.push_back(*iter); | 185 toolitems_.push_back(*iter); |
| 185 } | 186 } |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 int incognito_index = 0, i = 0; | 230 int incognito_index = 0, i = 0; |
| 230 for (ExtensionList::iterator iter = begin(); iter != end(); | 231 for (ExtensionList::iterator iter = begin(); iter != end(); |
| 231 ++iter, ++i) { | 232 ++iter, ++i) { |
| 232 if (original_index == i) | 233 if (original_index == i) |
| 233 break; | 234 break; |
| 234 if (service_->IsIncognitoEnabled(*iter)) | 235 if (service_->IsIncognitoEnabled(*iter)) |
| 235 ++incognito_index; | 236 ++incognito_index; |
| 236 } | 237 } |
| 237 return incognito_index; | 238 return incognito_index; |
| 238 } | 239 } |
| OLD | NEW |