diff options
| author | Marvin W <git@larma.de> | 2026-07-21 17:47:35 +0200 |
|---|---|---|
| committer | Marvin W <git@larma.de> | 2026-08-02 12:44:10 +0200 |
| commit | e8077ee3e9409aea9cda3d04b6363d49bcaa61b9 (patch) | |
| tree | e3279d1f3f64a3d3d024cdb67b1be2d6aab28ca5 /main/src/ui | |
| parent | 64f09ce50063e6ccc135a535fe98f58751d7ac7d (diff) | |
Stop injecting custom CSS providers
Diffstat (limited to 'main/src/ui')
6 files changed, 25 insertions, 50 deletions
diff --git a/main/src/ui/call_window/call_bottom_bar.vala b/main/src/ui/call_window/call_bottom_bar.vala index dcb869c7..6f349cb9 100644 --- a/main/src/ui/call_window/call_bottom_bar.vala +++ b/main/src/ui/call_window/call_bottom_bar.vala @@ -108,7 +108,7 @@ public class Dino.Ui.CallBottomBar : Gtk.Box { public void show_audio_device_error() { audio_settings_button.set_icon_name("dino-dialog-warning-symbolic"); - Util.force_error_color(audio_settings_button); + audio_settings_button.add_css_class("error"); } public VideoSettingsPopover? show_video_device_choices(bool show) { @@ -125,7 +125,7 @@ public class Dino.Ui.CallBottomBar : Gtk.Box { public void show_video_device_error() { video_settings_button.set_icon_name("dino-dialog-warning-symbolic"); - Util.force_error_color(video_settings_button); + video_settings_button.add_css_class("error"); } public void on_audio_enabled_changed() { diff --git a/main/src/ui/conversation_content_view/conversation_item_skeleton.vala b/main/src/ui/conversation_content_view/conversation_item_skeleton.vala index d8cf469c..5bf6b0ae 100644 --- a/main/src/ui/conversation_content_view/conversation_item_skeleton.vala +++ b/main/src/ui/conversation_content_view/conversation_item_skeleton.vala @@ -164,7 +164,7 @@ public class ConversationItemSkeleton : Plugins.ConversationItemWidgetInterface, if (conversation.encryption != Encryption.NONE) { encryption_image.icon_name = "dino-changes-allow-symbolic"; encryption_image.tooltip_text = Util.string_if_tooltips_active(_("Unencrypted")); - Util.force_error_color(encryption_image); + encryption_image.add_css_class("error"); encryption_image.visible = true; } else if (conversation.encryption == Encryption.NONE) { encryption_image.icon_name = null; @@ -203,8 +203,8 @@ public class ConversationItemSkeleton : Plugins.ConversationItemWidgetInterface, break; case Message.Marked.WONTSEND: received_image.icon_name = "dino-dialog-warning-symbolic"; - Util.force_error_color(received_image); - Util.force_error_color(time_label); + received_image.add_css_class("error"); + time_label.add_css_class("error"); string error_text = Util.string_if_tooltips_active(_("Unable to send message")); received_image.tooltip_text = error_text; time_label.tooltip_text = error_text; diff --git a/main/src/ui/conversation_content_view/message_widget.vala b/main/src/ui/conversation_content_view/message_widget.vala index 7d441657..25d3775b 100644 --- a/main/src/ui/conversation_content_view/message_widget.vala +++ b/main/src/ui/conversation_content_view/message_widget.vala @@ -186,7 +186,8 @@ public class MessageMetaItem : ContentMetaItem { } } else if (message.direction == Message.DIRECTION_SENT && message.marked == Message.Marked.ERROR) { // Append "delivery failed" if there was a server error - string error_color = Util.rgba_to_hex(Util.get_label_pango_color(label, "@error_color")); + // TODO: Use a dedicated label, not appended text + string error_color = Util.rgba_to_hex(Util.get_label_pango_color(label, "error_color")); markup_text += " <span size='small' color='%s'>%s</span>".printf(error_color, _("delivery failed")); theme_dependent = true; additional_info = AdditionalInfo.DELIVERY_FAILED; @@ -337,8 +338,6 @@ public class MessageItemEditMode : Box { [GtkChild] public unowned Frame frame; construct { - Util.force_css(frame, "* { border-radius: 3px; padding: 0px 7px; }"); - EmojiChooser chooser = new EmojiChooser(); chooser.emoji_picked.connect((emoji) => { chat_text_view.text_view.buffer.insert_at_cursor(emoji, emoji.data.length); diff --git a/main/src/ui/conversation_selector/conversation_selector_row.vala b/main/src/ui/conversation_selector/conversation_selector_row.vala index 73bc36bd..fd5814fa 100644 --- a/main/src/ui/conversation_selector/conversation_selector_row.vala +++ b/main/src/ui/conversation_selector/conversation_selector_row.vala @@ -322,12 +322,22 @@ public class ConversationSelectorRow : ListBoxRow { image.set_from_icon_name("dino-device-desktop-symbolic"); } - if (show == Presence.Stanza.SHOW_AWAY) { - Util.force_color(image, "#FF9800"); - } else if (show == Presence.Stanza.SHOW_XA || show == Presence.Stanza.SHOW_DND) { - Util.force_color(image, "#FF5722"); - } else { - Util.force_color(image, "#4CAF50"); + switch (show) { + case Presence.Stanza.SHOW_ONLINE: + image.add_css_class("dino-status-online"); + break; + case Presence.Stanza.SHOW_CHAT: + image.add_css_class("dino-status-chat"); + break; + case Presence.Stanza.SHOW_AWAY: + image.add_css_class("dino-status-away"); + break; + case Presence.Stanza.SHOW_XA: + image.add_css_class("dino-status-xa"); + break; + case Presence.Stanza.SHOW_DND: + image.add_css_class("dino-status-dnd"); + break; } string? status = null; diff --git a/main/src/ui/util/helper.vala b/main/src/ui/util/helper.vala index 93437add..e9035be0 100644 --- a/main/src/ui/util/helper.vala +++ b/main/src/ui/util/helper.vala @@ -81,10 +81,10 @@ public static string get_occupant_display_name(StreamInteractor stream_interacto return Dino.get_occupant_display_name(stream_interactor, conversation, jid, me_is_me ? _("Me") : null); } +[Version (deprecated = true)] public static Gdk.RGBA get_label_pango_color(Label label, string css_color) { - Gtk.CssProvider provider = force_color(label, css_color); Gdk.RGBA color_rgba = label.get_style_context().get_color(); - label.get_style_context().remove_provider(provider); + label.get_style_context().lookup_color(css_color, out color_rgba); return color_rgba; } @@ -97,37 +97,6 @@ public static string rgba_to_hex(Gdk.RGBA rgba) { .up(); } -private const string force_background_css = "%s { background-color: %s; }"; -private const string force_color_css = "%s { color: %s; }"; - -public static Gtk.CssProvider force_css(Gtk.Widget widget, string css) { - var p = new Gtk.CssProvider(); - try { -#if GTK_4_12 && (VALA_0_56_GREATER_11 || VALA_0_58) - p.load_from_string(css); -#elif (VALA_0_56_11 || VALA_0_56_12) - p.load_from_data(css, css.length); -#else - p.load_from_data(css.data); -#endif - widget.get_style_context().add_provider(p, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); - } catch (GLib.Error err) { - // handle err - } - return p; -} - -public static void force_background(Gtk.Widget widget, string color, string selector = "*") { - force_css(widget, force_background_css.printf(selector, color)); -} - -public static Gtk.CssProvider force_color(Gtk.Widget widget, string color, string selector = "*") { - return force_css(widget, force_color_css.printf(selector, color)); -} - -public static void force_error_color(Gtk.Widget widget, string selector = "*") { - force_color(widget, "@error_color", selector); -} public static bool is_dark_theme(Gtk.Widget widget) { Gdk.RGBA bg = widget.get_style_context().get_color(); diff --git a/main/src/ui/util/preference_group.vala b/main/src/ui/util/preference_group.vala index 3911bb80..f34f0d92 100644 --- a/main/src/ui/util/preference_group.vala +++ b/main/src/ui/util/preference_group.vala @@ -86,9 +86,6 @@ namespace Dino.Ui.Util { }; row_text.bind_property("text", view, "subtitle", BindingFlags.SYNC_CREATE, null_string_to_empty); view.add_css_class("property"); - - Util.force_css(view, "row.property > box.header > box.title > .title { font-weight: 400; font-size: 9pt; opacity: 0.55; }"); - Util.force_css(view, "row.property > box.header > box.title > .subtitle { font-size: inherit; opacity: 1; }"); } var toggle_view_model = preferences_row as ViewModel.PreferencesRow.Toggle; |
