| Index: chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_tab.cc
|
| diff --git a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_tab.cc b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_tab.cc
|
| index b8706e336d1f741bc936b174718eff3de5317c02..788c501b478241c2827cd2ba6ad159716eac6c69 100644
|
| --- a/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_tab.cc
|
| +++ b/chrome/browser/ui/views/apps/app_info_dialog/app_info_summary_tab.cc
|
| @@ -13,6 +13,7 @@
|
| #include "chrome/browser/extensions/image_loader.h"
|
| #include "chrome/browser/extensions/launch_util.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| +#include "chrome/browser/ui/browser_dialogs.h"
|
| #include "chrome/browser/ui/browser_navigator.h"
|
| #include "chrome/common/chrome_switches.h"
|
| #include "chrome/common/extensions/extension_constants.h"
|
| @@ -142,6 +143,7 @@ AppInfoSummaryTab::AppInfoSummaryTab(gfx::NativeWindow parent_window,
|
| : AppInfoTab(parent_window, profile, app, close_callback),
|
| app_icon_(NULL),
|
| view_in_store_link_(NULL),
|
| + create_shortcuts_button_(NULL),
|
| uninstall_button_(NULL),
|
| launch_options_combobox_(NULL),
|
| weak_ptr_factory_(this) {
|
| @@ -260,27 +262,49 @@ AppInfoSummaryTab::AppInfoSummaryTab(gfx::NativeWindow parent_window,
|
| layout->AddView(launch_options_combobox_);
|
| }
|
|
|
| - // Add an uninstall button for apps that can be uninstalled.
|
| - if (CanUninstallApp()) {
|
| - // Create a column set specifically for the left-aligned uninstall button.
|
| - static const int kButtonsColumnSet = 2;
|
| + if (CanCreateShortcuts() || CanUninstallApp()) {
|
| + // Create a column set specifically for the left-aligned buttons at the
|
| + // bottom of the dialog.
|
| + static const int kButtonsColumnSetId = 2;
|
| views::ColumnSet* buttons_column_set =
|
| - layout->AddColumnSet(kButtonsColumnSet);
|
| + layout->AddColumnSet(kButtonsColumnSetId);
|
| + buttons_column_set->AddColumn(views::GridLayout::LEADING,
|
| + views::GridLayout::LEADING,
|
| + 0,
|
| + views::GridLayout::USE_PREF,
|
| + 0, // No fixed width
|
| + 0);
|
| + buttons_column_set->AddPaddingColumn(
|
| + 0, views::kRelatedControlHorizontalSpacing);
|
| buttons_column_set->AddColumn(views::GridLayout::LEADING,
|
| views::GridLayout::LEADING,
|
| 0,
|
| views::GridLayout::USE_PREF,
|
| 0, // No fixed width
|
| 0);
|
| -
|
| - uninstall_button_ = new views::LabelButton(
|
| - this,
|
| - l10n_util::GetStringUTF16(IDS_APPLICATION_INFO_UNINSTALL_BUTTON_TEXT));
|
| - uninstall_button_->SetStyle(views::Button::STYLE_BUTTON);
|
|
|
| layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
|
| - layout->StartRow(0, kButtonsColumnSet);
|
| - layout->AddView(uninstall_button_);
|
| + layout->StartRow(0, kButtonsColumnSetId);
|
| +
|
| + // Add a Create Shortcuts button for apps that can have shortcuts.
|
| + if (CanCreateShortcuts()) {
|
| + create_shortcuts_button_ = new views::LabelButton(
|
| + this,
|
| + l10n_util::GetStringUTF16(
|
| + IDS_APPLICATION_INFO_CREATE_SHORTCUTS_BUTTON_TEXT));
|
| + create_shortcuts_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| + layout->AddView(create_shortcuts_button_);
|
| + }
|
| +
|
| + // Add an uninstall button for apps that can be uninstalled.
|
| + if (CanUninstallApp()) {
|
| + uninstall_button_ = new views::LabelButton(
|
| + this,
|
| + l10n_util::GetStringUTF16(
|
| + IDS_APPLICATION_INFO_UNINSTALL_BUTTON_TEXT));
|
| + uninstall_button_->SetStyle(views::Button::STYLE_BUTTON);
|
| + layout->AddView(uninstall_button_);
|
| + }
|
| }
|
| }
|
|
|
| @@ -310,6 +334,8 @@ void AppInfoSummaryTab::ButtonPressed(views::Button* sender,
|
| const ui::Event& event) {
|
| if (sender == uninstall_button_) {
|
| UninstallApp();
|
| + } else if (sender == create_shortcuts_button_) {
|
| + CreateShortcuts();
|
| } else {
|
| NOTREACHED();
|
| }
|
| @@ -402,3 +428,18 @@ bool AppInfoSummaryTab::CanUninstallApp() const {
|
| ->management_policy()
|
| ->UserMayModifySettings(app_, NULL);
|
| }
|
| +
|
| +void AppInfoSummaryTab::CreateShortcuts() {
|
| + DCHECK(CanCreateShortcuts());
|
| + chrome::ShowCreateChromeAppShortcutsDialog(
|
| + parent_window_, profile_, app_, base::Closure());
|
| +}
|
| +
|
| +bool AppInfoSummaryTab::CanCreateShortcuts() const {
|
| + // ChromeOS can pin apps to the app launcher, but can't create shortcuts.
|
| +#if defined(OS_CHROMEOS)
|
| + return false;
|
| +#else
|
| + return true;
|
| +#endif
|
| +}
|
|
|