Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Side by Side Diff: chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.cc

Issue 14383003: Application shortcuts in Linux are now installed into a "Chrome Apps" folder. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: GetDirectoryFileContents needs the same \n hack as GetDesktopFileContents. Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h" 5 #include "chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/environment.h" 10 #include "base/environment.h"
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 void CreateApplicationShortcutsDialogGtk::OnCreateDialogResponse( 208 void CreateApplicationShortcutsDialogGtk::OnCreateDialogResponse(
209 GtkWidget* widget, int response) { 209 GtkWidget* widget, int response) {
210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); 210 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
211 211
212 if (response == GTK_RESPONSE_ACCEPT) { 212 if (response == GTK_RESPONSE_ACCEPT) {
213 ShellIntegration::ShortcutLocations creation_locations; 213 ShellIntegration::ShortcutLocations creation_locations;
214 creation_locations.on_desktop = 214 creation_locations.on_desktop =
215 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(desktop_checkbox_)); 215 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(desktop_checkbox_));
216 creation_locations.in_applications_menu = 216 creation_locations.in_applications_menu =
217 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(menu_checkbox_)); 217 gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(menu_checkbox_));
218 creation_locations.applications_menu_subdir = shortcut_menu_subdir_;
218 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE, 219 BrowserThread::PostTask(BrowserThread::FILE, FROM_HERE,
219 base::Bind(&CreateApplicationShortcutsDialogGtk::CreateDesktopShortcut, 220 base::Bind(&CreateApplicationShortcutsDialogGtk::CreateDesktopShortcut,
220 this, shortcut_info_, creation_locations)); 221 this, shortcut_info_, creation_locations));
221 222
222 OnCreatedShortcut(); 223 OnCreatedShortcut();
223 } else { 224 } else {
224 Release(); 225 Release();
225 } 226 }
226 } 227 }
227 228
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 CreateWebApplicationShortcutsDialogGtk::CreateWebApplicationShortcutsDialogGtk( 294 CreateWebApplicationShortcutsDialogGtk::CreateWebApplicationShortcutsDialogGtk(
294 GtkWindow* parent, 295 GtkWindow* parent,
295 content::WebContents* web_contents) 296 content::WebContents* web_contents)
296 : CreateApplicationShortcutsDialogGtk(parent), 297 : CreateApplicationShortcutsDialogGtk(parent),
297 web_contents_(web_contents) { 298 web_contents_(web_contents) {
298 299
299 // Get shortcut information now, it's needed for our UI. 300 // Get shortcut information now, it's needed for our UI.
300 web_app::GetShortcutInfoForTab(web_contents, &shortcut_info_); 301 web_app::GetShortcutInfoForTab(web_contents, &shortcut_info_);
301 CreateIconPixBuf(shortcut_info_.favicon); 302 CreateIconPixBuf(shortcut_info_.favicon);
302 303
304 // NOTE: Leave shortcut_menu_subdir_ blank to create URL app shortcuts in the
305 // top-level menu.
306
303 CreateDialogBox(parent); 307 CreateDialogBox(parent);
304 } 308 }
305 309
306 void CreateWebApplicationShortcutsDialogGtk::OnCreatedShortcut() { 310 void CreateWebApplicationShortcutsDialogGtk::OnCreatedShortcut() {
307 Browser* browser = chrome::FindBrowserWithWebContents(web_contents_); 311 Browser* browser = chrome::FindBrowserWithWebContents(web_contents_);
308 if (browser) 312 if (browser)
309 chrome::ConvertTabToAppWindow(browser, web_contents_); 313 chrome::ConvertTabToAppWindow(browser, web_contents_);
310 } 314 }
311 315
312 CreateChromeApplicationShortcutsDialogGtk:: 316 CreateChromeApplicationShortcutsDialogGtk::
313 CreateChromeApplicationShortcutsDialogGtk( 317 CreateChromeApplicationShortcutsDialogGtk(
314 GtkWindow* parent, 318 GtkWindow* parent,
315 Profile* profile, 319 Profile* profile,
316 const Extension* app) 320 const Extension* app)
317 : CreateApplicationShortcutsDialogGtk(parent), 321 : CreateApplicationShortcutsDialogGtk(parent),
318 app_(app), 322 app_(app),
319 profile_path_(profile->GetPath()) { 323 profile_path_(profile->GetPath()) {
320 324
325 // Place Chrome app shortcuts in the "Chrome Apps" submenu.
326 shortcut_menu_subdir_ =
327 l10n_util::GetStringUTF16(IDS_APP_SHORTCUTS_SUBDIR_NAME);
328
321 // Get shortcut information and icon now; they are needed for our UI. 329 // Get shortcut information and icon now; they are needed for our UI.
322 web_app::UpdateShortcutInfoAndIconForApp( 330 web_app::UpdateShortcutInfoAndIconForApp(
323 *app, profile, 331 *app, profile,
324 base::Bind( 332 base::Bind(
325 &CreateChromeApplicationShortcutsDialogGtk::OnShortcutInfoLoaded, 333 &CreateChromeApplicationShortcutsDialogGtk::OnShortcutInfoLoaded,
326 this)); 334 this));
327 } 335 }
328 336
329 // Called when the app's ShortcutInfo (with icon) is loaded. 337 // Called when the app's ShortcutInfo (with icon) is loaded.
330 void CreateChromeApplicationShortcutsDialogGtk::OnShortcutInfoLoaded( 338 void CreateChromeApplicationShortcutsDialogGtk::OnShortcutInfoLoaded(
(...skipping 10 matching lines...) Expand all
341 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); 349 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
342 350
343 if (web_app::CreateShortcutsOnFileThread(shortcut_info, creation_locations)) { 351 if (web_app::CreateShortcutsOnFileThread(shortcut_info, creation_locations)) {
344 Release(); 352 Release();
345 } else { 353 } else {
346 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, 354 BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
347 base::Bind(&CreateChromeApplicationShortcutsDialogGtk::ShowErrorDialog, 355 base::Bind(&CreateChromeApplicationShortcutsDialogGtk::ShowErrorDialog,
348 this)); 356 this));
349 } 357 }
350 } 358 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/gtk/create_application_shortcuts_dialog_gtk.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698