Index: chrome/browser/ui/views/web_intent_picker_views.cc |
diff --git a/chrome/browser/ui/views/web_intent_picker_views.cc b/chrome/browser/ui/views/web_intent_picker_views.cc |
index a17afd610d2f747a700a4b1247c72532584f8973..4c5d875277746648eee112233a2b32e7b6e3cebb 100644 |
--- a/chrome/browser/ui/views/web_intent_picker_views.cc |
+++ b/chrome/browser/ui/views/web_intent_picker_views.cc |
@@ -689,6 +689,7 @@ class WebIntentPickerViews : public views::ButtonListener, |
virtual void OnExtensionInstallSuccess(const std::string& id) OVERRIDE; |
virtual void OnExtensionInstallFailure(const std::string& id) OVERRIDE; |
virtual void OnInlineDispositionAutoResize(const gfx::Size& size) OVERRIDE; |
+ virtual void OnPendingAsyncCompleted() OVERRIDE; |
virtual void OnInlineDispositionWebContentsLoaded( |
content::WebContents* web_contents) OVERRIDE; |
@@ -892,6 +893,54 @@ void WebIntentPickerViews::OnInlineDispositionAutoResize( |
SizeToContents(); |
} |
+void WebIntentPickerViews::OnPendingAsyncCompleted() { |
+ // Requests to both the WebIntentService and the Chrome Web Store have |
+ // completed. If there are any services, installed or suggested, there's |
+ // nothing to do. |
+ if (model_->GetInstalledServiceCount() || |
+ model_->GetSuggestedExtensionCount()) |
+ return; |
+ |
+ // If there are no installed or suggested services at this point, |
+ // inform the user about it. |
+ contents_->RemoveAllChildViews(true); |
+ more_suggestions_link_ = NULL; |
+ |
+ views::GridLayout* grid_layout = new views::GridLayout(contents_); |
+ contents_->SetLayoutManager(grid_layout); |
+ |
+ grid_layout->SetInsets(kContentAreaBorder, kContentAreaBorder, |
+ kContentAreaBorder, kContentAreaBorder); |
+ views::ColumnSet* main_cs = grid_layout->AddColumnSet(0); |
+ main_cs->AddColumn(GridLayout::FILL, GridLayout::LEADING, 1, |
+ GridLayout::USE_PREF, 0, 0); |
+ |
+ ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
+ |
+ grid_layout->StartRow(0, 0); |
+ views::Label* header = new views::Label(); |
+ header->SetVisible(true); |
+ header->SetMultiLine(false); |
Peter Kasting
2012/07/11 23:47:47
Nit: Isn't multiline=false the default? I thought
groby-ooo-7-16
2012/07/12 00:00:38
Yes, it is - thanks for pointing it out.
On 2012/0
|
+ header->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
+ header->SetFont(rb.GetFont(ui::ResourceBundle::MediumFont)); |
+ header->SetText(l10n_util::GetStringUTF16( |
+ IDS_INTENT_PICKER_NO_SERVICES_TITLE)); |
+ grid_layout->AddView(header); |
+ |
+ grid_layout->AddPaddingRow(0, views::kRelatedControlVerticalSpacing); |
+ |
+ grid_layout->StartRow(0, 0); |
+ views::Label* body = new views::Label(); |
+ body->SetVisible(true); |
+ body->SetMultiLine(true); |
+ body->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
+ body->SetText(l10n_util::GetStringUTF16(IDS_INTENT_PICKER_NO_SERVICES)); |
+ grid_layout->AddView(body); |
+ |
+ contents_->Layout(); |
+ SizeToContents(); |
+} |
+ |
void WebIntentPickerViews::OnInlineDispositionWebContentsLoaded( |
content::WebContents* web_contents) { |
if (displaying_web_contents_) |