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

Side by Side Diff: chrome/browser/chromeos/preferences.cc

Issue 18163006: Add persisted preference for projection touch HUD (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolved clang compile errors + Resolved linux_chromeos trybot failure Created 7 years, 5 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/chromeos/preferences.h ('k') | chrome/common/pref_names.h » ('j') | 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/chromeos/preferences.h" 5 #include "chrome/browser/chromeos/preferences.h"
6 6
7 #include "ash/magnifier/magnifier_constants.h" 7 #include "ash/magnifier/magnifier_constants.h"
8 #include "ash/shell_delegate.h" 8 #include "ash/shell.h"
9 #include "base/chromeos/chromeos_version.h" 9 #include "base/chromeos/chromeos_version.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/i18n/time_formatting.h" 11 #include "base/i18n/time_formatting.h"
12 #include "base/metrics/histogram.h" 12 #include "base/metrics/histogram.h"
13 #include "base/prefs/pref_member.h" 13 #include "base/prefs/pref_member.h"
14 #include "base/prefs/pref_registry_simple.h" 14 #include "base/prefs/pref_registry_simple.h"
15 #include "base/strings/string_split.h" 15 #include "base/strings/string_split.h"
16 #include "base/strings/string_util.h" 16 #include "base/strings/string_util.h"
17 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
18 #include "chrome/browser/browser_process.h" 18 #include "chrome/browser/browser_process.h"
(...skipping 25 matching lines...) Expand all
44 44
45 static const char kFallbackInputMethodLocale[] = "en-US"; 45 static const char kFallbackInputMethodLocale[] = "en-US";
46 46
47 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. 47 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480.
48 static const char kEnableTouchpadThreeFingerSwipe[] = 48 static const char kEnableTouchpadThreeFingerSwipe[] =
49 "settings.touchpad.enable_three_finger_swipe"; 49 "settings.touchpad.enable_three_finger_swipe";
50 50
51 Preferences::Preferences() 51 Preferences::Preferences()
52 : prefs_(NULL), 52 : prefs_(NULL),
53 input_method_manager_(input_method::InputMethodManager::Get()) { 53 input_method_manager_(input_method::InputMethodManager::Get()) {
54 // Do not observe shell, if there is no shell instance; e.g., in some unit
55 // tests.
56 if (ash::Shell::HasInstance())
57 ash::Shell::GetInstance()->AddShellObserver(this);
54 } 58 }
55 59
56 Preferences::Preferences(input_method::InputMethodManager* input_method_manager) 60 Preferences::Preferences(input_method::InputMethodManager* input_method_manager)
57 : prefs_(NULL), 61 : prefs_(NULL),
58 input_method_manager_(input_method_manager) { 62 input_method_manager_(input_method_manager) {
63 // Do not observe shell, if there is no shell instance; e.g., in some unit
64 // tests.
65 if (ash::Shell::HasInstance())
66 ash::Shell::GetInstance()->AddShellObserver(this);
59 } 67 }
60 68
61 Preferences::~Preferences() { 69 Preferences::~Preferences() {
62 prefs_->RemoveObserver(this); 70 prefs_->RemoveObserver(this);
71 // If shell instance is destoryed before this preferences instance, there is
72 // no need to remove this shell observer.
73 if (ash::Shell::HasInstance())
74 ash::Shell::GetInstance()->RemoveShellObserver(this);
63 } 75 }
64 76
65 // static 77 // static
66 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) { 78 void Preferences::RegisterPrefs(PrefRegistrySimple* registry) {
67 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false); 79 registry->RegisterBooleanPref(prefs::kOwnerPrimaryMouseButtonRight, false);
68 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true); 80 registry->RegisterBooleanPref(prefs::kOwnerTapToClickEnabled, true);
69 registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, false); 81 registry->RegisterBooleanPref(prefs::kVirtualKeyboardEnabled, false);
70 } 82 }
71 83
72 // static 84 // static
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 registry->RegisterStringPref( 417 registry->RegisterStringPref(
406 prefs::kTermsOfServiceURL, 418 prefs::kTermsOfServiceURL,
407 "", 419 "",
408 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 420 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
409 421
410 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480. 422 // TODO(achuith): Remove deprecated pref in M31. crbug.com/223480.
411 registry->RegisterBooleanPref( 423 registry->RegisterBooleanPref(
412 kEnableTouchpadThreeFingerSwipe, 424 kEnableTouchpadThreeFingerSwipe,
413 false, 425 false,
414 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF); 426 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
427
428 registry->RegisterBooleanPref(
429 prefs::kTouchHudProjectionEnabled,
430 false,
431 user_prefs::PrefRegistrySyncable::UNSYNCABLE_PREF);
415 } 432 }
416 433
417 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) { 434 void Preferences::InitUserPrefs(PrefServiceSyncable* prefs) {
418 prefs_ = prefs; 435 prefs_ = prefs;
419 436
420 BooleanPrefMember::NamedChangeCallback callback = 437 BooleanPrefMember::NamedChangeCallback callback =
421 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this)); 438 base::Bind(&Preferences::OnPreferenceChanged, base::Unretained(this));
422 439
423 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback); 440 tap_to_click_enabled_.Init(prefs::kTapToClickEnabled, prefs, callback);
424 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback); 441 tap_dragging_enabled_.Init(prefs::kTapDraggingEnabled, prefs, callback);
(...skipping 17 matching lines...) Expand all
442 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular, 459 disable_drive_over_cellular_.Init(prefs::kDisableDriveOverCellular,
443 prefs, callback); 460 prefs, callback);
444 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles, 461 disable_drive_hosted_files_.Init(prefs::kDisableDriveHostedFiles,
445 prefs, callback); 462 prefs, callback);
446 download_default_directory_.Init(prefs::kDownloadDefaultDirectory, 463 download_default_directory_.Init(prefs::kDownloadDefaultDirectory,
447 prefs, callback); 464 prefs, callback);
448 select_file_last_directory_.Init(prefs::kSelectFileLastDirectory, 465 select_file_last_directory_.Init(prefs::kSelectFileLastDirectory,
449 prefs, callback); 466 prefs, callback);
450 save_file_default_directory_.Init(prefs::kSaveFileDefaultDirectory, 467 save_file_default_directory_.Init(prefs::kSaveFileDefaultDirectory,
451 prefs, callback); 468 prefs, callback);
469 touch_hud_projection_enabled_.Init(prefs::kTouchHudProjectionEnabled,
470 prefs, callback);
452 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight, 471 primary_mouse_button_right_.Init(prefs::kPrimaryMouseButtonRight,
453 prefs, callback); 472 prefs, callback);
454 preferred_languages_.Init(prefs::kLanguagePreferredLanguages, 473 preferred_languages_.Init(prefs::kLanguagePreferredLanguages,
455 prefs, callback); 474 prefs, callback);
456 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, callback); 475 preload_engines_.Init(prefs::kLanguagePreloadEngines, prefs, callback);
457 enabled_extension_imes_.Init(prefs::kLanguageEnabledExtensionImes, 476 enabled_extension_imes_.Init(prefs::kLanguageEnabledExtensionImes,
458 prefs, callback); 477 prefs, callback);
459 current_input_method_.Init(prefs::kLanguageCurrentInputMethod, 478 current_input_method_.Init(prefs::kLanguageCurrentInputMethod,
460 prefs, callback); 479 prefs, callback);
461 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod, 480 previous_input_method_.Init(prefs::kLanguagePreviousInputMethod,
(...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after
695 if (!pref_name || *pref_name == prefs::kSaveFileDefaultDirectory) { 714 if (!pref_name || *pref_name == prefs::kSaveFileDefaultDirectory) {
696 const base::FilePath pref_path = save_file_default_directory_.GetValue(); 715 const base::FilePath pref_path = save_file_default_directory_.GetValue();
697 // This pref can contain a Drive path, which needs to be updated due to 716 // This pref can contain a Drive path, which needs to be updated due to
698 // namespaces introduced by crbug.com/174233. 717 // namespaces introduced by crbug.com/174233.
699 // TODO(haruki): Remove this when migration completes. crbug.com/229304. 718 // TODO(haruki): Remove this when migration completes. crbug.com/229304.
700 if (drive::util::NeedsNamespaceMigration(pref_path)) { 719 if (drive::util::NeedsNamespaceMigration(pref_path)) {
701 prefs_->SetFilePath(prefs::kSaveFileDefaultDirectory, 720 prefs_->SetFilePath(prefs::kSaveFileDefaultDirectory,
702 drive::util::ConvertToMyDriveNamespace(pref_path)); 721 drive::util::ConvertToMyDriveNamespace(pref_path));
703 } 722 }
704 } 723 }
724 if (!pref_name || *pref_name == prefs::kTouchHudProjectionEnabled) {
725 const bool enabled = touch_hud_projection_enabled_.GetValue();
726 ash::Shell::GetInstance()->SetTouchHudProjectionEnabled(enabled);
727 }
705 728
706 if (!pref_name || *pref_name == prefs::kLanguagePreferredLanguages) { 729 if (!pref_name || *pref_name == prefs::kLanguagePreferredLanguages) {
707 // Unlike kLanguagePreloadEngines and some other input method 730 // Unlike kLanguagePreloadEngines and some other input method
708 // preferencs, we don't need to send this to ibus-daemon. 731 // preferencs, we don't need to send this to ibus-daemon.
709 } 732 }
710 733
711 if (!pref_name || *pref_name == prefs::kLanguageXkbAutoRepeatEnabled) { 734 if (!pref_name || *pref_name == prefs::kLanguageXkbAutoRepeatEnabled) {
712 const bool enabled = xkb_auto_repeat_enabled_.GetValue(); 735 const bool enabled = xkb_auto_repeat_enabled_.GetValue();
713 input_method::XKeyboard::SetAutoRepeatEnabled(enabled); 736 input_method::XKeyboard::SetAutoRepeatEnabled(enabled);
714 } 737 }
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
1020 return; 1043 return;
1021 1044
1022 input_method::AutoRepeatRate rate; 1045 input_method::AutoRepeatRate rate;
1023 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue(); 1046 rate.initial_delay_in_ms = xkb_auto_repeat_delay_pref_.GetValue();
1024 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue(); 1047 rate.repeat_interval_in_ms = xkb_auto_repeat_interval_pref_.GetValue();
1025 DCHECK(rate.initial_delay_in_ms > 0); 1048 DCHECK(rate.initial_delay_in_ms > 0);
1026 DCHECK(rate.repeat_interval_in_ms > 0); 1049 DCHECK(rate.repeat_interval_in_ms > 0);
1027 input_method::XKeyboard::SetAutoRepeatRate(rate); 1050 input_method::XKeyboard::SetAutoRepeatRate(rate);
1028 } 1051 }
1029 1052
1053 void Preferences::OnTouchHudProjectionToggled(bool enabled) {
1054 if (touch_hud_projection_enabled_.GetValue() == enabled)
1055 return;
1056
1057 touch_hud_projection_enabled_.SetValue(enabled);
1058 }
1059
1030 } // namespace chromeos 1060 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/preferences.h ('k') | chrome/common/pref_names.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698