Chromium Code Reviews| 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 "chrome/browser/ui/views/download/download_shelf_view.h" | 5 #include "chrome/browser/ui/views/download/download_shelf_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 107 | 107 |
| 108 DownloadShelfView::~DownloadShelfView() { | 108 DownloadShelfView::~DownloadShelfView() { |
| 109 parent_->RemoveChildView(this); | 109 parent_->RemoveChildView(this); |
| 110 } | 110 } |
| 111 | 111 |
| 112 void DownloadShelfView::AddDownloadView(DownloadItemView* view) { | 112 void DownloadShelfView::AddDownloadView(DownloadItemView* view) { |
| 113 mouse_watcher_.Stop(); | 113 mouse_watcher_.Stop(); |
| 114 | 114 |
| 115 DCHECK(view); | 115 DCHECK(view); |
| 116 download_views_.push_back(view); | 116 download_views_.push_back(view); |
| 117 AddChildView(view); | 117 |
| 118 // Insert the new view at index 0 to maintain a newest to oldest tab order. | |
|
Peter Kasting
2014/05/22 18:23:14
Nit: How about:
Insert the new view as the first
| |
| 119 AddChildViewAt(view, 0); | |
| 118 if (download_views_.size() > kMaxDownloadViews) | 120 if (download_views_.size() > kMaxDownloadViews) |
| 119 RemoveDownloadView(*download_views_.begin()); | 121 RemoveDownloadView(*download_views_.begin()); |
| 120 | 122 |
| 121 new_item_animation_->Reset(); | 123 new_item_animation_->Reset(); |
| 122 new_item_animation_->Show(); | 124 new_item_animation_->Show(); |
| 123 } | 125 } |
| 124 | 126 |
| 125 void DownloadShelfView::DoAddDownload(DownloadItem* download) { | 127 void DownloadShelfView::DoAddDownload(DownloadItem* download) { |
| 126 DownloadItemView* view = new DownloadItemView(download, this); | 128 DownloadItemView* view = new DownloadItemView(download, this); |
| 127 AddDownloadView(view); | 129 AddDownloadView(view); |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 142 if (download_views_.empty()) | 144 if (download_views_.empty()) |
| 143 Close(AUTOMATIC); | 145 Close(AUTOMATIC); |
| 144 else if (CanAutoClose()) | 146 else if (CanAutoClose()) |
| 145 mouse_watcher_.Start(); | 147 mouse_watcher_.Start(); |
| 146 Layout(); | 148 Layout(); |
| 147 SchedulePaint(); | 149 SchedulePaint(); |
| 148 } | 150 } |
| 149 | 151 |
| 150 views::View* DownloadShelfView::GetDefaultFocusableChild() { | 152 views::View* DownloadShelfView::GetDefaultFocusableChild() { |
| 151 return download_views_.empty() ? | 153 return download_views_.empty() ? |
| 152 static_cast<View*>(show_all_view_) : download_views_[0]; | 154 static_cast<View*>(show_all_view_) : |
| 155 download_views_[download_views_.size() - 1]; | |
|
Peter Kasting
2014/05/22 18:23:14
Nit: download_views_.back()
| |
| 153 } | 156 } |
| 154 | 157 |
| 155 void DownloadShelfView::OnPaintBorder(gfx::Canvas* canvas) { | 158 void DownloadShelfView::OnPaintBorder(gfx::Canvas* canvas) { |
| 156 canvas->FillRect(gfx::Rect(0, 0, width(), 1), kBorderColor); | 159 canvas->FillRect(gfx::Rect(0, 0, width(), 1), kBorderColor); |
| 157 } | 160 } |
| 158 | 161 |
| 159 void DownloadShelfView::OpenedDownload(DownloadItemView* view) { | 162 void DownloadShelfView::OpenedDownload(DownloadItemView* view) { |
| 160 if (CanAutoClose()) | 163 if (CanAutoClose()) |
| 161 mouse_watcher_.Start(); | 164 mouse_watcher_.Start(); |
| 162 } | 165 } |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 414 } | 417 } |
| 415 } | 418 } |
| 416 | 419 |
| 417 bool DownloadShelfView::CanAutoClose() { | 420 bool DownloadShelfView::CanAutoClose() { |
| 418 for (size_t i = 0; i < download_views_.size(); ++i) { | 421 for (size_t i = 0; i < download_views_.size(); ++i) { |
| 419 if (!download_views_[i]->download()->GetOpened()) | 422 if (!download_views_[i]->download()->GetOpened()) |
| 420 return false; | 423 return false; |
| 421 } | 424 } |
| 422 return true; | 425 return true; |
| 423 } | 426 } |
| OLD | NEW |