summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk
diff options
context:
space:
mode:
authordantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 23:55:41 +0000
committerdantasse@chromium.org <dantasse@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-01 23:55:41 +0000
commite4875b32c749274333c1381a5a25c5a405d9cc81 (patch)
tree2ee0d4687f30f3aac6dff38be2a1c2d39d9619d3 /chrome/browser/gtk
parent4876a8fe9dc841182200196aaf9642f7b8cff538 (diff)
downloadchromium_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.cc3
-rw-r--r--chrome/browser/gtk/options/customize_sync_window_gtk.cc305
-rw-r--r--chrome/browser/gtk/options/customize_sync_window_gtk.h14
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(&registered_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_