diff options
author | dantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 23:55:41 +0000 |
---|---|---|
committer | dantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-01 23:55:41 +0000 |
commit | e4875b32c749274333c1381a5a25c5a405d9cc81 (patch) | |
tree | 2ee0d4687f30f3aac6dff38be2a1c2d39d9619d3 /chrome/browser/gtk | |
parent | 4876a8fe9dc841182200196aaf9642f7b8cff538 (diff) | |
download | chromium_src-e4875b32c749274333c1381a5a25c5a405d9cc81.zip chromium_src-e4875b32c749274333c1381a5a25c5a405d9cc81.tar.gz chromium_src-e4875b32c749274333c1381a5a25c5a405d9cc81.tar.bz2 |
Remove the old 'customize sync' panel from win/mac/linux. And a little bit of leftover references to "merge and sync."
BUG=48125
TEST=Start up sync, change data types, stop sync, etc, nothing should break.
Review URL: http://codereview.chromium.org/2843019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51462 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk')
-rw-r--r-- | chrome/browser/gtk/options/content_page_gtk.cc | 3 | ||||
-rw-r--r-- | chrome/browser/gtk/options/customize_sync_window_gtk.cc | 305 | ||||
-rw-r--r-- | chrome/browser/gtk/options/customize_sync_window_gtk.h | 14 |
3 files changed, 1 insertions, 321 deletions
diff --git a/chrome/browser/gtk/options/content_page_gtk.cc b/chrome/browser/gtk/options/content_page_gtk.cc index 0642e9e..3267d84 100644 --- a/chrome/browser/gtk/options/content_page_gtk.cc +++ b/chrome/browser/gtk/options/content_page_gtk.cc @@ -18,7 +18,6 @@ #include "chrome/browser/gtk/gtk_theme_provider.h" #include "chrome/browser/gtk/gtk_util.h" #include "chrome/browser/gtk/import_dialog_gtk.h" -#include "chrome/browser/gtk/options/customize_sync_window_gtk.h" #include "chrome/browser/gtk/options/options_layout_gtk.h" #include "chrome/browser/gtk/options/passwords_exceptions_window_gtk.h" #include "chrome/browser/importer/importer_data_types.h" @@ -605,7 +604,7 @@ void ContentPageGtk::OnSyncStartStopButtonClicked(GtkWidget* widget) { void ContentPageGtk::OnSyncCustomizeButtonClicked(GtkWidget* widget) { // sync_customize_button_ should be invisible if sync is not yet set up. DCHECK(sync_service_->HasSyncSetupCompleted()); - ShowCustomizeSyncWindow(profile()); + sync_service_->ShowChooseDataTypes(); } void ContentPageGtk::OnSyncActionLinkClicked(GtkWidget* widget) { diff --git a/chrome/browser/gtk/options/customize_sync_window_gtk.cc b/chrome/browser/gtk/options/customize_sync_window_gtk.cc deleted file mode 100644 index 3f10c85..0000000 --- a/chrome/browser/gtk/options/customize_sync_window_gtk.cc +++ /dev/null @@ -1,305 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "chrome/browser/gtk/options/customize_sync_window_gtk.h" - -#include <gtk/gtk.h> - -#include <string> - -#include "app/gtk_signal.h" -#include "app/l10n_util.h" -#include "base/message_loop.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/gtk/accessible_widget_helper_gtk.h" -#include "chrome/browser/gtk/gtk_util.h" -#include "chrome/browser/options_window.h" -#include "chrome/browser/pref_service.h" -#include "chrome/browser/profile.h" -#include "chrome/browser/sync/glue/data_type_controller.h" -#include "chrome/browser/sync/profile_sync_service.h" -#include "chrome/common/pref_names.h" -#include "grit/chromium_strings.h" -#include "grit/generated_resources.h" -#include "grit/locale_settings.h" - -/////////////////////////////////////////////////////////////////////////////// -// CustomizeSyncWindowGtk -// -// The contents of the Customize Sync dialog window. - -class CustomizeSyncWindowGtk { - public: - explicit CustomizeSyncWindowGtk(Profile* profile); - ~CustomizeSyncWindowGtk(); - - void Show(); - bool ClickOk(); - void ClickCancel(); - - private: - // The pixel width we wrap labels at. - static const int kWrapWidth = 475; - - GtkWidget* AddCheckbox(GtkWidget* parent, int label_id, bool checked); - bool Accept(); - - static void OnWindowDestroy(GtkWidget* widget, - CustomizeSyncWindowGtk* window); - - static void OnResponse(GtkDialog* dialog, gint response_id, - CustomizeSyncWindowGtk* customize_sync_window); - - CHROMEGTK_CALLBACK_0(CustomizeSyncWindowGtk, void, OnCheckboxClicked); - - // Utility methods to safely determine the state of optional checkboxes. - static bool BoxChecked(GtkWidget* check_box) { - return check_box && - gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(check_box)); - } - bool BookmarksChecked() const { return BoxChecked(bookmarks_check_box_); } - bool PreferencesChecked() const { return BoxChecked(preferences_check_box_); } - bool ThemesChecked() const { return BoxChecked(themes_check_box_); } - bool ExtensionsChecked() const { return BoxChecked(extensions_check_box_); } - bool AutofillChecked() const { return BoxChecked(autofill_check_box_); } - bool TypedUrlsChecked() const { return BoxChecked(typed_urls_check_box_); } - - // The customize sync dialog. - GtkWidget* dialog_; - - Profile* profile_; - - GtkWidget* description_label_; - GtkWidget* bookmarks_check_box_; - GtkWidget* preferences_check_box_; - GtkWidget* themes_check_box_; - GtkWidget* extensions_check_box_; - GtkWidget* autofill_check_box_; - GtkWidget* typed_urls_check_box_; - - // Helper object to manage accessibility metadata. - scoped_ptr<AccessibleWidgetHelper> accessible_widget_helper_; - - DISALLOW_COPY_AND_ASSIGN(CustomizeSyncWindowGtk); -}; - -// The singleton customize sync window object. -static CustomizeSyncWindowGtk* customize_sync_window = NULL; - -/////////////////////////////////////////////////////////////////////////////// -// CustomizeSyncWindowGtk, public: - -CustomizeSyncWindowGtk::CustomizeSyncWindowGtk(Profile* profile) - : profile_(profile), - description_label_(NULL), - bookmarks_check_box_(NULL), - preferences_check_box_(NULL), - themes_check_box_(NULL), - extensions_check_box_(NULL), - autofill_check_box_(NULL), - typed_urls_check_box_(NULL) { - syncable::ModelTypeSet registered_types; - profile_->GetProfileSyncService()->GetRegisteredDataTypes(®istered_types); - syncable::ModelTypeSet preferred_types; - profile_->GetProfileSyncService()->GetPreferredDataTypes(&preferred_types); - - std::string dialog_name = l10n_util::GetStringUTF8( - IDS_CUSTOMIZE_SYNC_WINDOW_TITLE); - dialog_ = gtk_dialog_new_with_buttons( - dialog_name.c_str(), - // Customize sync window is shared between all browser windows. - NULL, - // Non-modal. - GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, - GTK_RESPONSE_OK, - NULL); - gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), - gtk_util::kContentAreaSpacing); - - accessible_widget_helper_.reset(new AccessibleWidgetHelper( - dialog_, profile)); - accessible_widget_helper_->SendOpenWindowNotification(dialog_name); - - GtkWidget* vbox = gtk_vbox_new(FALSE, gtk_util::kControlSpacing); - - description_label_ = gtk_label_new(l10n_util::GetStringUTF8( - IDS_CUSTOMIZE_SYNC_DESCRIPTION).c_str()); - gtk_label_set_line_wrap(GTK_LABEL(description_label_), TRUE); - gtk_widget_set_size_request(description_label_, kWrapWidth, -1); - gtk_box_pack_start(GTK_BOX(vbox), description_label_, FALSE, FALSE, 0); - - accessible_widget_helper_->SetWidgetName(description_label_, - IDS_CUSTOMIZE_SYNC_DESCRIPTION); - - DCHECK(registered_types.count(syncable::BOOKMARKS)); - bool bookmarks_checked = preferred_types.count(syncable::BOOKMARKS) != 0; - bookmarks_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_BOOKMARKS, - bookmarks_checked); - - if (registered_types.count(syncable::PREFERENCES)) { - bool prefs_checked = preferred_types.count(syncable::PREFERENCES) != 0; - preferences_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_PREFERENCES, - prefs_checked); - } - - if (registered_types.count(syncable::THEMES)) { - bool themes_checked = preferred_types.count(syncable::THEMES) != 0; - themes_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_THEMES, - themes_checked); - } - - if (registered_types.count(syncable::EXTENSIONS)) { - bool extensions_checked = preferred_types.count(syncable::EXTENSIONS) != 0; - extensions_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_EXTENSIONS, - extensions_checked); - } - - if (registered_types.count(syncable::AUTOFILL)) { - bool autofill_checked = preferred_types.count(syncable::AUTOFILL) != 0; - autofill_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_AUTOFILL, - autofill_checked); - } - - if (registered_types.count(syncable::TYPED_URLS)) { - bool typed_urls_checked = preferred_types.count(syncable::TYPED_URLS) != 0; - typed_urls_check_box_ = AddCheckbox(vbox, IDS_SYNC_DATATYPE_TYPED_URLS, - typed_urls_checked); - } - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_)->vbox), vbox, FALSE, FALSE, 0); - - gtk_widget_realize(dialog_); - gtk_util::SetWindowSizeFromResources(GTK_WINDOW(dialog_), - IDS_CUSTOMIZE_SYNC_DIALOG_WIDTH_CHARS, - IDS_CUSTOMIZE_SYNC_DIALOG_HEIGHT_LINES, - true); - - g_signal_connect(dialog_, "response", G_CALLBACK(OnResponse), this); - g_signal_connect(dialog_, "destroy", G_CALLBACK(OnWindowDestroy), this); - - gtk_util::ShowDialog(dialog_); -} - -CustomizeSyncWindowGtk::~CustomizeSyncWindowGtk() { -} - -void CustomizeSyncWindowGtk::Show() { - // Bring options window to front if it already existed and isn't already - // in front - gtk_util::PresentWindow(dialog_, 0); -} - -bool CustomizeSyncWindowGtk::ClickOk() { - - if (BookmarksChecked() || PreferencesChecked() || ThemesChecked() || - ExtensionsChecked() || AutofillChecked() || TypedUrlsChecked()) { - Accept(); - gtk_widget_destroy(GTK_WIDGET(dialog_)); - return true; - } else { - // show the user that something's wrong with this dialog (not perfect, but - // a temporary fix) - gtk_util::PresentWindow(dialog_, 0); - return false; - } -} - -void CustomizeSyncWindowGtk::ClickCancel() { - gtk_widget_destroy(GTK_WIDGET(dialog_)); -} - -/////////////////////////////////////////////////////////////////////////////// -// CustomizeSyncWindowGtk, private: - -GtkWidget* CustomizeSyncWindowGtk::AddCheckbox(GtkWidget* parent, int label_id, - bool checked) { - - GtkWidget* checkbox = gtk_check_button_new_with_label( - l10n_util::GetStringUTF8(label_id).c_str()); - - gtk_box_pack_start(GTK_BOX(parent), checkbox, FALSE, FALSE, 0); - accessible_widget_helper_->SetWidgetName(checkbox, label_id); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbox), checked); - - g_signal_connect(checkbox, "clicked", G_CALLBACK(OnCheckboxClickedThunk), - this); - - return checkbox; -} - -bool CustomizeSyncWindowGtk::Accept() { - syncable::ModelTypeSet preferred_types; - - if (BookmarksChecked()) - preferred_types.insert(syncable::BOOKMARKS); - if (PreferencesChecked()) - preferred_types.insert(syncable::PREFERENCES); - if (ThemesChecked()) - preferred_types.insert(syncable::THEMES); - if (ExtensionsChecked()) - preferred_types.insert(syncable::EXTENSIONS); - if (AutofillChecked()) - preferred_types.insert(syncable::AUTOFILL); - if (TypedUrlsChecked()) - preferred_types.insert(syncable::TYPED_URLS); - - profile_->GetProfileSyncService()->ChangePreferredDataTypes(preferred_types); - return true; -} - -// static -void CustomizeSyncWindowGtk::OnWindowDestroy(GtkWidget* widget, - CustomizeSyncWindowGtk* window) { - customize_sync_window = NULL; - MessageLoop::current()->DeleteSoon(FROM_HERE, window); -} - -// static -void CustomizeSyncWindowGtk::OnResponse( - GtkDialog* dialog, gint response_id, - CustomizeSyncWindowGtk* customize_sync_window) { - if (response_id == GTK_RESPONSE_OK) - customize_sync_window->ClickOk(); - else if (response_id == GTK_RESPONSE_CANCEL) - customize_sync_window->ClickCancel(); -} - -// Deactivate the "OK" button if you uncheck all the data types. -void CustomizeSyncWindowGtk::OnCheckboxClicked(GtkWidget* widget) { - if (BookmarksChecked() || PreferencesChecked() || ThemesChecked() || - ExtensionsChecked() || AutofillChecked() || TypedUrlsChecked()) { - gtk_dialog_set_response_sensitive( - GTK_DIALOG(customize_sync_window->dialog_), GTK_RESPONSE_OK, TRUE); - } else { - gtk_dialog_set_response_sensitive( - GTK_DIALOG(customize_sync_window->dialog_), GTK_RESPONSE_OK, FALSE); - } -} - -/////////////////////////////////////////////////////////////////////////////// -// Factory/finder method: - -void ShowCustomizeSyncWindow(Profile* profile) { - DCHECK(profile); - // If there's already an existing window, use it. - if (!customize_sync_window) - customize_sync_window = new CustomizeSyncWindowGtk(profile); - - customize_sync_window->Show(); -} - -bool CustomizeSyncWindowOk() { - if (customize_sync_window) - return customize_sync_window->ClickOk(); - - return true; -} - -void CustomizeSyncWindowCancel() { - if (customize_sync_window) - customize_sync_window->ClickCancel(); -} diff --git a/chrome/browser/gtk/options/customize_sync_window_gtk.h b/chrome/browser/gtk/options/customize_sync_window_gtk.h deleted file mode 100644 index 009b6f2..0000000 --- a/chrome/browser/gtk/options/customize_sync_window_gtk.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) 2010 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CHROME_BROWSER_GTK_OPTIONS_CUSTOMIZE_SYNC_WINDOW_GTK_H_ -#define CHROME_BROWSER_GTK_OPTIONS_CUSTOMIZE_SYNC_WINDOW_GTK_H_ - -class Profile; - -void ShowCustomizeSyncWindow(Profile* profile); -bool CustomizeSyncWindowOk(); -void CustomizeSyncWindowCancel(); - -#endif // CHROME_BROWSER_GTK_OPTIONS_CUSTOMIZE_SYNC_WINDOW_GTK_H_ |