diff options
author | Christopher Davis <christopherdavis@gnome.org> | 2021-09-25 22:32:35 -0700 |
---|---|---|
committer | Marcus Lundblad <ml@update.uu.se> | 2021-10-03 20:34:58 +0000 |
commit | 14518a130fed273052fd9bfea88ad7bbfcfafa66 (patch) | |
tree | 87dd64b563633a4f501b77e4b1d60640ff3da8f2 /src | |
parent | ef4f79c244ba650c89280730f77baea729f0cdfe (diff) | |
download | gnome-maps-14518a130fed273052fd9bfea88ad7bbfcfafa66.tar.gz |
Use libhandy's dark style infrastructure
Instead of having our own explicit setting for dark
mode, we can use libhandy's infrastructure for dark
styling, which is hooked into the new global dark style
preference.
Diffstat (limited to 'src')
-rw-r--r-- | src/application.js | 17 | ||||
-rw-r--r-- | src/layersPopover.js | 11 | ||||
-rw-r--r-- | src/mainWindow.js | 2 | ||||
-rw-r--r-- | src/mapView.js | 11 |
4 files changed, 15 insertions, 26 deletions
diff --git a/src/application.js b/src/application.js index 573bceef..32d309b0 100644 --- a/src/application.js +++ b/src/application.js @@ -227,12 +227,6 @@ var Application = GObject.registerClass({ } } - _onNightModeChange(action) { - let state = action.get_state(); - let gtkSettings = Gtk.Settings.get_default(); - gtkSettings.gtk_application_prefer_dark_theme = state.get_boolean(); - } - vfunc_startup() { super.vfunc_startup(); @@ -252,22 +246,15 @@ var Application = GObject.registerClass({ 'osm-account-setup': { onActivate: this._onOsmAccountSetupActivate.bind(this) }, - 'night-mode': { - paramType: 'b', - onChangeState: this._onNightModeChange.bind(this), - setting: 'night-mode' - }, 'quit': { onActivate: () => this.quit(), accels: ['<Primary>Q'] } }, settings); - // set dark theme when night-mode is enabled - let gtkSettings = Gtk.Settings.get_default(); - gtkSettings.gtk_application_prefer_dark_theme = - settings.get('night-mode'); + this._styleManager = Hdy.StyleManager.get_default(); + this._styleManager.set_color_scheme(Hdy.ColorScheme.PREFER_LIGHT); Gtk.IconTheme.get_default().append_search_path(GLib.build_filenamev([pkg.pkgdatadir, 'icons'])); diff --git a/src/layersPopover.js b/src/layersPopover.js index 70f25657..d421b71f 100644 --- a/src/layersPopover.js +++ b/src/layersPopover.js @@ -21,6 +21,7 @@ const Champlain = imports.gi.Champlain; const GObject = imports.gi.GObject; const Gtk = imports.gi.Gtk; const Gdk = imports.gi.Gdk; +const Hdy = imports.gi.Handy; const Application = imports.application; const MapSource = imports.mapSource; @@ -144,8 +145,8 @@ var LayersPopover = GObject.registerClass({ this._setLayerPreviews.bind(this)); this._mapView.view.connect("notify::longitude", this._setLayerPreviews.bind(this)); - Application.settings.connect("changed::night-mode", - this._onNightModeChanged.bind(this)); + Hdy.StyleManager.get_default().connect("notify::dark", + this._onDarkChanged.bind(this)); Application.settings.connect("changed::hybrid-aerial", this._onHybridAerialChanged.bind(this)); @@ -160,9 +161,9 @@ var LayersPopover = GObject.registerClass({ }); } - _onNightModeChanged() { + _onDarkChanged() { if (Service.getService().tiles.streetDark && - Application.settings.get('night-mode')) { + Hdy.StyleManager.get_default().dark) { this._setLayerPreviewImage('streetDark', true); } else { this._setLayerPreviewImage('street', true); @@ -180,7 +181,7 @@ var LayersPopover = GObject.registerClass({ _setLayerPreviews() { if (Service.getService().tiles.streetDark && - Application.settings.get('night-mode')) { + Hdy.StyleManager.get_default().dark) { this._setLayerPreviewImage('streetDark'); } else { this._setLayerPreviewImage('street'); diff --git a/src/mainWindow.js b/src/mainWindow.js index 9abceb46..08446e36 100644 --- a/src/mainWindow.js +++ b/src/mainWindow.js @@ -86,7 +86,7 @@ var MainWindow = GObject.registerClass({ 'noNetworkView', 'actionBar', 'actionBarRevealer', - 'placeBarContainer' ] + 'placeBarContainer'] }, class MainWindow extends Gtk.ApplicationWindow { get mapView() { diff --git a/src/mapView.js b/src/mapView.js index 10e6d5a3..fef736c2 100644 --- a/src/mapView.js +++ b/src/mapView.js @@ -26,6 +26,7 @@ const Geocode = imports.gi.GeocodeGlib; const Gio = imports.gi.Gio; const Gtk = imports.gi.Gtk; const GtkChamplain = imports.gi.GtkChamplain; +const Hdy = imports.gi.Handy; const Mainloop = imports.mainloop; const Application = imports.application; @@ -210,8 +211,8 @@ var MapView = GObject.registerClass({ // if dark tiles is available, setup handler to switch style if (Service.getService().tiles.streetDark) { - Application.settings.connect('changed::night-mode', - this._onNightModeChanged.bind(this)); + Hdy.StyleManager.get_default().connect('notify::dark', + this._onDarkChanged.bind(this)); } // if hybrid aerial tiles are available, setup handler to toggle @@ -272,11 +273,11 @@ var MapView = GObject.registerClass({ this._setBackgroundPatternIfNeeded(); } - _onNightModeChanged() { + _onDarkChanged() { if (this._mapType === MapType.STREET) { let overlay_sources = this.view.get_overlay_sources(); - if (Application.settings.get('night-mode')) + if (Hdy.StyleManager.get_default().dark) this.view.map_source = MapSource.createStreetDarkSource(); else this.view.map_source = MapSource.createStreetSource(); @@ -428,7 +429,7 @@ var MapView = GObject.registerClass({ } } else { if (tiles.streetDark && - Application.settings.get('night-mode')) { + Hdy.StyleManager.get_default().dark) { this.view.map_source = MapSource.createStreetDarkSource(); } else { this.view.map_source = MapSource.createStreetSource(); |