Skip to content

Commit 6713a19

Browse files
author
SkyzohKey
committed
UX improvements + better icons
1 parent ee843e9 commit 6713a19

4 files changed

Lines changed: 112 additions & 88 deletions

File tree

res/ui/chat-view.ui

Lines changed: 48 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,24 @@
688688
<property name="can_focus">False</property>
689689
<property name="icon_name">window-close-symbolic</property>
690690
</object>
691+
<object class="GtkImage" id="image4">
692+
<property name="visible">True</property>
693+
<property name="can_focus">False</property>
694+
<property name="xpad">5</property>
695+
<property name="icon_name">edit-delete-symbolic</property>
696+
</object>
697+
<object class="GtkImage" id="image8">
698+
<property name="visible">True</property>
699+
<property name="can_focus">False</property>
700+
<property name="xpad">5</property>
701+
<property name="icon_name">edit-copy-symbolic</property>
702+
</object>
703+
<object class="GtkImage" id="image_block_user">
704+
<property name="visible">True</property>
705+
<property name="can_focus">False</property>
706+
<property name="xpad">5</property>
707+
<property name="icon_name">dialog-error-symbolic.symbolic</property>
708+
</object>
691709
<template class="RicinChatView" parent="GtkBox">
692710
<property name="visible">True</property>
693711
<property name="can_focus">False</property>
@@ -731,34 +749,6 @@
731749
<property name="position">0</property>
732750
</packing>
733751
</child>
734-
<child>
735-
<object class="GtkButton" id="button_toggle_friend_menu">
736-
<property name="height_request">58</property>
737-
<property name="visible">True</property>
738-
<property name="can_focus">True</property>
739-
<property name="receives_default">True</property>
740-
<property name="tooltip_text" translatable="yes">Friend's profile</property>
741-
<property name="margin_top">1</property>
742-
<property name="margin_bottom">1</property>
743-
<property name="relief">none</property>
744-
<signal name="clicked" handler="toggle_friend_menu" swapped="no"/>
745-
<child>
746-
<object class="GtkImage" id="image7">
747-
<property name="visible">True</property>
748-
<property name="can_focus">False</property>
749-
<property name="icon_name">user-info-symbolic</property>
750-
</object>
751-
</child>
752-
<style>
753-
<class name="button-dark"/>
754-
</style>
755-
</object>
756-
<packing>
757-
<property name="expand">False</property>
758-
<property name="fill">True</property>
759-
<property name="position">1</property>
760-
</packing>
761-
</child>
762752
<child>
763753
<object class="GtkBox" id="box5">
764754
<property name="visible">True</property>
@@ -884,6 +874,35 @@
884874
<property name="position">3</property>
885875
</packing>
886876
</child>
877+
<child>
878+
<object class="GtkButton" id="button_toggle_friend_menu">
879+
<property name="height_request">58</property>
880+
<property name="visible">True</property>
881+
<property name="can_focus">True</property>
882+
<property name="receives_default">True</property>
883+
<property name="tooltip_text" translatable="yes">Friend's profile</property>
884+
<property name="margin_top">1</property>
885+
<property name="margin_bottom">1</property>
886+
<property name="relief">none</property>
887+
<signal name="clicked" handler="toggle_friend_menu" swapped="no"/>
888+
<child>
889+
<object class="GtkImage" id="image7">
890+
<property name="visible">True</property>
891+
<property name="can_focus">False</property>
892+
<property name="pixel_size">24</property>
893+
<property name="icon_name">view-more-symbolic</property>
894+
</object>
895+
</child>
896+
<style>
897+
<class name="button-dark"/>
898+
</style>
899+
</object>
900+
<packing>
901+
<property name="expand">False</property>
902+
<property name="fill">True</property>
903+
<property name="position">6</property>
904+
</packing>
905+
</child>
887906
</object>
888907
<packing>
889908
<property name="expand">True</property>
@@ -1476,7 +1495,7 @@
14761495
<object class="GtkImage" id="image2">
14771496
<property name="visible">True</property>
14781497
<property name="can_focus">False</property>
1479-
<property name="icon_name">mail-replied-symbolic</property>
1498+
<property name="icon_name">mail-send-symbolic</property>
14801499
</object>
14811500
</child>
14821501
<style>
@@ -1644,24 +1663,6 @@
16441663
</packing>
16451664
</child>
16461665
</template>
1647-
<object class="GtkImage" id="image4">
1648-
<property name="visible">True</property>
1649-
<property name="can_focus">False</property>
1650-
<property name="xpad">5</property>
1651-
<property name="icon_name">window-close-symbolic</property>
1652-
</object>
1653-
<object class="GtkImage" id="image8">
1654-
<property name="visible">True</property>
1655-
<property name="can_focus">False</property>
1656-
<property name="xpad">5</property>
1657-
<property name="icon_name">edit-copy-symbolic</property>
1658-
</object>
1659-
<object class="GtkImage" id="image_block_user">
1660-
<property name="visible">True</property>
1661-
<property name="can_focus">False</property>
1662-
<property name="xpad">5</property>
1663-
<property name="icon_name">contact-new-symbolic</property>
1664-
</object>
16651666
<object class="GtkMenu" id="menu1">
16661667
<property name="visible">True</property>
16671668
<property name="can_focus">False</property>

