diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-02 18:48:32 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-02 18:48:32 +0000 |
commit | 0b972b75a6379dc2d20272643336e0033249d1bd (patch) | |
tree | 45643fc17d7cb31d313461ec4e30b617089d97ca | |
parent | c2bf8af68fa39318e91e13434295c605c5aa1d51 (diff) | |
download | chromium_src-0b972b75a6379dc2d20272643336e0033249d1bd.zip chromium_src-0b972b75a6379dc2d20272643336e0033249d1bd.tar.gz chromium_src-0b972b75a6379dc2d20272643336e0033249d1bd.tar.bz2 |
app_list: Show apps grid after installing from cws result.
BUG=259517
Review URL: https://chromiumcodereview.appspot.com/21592003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@215331 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/ui/app_list/search/webstore_result.cc | 1 | ||||
-rw-r--r-- | ui/app_list/cocoa/apps_search_results_model_bridge.mm | 1 | ||||
-rw-r--r-- | ui/app_list/search_result.cc | 6 | ||||
-rw-r--r-- | ui/app_list/search_result.h | 2 | ||||
-rw-r--r-- | ui/app_list/search_result_list_view_delegate.h | 3 | ||||
-rw-r--r-- | ui/app_list/search_result_observer.h | 3 | ||||
-rw-r--r-- | ui/app_list/views/app_list_main_view.cc | 6 | ||||
-rw-r--r-- | ui/app_list/views/app_list_main_view.h | 3 | ||||
-rw-r--r-- | ui/app_list/views/search_result_list_view.cc | 5 | ||||
-rw-r--r-- | ui/app_list/views/search_result_list_view.h | 1 | ||||
-rw-r--r-- | ui/app_list/views/search_result_view.cc | 4 | ||||
-rw-r--r-- | ui/app_list/views/search_result_view.h | 1 | ||||
-rw-r--r-- | ui/app_list/views/search_result_view_delegate.h | 3 |
13 files changed, 39 insertions, 0 deletions
diff --git a/chrome/browser/ui/app_list/search/webstore_result.cc b/chrome/browser/ui/app_list/search/webstore_result.cc index f2f36de..87812a1 100644 --- a/chrome/browser/ui/app_list/search/webstore_result.cc +++ b/chrome/browser/ui/app_list/search/webstore_result.cc @@ -183,6 +183,7 @@ void WebstoreResult::OnExtensionInstalled( SetIsInstalling(false); UpdateActions(); + NotifyItemInstalled(); } void WebstoreResult::OnExtensionLoaded( diff --git a/ui/app_list/cocoa/apps_search_results_model_bridge.mm b/ui/app_list/cocoa/apps_search_results_model_bridge.mm index fa9c23d..41e3fd6 100644 --- a/ui/app_list/cocoa/apps_search_results_model_bridge.mm +++ b/ui/app_list/cocoa/apps_search_results_model_bridge.mm @@ -43,6 +43,7 @@ class AppsSearchResultsModelBridge::ItemObserver : public SearchResultObserver { virtual void OnActionsChanged() OVERRIDE {} virtual void OnIsInstallingChanged() OVERRIDE {} virtual void OnPercentDownloadedChanged() OVERRIDE {} + virtual void OnItemInstalled() OVERRIDE {} private: AppsSearchResultsModelBridge* bridge_; // Weak. Owns us. diff --git a/ui/app_list/search_result.cc b/ui/app_list/search_result.cc index a624203..ab40d31 100644 --- a/ui/app_list/search_result.cc +++ b/ui/app_list/search_result.cc @@ -62,6 +62,12 @@ void SearchResult::SetPercentDownloaded(int percent_downloaded) { OnPercentDownloadedChanged()); } +void SearchResult::NotifyItemInstalled() { + FOR_EACH_OBSERVER(SearchResultObserver, + observers_, + OnItemInstalled()); +} + void SearchResult::AddObserver(SearchResultObserver* observer) { observers_.AddObserver(observer); } diff --git a/ui/app_list/search_result.h b/ui/app_list/search_result.h index b4fdd33..f2e94b2 100644 --- a/ui/app_list/search_result.h +++ b/ui/app_list/search_result.h @@ -100,6 +100,8 @@ class APP_LIST_EXPORT SearchResult { int percent_downloaded() const { return percent_downloaded_; } void SetPercentDownloaded(int percent_downloaded); + void NotifyItemInstalled(); + void AddObserver(SearchResultObserver* observer); void RemoveObserver(SearchResultObserver* observer); diff --git a/ui/app_list/search_result_list_view_delegate.h b/ui/app_list/search_result_list_view_delegate.h index 097c612..7b64448 100644 --- a/ui/app_list/search_result_list_view_delegate.h +++ b/ui/app_list/search_result_list_view_delegate.h @@ -25,6 +25,9 @@ class APP_LIST_EXPORT SearchResultListViewDelegate { int action_index, int event_flags) = 0; + // Called when the app represented by |result| is installed. + virtual void OnResultInstalled(SearchResult* result) = 0; + protected: virtual ~SearchResultListViewDelegate() {} }; diff --git a/ui/app_list/search_result_observer.h b/ui/app_list/search_result_observer.h index 4082629..6a2b1a5 100644 --- a/ui/app_list/search_result_observer.h +++ b/ui/app_list/search_result_observer.h @@ -23,6 +23,9 @@ class APP_LIST_EXPORT SearchResultObserver { // Invoked when the download percentage has changed. virtual void OnPercentDownloadedChanged() = 0; + // Invoked when the item represented by the SearchResult is installed. + virtual void OnItemInstalled() = 0; + protected: virtual ~SearchResultObserver() {} }; diff --git a/ui/app_list/views/app_list_main_view.cc b/ui/app_list/views/app_list_main_view.cc index d3791ad..f574cd1 100644 --- a/ui/app_list/views/app_list_main_view.cc +++ b/ui/app_list/views/app_list_main_view.cc @@ -226,4 +226,10 @@ void AppListMainView::InvokeResultAction(SearchResult* result, delegate_->InvokeSearchResultAction(result, action_index, event_flags); } +void AppListMainView::OnResultInstalled(SearchResult* result) { + // Clears the search to show the apps grid. The last installed app + // should be highlighted and made visible already. + search_box_view_->ClearSearch(); +} + } // namespace app_list diff --git a/ui/app_list/views/app_list_main_view.h b/ui/app_list/views/app_list_main_view.h index 0fd7761..dc73e8b 100644 --- a/ui/app_list/views/app_list_main_view.h +++ b/ui/app_list/views/app_list_main_view.h @@ -5,6 +5,8 @@ #ifndef UI_APP_LIST_VIEWS_APP_LIST_MAIN_VIEW_H_ #define UI_APP_LIST_VIEWS_APP_LIST_MAIN_VIEW_H_ +#include <string> + #include "base/memory/scoped_vector.h" #include "base/timer/timer.h" #include "ui/app_list/apps_grid_view_delegate.h" @@ -82,6 +84,7 @@ class AppListMainView : public views::View, virtual void InvokeResultAction(SearchResult* result, int action_index, int event_flags) OVERRIDE; + virtual void OnResultInstalled(SearchResult* result) OVERRIDE; AppListViewDelegate* delegate_; AppListModel* model_; diff --git a/ui/app_list/views/search_result_list_view.cc b/ui/app_list/views/search_result_list_view.cc index b57f82f..48c9157 100644 --- a/ui/app_list/views/search_result_list_view.cc +++ b/ui/app_list/views/search_result_list_view.cc @@ -168,4 +168,9 @@ void SearchResultListView::SearchResultActionActivated(SearchResultView* view, } } +void SearchResultListView::OnSearchResultInstalled(SearchResultView* view) { + if (delegate_ && view->result()) + delegate_->OnResultInstalled(view->result()); +} + } // namespace app_list diff --git a/ui/app_list/views/search_result_list_view.h b/ui/app_list/views/search_result_list_view.h index 36d950c..d6b0396 100644 --- a/ui/app_list/views/search_result_list_view.h +++ b/ui/app_list/views/search_result_list_view.h @@ -58,6 +58,7 @@ class SearchResultListView : public views::View, virtual void SearchResultActionActivated(SearchResultView* view, size_t action_index, int event_flags) OVERRIDE; + virtual void OnSearchResultInstalled(SearchResultView* view) OVERRIDE; SearchResultListViewDelegate* delegate_; // Not owned. AppListModel::SearchResults* results_; // Owned by AppListModel. diff --git a/ui/app_list/views/search_result_view.cc b/ui/app_list/views/search_result_view.cc index e14c843..0361591 100644 --- a/ui/app_list/views/search_result_view.cc +++ b/ui/app_list/views/search_result_view.cc @@ -275,6 +275,10 @@ void SearchResultView::OnPercentDownloadedChanged() { progress_bar_->SetValue(result_->percent_downloaded() / 100.0); } +void SearchResultView::OnItemInstalled() { + delegate_->OnSearchResultInstalled(this); +} + void SearchResultView::OnSearchResultActionActivated(size_t index, int event_flags) { DCHECK(result_); diff --git a/ui/app_list/views/search_result_view.h b/ui/app_list/views/search_result_view.h index a694bde..4d830e7 100644 --- a/ui/app_list/views/search_result_view.h +++ b/ui/app_list/views/search_result_view.h @@ -79,6 +79,7 @@ class SearchResultView : public views::CustomButton, virtual void OnActionsChanged() OVERRIDE; virtual void OnIsInstallingChanged() OVERRIDE; virtual void OnPercentDownloadedChanged() OVERRIDE; + virtual void OnItemInstalled() OVERRIDE; // SearchResultActionsViewDelegate overrides: virtual void OnSearchResultActionActivated(size_t index, diff --git a/ui/app_list/views/search_result_view_delegate.h b/ui/app_list/views/search_result_view_delegate.h index 079ff44..16b87ef 100644 --- a/ui/app_list/views/search_result_view_delegate.h +++ b/ui/app_list/views/search_result_view_delegate.h @@ -21,6 +21,9 @@ class SearchResultViewDelegate { size_t action_index, int event_flags) = 0; + // Called when the app represented by the search result is installed. + virtual void OnSearchResultInstalled(SearchResultView* view) = 0; + protected: virtual ~SearchResultViewDelegate() {} }; |