| OLD | NEW |
| 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/download/download_item_model.h" | 5 #include "chrome/browser/download/download_item_model.h" |
| 6 | 6 |
| 7 #include "base/i18n/number_formatting.h" | 7 #include "base/i18n/number_formatting.h" |
| 8 #include "base/i18n/rtl.h" | 8 #include "base/i18n/rtl.h" |
| 9 #include "base/string16.h" | 9 #include "base/string16.h" |
| 10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
| 11 #include "chrome/browser/download/download_item.h" | 11 #include "chrome/browser/download/download_item.h" |
| 12 #include "chrome/browser/download/save_package.h" | 12 #include "chrome/browser/download/save_package.h" |
| 13 #include "chrome/common/time_format.h" | 13 #include "chrome/common/time_format.h" |
| 14 #include "grit/generated_resources.h" | 14 #include "grit/generated_resources.h" |
| 15 #include "ui/base/l10n/l10n_util.h" | 15 #include "ui/base/l10n/l10n_util.h" |
| 16 #include "ui/base/text/bytes_formatting.h" |
| 16 | 17 |
| 17 using base::TimeDelta; | 18 using base::TimeDelta; |
| 18 | 19 |
| 19 // ----------------------------------------------------------------------------- | 20 // ----------------------------------------------------------------------------- |
| 20 // DownloadItemModel | 21 // DownloadItemModel |
| 21 | 22 |
| 22 DownloadItemModel::DownloadItemModel(DownloadItem* download) | 23 DownloadItemModel::DownloadItemModel(DownloadItem* download) |
| 23 : BaseDownloadItemModel(download) { | 24 : BaseDownloadItemModel(download) { |
| 24 } | 25 } |
| 25 | 26 |
| 26 void DownloadItemModel::CancelTask() { | 27 void DownloadItemModel::CancelTask() { |
| 27 download_->Cancel(true /* update history service */); | 28 download_->Cancel(true /* update history service */); |
| 28 } | 29 } |
| 29 | 30 |
| 30 string16 DownloadItemModel::GetStatusText() { | 31 string16 DownloadItemModel::GetStatusText() { |
| 31 int64 size = download_->received_bytes(); | 32 int64 size = download_->received_bytes(); |
| 32 int64 total = download_->total_bytes(); | 33 int64 total = download_->total_bytes(); |
| 33 | 34 |
| 34 DataUnits amount_units = GetByteDisplayUnits(total); | 35 ui::DataUnits amount_units = ui::GetByteDisplayUnits(total); |
| 35 const string16 simple_size = FormatBytes(size, amount_units, false); | 36 string16 simple_size = ui::FormatBytesWithUnits(size, amount_units, false); |
| 36 | 37 |
| 37 // In RTL locales, we render the text "size/total" in an RTL context. This | 38 // In RTL locales, we render the text "size/total" in an RTL context. This |
| 38 // is problematic since a string such as "123/456 MB" is displayed | 39 // is problematic since a string such as "123/456 MB" is displayed |
| 39 // as "MB 123/456" because it ends with an LTR run. In order to solve this, | 40 // as "MB 123/456" because it ends with an LTR run. In order to solve this, |
| 40 // we mark the total string as an LTR string if the UI layout is | 41 // we mark the total string as an LTR string if the UI layout is |
| 41 // right-to-left so that the string "456 MB" is treated as an LTR run. | 42 // right-to-left so that the string "456 MB" is treated as an LTR run. |
| 42 string16 simple_total = base::i18n::GetDisplayStringInLTRDirectionality( | 43 string16 simple_total = base::i18n::GetDisplayStringInLTRDirectionality( |
| 43 FormatBytes(total, amount_units, true)); | 44 ui::FormatBytesWithUnits(total, amount_units, true)); |
| 44 | 45 |
| 45 TimeDelta remaining; | 46 TimeDelta remaining; |
| 46 string16 simple_time; | 47 string16 simple_time; |
| 47 if (download_->IsInProgress() && download_->is_paused()) { | 48 if (download_->IsInProgress() && download_->is_paused()) { |
| 48 simple_time = l10n_util::GetStringUTF16(IDS_DOWNLOAD_PROGRESS_PAUSED); | 49 simple_time = l10n_util::GetStringUTF16(IDS_DOWNLOAD_PROGRESS_PAUSED); |
| 49 } else if (download_->TimeRemaining(&remaining)) { | 50 } else if (download_->TimeRemaining(&remaining)) { |
| 50 simple_time = download_->open_when_complete() ? | 51 simple_time = download_->open_when_complete() ? |
| 51 TimeFormat::TimeRemainingShort(remaining) : | 52 TimeFormat::TimeRemainingShort(remaining) : |
| 52 TimeFormat::TimeRemaining(remaining); | 53 TimeFormat::TimeRemaining(remaining); |
| 53 } | 54 } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 64 if (simple_time.empty()) { | 65 if (simple_time.empty()) { |
| 65 status_text = | 66 status_text = |
| 66 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_OPEN_WHEN_COMPLETE); | 67 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_OPEN_WHEN_COMPLETE); |
| 67 } else { | 68 } else { |
| 68 status_text = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_OPEN_IN, | 69 status_text = l10n_util::GetStringFUTF16(IDS_DOWNLOAD_STATUS_OPEN_IN, |
| 69 simple_time); | 70 simple_time); |
| 70 } | 71 } |
| 71 } else { | 72 } else { |
| 72 if (simple_time.empty()) { | 73 if (simple_time.empty()) { |
| 73 // Instead of displaying "0 B" we keep the "Starting..." string. | 74 // Instead of displaying "0 B" we keep the "Starting..." string. |
| 74 status_text = (size == 0) ? | 75 status_text = (size == 0) |
| 75 l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING) : | 76 ? l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING) |
| 76 FormatBytes(size, GetByteDisplayUnits(size), true); | 77 : ui::FormatBytes(size); |
| 77 } else { | 78 } else { |
| 78 status_text = l10n_util::GetStringFUTF16( | 79 status_text = l10n_util::GetStringFUTF16( |
| 79 IDS_DOWNLOAD_STATUS_IN_PROGRESS, simple_size, simple_total, | 80 IDS_DOWNLOAD_STATUS_IN_PROGRESS, simple_size, simple_total, |
| 80 simple_time); | 81 simple_time); |
| 81 } | 82 } |
| 82 } | 83 } |
| 83 break; | 84 break; |
| 84 case DownloadItem::COMPLETE: | 85 case DownloadItem::COMPLETE: |
| 85 if (download_->file_externally_removed()) { | 86 if (download_->file_externally_removed()) { |
| 86 status_text = l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED); | 87 status_text = l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 142 IDS_SAVE_PAGE_STATUS_INTERRUPTED, | 143 IDS_SAVE_PAGE_STATUS_INTERRUPTED, |
| 143 base::FormatNumber(size), | 144 base::FormatNumber(size), |
| 144 base::FormatNumber(total_size)); | 145 base::FormatNumber(total_size)); |
| 145 break; | 146 break; |
| 146 default: | 147 default: |
| 147 NOTREACHED(); | 148 NOTREACHED(); |
| 148 } | 149 } |
| 149 | 150 |
| 150 return status_text; | 151 return status_text; |
| 151 } | 152 } |
| OLD | NEW |