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

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

Issue 6905049: Detect removed files and reflect the state in chrome://downloads and the download shelf (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Merge with the latest revision Created 9 years, 6 months 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 <vector> 7 #include <vector>
8 8
9 #include "base/callback.h" 9 #include "base/callback.h"
10 #include "base/file_path.h" 10 #include "base/file_path.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 static const double kDownloadItemLuminanceMod = 0.8; 79 static const double kDownloadItemLuminanceMod = 0.8;
80 80
81 DownloadItemView::DownloadItemView(DownloadItem* download, 81 DownloadItemView::DownloadItemView(DownloadItem* download,
82 DownloadShelfView* parent, 82 DownloadShelfView* parent,
83 BaseDownloadItemModel* model) 83 BaseDownloadItemModel* model)
84 : warning_icon_(NULL), 84 : warning_icon_(NULL),
85 download_(download), 85 download_(download),
86 parent_(parent), 86 parent_(parent),
87 status_text_(UTF16ToWide( 87 status_text_(UTF16ToWide(
88 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING))), 88 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING))),
89 show_status_text_(true),
90 body_state_(NORMAL), 89 body_state_(NORMAL),
91 drop_down_state_(NORMAL), 90 drop_down_state_(NORMAL),
92 progress_angle_(download_util::kStartAngleDegrees), 91 progress_angle_(download_util::kStartAngleDegrees),
93 drop_down_pressed_(false), 92 drop_down_pressed_(false),
94 dragging_(false), 93 dragging_(false),
95 starting_drag_(false), 94 starting_drag_(false),
96 model_(model), 95 model_(model),
97 save_button_(NULL), 96 save_button_(NULL),
98 discard_button_(NULL), 97 discard_button_(NULL),
99 dangerous_download_label_(NULL), 98 dangerous_download_label_(NULL),
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 switch (download_->state()) { 347 switch (download_->state()) {
349 case DownloadItem::IN_PROGRESS: 348 case DownloadItem::IN_PROGRESS:
350 download_->is_paused() ? StopDownloadProgress() : StartDownloadProgress(); 349 download_->is_paused() ? StopDownloadProgress() : StartDownloadProgress();
351 break; 350 break;
352 case DownloadItem::INTERRUPTED: 351 case DownloadItem::INTERRUPTED:
353 StopDownloadProgress(); 352 StopDownloadProgress();
354 complete_animation_.reset(new ui::SlideAnimation(this)); 353 complete_animation_.reset(new ui::SlideAnimation(this));
355 complete_animation_->SetSlideDuration(kInterruptedAnimationDurationMs); 354 complete_animation_->SetSlideDuration(kInterruptedAnimationDurationMs);
356 complete_animation_->SetTweenType(ui::Tween::LINEAR); 355 complete_animation_->SetTweenType(ui::Tween::LINEAR);
357 complete_animation_->Show(); 356 complete_animation_->Show();
358 if (status_text.empty())
359 show_status_text_ = false;
360 SchedulePaint(); 357 SchedulePaint();
361 LoadIcon(); 358 LoadIcon();
362 break; 359 break;
363 case DownloadItem::COMPLETE: 360 case DownloadItem::COMPLETE:
364 if (download_->auto_opened()) { 361 if (download_->auto_opened()) {
365 parent_->RemoveDownloadView(this); // This will delete us! 362 parent_->RemoveDownloadView(this); // This will delete us!
366 return; 363 return;
367 } 364 }
368 StopDownloadProgress(); 365 StopDownloadProgress();
369 complete_animation_.reset(new ui::SlideAnimation(this)); 366 complete_animation_.reset(new ui::SlideAnimation(this));
370 complete_animation_->SetSlideDuration(kCompleteAnimationDurationMs); 367 complete_animation_->SetSlideDuration(kCompleteAnimationDurationMs);
371 complete_animation_->SetTweenType(ui::Tween::LINEAR); 368 complete_animation_->SetTweenType(ui::Tween::LINEAR);
372 complete_animation_->Show(); 369 complete_animation_->Show();
373 if (status_text.empty())
374 show_status_text_ = false;
375 SchedulePaint(); 370 SchedulePaint();
376 LoadIcon(); 371 LoadIcon();
377 break; 372 break;
378 case DownloadItem::CANCELLED: 373 case DownloadItem::CANCELLED:
379 StopDownloadProgress(); 374 StopDownloadProgress();
380 LoadIcon(); 375 LoadIcon();
381 break; 376 break;
382 case DownloadItem::REMOVING: 377 case DownloadItem::REMOVING:
383 parent_->RemoveDownloadView(this); // This will delete us! 378 parent_->RemoveDownloadView(this); // This will delete us!
384 return; 379 return;
(...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after
716 (drop_down_image_set ? 711 (drop_down_image_set ?
717 normal_drop_down_image_set_.center->width() : 712 normal_drop_down_image_set_.center->width() :
718 0); 713 0);
719 714
720 // May be caused by animation. 715 // May be caused by animation.
721 if (center_width <= 0) 716 if (center_width <= 0)
722 return; 717 return;
723 718
724 // Draw status before button image to effectively lighten text. 719 // Draw status before button image to effectively lighten text.
725 if (!IsDangerousMode()) { 720 if (!IsDangerousMode()) {
726 if (show_status_text_) { 721 if (!status_text_.empty()) {
727 int mirrored_x = GetMirroredXWithWidthInView( 722 int mirrored_x = GetMirroredXWithWidthInView(
728 download_util::kSmallProgressIconSize, kTextWidth); 723 download_util::kSmallProgressIconSize, kTextWidth);
729 // Add font_.height() to compensate for title, which is drawn later. 724 // Add font_.height() to compensate for title, which is drawn later.
730 int y = box_y_ + kVerticalPadding + font_.GetHeight() + 725 int y = box_y_ + kVerticalPadding + font_.GetHeight() +
731 kVerticalTextPadding; 726 kVerticalTextPadding;
732 SkColor file_name_color = GetThemeProvider()->GetColor( 727 SkColor file_name_color = GetThemeProvider()->GetColor(
733 ThemeService::COLOR_BOOKMARK_TEXT); 728 ThemeService::COLOR_BOOKMARK_TEXT);
734 // If text is light-on-dark, lightening it alone will do nothing. 729 // If text is light-on-dark, lightening it alone will do nothing.
735 // Therefore we mute luminance a wee bit before drawing in this case. 730 // Therefore we mute luminance a wee bit before drawing in this case.
736 if (color_utils::RelativeLuminance(file_name_color) > 0.5) 731 if (color_utils::RelativeLuminance(file_name_color) > 0.5)
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 // Last, concat the whole string. 844 // Last, concat the whole string.
850 filename = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_OPENING, 845 filename = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_OPENING,
851 filename_string); 846 filename_string);
852 } 847 }
853 848
854 int mirrored_x = GetMirroredXWithWidthInView( 849 int mirrored_x = GetMirroredXWithWidthInView(
855 download_util::kSmallProgressIconSize, kTextWidth); 850 download_util::kSmallProgressIconSize, kTextWidth);
856 SkColor file_name_color = GetThemeProvider()->GetColor( 851 SkColor file_name_color = GetThemeProvider()->GetColor(
857 ThemeService::COLOR_BOOKMARK_TEXT); 852 ThemeService::COLOR_BOOKMARK_TEXT);
858 int y = 853 int y =
859 box_y_ + (show_status_text_ ? kVerticalPadding : 854 box_y_ + (status_text_.empty() ?
860 (box_height_ - font_.GetHeight()) / 2); 855 ((box_height_ - font_.GetHeight()) / 2) : kVerticalPadding);
861 856
862 // Draw the file's name. 857 // Draw the file's name.
863 canvas->DrawStringInt(filename, font_, 858 canvas->DrawStringInt(filename, font_,
864 IsEnabled() ? file_name_color : 859 IsEnabled() ? file_name_color :
865 kFileNameDisabledColor, 860 kFileNameDisabledColor,
866 mirrored_x, y, kTextWidth, font_.GetHeight()); 861 mirrored_x, y, kTextWidth, font_.GetHeight());
867 } 862 }
868 863
869 // Load the icon. 864 // Load the icon.
870 IconManager* im = g_browser_process->icon_manager(); 865 IconManager* im = g_browser_process->icon_manager();
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after
1112 // If the name has changed, notify assistive technology that the name 1107 // If the name has changed, notify assistive technology that the name
1113 // has changed so they can announce it immediately. 1108 // has changed so they can announce it immediately.
1114 if (new_name != accessible_name_) { 1109 if (new_name != accessible_name_) {
1115 accessible_name_ = new_name; 1110 accessible_name_ = new_name;
1116 if (GetWidget()) { 1111 if (GetWidget()) {
1117 GetWidget()->NotifyAccessibilityEvent( 1112 GetWidget()->NotifyAccessibilityEvent(
1118 this, ui::AccessibilityTypes::EVENT_NAME_CHANGED, true); 1113 this, ui::AccessibilityTypes::EVENT_NAME_CHANGED, true);
1119 } 1114 }
1120 } 1115 }
1121 } 1116 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/download/download_item_view.h ('k') | chrome/browser/ui/webui/downloads_dom_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698