| Index: chrome/browser/cocoa/wrench_menu_controller.mm
|
| diff --git a/chrome/browser/cocoa/wrench_menu_controller.mm b/chrome/browser/cocoa/wrench_menu_controller.mm
|
| index 11d40a2b6e3eb43576352bc24715d8db1ff94042..49661570aa3749a517e05328756cc34702a45ba3 100644
|
| --- a/chrome/browser/cocoa/wrench_menu_controller.mm
|
| +++ b/chrome/browser/cocoa/wrench_menu_controller.mm
|
| @@ -63,11 +63,6 @@ class ZoomLevelObserver : public NotificationObserver {
|
| return self;
|
| }
|
|
|
| -- (void)setWrenchMenuModel:(WrenchMenuModel*)model {
|
| - wrench_model_ = model;
|
| - [self setModel:model->menu_model()];
|
| -}
|
| -
|
| - (void)addItemToMenu:(NSMenu*)menu
|
| atIndex:(NSInteger)index
|
| fromModel:(menus::MenuModel*)model
|
| @@ -171,7 +166,37 @@ class ZoomLevelObserver : public NotificationObserver {
|
| }
|
|
|
| - (WrenchMenuModel*)wrenchMenuModel {
|
| - return wrench_model_;
|
| + return static_cast<WrenchMenuModel*>(model_);
|
| +}
|
| +
|
| +// Inserts the update available notification menu item.
|
| +- (void)insertUpdateAvailableItem {
|
| + WrenchMenuModel* model = [self wrenchMenuModel];
|
| + // Don't insert the item multiple times.
|
| + if (!model || model->GetIndexOfCommandId(IDC_ABOUT) != -1)
|
| + return;
|
| +
|
| + // Update the model manually because the model is static because other
|
| + // platforms always have an About item.
|
| + int index = model->GetIndexOfCommandId(IDC_OPTIONS) + 1;
|
| + model->InsertItemAt(index, IDC_ABOUT,
|
| + l10n_util::GetStringFUTF16(IDS_ABOUT,
|
| + l10n_util::GetStringUTF16(IDS_PRODUCT_NAME)));
|
| +
|
| + // The model does not broadcast change notifications to its delegate, so
|
| + // insert the actual menu item ourselves.
|
| + NSInteger menuIndex = [[self menu] indexOfItemWithTag:index];
|
| + [self addItemToMenu:[self menu]
|
| + atIndex:menuIndex
|
| + fromModel:model
|
| + modelIndex:index];
|
| +
|
| + // Since the tag of each menu item is the index within the model, they need
|
| + // to be adjusted after insertion.
|
| + for (NSInteger i = menuIndex + 1; i < [[self menu] numberOfItems]; ++i) {
|
| + NSMenuItem* item = [[self menu] itemAtIndex:i];
|
| + [item setTag:[item tag] + 1];
|
| + }
|
| }
|
|
|
| // Fit the localized strings into the Cut/Copy/Paste control, then resize the
|
|
|