summaryrefslogtreecommitdiffstats
path: root/deluge/ui/gtk3/preferences.py
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/ui/gtk3/preferences.py')
-rw-r--r--deluge/ui/gtk3/preferences.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/deluge/ui/gtk3/preferences.py b/deluge/ui/gtk3/preferences.py
index a024a59..cd67a5b 100644
--- a/deluge/ui/gtk3/preferences.py
+++ b/deluge/ui/gtk3/preferences.py
@@ -13,7 +13,7 @@ from hashlib import sha1 as sha
from urllib.parse import urlparse
from gi import require_version
-from gi.repository import Gtk
+from gi.repository import GObject, Gtk
from gi.repository.Gdk import Color
import deluge.common
@@ -171,6 +171,14 @@ class Preferences(component.Component):
# Radio buttons to choose between systray and appindicator
self.builder.get_object('alignment_tray_type').set_visible(appindicator)
+ # Initialize a binding for dark theme
+ Gtk.Settings.get_default().bind_property(
+ 'gtk-application-prefer-dark-theme',
+ self.builder.get_object('chk_prefer_dark_theme'),
+ 'active',
+ GObject.BindingFlags.BIDIRECTIONAL | GObject.BindingFlags.SYNC_CREATE,
+ )
+
from .gtkui import DEFAULT_PREFS
self.COLOR_DEFAULTS = {}
@@ -557,6 +565,9 @@ class Preferences(component.Component):
self.builder.get_object('radio_thinclient').set_active(
not self.gtkui_config['standalone']
)
+ self.builder.get_object('chk_prefer_dark_theme').set_active(
+ self.gtkui_config['prefer_dark_theme']
+ )
self.builder.get_object('chk_show_rate_in_title').set_active(
self.gtkui_config['show_rate_in_title']
)
@@ -741,6 +752,9 @@ class Preferences(component.Component):
).get_active()
# Interface tab #
+ new_gtkui_config['prefer_dark_theme'] = self.builder.get_object(
+ 'chk_prefer_dark_theme'
+ ).get_active()
new_gtkui_config['enable_system_tray'] = self.builder.get_object(
'chk_use_tray'
).get_active()
@@ -1074,6 +1088,10 @@ class Preferences(component.Component):
def on_button_cancel_clicked(self, data):
log.debug('on_button_cancel_clicked')
+ Gtk.Settings.get_default().set_property(
+ 'gtk-application-prefer-dark-theme',
+ self.gtkui_config['prefer_dark_theme'],
+ )
self.hide()
return True