SettingsController.coffee 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. $scope.$watch "settings.theme", (theme, oldTheme) =>
  8. if theme != oldTheme
  9. settings.saveSettings({theme: theme})
  10. $scope.$watch "settings.fontSize", (fontSize, oldFontSize) =>
  11. if fontSize != oldFontSize
  12. settings.saveSettings({fontSize: parseInt(fontSize, 10)})
  13. $scope.$watch "settings.mode", (mode, oldMode) =>
  14. if mode != oldMode
  15. settings.saveSettings({mode: mode})
  16. $scope.$watch "settings.autoComplete", (autoComplete, oldAutoComplete) =>
  17. if autoComplete != oldAutoComplete
  18. settings.saveSettings({autoComplete: autoComplete})
  19. $scope.$watch "settings.pdfViewer", (pdfViewer, oldPdfViewer) =>
  20. if pdfViewer != oldPdfViewer
  21. settings.saveSettings({pdfViewer: pdfViewer})
  22. $scope.$watch "project.spellCheckLanguage", (language, oldLanguage) =>
  23. return if @ignoreUpdates
  24. if oldLanguage? and language != oldLanguage
  25. settings.saveProjectSettings({spellCheckLanguage: language})
  26. # Also set it as the default for the user
  27. settings.saveSettings({spellCheckLanguage: language})
  28. $scope.$watch "project.compiler", (compiler, oldCompiler) =>
  29. return if @ignoreUpdates
  30. if oldCompiler? and compiler != oldCompiler
  31. settings.saveProjectSettings({compiler: compiler})
  32. ide.socket.on "compilerUpdated", (compiler) =>
  33. @ignoreUpdates = true
  34. $scope.$apply () =>
  35. $scope.project.compiler = compiler
  36. delete @ignoreUpdates
  37. ide.socket.on "spellCheckLanguageUpdated", (languageCode) =>
  38. @ignoreUpdates = true
  39. $scope.$apply () =>
  40. $scope.project.spellCheckLanguage = languageCode
  41. delete @ignoreUpdates
  42. ]