| Index: ui/app_list/cocoa/apps_search_results_model_bridge.mm
|
| diff --git a/ui/app_list/cocoa/apps_search_results_model_bridge.mm b/ui/app_list/cocoa/apps_search_results_model_bridge.mm
|
| deleted file mode 100644
|
| index 37123185ed28e6bf3c651801f977a00019f4e2c9..0000000000000000000000000000000000000000
|
| --- a/ui/app_list/cocoa/apps_search_results_model_bridge.mm
|
| +++ /dev/null
|
| @@ -1,135 +0,0 @@
|
| -// Copyright 2013 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#import "ui/app_list/cocoa/apps_search_results_model_bridge.h"
|
| -
|
| -#import <Cocoa/Cocoa.h>
|
| -
|
| -#include "base/strings/sys_string_conversions.h"
|
| -#include "ui/app_list/app_list_model.h"
|
| -#import "ui/app_list/cocoa/apps_search_results_controller.h"
|
| -#include "ui/app_list/search_result.h"
|
| -#include "ui/app_list/search_result_observer.h"
|
| -#import "ui/base/cocoa/menu_controller.h"
|
| -
|
| -namespace app_list {
|
| -
|
| -class AppsSearchResultsModelBridge::ItemObserver : public SearchResultObserver {
|
| - public:
|
| - ItemObserver(AppsSearchResultsModelBridge* bridge, size_t index)
|
| - : bridge_(bridge), row_in_view_(index) {
|
| - // Cache the result, because the results array is updated before notifying
|
| - // observers (which happens before deleting the SearchResult).
|
| - result_ = [bridge_->parent_ results]->GetItemAt(index);
|
| - result_->AddObserver(this);
|
| - }
|
| -
|
| - ~ItemObserver() override { result_->RemoveObserver(this); }
|
| -
|
| - NSMenu* GetContextMenu() {
|
| - if (!context_menu_controller_) {
|
| - ui::MenuModel* menu_model = result_->GetContextMenuModel();
|
| - if (!menu_model)
|
| - return nil;
|
| -
|
| - context_menu_controller_.reset(
|
| - [[MenuController alloc] initWithModel:menu_model
|
| - useWithPopUpButtonCell:NO]);
|
| - }
|
| - return [context_menu_controller_ menu];
|
| - }
|
| -
|
| - // SearchResultObserver overrides:
|
| - void OnIconChanged() override {
|
| - bridge_->ReloadDataForItems(row_in_view_, 1);
|
| - }
|
| - void OnActionsChanged() override {}
|
| - void OnIsInstallingChanged() override {}
|
| - void OnPercentDownloadedChanged() override {}
|
| - void OnItemInstalled() override {}
|
| - void OnItemUninstalled() override;
|
| -
|
| - private:
|
| - AppsSearchResultsModelBridge* bridge_; // Weak. Owns us.
|
| - SearchResult* result_; // Weak. Owned by AppListModel::SearchResults.
|
| - size_t row_in_view_;
|
| - base::scoped_nsobject<MenuController> context_menu_controller_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ItemObserver);
|
| -};
|
| -
|
| -void AppsSearchResultsModelBridge::ItemObserver::OnItemUninstalled() {
|
| - // Performing the search again will destroy |this|, so post a task. This also
|
| - // ensures that the AppSearchProvider has observed the uninstall before
|
| - // performing the search again, otherwise it will provide a NULL result.
|
| - [[bridge_->parent_ delegate] performSelector:@selector(redoSearch)
|
| - withObject:nil
|
| - afterDelay:0];
|
| -}
|
| -
|
| -AppsSearchResultsModelBridge::AppsSearchResultsModelBridge(
|
| - AppsSearchResultsController* results_controller)
|
| - : parent_(results_controller) {
|
| - UpdateItemObservers();
|
| - [parent_ results]->AddObserver(this);
|
| -}
|
| -
|
| -AppsSearchResultsModelBridge::~AppsSearchResultsModelBridge() {
|
| - [parent_ results]->RemoveObserver(this);
|
| -}
|
| -
|
| -NSMenu* AppsSearchResultsModelBridge::MenuForItem(size_t index) {
|
| - DCHECK_LT(index, item_observers_.size());
|
| - return item_observers_[index]->GetContextMenu();
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::UpdateItemObservers() {
|
| - DCHECK(item_observers_.empty());
|
| - const size_t itemCount = [parent_ results]->item_count();
|
| - for (size_t i = 0 ; i < itemCount; ++i)
|
| - item_observers_.push_back(new ItemObserver(this, i));
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::ReloadDataForItems(
|
| - size_t start, size_t count) const {
|
| - NSIndexSet* column = [NSIndexSet indexSetWithIndex:0];
|
| - NSIndexSet* rows =
|
| - [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(start, count)];
|
| - [[parent_ tableView] reloadDataForRowIndexes:rows
|
| - columnIndexes:column];
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::ListItemsAdded(
|
| - size_t start, size_t count) {
|
| - item_observers_.clear();
|
| - if (start == static_cast<size_t>([[parent_ tableView] numberOfRows]))
|
| - [[parent_ tableView] noteNumberOfRowsChanged];
|
| - else
|
| - [[parent_ tableView] reloadData];
|
| - UpdateItemObservers();
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::ListItemsRemoved(
|
| - size_t start, size_t count) {
|
| - item_observers_.clear();
|
| - if (start == [parent_ results]->item_count())
|
| - [[parent_ tableView] noteNumberOfRowsChanged];
|
| - else
|
| - [[parent_ tableView] reloadData];
|
| - UpdateItemObservers();
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::ListItemMoved(
|
| - size_t index, size_t target_index) {
|
| - NOTREACHED();
|
| -}
|
| -
|
| -void AppsSearchResultsModelBridge::ListItemsChanged(
|
| - size_t start, size_t count) {
|
| - item_observers_.clear();
|
| - ReloadDataForItems(start, count);
|
| - UpdateItemObservers();
|
| -}
|
| -
|
| -} // namespace app_list
|
|
|