feat: post visibility indicators

This commit is contained in:
Evangelos Paterakis 2022-12-02 18:15:24 +02:00
parent 6f688443f8
commit 28c2c053e3
No known key found for this signature in database
GPG key ID: FE5185F095BFC8C9
3 changed files with 23 additions and 12 deletions

View file

@ -88,6 +88,15 @@
<property name="valign">start</property>
<property name="margin_start">6</property>
<property name="spacing">6</property>
<child>
<object class="GtkImage" id="indicator">
<property name="visible">1</property>
<property name="can_focus">0</property>
<property name="opacity">0.5</property>
<property name="icon_name">unknown</property>
<property name="icon_size">1</property>
</object>
</child>
<child>
<object class="GtkImage" id="pin_indicator">
<property name="visible">0</property>
@ -97,15 +106,6 @@
<property name="icon_size">1</property>
</object>
</child>
<child>
<object class="GtkImage" id="indicator">
<property name="visible">0</property>
<property name="can_focus">0</property>
<property name="opacity">0.5</property>
<property name="icon_name">unknown</property>
<property name="icon_size">1</property>
</object>
</child>
<child>
<object class="GtkLabel" id="date_label">
<property name="can_focus">0</property>

View file

@ -6,10 +6,17 @@ public class Tooth.Widgets.Conversation : Widgets.Status {
public Conversation (API.Conversation entity) {
Object (conversation: entity, status: entity.last_status);
conversation.bind_property ("unread", this.indicator, "visible", BindingFlags.SYNC_CREATE);
conversation.bind_property ("unread", this.indicator, "icon_name", BindingFlags.SYNC_CREATE, (b, src, ref target) => {
if (src.get_boolean()) {
target.set_string ("tooth-mark-important-symbolic");
this.indicator.opacity = 1;
} else {
target.set_string ("tooth-mail-symbolic");
this.indicator.opacity = 0.5;
}
return true;
});
// this.indicators.child_set_property (this.indicator, "position", 2);
this.indicator.opacity = 1;
this.indicator.icon_name = "tooth-mark-important-symbolic";
this.actions.destroy ();
}

View file

@ -192,6 +192,10 @@ public class Tooth.Widgets.Status : ListBoxRow {
bind_property ("subtitle_text", handle_label, "label", BindingFlags.SYNC_CREATE);
bind_property ("date", date_label, "label", BindingFlags.SYNC_CREATE);
status.formal.bind_property ("pinned", pin_indicator, "visible", BindingFlags.SYNC_CREATE);
status.formal.bind_property ("visibility", indicator, "icon_name", BindingFlags.SYNC_CREATE, (b, src, ref target) => {
target.set_string (accounts.active.visibility[src.get_string ()].icon_name);
return true;
});
status.formal.bind_property ("account", avatar, "account", BindingFlags.SYNC_CREATE);
// Spoiler //TODO: Spoilers