summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-02 18:48:32 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-02 18:48:32 +0000
commit0b972b75a6379dc2d20272643336e0033249d1bd (patch)
tree45643fc17d7cb31d313461ec4e30b617089d97ca
parentc2bf8af68fa39318e91e13434295c605c5aa1d51 (diff)
downloadchromium_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.cc1
-rw-r--r--ui/app_list/cocoa/apps_search_results_model_bridge.mm1
-rw-r--r--ui/app_list/search_result.cc6
-rw-r--r--ui/app_list/search_result.h2
-rw-r--r--ui/app_list/search_result_list_view_delegate.h3
-rw-r--r--ui/app_list/search_result_observer.h3
-rw-r--r--ui/app_list/views/app_list_main_view.cc6
-rw-r--r--ui/app_list/views/app_list_main_view.h3
-rw-r--r--ui/app_list/views/search_result_list_view.cc5
-rw-r--r--ui/app_list/views/search_result_list_view.h1
-rw-r--r--ui/app_list/views/search_result_view.cc4
-rw-r--r--ui/app_list/views/search_result_view.h1
-rw-r--r--ui/app_list/views/search_result_view_delegate.h3
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() {}
};