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

Unified Diff: chrome/browser/ui/gtk/download/download_item_gtk.cc

Issue 11673004: No need to pass DownloadItemModel ownership. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: DownloadShelfContextMenu class cleanup and require GetMenuModel() to return non-NULL Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/download/download_item_gtk.cc
diff --git a/chrome/browser/ui/gtk/download/download_item_gtk.cc b/chrome/browser/ui/gtk/download/download_item_gtk.cc
index 89ca90c54fb97b7ce9bee45f0c0f8d116b17459a..e1da54d07532036dc482dfd47557a1a9d9940123 100644
--- a/chrome/browser/ui/gtk/download/download_item_gtk.cc
+++ b/chrome/browser/ui/gtk/download/download_item_gtk.cc
@@ -104,14 +104,14 @@ NineBox* DownloadItemGtk::dangerous_nine_box_ = NULL;
using content::DownloadItem;
DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
- DownloadItemModel* download_model)
+ DownloadItem* download_item)
: parent_shelf_(parent_shelf),
arrow_(NULL),
menu_showing_(false),
theme_service_(
GtkThemeService::GetFrom(parent_shelf->browser()->profile())),
progress_angle_(download_util::kStartAngleDegrees),
- download_model_(download_model),
+ download_model_(download_item),
dangerous_prompt_(NULL),
dangerous_label_(NULL),
complete_animation_(this),
@@ -193,13 +193,13 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
// Insert as the leftmost item.
gtk_box_reorder_child(GTK_BOX(shelf_hbox), hbox_.get(), 0);
- get_download()->AddObserver(this);
+ download()->AddObserver(this);
new_item_animation_.reset(new ui::SlideAnimation(this));
new_item_animation_->SetSlideDuration(kNewItemAnimationDurationMs);
gtk_widget_show_all(hbox_.get());
- if (download_model_->IsDangerous()) {
+ if (download_model_.IsDangerous()) {
// Hide the download item components for now.
gtk_widget_set_no_show_all(body_.get(), TRUE);
gtk_widget_set_no_show_all(menu_button_, TRUE);
@@ -239,7 +239,7 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
// Create the ok button.
GtkWidget* dangerous_accept = gtk_button_new_with_label(
- UTF16ToUTF8(download_model_->GetWarningConfirmButtonText()).c_str());
+ UTF16ToUTF8(download_model_.GetWarningConfirmButtonText()).c_str());
g_signal_connect(dangerous_accept, "clicked",
G_CALLBACK(OnDangerousAcceptThunk), this);
gtk_util::CenterWidgetInHBox(dangerous_hbox_.get(), dangerous_accept, false,
@@ -265,7 +265,7 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
theme_service_->InitThemesFor(this);
// Set the initial width of the widget to be animated.
- if (download_model_->IsDangerous()) {
+ if (download_model_.IsDangerous()) {
gtk_widget_set_size_request(dangerous_hbox_.get(),
dangerous_hbox_start_width_, -1);
} else {
@@ -278,7 +278,7 @@ DownloadItemGtk::DownloadItemGtk(DownloadShelfGtk* parent_shelf,
complete_animation_.SetSlideDuration(kCompleteAnimationDurationMs);
// Update the status text and animation state.
- OnDownloadUpdated(get_download());
+ OnDownloadUpdated(download());
}
DownloadItemGtk::~DownloadItemGtk() {
@@ -287,7 +287,7 @@ DownloadItemGtk::~DownloadItemGtk() {
menu_.reset();
StopDownloadProgress();
- get_download()->RemoveObserver(this);
+ download()->RemoveObserver(this);
// We may free some shelf space for showing more download items.
parent_shelf_->MaybeShowMoreDownloadItems();
@@ -302,10 +302,10 @@ DownloadItemGtk::~DownloadItemGtk() {
DCHECK(!status_label_);
}
-void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
- DCHECK_EQ(download, get_download());
+void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download_item) {
+ DCHECK_EQ(download(), download_item);
- if (dangerous_prompt_ != NULL && !download_model_->IsDangerous()) {
+ if (dangerous_prompt_ != NULL && !download_model_.IsDangerous()) {
// We have been approved.
gtk_widget_set_no_show_all(body_.get(), FALSE);
gtk_widget_set_no_show_all(menu_button_, FALSE);
@@ -318,7 +318,7 @@ void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
parent_shelf_->MaybeShowMoreDownloadItems();
}
- if (download->GetUserVerifiedFilePath() != icon_filepath_) {
+ if (download()->GetUserVerifiedFilePath() != icon_filepath_) {
// Turns out the file path is "Unconfirmed %d.crdownload" for dangerous
// downloads. When the download is confirmed, the file is renamed on
// another thread, so reload the icon if the download filename changes.
@@ -327,7 +327,7 @@ void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
UpdateTooltip();
}
- switch (download->GetState()) {
+ switch (download()->GetState()) {
case DownloadItem::CANCELLED:
StopDownloadProgress();
gtk_widget_queue_draw(progress_area_.get());
@@ -341,7 +341,7 @@ void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
case DownloadItem::COMPLETE:
// GetAutoOpened() may change after the download's initial transition to
// COMPLETE, so we check it before the idemopotency shield below.
- if (download->GetAutoOpened()) {
+ if (download()->GetAutoOpened()) {
parent_shelf_->RemoveDownloadItem(this); // This will delete us!
return;
}
@@ -354,24 +354,25 @@ void DownloadItemGtk::OnDownloadUpdated(DownloadItem* download) {
StopDownloadProgress();
// Set up the widget as a drag source.
- DownloadItemDrag::SetSource(body_.get(), get_download(), icon_large_);
+ DownloadItemDrag::SetSource(body_.get(), download(), icon_large_);
complete_animation_.Show();
download_complete_ = true;
break;
case DownloadItem::IN_PROGRESS:
- get_download()->IsPaused() ?
+ download()->IsPaused() ?
StopDownloadProgress() : StartDownloadProgress();
break;
default:
NOTREACHED();
}
- status_text_ = UTF16ToUTF8(download_model_->GetStatusText());
+ status_text_ = UTF16ToUTF8(download_model_.GetStatusText());
UpdateStatusLabel(status_text_);
}
-void DownloadItemGtk::OnDownloadDestroyed(DownloadItem* download) {
+void DownloadItemGtk::OnDownloadDestroyed(DownloadItem* download_item) {
+ DCHECK_EQ(download(), download_item);
parent_shelf_->RemoveDownloadItem(this);
// This will delete us!
}
@@ -381,7 +382,7 @@ void DownloadItemGtk::AnimationProgressed(const ui::Animation* animation) {
gtk_widget_queue_draw(progress_area_.get());
} else {
DCHECK(animation == new_item_animation_.get());
- if (download_model_->IsDangerous()) {
+ if (download_model_.IsDangerous()) {
int progress = static_cast<int>((dangerous_hbox_full_width_ -
dangerous_hbox_start_width_) *
animation->GetCurrentValue());
@@ -427,10 +428,6 @@ void DownloadItemGtk::Observe(int type,
}
}
-DownloadItem* DownloadItemGtk::get_download() {
- return download_model_->download();
-}
-
// Download progress animation functions.
void DownloadItemGtk::UpdateDownloadProgress() {
@@ -461,13 +458,13 @@ void DownloadItemGtk::OnLoadSmallIconComplete(gfx::Image* image) {
void DownloadItemGtk::OnLoadLargeIconComplete(gfx::Image* image) {
icon_large_ = image;
- DownloadItemDrag::SetSource(body_.get(), get_download(), icon_large_);
+ DownloadItemDrag::SetSource(body_.get(), download(), icon_large_);
}
void DownloadItemGtk::LoadIcon() {
cancelable_task_tracker_.TryCancelAll();
IconManager* im = g_browser_process->icon_manager();
- icon_filepath_ = get_download()->GetUserVerifiedFilePath();
+ icon_filepath_ = download()->GetUserVerifiedFilePath();
im->LoadIcon(icon_filepath_,
IconLoader::SMALL,
base::Bind(&DownloadItemGtk::OnLoadSmallIconComplete,
@@ -482,7 +479,7 @@ void DownloadItemGtk::LoadIcon() {
void DownloadItemGtk::UpdateTooltip() {
string16 tooltip_text =
- download_model_->GetTooltipText(gfx::Font(), kTooltipMaxWidth);
+ download_model_.GetTooltipText(gfx::Font(), kTooltipMaxWidth);
gtk_widget_set_tooltip_text(body_.get(), UTF16ToUTF8(tooltip_text).c_str());
}
@@ -495,7 +492,7 @@ void DownloadItemGtk::UpdateNameLabel() {
string16 filename;
if (!disabled_while_opening_) {
filename = ui::ElideFilename(
- get_download()->GetFileNameToReportUser(), font, kTextWidth);
+ download()->GetFileNameToReportUser(), font, kTextWidth);
} else {
// First, Calculate the download status opening string width.
string16 status_string =
@@ -503,7 +500,7 @@ void DownloadItemGtk::UpdateNameLabel() {
int status_string_width = font.GetStringWidth(status_string);
// Then, elide the file name.
string16 filename_string =
- ui::ElideFilename(get_download()->GetFileNameToReportUser(), font,
+ ui::ElideFilename(download()->GetFileNameToReportUser(), font,
kTextWidth - status_string_width);
// Last, concat the whole string.
filename = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_OPENING,
@@ -582,7 +579,7 @@ void DownloadItemGtk::UpdateDangerWarning() {
// We create |dangerous_warning| as a wide string so we can more easily
// calculate its length in characters.
string16 dangerous_warning =
- download_model_->GetWarningText(gfx::Font(), kTextWidth);
+ download_model_.GetWarningText(gfx::Font(), kTextWidth);
if (theme_service_->UsingNativeTheme()) {
gtk_util::SetLabelColor(dangerous_label_, NULL);
} else {
@@ -629,15 +626,15 @@ void DownloadItemGtk::UpdateDangerWarning() {
void DownloadItemGtk::UpdateDangerIcon() {
if (theme_service_->UsingNativeTheme()) {
- const char* stock = download_model_->IsMalicious() ?
+ const char* stock = download_model_.IsMalicious() ?
GTK_STOCK_DIALOG_ERROR : GTK_STOCK_DIALOG_WARNING;
gtk_image_set_from_stock(
GTK_IMAGE(dangerous_image_), stock, GTK_ICON_SIZE_SMALL_TOOLBAR);
} else {
// Set the warning icon.
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
- int pixbuf_id = download_model_->IsMalicious() ? IDR_SAFEBROWSING_WARNING
- : IDR_WARNING;
+ int pixbuf_id = download_model_.IsMalicious() ? IDR_SAFEBROWSING_WARNING
+ : IDR_WARNING;
gtk_image_set_from_pixbuf(GTK_IMAGE(dangerous_image_),
rb.GetNativeImageNamed(pixbuf_id).ToGdkPixbuf());
}
@@ -719,7 +716,7 @@ gboolean DownloadItemGtk::OnHboxExpose(GtkWidget* widget, GdkEventExpose* e) {
int width = allocation.width - border_width * 2;
int height = allocation.height - border_width * 2;
- if (download_model_->IsDangerous()) {
+ if (download_model_.IsDangerous()) {
// Draw a simple frame around the area when we're displaying the warning.
gtk_paint_shadow(gtk_widget_get_style(widget),
gtk_widget_get_window(widget),
@@ -830,7 +827,7 @@ void DownloadItemGtk::OnDownloadOpened(DownloadItem* download) {
void DownloadItemGtk::OnClick(GtkWidget* widget) {
UMA_HISTOGRAM_LONG_TIMES("clickjacking.open_download",
base::Time::Now() - creation_time_);
- get_download()->OpenDownload();
+ download()->OpenDownload();
}
gboolean DownloadItemGtk::OnButtonPress(GtkWidget* button,
@@ -852,7 +849,7 @@ gboolean DownloadItemGtk::OnProgressAreaExpose(GtkWidget* widget,
// Create a transparent canvas.
gfx::CanvasSkiaPaint canvas(event, false);
if (complete_animation_.is_animating()) {
- if (get_download()->IsInterrupted()) {
+ if (download()->IsInterrupted()) {
download_util::PaintDownloadInterrupted(&canvas,
allocation.x, allocation.y,
complete_animation_.GetCurrentValue(),
@@ -863,11 +860,11 @@ gboolean DownloadItemGtk::OnProgressAreaExpose(GtkWidget* widget,
complete_animation_.GetCurrentValue(),
download_util::SMALL);
}
- } else if (get_download()->IsInProgress()) {
+ } else if (download()->IsInProgress()) {
download_util::PaintDownloadProgress(&canvas,
allocation.x, allocation.y,
progress_angle_,
- download_model_->PercentComplete(),
+ download_model_.PercentComplete(),
download_util::SMALL);
}
@@ -901,8 +898,7 @@ void DownloadItemGtk::ShowPopupMenu(GtkWidget* button,
complete_animation_.End();
if (!menu_.get()) {
- menu_.reset(new DownloadShelfContextMenuGtk(download_model_.get(),
- this,
+ menu_.reset(new DownloadShelfContextMenuGtk(this,
parent_shelf_->GetNavigator()));
}
menu_->Popup(button, event);
@@ -921,13 +917,13 @@ gboolean DownloadItemGtk::OnDangerousPromptExpose(GtkWidget* widget,
void DownloadItemGtk::OnDangerousAccept(GtkWidget* button) {
UMA_HISTOGRAM_LONG_TIMES("clickjacking.save_download",
base::Time::Now() - creation_time_);
- get_download()->DangerousDownloadValidated();
+ download()->DangerousDownloadValidated();
}
void DownloadItemGtk::OnDangerousDecline(GtkWidget* button) {
UMA_HISTOGRAM_LONG_TIMES("clickjacking.discard_download",
base::Time::Now() - creation_time_);
- if (get_download()->IsPartialDownload())
- get_download()->Cancel(true);
- get_download()->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
+ if (download()->IsPartialDownload())
+ download()->Cancel(true);
+ download()->Delete(DownloadItem::DELETE_DUE_TO_USER_DISCARD);
}
« no previous file with comments | « chrome/browser/ui/gtk/download/download_item_gtk.h ('k') | chrome/browser/ui/gtk/download/download_shelf_context_menu_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698