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

Side by Side Diff: chrome/browser/resources/settings/languages_page/languages.js

Issue 1408753005: MD Settings: Factor out some pref manipulation into the PrefsBehavior. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@LanguagePage6LanguageHelper
Patch Set: rebase Created 5 years 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 | « no previous file | chrome/browser/resources/settings/prefs/prefs_behavior.js » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 /** 5 /**
6 * @fileoverview 'settings-languages' provides convenient access to 6 * @fileoverview 'settings-languages' provides convenient access to
7 * Chrome's language and input method settings. 7 * Chrome's language and input method settings.
8 * 8 *
9 * Instances of this element have a 'languages' property, which reflects the 9 * Instances of this element have a 'languages' property, which reflects the
10 * current language settings. The 'languages' property is read-only, meaning 10 * current language settings. The 'languages' property is read-only, meaning
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 * Disables the language. 340 * Disables the language.
341 * @param {string} languageCode 341 * @param {string} languageCode
342 */ 342 */
343 disableLanguage: function(languageCode) { 343 disableLanguage: function(languageCode) {
344 if (!CrSettingsPrefs.isInitialized) 344 if (!CrSettingsPrefs.isInitialized)
345 return; 345 return;
346 346
347 assert(this.canDisableLanguage(languageCode)); 347 assert(this.canDisableLanguage(languageCode));
348 348
349 // Remove the language from spell check. 349 // Remove the language from spell check.
350 this.arrayDelete('prefs.spellcheck.dictionaries.value', languageCode); 350 this.deletePrefListItem('spellcheck.dictionaries', languageCode);
351 351
352 // Remove the language from preferred languages. 352 // Remove the language from preferred languages.
353 var languageCodes = 353 var languageCodes =
354 this.getPref(preferredLanguagesPrefName).value.split(','); 354 this.getPref(preferredLanguagesPrefName).value.split(',');
355 var languageIndex = languageCodes.indexOf(languageCode); 355 var languageIndex = languageCodes.indexOf(languageCode);
356 if (languageIndex == -1) 356 if (languageIndex == -1)
357 return; 357 return;
358 languageCodes.splice(languageIndex, 1); 358 languageCodes.splice(languageIndex, 1);
359 chrome.languageSettingsPrivate.setLanguageList(languageCodes); 359 chrome.languageSettingsPrivate.setLanguageList(languageCodes);
360 this.enableTranslateLanguage(languageCode); 360 this.enableTranslateLanguage(languageCode);
(...skipping 17 matching lines...) Expand all
378 return true; 378 return true;
379 }, 379 },
380 380
381 /** 381 /**
382 * Enables translate for the given language by removing the translate 382 * Enables translate for the given language by removing the translate
383 * language from the blocked languages preference. 383 * language from the blocked languages preference.
384 * @param {string} languageCode 384 * @param {string} languageCode
385 */ 385 */
386 enableTranslateLanguage: function(languageCode) { 386 enableTranslateLanguage: function(languageCode) {
387 languageCode = this.convertLanguageCodeForTranslate(languageCode); 387 languageCode = this.convertLanguageCodeForTranslate(languageCode);
388 this.arrayDelete('prefs.translate_blocked_languages.value', languageCode); 388 this.deletePrefListItem('translate_blocked_languages', languageCode);
389 }, 389 },
390 390
391 /** 391 /**
392 * Disables translate for the given language by adding the translate 392 * Disables translate for the given language by adding the translate
393 * language to the blocked languages preference. 393 * language to the blocked languages preference.
394 * @param {string} languageCode 394 * @param {string} languageCode
395 */ 395 */
396 disableTranslateLanguage: function(languageCode) { 396 disableTranslateLanguage: function(languageCode) {
397 languageCode = this.convertLanguageCodeForTranslate(languageCode); 397 this.appendPrefListItem('translate_blocked_languages',
398 if (this.getPref('translate_blocked_languages').value 398 this.convertLanguageCodeForTranslate(languageCode));
399 .indexOf(languageCode) == -1) {
400 this.push('prefs.translate_blocked_languages.value', languageCode);
401 }
402 }, 399 },
403 400
404 /** 401 /**
405 * Enables or disables spell check for the given language. 402 * Enables or disables spell check for the given language.
406 * @param {string} languageCode 403 * @param {string} languageCode
407 * @param {boolean} enable 404 * @param {boolean} enable
408 */ 405 */
409 toggleSpellCheck: function(languageCode, enable) { 406 toggleSpellCheck: function(languageCode, enable) {
410 if (!this.initialized_) 407 if (!this.initialized_)
411 return; 408 return;
412 409
413 if (enable) { 410 if (enable) {
414 var spellCheckPref = this.getPref('spellcheck.dictionaries'); 411 var spellCheckPref = this.getPref('spellcheck.dictionaries');
415 if (spellCheckPref.value.indexOf(languageCode) == -1) 412 this.appendPrefListItem('spellcheck.dictionaries', languageCode);
416 this.push('prefs.spellcheck.dictionaries.value', languageCode);
417 } else { 413 } else {
418 this.arrayDelete('prefs.spellcheck.dictionaries.value', languageCode); 414 this.deletePrefListItem('spellcheck.dictionaries', languageCode);
419 } 415 }
420 }, 416 },
421 417
422 /** 418 /**
423 * Converts the language code for translate. There are some differences 419 * Converts the language code for translate. There are some differences
424 * between the language set the Translate server uses and that for 420 * between the language set the Translate server uses and that for
425 * Accept-Language. 421 * Accept-Language.
426 * @param {string} languageCode 422 * @param {string} languageCode
427 * @return {string} The converted language code. 423 * @return {string} The converted language code.
428 */ 424 */
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 * manually sending a change notification for our 'languages' property (since 499 * manually sending a change notification for our 'languages' property (since
504 * it's the same object as the singleton's property, but isn't bound by 500 * it's the same object as the singleton's property, but isn't bound by
505 * Polymer). 501 * Polymer).
506 * @private 502 * @private
507 */ 503 */
508 singletonLanguagesChanged_: function(e) { 504 singletonLanguagesChanged_: function(e) {
509 // Forward the change notification to the host. 505 // Forward the change notification to the host.
510 this.fire(e.type, e.detail, {bubbles: false}); 506 this.fire(e.type, e.detail, {bubbles: false});
511 }, 507 },
512 }); 508 });
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/resources/settings/prefs/prefs_behavior.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698