res/ui/main-window.ui

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<property name="visible">True</property>
2424
<property name="can_focus">False</property>
2525
<property name="xpad">5</property>
26-
<property name="icon_name">contact-new-symbolic</property>
26+
<property name="icon_name">list-add-symbolic</property>
2727
</object>
2828
<object class="GtkImage" id="image4">
2929
<property name="visible">True</property>
@@ -244,6 +244,9 @@
244244
<child>
245245
<object class="GtkBox" id="box_friend_request_new">
246246
<property name="can_focus">False</property>
247+
<property name="margin_left">10</property>
248+
<property name="margin_right">10</property>
249+
<property name="margin_top">5</property>
247250
<property name="spacing">5</property>
248251
<child>
249252
<object class="GtkImage" id="image5">
@@ -310,6 +313,8 @@
310313
<object class="GtkBox" id="box4">
311314
<property name="visible">True</property>
312315
<property name="can_focus">False</property>
316+
<property name="margin_left">10</property>
317+
<property name="margin_right">10</property>
313318
<property name="orientation">vertical</property>
314319
<child>
315320
<object class="GtkLabel" id="label_friend_request_pubkey">
@@ -352,6 +357,10 @@
352357
<object class="GtkBox" id="box3">
353358
<property name="visible">True</property>
354359
<property name="can_focus">False</property>
360+
<property name="margin_left">10</property>
361+
<property name="margin_right">10</property>
362+
<property name="margin_bottom">5</property>
363+
<property name="spacing">5</property>
355364
<property name="homogeneous">True</property>
356365
<child>
357366
<object class="GtkButton" id="button_friend_request_cancel">
@@ -360,7 +369,6 @@
360369
<property name="can_focus">True</property>
361370
<property name="receives_default">True</property>
362371
<property name="image">image8</property>
363-
<property name="relief">none</property>
364372
<property name="always_show_image">True</property>
365373
<style>
366374
<class name="button-dark"/>
@@ -380,7 +388,6 @@
380388
<property name="can_focus">True</property>
381389
<property name="receives_default">True</property>
382390
<property name="image">image7</property>
383-
<property name="relief">none</property>
384391
<property name="always_show_image">True</property>
385392
<style>
386393
<class name="button-dark"/>
@@ -631,9 +638,8 @@
631638
<property name="can_focus">False</property>
632639
<property name="margin_left">10</property>
633640
<property name="margin_right">10</property>
634-
<property name="margin_top">5</property>
635-
<property name="margin_bottom">5</property>
636-
<property name="spacing">10</property>
641+
<property name="margin_bottom">10</property>
642+
<property name="spacing">5</property>
637643
<property name="baseline_position">bottom</property>
638644
<child>
639645
<object class="GtkButton" id="button_add_friend">

src/MainWindow.vala

