Daniel Brötzmann pushed to branch master at gajim / gajim
Commits:
bf697b81 by wurstsalat at 2021-06-06T11:27:43+02:00
Themes: Apply change of dark/light theme instantly
Fixes #10441
- - - - -
b35bd9c0 by wurstsalat at 2021-06-06T11:28:52+02:00
Themes: Apply user themes instantly
- - - - -
4 changed files:
- gajim/data/gui/themes_window.ui
- gajim/gtk/css_config.py
- gajim/gtk/preferences.py
- gajim/gtk/themes.py
Changes:
=====================================
gajim/data/gui/themes_window.ui
=====================================
@@ -40,9 +40,10 @@
<object class="GtkLabel">
<property name="visible">True</property>
<property name="can_focus">False</property>
+ <property name="wrap">True</property>
+ <property name="wrap_mode">word</property>
<property name="label" translatable="yes">Add a setting you would like
to change</property>
<style>
- <class name="bold"/>
<class name="dim-label"/>
</style>
</object>
=====================================
gajim/gtk/css_config.py
=====================================
@@ -121,8 +121,7 @@ def prefer_dark(self):
return settings.get_property('gtk-application-prefer-dark-theme')
return setting == Theme.DARK
- @staticmethod
- def set_dark_theme(value=None):
+ def set_dark_theme(self, value=None):
if value is None:
value = app.settings.get('dark_theme')
else:
@@ -134,6 +133,7 @@ def set_dark_theme(value=None):
settings.reset_property('gtk-application-prefer-dark-theme')
return
settings.set_property('gtk-application-prefer-dark-theme', bool(value))
+ self._load_css()
def _load_css(self):
self._load_css_from_file('gajim.css', CSSPriority.APPLICATION)
@@ -156,14 +156,16 @@ def _load_css_from_file(self, filename, priority):
return
self._activate_css(css, priority)
- @staticmethod
- def _activate_css(css, priority):
+ def _activate_css(self, css, priority):
try:
provider = Gtk.CssProvider()
provider.load_from_data(bytes(css.encode('utf-8')))
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),
provider,
priority)
+ self._load_selected()
+ self._activate_theme()
+
except Exception:
log.exception('Error loading application css')
=====================================
gajim/gtk/preferences.py
=====================================
@@ -719,12 +719,14 @@ def _on_edit_themes(self, *args):
def _on_theme_changed(value, *args):
app.css_config.change_theme(value)
app.nec.push_incoming_event(NetworkEvent('theme-update'))
+ app.nec.push_incoming_event(NetworkEvent('style-changed'))
app.interface.roster.repaint_themed_widgets()
app.interface.roster.change_roster_style(None)
@staticmethod
def _on_dark_theme(value, *args):
app.css_config.set_dark_theme(int(value))
+ app.nec.push_incoming_event(NetworkEvent('style-changed'))
class Emoji(PreferenceBox):
=====================================
gajim/gtk/themes.py
=====================================
@@ -206,12 +206,16 @@ def __init__(self, transient):
self._fill_choose_listbox()
- def _on_key_press(self, widget, event):
+ def _on_key_press(self, _widget, event):
if event.keyval == Gdk.KEY_Escape:
self.destroy()
def _get_themes(self):
+ current_theme = app.settings.get('roster_theme')
for theme in app.css_config.themes:
+ if theme == current_theme:
+ self._ui.theme_store.prepend([theme])
+ continue
self._ui.theme_store.append([theme])
def _on_theme_name_edit(self, _renderer, path, new_name):
@@ -255,6 +259,8 @@ def _on_theme_selected(self, tree_selection):
self._ui.remove_theme_button.set_sensitive(True)
self._load_options()
+ self._apply_theme(theme)
+ app.nec.push_incoming_event(NetworkEvent('style-changed'))
def _load_options(self):
self._ui.option_listbox.foreach(self._remove_option)
@@ -321,7 +327,8 @@ def _apply_theme(theme):
app.interface.roster.repaint_themed_widgets()
app.interface.roster.change_roster_style(None)
- def _update_preferences_window(self):
+ @staticmethod
+ def _update_preferences_window():
window = get_app_window('Preferences')
if window is not None:
window.update_theme_list()
@@ -343,6 +350,7 @@ def _on_remove_theme(self, *args):
def _remove_theme():
if theme == app.settings.get('roster_theme'):
self._apply_theme('default')
+ app.nec.push_incoming_event(NetworkEvent('style-changed'))
app.css_config.remove_theme(theme)
self._update_preferences_window()
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/17b5488cebdf6740e4f4195273b05606fbc53c1c...b35bd9c07f8cc5551f040ddf4cb6327593840fb7
--
View it on GitLab:
https://dev.gajim.org/gajim/gajim/-/compare/17b5488cebdf6740e4f4195273b05606fbc53c1c...b35bd9c07f8cc5551f040ddf4cb6327593840fb7
You're receiving this email because of your account on dev.gajim.org.
_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits