| Index: chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
|
| index 5183b2d4e0d10453cb15ab31cd15733073650532..c52e0a95f0c28c04581c497a67a6f1f4f4622b8a 100644
|
| --- a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
|
| +++ b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
|
| @@ -4,10 +4,12 @@
|
|
|
| #import "chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.h"
|
|
|
| +#include "base/sys_string_conversions.h"
|
| #import "chrome/browser/ui/cocoa/flipped_view.h"
|
| #import "chrome/browser/ui/cocoa/hover_close_button.h"
|
| #import "chrome/browser/ui/cocoa/intents/web_intent_message_view_controller.h"
|
| #import "chrome/browser/ui/cocoa/intents/web_intent_picker_cocoa2.h"
|
| +#import "chrome/browser/ui/cocoa/intents/web_intent_progress_view_controller.h"
|
| #import "chrome/browser/ui/cocoa/key_equivalent_constants.h"
|
| #include "chrome/browser/ui/constrained_window.h"
|
| #include "chrome/browser/ui/intents/web_intent_picker_delegate.h"
|
| @@ -26,7 +28,9 @@
|
| - (WebIntentPickerState)newPickerState;
|
|
|
| // Update the various views to match changes to the picker model.
|
| +- (void)updateWaiting;
|
| - (void)updateNoService;
|
| +- (void)updateInstallingExtension;
|
|
|
| - (void)onCloseButton:(id)sender;
|
| - (void)cancelOperation:(id)sender;
|
| @@ -51,7 +55,8 @@
|
|
|
| messageViewController_.reset(
|
| [[WebIntentMessageViewController alloc] init]);
|
| -
|
| + progressViewController_.reset(
|
| + [[WebIntentProgressViewController alloc] init]);
|
| }
|
| return self;
|
| }
|
| @@ -68,6 +73,10 @@
|
| return messageViewController_;
|
| }
|
|
|
| +- (WebIntentProgressViewController*)progressViewController {
|
| + return progressViewController_;
|
| +}
|
| +
|
| - (void)update {
|
| WebIntentPickerState newState = [self newPickerState];
|
| NSView* currentView = [[self currentViewController] view];
|
| @@ -83,9 +92,15 @@
|
| }
|
|
|
| switch (state_) {
|
| + case PICKER_STATE_WAITING:
|
| + [self updateWaiting];
|
| + break;
|
| case PICKER_STATE_NO_SERVICE:
|
| [self updateNoService];
|
| break;
|
| + case PICKER_STATE_INSTALLING_EXTENSION:
|
| + [self updateInstallingExtension];
|
| + break;
|
| }
|
|
|
| [self performLayout];
|
| @@ -130,16 +145,32 @@
|
|
|
| - (NSViewController<WebIntentViewController>*)currentViewController {
|
| switch (state_) {
|
| + case PICKER_STATE_WAITING:
|
| + return progressViewController_;
|
| case PICKER_STATE_NO_SERVICE:
|
| return messageViewController_;
|
| + case PICKER_STATE_INSTALLING_EXTENSION:
|
| + return progressViewController_;
|
| }
|
| return nil;
|
| }
|
|
|
| - (WebIntentPickerState)newPickerState {
|
| + WebIntentPickerModel* model = picker_->model();
|
| + if (!model->pending_extension_install_id().empty())
|
| + return PICKER_STATE_INSTALLING_EXTENSION;
|
| + if (model->IsWaitingForSuggestions())
|
| + return PICKER_STATE_WAITING;
|
| return PICKER_STATE_NO_SERVICE;
|
| }
|
|
|
| +- (void)updateWaiting {
|
| + NSString* message = l10n_util::GetNSStringWithFixup(
|
| + IDS_INTENT_PICKER_WAIT_FOR_CWS);
|
| + [progressViewController_ setMessage:message];
|
| + [progressViewController_ setPercentDone:-1];
|
| +}
|
| +
|
| - (void)updateNoService {
|
| [messageViewController_ setTitle:l10n_util::GetNSStringWithFixup(
|
| IDS_INTENT_PICKER_NO_SERVICES_TITLE)];
|
| @@ -147,6 +178,21 @@
|
| IDS_INTENT_PICKER_NO_SERVICES)];
|
| }
|
|
|
| +- (void)updateInstallingExtension {
|
| + WebIntentPickerModel* model = picker_->model();
|
| + const WebIntentPickerModel::SuggestedExtension* extension =
|
| + model->GetSuggestedExtensionWithId(
|
| + model->pending_extension_install_id());
|
| + if (!extension)
|
| + return;
|
| + [progressViewController_ setTitle:
|
| + base::SysUTF16ToNSString(extension->title)];
|
| + [progressViewController_ setMessage:base::SysUTF16ToNSString(
|
| + model->pending_extension_install_status_string())];
|
| + [progressViewController_ setPercentDone:
|
| + model->pending_extension_install_download_progress()];
|
| +}
|
| +
|
| - (void)onCloseButton:(id)sender {
|
| picker_->delegate()->OnUserCancelledPickerDialog();
|
| }
|
|
|