[/trunk] Changeset 133 by mikael
* Small optimization.
--- a/mcabber/src/commands.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/commands.c Mon Apr 25 20:56:23 2005 +0000
@@ -209,12 +209,12 @@
scr_RosterBottom();
scr_DrawRoster();
} else if (!strcasecmp(arg, "hide_offline")) {
- buddylist_hide_offline_buddies(TRUE);
+ buddylist_set_hide_offline_buddies(TRUE);
if (current_buddy)
buddylist_build();
scr_DrawRoster();
} else if (!strcasecmp(arg, "show_offline")) {
- buddylist_hide_offline_buddies(FALSE);
+ buddylist_set_hide_offline_buddies(FALSE);
if (current_buddy)
buddylist_build();
scr_DrawRoster();
--- a/mcabber/src/hooks.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/hooks.c Mon Apr 25 20:56:23 2005 +0000
@@ -48,6 +48,8 @@
scr_LogPrint("Buddy status has changed: [%c>%c] <%s>",
imstatus2char[roster_getstatus(jid)], imstatus2char[status], jid);
roster_setstatus(jid, status);
+ buddylist_build();
+ scr_DrawRoster();
hlog_write_status(jid, 0, status);
}
--- a/mcabber/src/jabglue.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/jabglue.c Mon Apr 25 20:56:23 2005 +0000
@@ -677,8 +677,6 @@
if (ust != roster_getstatus(r))
hk_statuschange(r, 0, ust);
free(r);
- buddylist_build();
- scr_DrawRoster();
/*
if (x = xmlnode_get_tag(packet->x, "status"))
if (p = xmlnode_get_data(x))
--- a/mcabber/src/main.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/main.c Mon Apr 25 20:56:23 2005 +0000
@@ -183,7 +183,7 @@
optstring = cfg_read("hide_offline_buddies");
if (optstring && (atoi(optstring) > 0))
- buddylist_hide_offline_buddies(TRUE);
+ buddylist_set_hide_offline_buddies(TRUE);
/* Initialize commands system */
cmd_init();
--- a/mcabber/src/roster.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/roster.c Mon Apr 25 20:56:23 2005 +0000
@@ -273,9 +273,9 @@
/* ### BuddyList functions ### */
-// buddylist_hide_offline_buddies(hide)
+// buddylist_set_hide_offline_buddies(hide)
// "hide" values: 1=hide 0=show_all -1=invert
-void buddylist_hide_offline_buddies(int hide)
+void buddylist_set_hide_offline_buddies(int hide)
{
if (hide < 0) // NEG (invert)
hide_offline_buddies = !hide_offline_buddies;
@@ -285,6 +285,11 @@
hide_offline_buddies = 1;
}
+inline int buddylist_get_hide_offline_buddies(void)
+{
+ return hide_offline_buddies;
+}
+
// buddylist_build()
// Creates the buddylist from the roster entries.
void buddylist_build(void)
--- a/mcabber/src/roster.h Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/roster.h Mon Apr 25 20:56:23 2005 +0000
@@ -44,7 +44,8 @@
enum imstatus roster_getstatus(const char *jid);
guint roster_gettype(const char *jid);
-void buddylist_hide_offline_buddies(int hide);
+void buddylist_set_hide_offline_buddies(int hide);
+inline int buddylist_get_hide_offline_buddies(void);
void buddy_hide_group(gpointer rosterdata, int hide);
void buddylist_build(void);
const char *buddy_getjid(gpointer rosterdata);
--- a/mcabber/src/screen.c Mon Apr 25 20:34:59 2005 +0000
+++ b/mcabber/src/screen.c Mon Apr 25 20:56:23 2005 +0000
@@ -577,7 +577,8 @@
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE);
// We should rebuild the buddylist but not everytime
- if (current_buddy && prev_st == offline)
+ if (current_buddy && prev_st == offline &&
+ buddylist_get_hide_offline_buddies())
buddylist_build();
if (chatmode)
scr_ShowBuddyWindow();
@@ -597,7 +598,8 @@
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE);
// We should rebuild the buddylist but not everytime
- if (current_buddy && prev_st == offline)
+ if (current_buddy && prev_st == offline &&
+ buddylist_get_hide_offline_buddies())
buddylist_build();
if (chatmode)
scr_ShowBuddyWindow();
@@ -608,14 +610,14 @@
enum imstatus prev_st;
if (current_buddy) {
- prev_st = buddy_getstatus(BUDDATA(current_buddy));
if (g_list_previous(current_buddy)) {
+ prev_st = buddy_getstatus(BUDDATA(current_buddy));
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, FALSE);
current_buddy = g_list_previous(current_buddy);
if (chatmode)
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE);
// We should rebuild the buddylist but not everytime
- if (prev_st == offline)
+ if (prev_st == offline && buddylist_get_hide_offline_buddies())
buddylist_build();
scr_DrawRoster();
}
@@ -630,14 +632,14 @@
enum imstatus prev_st;
if (current_buddy) {
- prev_st = buddy_getstatus(BUDDATA(current_buddy));
if (g_list_next(current_buddy)) {
+ prev_st = buddy_getstatus(BUDDATA(current_buddy));
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, FALSE);
current_buddy = g_list_next(current_buddy);
if (chatmode)
buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, TRUE);
// We should rebuild the buddylist but not everytime
- if (prev_st == offline)
+ if (prev_st == offline && buddylist_get_hide_offline_buddies())
buddylist_build();
scr_DrawRoster();
}