| 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/views/download_shelf_view.h" | 5 #include "chrome/browser/views/download_shelf_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 133 download_views_.push_back(view); | 133 download_views_.push_back(view); |
| 134 AddChildView(view); | 134 AddChildView(view); |
| 135 if (download_views_.size() > kMaxDownloadViews) | 135 if (download_views_.size() > kMaxDownloadViews) |
| 136 RemoveDownloadView(*download_views_.begin()); | 136 RemoveDownloadView(*download_views_.begin()); |
| 137 | 137 |
| 138 new_item_animation_->Reset(); | 138 new_item_animation_->Reset(); |
| 139 new_item_animation_->Show(); | 139 new_item_animation_->Show(); |
| 140 } | 140 } |
| 141 | 141 |
| 142 void DownloadShelfView::AddDownload(BaseDownloadItemModel* download_model) { | 142 void DownloadShelfView::AddDownload(BaseDownloadItemModel* download_model) { |
| 143 DownloadItemView* view = new DownloadItemView( | 143 DownloadItem* dld = download_model->download(); |
| 144 download_model->download(), this, download_model); | 144 // If we already have an ID, we must be restarting an interrupted download. |
| 145 // Don't add a new one in this case. |
| 146 for (size_t i = 0; i < download_views_.size(); ++i) { |
| 147 DownloadItem* download = download_views_[i]->download(); |
| 148 if (download->id() == dld->id()) |
| 149 return; |
| 150 } |
| 151 DownloadItemView* view = new DownloadItemView(dld, this, download_model); |
| 145 AddDownloadView(view); | 152 AddDownloadView(view); |
| 146 } | 153 } |
| 147 | 154 |
| 148 void DownloadShelfView::MouseMovedOutOfView() { | 155 void DownloadShelfView::MouseMovedOutOfView() { |
| 149 Close(); | 156 Close(); |
| 150 } | 157 } |
| 151 | 158 |
| 152 void DownloadShelfView::RemoveDownloadView(View* view) { | 159 void DownloadShelfView::RemoveDownloadView(View* view) { |
| 153 DCHECK(view); | 160 DCHECK(view); |
| 154 std::vector<DownloadItemView*>::iterator i = | 161 std::vector<DownloadItemView*>::iterator i = |
| (...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 374 } | 381 } |
| 375 } | 382 } |
| 376 | 383 |
| 377 bool DownloadShelfView::CanAutoClose() { | 384 bool DownloadShelfView::CanAutoClose() { |
| 378 for (size_t i = 0; i < download_views_.size(); ++i) { | 385 for (size_t i = 0; i < download_views_.size(); ++i) { |
| 379 if (!download_views_[i]->download()->opened()) | 386 if (!download_views_[i]->download()->opened()) |
| 380 return false; | 387 return false; |
| 381 } | 388 } |
| 382 return true; | 389 return true; |
| 383 } | 390 } |
| OLD | NEW |