dash.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import Adw from 'gi://Adw';
  2. import GLib from 'gi://GLib';
  3. import GObject from 'gi://GObject';
  4. import Gio from 'gi://Gio';
  5. export const Dash = GObject.registerClass({
  6. GTypeName: 'Dash',
  7. Template: GLib.uri_resolve_relative(import.meta.url, '../ui/dash.ui', GLib.UriFlags.NONE),
  8. InternalChildren: [
  9. 'blur',
  10. 'pipeline_choose_row',
  11. 'mode_static',
  12. 'mode_dynamic',
  13. 'sigma_row',
  14. 'sigma',
  15. 'brightness_row',
  16. 'brightness',
  17. 'override_background',
  18. 'style_dash_to_dock',
  19. 'unblur_in_overview'
  20. ],
  21. }, class Dash extends Adw.PreferencesPage {
  22. constructor(preferences, pipelines_manager, pipelines_page) {
  23. super({});
  24. this.preferences = preferences;
  25. this.pipelines_manager = pipelines_manager;
  26. this.pipelines_page = pipelines_page;
  27. this.preferences.dash_to_dock.settings.bind(
  28. 'blur', this._blur, 'active',
  29. Gio.SettingsBindFlags.DEFAULT
  30. );
  31. this._pipeline_choose_row.initialize(
  32. this.preferences.dash_to_dock, this.pipelines_manager, this.pipelines_page
  33. );
  34. this.change_blur_mode(this.preferences.dash_to_dock.STATIC_BLUR, true);
  35. this._mode_static.connect('toggled',
  36. () => this.preferences.dash_to_dock.STATIC_BLUR = this._mode_static.active
  37. );
  38. this.preferences.dash_to_dock.STATIC_BLUR_changed(
  39. () => this.change_blur_mode(this.preferences.dash_to_dock.STATIC_BLUR, false)
  40. );
  41. this.preferences.dash_to_dock.settings.bind(
  42. 'sigma', this._sigma, 'value',
  43. Gio.SettingsBindFlags.DEFAULT
  44. );
  45. this.preferences.dash_to_dock.settings.bind(
  46. 'brightness', this._brightness, 'value',
  47. Gio.SettingsBindFlags.DEFAULT
  48. );
  49. this.preferences.dash_to_dock.settings.bind(
  50. 'override-background',
  51. this._override_background, 'enable-expansion',
  52. Gio.SettingsBindFlags.DEFAULT
  53. );
  54. this.preferences.dash_to_dock.settings.bind(
  55. 'style-dash-to-dock', this._style_dash_to_dock, 'selected',
  56. Gio.SettingsBindFlags.DEFAULT
  57. );
  58. this.preferences.dash_to_dock.settings.bind(
  59. 'unblur-in-overview', this._unblur_in_overview, 'active',
  60. Gio.SettingsBindFlags.DEFAULT
  61. );
  62. }
  63. change_blur_mode(is_static_blur, first_run) {
  64. this._mode_static.set_active(is_static_blur);
  65. if (first_run)
  66. this._mode_dynamic.set_active(!is_static_blur);
  67. this._pipeline_choose_row.set_visible(is_static_blur);
  68. this._sigma_row.set_visible(!is_static_blur);
  69. this._brightness_row.set_visible(!is_static_blur);
  70. }
  71. });