Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(129)

Side by Side Diff: chrome/browser/ui/views/download/download_item_view.cc

Issue 8503018: Split DownloadItem into an ABC, an Impl, and a Mock. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: merge Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_item_view.h" 5 #include "chrome/browser/ui/views/download/download_item_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 } else { 204 } else {
205 // Drop down button is glued to the right of the download shelf. 205 // Drop down button is glued to the right of the download shelf.
206 drop_down_x_left_ = 206 drop_down_x_left_ =
207 size.width() - normal_drop_down_image_set_.top->width(); 207 size.width() - normal_drop_down_image_set_.top->width();
208 drop_down_x_right_ = size.width(); 208 drop_down_x_right_ = size.width();
209 } 209 }
210 210
211 body_hover_animation_.reset(new ui::SlideAnimation(this)); 211 body_hover_animation_.reset(new ui::SlideAnimation(this));
212 drop_hover_animation_.reset(new ui::SlideAnimation(this)); 212 drop_hover_animation_.reset(new ui::SlideAnimation(this));
213 213
214 if (download->safety_state() == DownloadItem::DANGEROUS) 214 if (download->GetSafetyState() == DownloadItem::DANGEROUS)
215 EnterDangerousMode(); 215 EnterDangerousMode();
216 216
217 UpdateAccessibleName(); 217 UpdateAccessibleName();
218 set_accessibility_focusable(true); 218 set_accessibility_focusable(true);
219 219
220 // Set up our animation. 220 // Set up our animation.
221 StartDownloadProgress(); 221 StartDownloadProgress();
222 } 222 }
223 223
224 DownloadItemView::~DownloadItemView() { 224 DownloadItemView::~DownloadItemView() {
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
257 } 257 }
258 258
259 // DownloadObserver interface. 259 // DownloadObserver interface.
260 260
261 // Update the progress graphic on the icon and our text status label 261 // Update the progress graphic on the icon and our text status label
262 // to reflect our current bytes downloaded, time remaining. 262 // to reflect our current bytes downloaded, time remaining.
263 void DownloadItemView::OnDownloadUpdated(DownloadItem* download) { 263 void DownloadItemView::OnDownloadUpdated(DownloadItem* download) {
264 DCHECK(download == download_); 264 DCHECK(download == download_);
265 265
266 if (body_state_ == DANGEROUS && 266 if (body_state_ == DANGEROUS &&
267 download->safety_state() == DownloadItem::DANGEROUS_BUT_VALIDATED) { 267 download->GetSafetyState() == DownloadItem::DANGEROUS_BUT_VALIDATED) {
268 // We have been approved. 268 // We have been approved.
269 ClearDangerousMode(); 269 ClearDangerousMode();
270 } else if (body_state_ != DANGEROUS && 270 } else if (body_state_ != DANGEROUS &&
271 download->safety_state() == DownloadItem::DANGEROUS) { 271 download->GetSafetyState() == DownloadItem::DANGEROUS) {
272 EnterDangerousMode(); 272 EnterDangerousMode();
273 // Force the shelf to layout again as our size has changed. 273 // Force the shelf to layout again as our size has changed.
274 parent_->Layout(); 274 parent_->Layout();
275 SchedulePaint(); 275 SchedulePaint();
276 } else { 276 } else {
277 string16 status_text = model_->GetStatusText(); 277 string16 status_text = model_->GetStatusText();
278 switch (download_->state()) { 278 switch (download_->GetState()) {
279 case DownloadItem::IN_PROGRESS: 279 case DownloadItem::IN_PROGRESS:
280 download_->is_paused() ? 280 download_->IsPaused() ?
281 StopDownloadProgress() : StartDownloadProgress(); 281 StopDownloadProgress() : StartDownloadProgress();
282 LoadIconIfItemPathChanged(); 282 LoadIconIfItemPathChanged();
283 break; 283 break;
284 case DownloadItem::INTERRUPTED: 284 case DownloadItem::INTERRUPTED:
285 StopDownloadProgress(); 285 StopDownloadProgress();
286 complete_animation_.reset(new ui::SlideAnimation(this)); 286 complete_animation_.reset(new ui::SlideAnimation(this));
287 complete_animation_->SetSlideDuration(kInterruptedAnimationDurationMs); 287 complete_animation_->SetSlideDuration(kInterruptedAnimationDurationMs);
288 complete_animation_->SetTweenType(ui::Tween::LINEAR); 288 complete_animation_->SetTweenType(ui::Tween::LINEAR);
289 complete_animation_->Show(); 289 complete_animation_->Show();
290 SchedulePaint(); 290 SchedulePaint();
291 LoadIcon(); 291 LoadIcon();
292 break; 292 break;
293 case DownloadItem::COMPLETE: 293 case DownloadItem::COMPLETE:
294 if (download_->auto_opened()) { 294 if (download_->GetAutoOpened()) {
295 parent_->RemoveDownloadView(this); // This will delete us! 295 parent_->RemoveDownloadView(this); // This will delete us!
296 return; 296 return;
297 } 297 }
298 StopDownloadProgress(); 298 StopDownloadProgress();
299 complete_animation_.reset(new ui::SlideAnimation(this)); 299 complete_animation_.reset(new ui::SlideAnimation(this));
300 complete_animation_->SetSlideDuration(kCompleteAnimationDurationMs); 300 complete_animation_->SetSlideDuration(kCompleteAnimationDurationMs);
301 complete_animation_->SetTweenType(ui::Tween::LINEAR); 301 complete_animation_->SetTweenType(ui::Tween::LINEAR);
302 complete_animation_->Show(); 302 complete_animation_->Show();
303 SchedulePaint(); 303 SchedulePaint();
304 LoadIcon(); 304 LoadIcon();
(...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 if (context_menu_->download_item()) { 560 if (context_menu_->download_item()) {
561 drop_down_pressed_ = false; 561 drop_down_pressed_ = false;
562 // Showing the menu blocks. Here we revert the state. 562 // Showing the menu blocks. Here we revert the state.
563 SetState(NORMAL, NORMAL); 563 SetState(NORMAL, NORMAL);
564 } 564 }
565 } 565 }
566 566
567 void DownloadItemView::GetAccessibleState(ui::AccessibleViewState* state) { 567 void DownloadItemView::GetAccessibleState(ui::AccessibleViewState* state) {
568 state->name = accessible_name_; 568 state->name = accessible_name_;
569 state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON; 569 state->role = ui::AccessibilityTypes::ROLE_PUSHBUTTON;
570 if (download_->safety_state() == DownloadItem::DANGEROUS) { 570 if (download_->GetSafetyState() == DownloadItem::DANGEROUS) {
571 state->state = ui::AccessibilityTypes::STATE_UNAVAILABLE; 571 state->state = ui::AccessibilityTypes::STATE_UNAVAILABLE;
572 } else { 572 } else {
573 state->state = ui::AccessibilityTypes::STATE_HASPOPUP; 573 state->state = ui::AccessibilityTypes::STATE_HASPOPUP;
574 } 574 }
575 } 575 }
576 576
577 void DownloadItemView::ButtonPressed( 577 void DownloadItemView::ButtonPressed(
578 views::Button* sender, const views::Event& event) { 578 views::Button* sender, const views::Event& event) {
579 if (sender == discard_button_) { 579 if (sender == discard_button_) {
580 UMA_HISTOGRAM_LONG_TIMES("clickjacking.discard_download", 580 UMA_HISTOGRAM_LONG_TIMES("clickjacking.discard_download",
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 void DownloadItemView::SetState(State body_state, State drop_down_state) { 893 void DownloadItemView::SetState(State body_state, State drop_down_state) {
894 if (body_state_ == body_state && drop_down_state_ == drop_down_state) 894 if (body_state_ == body_state && drop_down_state_ == drop_down_state)
895 return; 895 return;
896 896
897 body_state_ = body_state; 897 body_state_ = body_state;
898 drop_down_state_ = drop_down_state; 898 drop_down_state_ = drop_down_state;
899 SchedulePaint(); 899 SchedulePaint();
900 } 900 }
901 901
902 void DownloadItemView::ClearDangerousMode() { 902 void DownloadItemView::ClearDangerousMode() {
903 DCHECK(download_->safety_state() == DownloadItem::DANGEROUS_BUT_VALIDATED && 903 DCHECK(download_->GetSafetyState() == DownloadItem::DANGEROUS_BUT_VALIDATED &&
904 body_state_ == DANGEROUS && drop_down_state_ == DANGEROUS); 904 body_state_ == DANGEROUS && drop_down_state_ == DANGEROUS);
905 905
906 body_state_ = NORMAL; 906 body_state_ = NORMAL;
907 drop_down_state_ = NORMAL; 907 drop_down_state_ = NORMAL;
908 908
909 // Remove the views used by the dangerous mode. 909 // Remove the views used by the dangerous mode.
910 RemoveChildView(save_button_); 910 RemoveChildView(save_button_);
911 delete save_button_; 911 delete save_button_;
912 save_button_ = NULL; 912 save_button_ = NULL;
913 RemoveChildView(discard_button_); 913 RemoveChildView(discard_button_);
(...skipping 29 matching lines...) Expand all
943 save_button_->set_ignore_minimum_size(true); 943 save_button_->set_ignore_minimum_size(true);
944 discard_button_ = new views::NativeTextButton( 944 discard_button_ = new views::NativeTextButton(
945 this, l10n_util::GetStringUTF16(IDS_DISCARD_DOWNLOAD)); 945 this, l10n_util::GetStringUTF16(IDS_DISCARD_DOWNLOAD));
946 discard_button_->set_ignore_minimum_size(true); 946 discard_button_->set_ignore_minimum_size(true);
947 AddChildView(save_button_); 947 AddChildView(save_button_);
948 AddChildView(discard_button_); 948 AddChildView(discard_button_);
949 949
950 // Ensure the file name is not too long. 950 // Ensure the file name is not too long.
951 951
952 // Extract the file extension (if any). 952 // Extract the file extension (if any).
953 FilePath filename(download_->target_name()); 953 FilePath filename(download_->GetTargetName());
954 #if defined(OS_POSIX) 954 #if defined(OS_POSIX)
955 string16 extension = WideToUTF16(base::SysNativeMBToWide( 955 string16 extension = WideToUTF16(base::SysNativeMBToWide(
956 filename.Extension())); 956 filename.Extension()));
957 #else 957 #else
958 string16 extension = filename.Extension(); 958 string16 extension = filename.Extension();
959 #endif 959 #endif
960 960
961 // Remove leading '.' 961 // Remove leading '.'
962 if (extension.length() > 0) 962 if (extension.length() > 0)
963 extension = extension.substr(1); 963 extension = extension.substr(1);
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 } 1107 }
1108 1108
1109 bool DownloadItemView::InDropDownButtonXCoordinateRange(int x) { 1109 bool DownloadItemView::InDropDownButtonXCoordinateRange(int x) {
1110 if (x > drop_down_x_left_ && x < drop_down_x_right_) 1110 if (x > drop_down_x_left_ && x < drop_down_x_right_)
1111 return true; 1111 return true;
1112 return false; 1112 return false;
1113 } 1113 }
1114 1114
1115 void DownloadItemView::UpdateAccessibleName() { 1115 void DownloadItemView::UpdateAccessibleName() {
1116 string16 new_name; 1116 string16 new_name;
1117 if (download_->safety_state() == DownloadItem::DANGEROUS) { 1117 if (download_->GetSafetyState() == DownloadItem::DANGEROUS) {
1118 new_name = dangerous_download_label_->GetText(); 1118 new_name = dangerous_download_label_->GetText();
1119 } else { 1119 } else {
1120 new_name = status_text_ + char16(' ') + 1120 new_name = status_text_ + char16(' ') +
1121 download_->GetFileNameToReportUser().LossyDisplayName(); 1121 download_->GetFileNameToReportUser().LossyDisplayName();
1122 } 1122 }
1123 1123
1124 // If the name has changed, notify assistive technology that the name 1124 // If the name has changed, notify assistive technology that the name
1125 // has changed so they can announce it immediately. 1125 // has changed so they can announce it immediately.
1126 if (new_name != accessible_name_) { 1126 if (new_name != accessible_name_) {
1127 accessible_name_ = new_name; 1127 accessible_name_ = new_name;
1128 if (GetWidget()) { 1128 if (GetWidget()) {
1129 GetWidget()->NotifyAccessibilityEvent( 1129 GetWidget()->NotifyAccessibilityEvent(
1130 this, ui::AccessibilityTypes::EVENT_NAME_CHANGED, true); 1130 this, ui::AccessibilityTypes::EVENT_NAME_CHANGED, true);
1131 } 1131 }
1132 } 1132 }
1133 } 1133 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/download/download_shelf_gtk.cc ('k') | chrome/browser/ui/views/download/download_shelf_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698