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

Unified Diff: ui/app_list/cocoa/apps_search_results_model_bridge.mm

Issue 645853013: Remove some platform specific stuff from views. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « ui/app_list/cocoa/apps_search_results_model_bridge.h ('k') | ui/app_list/cocoa/item_drag_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « ui/app_list/cocoa/apps_search_results_model_bridge.h ('k') | ui/app_list/cocoa/item_drag_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698