Lines changed: 41 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -228,58 +228,64 @@ public class Ricin.MainWindow : Gtk.ApplicationWindow {
228228

229229
this.friendlist.set_filter_func (row => {
230230
string? search = this.searchentry_friend.text.down ();
231+
231232
var friend = ((FriendListRow) row);
232233
string name = friend.fr.name.down ();
234+
string status_message = friend.fr.status_message.down ();
235+
string pubkey = friend.fr.pubkey.down ();
233236
Tox.UserStatus status = friend.fr.status;
237+
bool is_blocked = friend.fr.blocked;
238+
234239
var mode = this.combobox_friend_filter.active;
235240

236-
if (search == null || search.length == 0) {
237-
if (friend.unreadCount > 0) {
241+
/*
242+
if (search.length == 0) {
243+
// If a friend have unread messages, show it.
244+
if (friend.unreadCount > 0) return true;
245+
if (mode == 0 && status == Tox.UserStatus.OFFLINE) return false;
246+
return true;
247+
} else {
248+
249+
if (name.index_of (search) != -1) {
250+
return true;
251+
} else if (status_message.index_of (search) != -1) {
238252
return true;
253+
} else {
254+
return true;
255+
} else {
256+
if (mode == 0 && status == Tox.UserStatus.OFFLINE) return false;
239257
}
258+
}
259+
260+
return false;*/
240261

241-
if (mode == 0 && status == Tox.UserStatus.OFFLINE) {
242-
return false;
243-
}
262+
if (search == null || search.length == 0) {
263+
if (friend.unreadCount > 0) return true;
264+
if (mode == 0 && status == Tox.UserStatus.OFFLINE) return false;
244265
return true;
245-
} else if (mode == 0) {
246-
if (status == Tox.UserStatus.OFFLINE) {
247-
return false;
266+
} else if (search.length > 0) {
267+
switch (search) {
268+
case "f:blocked":
269+
if (is_blocked) return true;
270+
return false;
271+
case "f:old":
272+
if (friend.fr.is_presumed_dead ()) return true;
273+
return false;
274+
248275
}
276+
} else if (mode == 0) {
277+
if (status == Tox.UserStatus.OFFLINE) return false;
249278
}
250279

251-
if (name.index_of (search) != -1) {
252-
return true;
253-
}
280+
if (name.index_of (search) != -1) return true;
281+
if (status_message.index_of (search) != -1) return true;
282+
if (pubkey == search) return true;
254283
return false;
255284
});
256285

257286

258287

259-
/*var friend = ((FriendListRow) row);
260-
string name = friend.fr.name.down ();
261-
Tox.UserStatus status = friend.fr.status;
262-
var mode = this.combobox_friend_filter.active;
263-
264-
if (search == null || search.length == 0) {
265-
if (friend.unreadCount > 0) {
266-
return true;
267-
}
268-
269-
if (mode == 0 && status == Tox.UserStatus.OFFLINE) {
270-
return false;
271-
}
272-
return true;
273-
} else if (mode == 0) {
274-
if (status == Tox.UserStatus.OFFLINE) {
275-
return false;
276-
}
277-
}
278-
279-
if (name.index_of (search) != -1) {
280-
return true;
281-
}
282-
return false;*/
288+
/**/
283289

284290
tox.notify["connected"].connect ((src, prop) => {
285291
string icon = "";

src/Wrapper.vala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -799,6 +799,17 @@ namespace Tox {
799799
DateTime time = new DateTime.from_unix_local ((int64)last);
800800
return time.format ((format != null) ? format : _("<b>Last online:</b>") + " %H:%M %d/%m/%Y");
801801
}
802+
803+
public bool is_presumed_dead () {
804+
uint64 last = this.tox.handle.friend_get_last_online (this.num, null);
805+
DateTime time = new DateTime.from_unix_local ((int64)last);
806+
DateTime dead_time = time.add_months (4); // Profile presumed dead when not active for 6+ months.
807+
808+
if (time.compare (dead_time) > 0) {
809+
return true;
810+
}
811+
return false;
812+
}
802813

803814
public void set_user_status (ToxCore.UserStatus status) {
804815
if (blocked) {

0 commit comments

Comments
 (0)