diff options
| author | avi@google.com <avi@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-19 04:48:57 +0000 |
|---|---|---|
| committer | avi@google.com <avi@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-19 04:48:57 +0000 |
| commit | 74cda952e5725e71f2294d741ecde4424e760f48 (patch) | |
| tree | 3b59d710a88a578bf054ecd4b04daeccc46ca7ce | |
| parent | 5fdb69683e1bdcb924e2f6242a6b9cc88c2ebf50 (diff) | |
| download | chromium_src-74cda952e5725e71f2294d741ecde4424e760f48.zip chromium_src-74cda952e5725e71f2294d741ecde4424e760f48.tar.gz chromium_src-74cda952e5725e71f2294d741ecde4424e760f48.tar.bz2 | |
Mac: Bounce the downloads folder (in the Dock) on completed downloads.
BUG=none
TEST=download something on SL, watch the Dock bounce. Bounce, Dock, bounce!
Review URL: http://codereview.chromium.org/404043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@32493 0039d316-1c4b-4281-b951-d872f2087c98
| -rw-r--r-- | chrome/browser/cocoa/download_item_controller.mm | 9 | ||||
| -rw-r--r-- | chrome/browser/cocoa/download_util_mac.h | 4 | ||||
| -rw-r--r-- | chrome/browser/cocoa/download_util_mac.mm | 8 |
3 files changed, 18 insertions, 3 deletions
diff --git a/chrome/browser/cocoa/download_item_controller.mm b/chrome/browser/cocoa/download_item_controller.mm index a17b202..f24a3ae 100644 --- a/chrome/browser/cocoa/download_item_controller.mm +++ b/chrome/browser/cocoa/download_item_controller.mm @@ -12,6 +12,7 @@ #import "chrome/browser/cocoa/download_item_cell.h" #include "chrome/browser/cocoa/download_item_mac.h" #import "chrome/browser/cocoa/download_shelf_controller.h" +#include "chrome/browser/cocoa/download_util_mac.h" #import "chrome/browser/cocoa/ui_localizer.h" #include "chrome/browser/download/download_item_model.h" #include "chrome/browser/download/download_shelf.h" @@ -161,10 +162,14 @@ class DownloadShelfContextMenuMac : public DownloadShelfContextMenu { } // Set the correct popup menu. - if (downloadModel->download()->state() == DownloadItem::COMPLETE) + if (downloadModel->download()->state() == DownloadItem::COMPLETE) { currentMenu_ = completeDownloadMenu_; - else + download_util::NotifySystemOfDownloadComplete( + downloadModel->download()->full_path()); + } + else { currentMenu_ = activeDownloadMenu_; + } [progressView_ setMenu:currentMenu_]; // for context menu [cell_ setStateFromDownload:downloadModel]; diff --git a/chrome/browser/cocoa/download_util_mac.h b/chrome/browser/cocoa/download_util_mac.h index 18075eb..b623d71 100644 --- a/chrome/browser/cocoa/download_util_mac.h +++ b/chrome/browser/cocoa/download_util_mac.h @@ -12,4 +12,8 @@ namespace download_util { void AddFileToPasteboard(NSPasteboard* pasteboard, const FilePath& path); +// Notify the system that a download completed. This will cause the download +// folder in the dock to bounce. +void NotifySystemOfDownloadComplete(const FilePath& path); + } // namespace download_util diff --git a/chrome/browser/cocoa/download_util_mac.mm b/chrome/browser/cocoa/download_util_mac.mm index a38487f..8eb9a62 100644 --- a/chrome/browser/cocoa/download_util_mac.mm +++ b/chrome/browser/cocoa/download_util_mac.mm @@ -15,13 +15,19 @@ namespace download_util { void AddFileToPasteboard(NSPasteboard* pasteboard, const FilePath& path) { // Write information about the file being dragged to the pasteboard. - NSString* file = base::SysWideToNSString(path.ToWStringHack()); + NSString* file = base::SysUTF8ToNSString(path.value()); NSArray* fileList = [NSArray arrayWithObject:file]; [pasteboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType] owner:nil]; [pasteboard setPropertyList:fileList forType:NSFilenamesPboardType]; } +void NotifySystemOfDownloadComplete(const FilePath& path) { + [[NSDistributedNotificationCenter defaultCenter] + postNotificationName:@"com.apple.DownloadFileFinished" + object:base::SysUTF8ToNSString(path.value())]; +} + void DragDownload(const DownloadItem* download, SkBitmap* icon, gfx::NativeView view) { |
