SettingsController.coffee 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. define [
  2. "base"
  3. ], (App) ->
  4. App.controller "SettingsController", ["$scope", "settings", "ide", ($scope, settings, ide) ->
  5. if $scope.settings.mode not in ["default", "vim", "emacs"]
  6. $scope.settings.mode = "default"
  7. if $scope.settings.pdfViewer not in ["pdfjs", "native"]
  8. $scope.settings.pdfViewer = "pdfjs"
  9. $scope.$watch "settings.theme", (theme, oldTheme) =>
  10. if theme != oldTheme
  11. settings.saveSettings({theme: theme})
  12. $scope.$watch "settings.fontSize", (fontSize, oldFontSize) =>
  13. if fontSize != oldFontSize
  14. settings.saveSettings({fontSize: parseInt(fontSize, 10)})
  15. $scope.$watch "settings.mode", (mode, oldMode) =>
  16. if mode != oldMode
  17. settings.saveSettings({mode: mode})
  18. $scope.$watch "settings.autoComplete", (autoComplete, oldAutoComplete) =>
  19. if autoComplete != oldAutoComplete
  20. settings.saveSettings({autoComplete: autoComplete})
  21. $scope.$watch "settings.pdfViewer", (pdfViewer, oldPdfViewer) =>
  22. if pdfViewer != oldPdfViewer
  23. settings.saveSettings({pdfViewer: pdfViewer})
  24. $scope.$watch "settings.syntaxValidation", (syntaxValidation, oldSyntaxValidation) =>
  25. if syntaxValidation != oldSyntaxValidation
  26. settings.saveSettings({syntaxValidation: syntaxValidation})
  27. $scope.$watch "project.spellCheckLanguage", (language, oldLanguage) =>
  28. return if @ignoreUpdates
  29. if oldLanguage? and language != oldLanguage
  30. settings.saveProjectSettings({spellCheckLanguage: language})
  31. # Also set it as the default for the user
  32. settings.saveSettings({spellCheckLanguage: language})
  33. $scope.$watch "project.compiler", (compiler, oldCompiler) =>
  34. return if @ignoreUpdates
  35. if oldCompiler? and compiler != oldCompiler
  36. settings.saveProjectSettings({compiler: compiler})
  37. $scope.$watch "project.rootDoc_id", (rootDoc_id, oldRootDoc_id) =>
  38. return if @ignoreUpdates
  39. if oldRootDoc_id? and rootDoc_id != oldRootDoc_id
  40. settings.saveProjectSettings({rootDocId: rootDoc_id})
  41. ide.socket.on "compilerUpdated", (compiler) =>
  42. @ignoreUpdates = true
  43. $scope.$apply () =>
  44. $scope.project.compiler = compiler
  45. delete @ignoreUpdates
  46. ide.socket.on "spellCheckLanguageUpdated", (languageCode) =>
  47. @ignoreUpdates = true
  48. $scope.$apply () =>
  49. $scope.project.spellCheckLanguage = languageCode
  50. delete @ignoreUpdates
  51. ]