Mercurial > ~mikael > mcabber > hg
comparison mcabber/mcabber/commands.c @ 2292:f181418db215
Replace global variable update_roster with scr_update_roster()
author | franky |
---|---|
date | Tue, 01 Nov 2016 18:00:39 +0100 |
parents | 0d350e979bde |
children | e26c7709e023 |
comparison
equal
deleted
inserted
replaced
2291:0d350e979bde | 2292:f181418db215 |
---|---|
566 // Helper routine for buffer item_{lock,unlock,toggle_lock} | 566 // Helper routine for buffer item_{lock,unlock,toggle_lock} |
567 // "lock" values: 1=lock 0=unlock -1=invert | 567 // "lock" values: 1=lock 0=unlock -1=invert |
568 static void roster_buddylock(char *bjid, int lock) | 568 static void roster_buddylock(char *bjid, int lock) |
569 { | 569 { |
570 gpointer bud = NULL; | 570 gpointer bud = NULL; |
571 bool may_need_refresh = FALSE; | |
572 | 571 |
573 // Allow special jid "" or "." (current buddy) | 572 // Allow special jid "" or "." (current buddy) |
574 if (bjid && (!*bjid || !strcmp(bjid, "."))) | 573 if (bjid && (!*bjid || !strcmp(bjid, "."))) |
575 bjid = NULL; | 574 bjid = NULL; |
576 | 575 |
586 ROSTER_TYPE_USER|ROSTER_TYPE_ROOM); | 585 ROSTER_TYPE_USER|ROSTER_TYPE_ROOM); |
587 if (roster_elt) | 586 if (roster_elt) |
588 bud = roster_elt->data; | 587 bud = roster_elt->data; |
589 else | 588 else |
590 scr_LogPrint(LPRINT_NORMAL, "This jid isn't in the roster."); | 589 scr_LogPrint(LPRINT_NORMAL, "This jid isn't in the roster."); |
591 may_need_refresh = TRUE; | |
592 } | 590 } |
593 } else { | 591 } else { |
594 // Use the current buddy | 592 // Use the current buddy |
595 if (current_buddy) | 593 if (current_buddy) |
596 bud = BUDDATA(current_buddy); | 594 bud = BUDDATA(current_buddy); |
599 // Update the ROSTER_FLAG_USRLOCK flag | 597 // Update the ROSTER_FLAG_USRLOCK flag |
600 if (bud) { | 598 if (bud) { |
601 if (lock == -1) | 599 if (lock == -1) |
602 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK); | 600 lock = !(buddy_getflags(bud) & ROSTER_FLAG_USRLOCK); |
603 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock); | 601 buddy_setflags(bud, ROSTER_FLAG_USRLOCK, lock); |
604 if (may_need_refresh) { | 602 buddylist_defer_build(); |
605 buddylist_defer_build(); | 603 scr_update_roster(); |
606 update_roster = TRUE; | |
607 } | |
608 } | 604 } |
609 } | 605 } |
610 | 606 |
611 static void roster_resourcelock(char *jidres, gboolean lock) { | 607 static void roster_resourcelock(char *jidres, gboolean lock) { |
612 gpointer bud = NULL; | 608 gpointer bud = NULL; |
818 return; | 814 return; |
819 } | 815 } |
820 | 816 |
821 if (!strcasecmp(subcmd, "top")) { | 817 if (!strcasecmp(subcmd, "top")) { |
822 scr_roster_top(); | 818 scr_roster_top(); |
823 update_roster = TRUE; | |
824 } else if (!strcasecmp(subcmd, "bottom")) { | 819 } else if (!strcasecmp(subcmd, "bottom")) { |
825 scr_roster_bottom(); | 820 scr_roster_bottom(); |
826 update_roster = TRUE; | |
827 } else if (!strcasecmp(subcmd, "hide")) { | 821 } else if (!strcasecmp(subcmd, "hide")) { |
828 scr_roster_visibility(0); | 822 scr_roster_visibility(0); |
829 } else if (!strcasecmp(subcmd, "show")) { | 823 } else if (!strcasecmp(subcmd, "show")) { |
830 scr_roster_visibility(1); | 824 scr_roster_visibility(1); |
831 } else if (!strcasecmp(subcmd, "toggle")) { | 825 } else if (!strcasecmp(subcmd, "toggle")) { |
832 scr_roster_visibility(-1); | 826 scr_roster_visibility(-1); |
833 } else if (!strcasecmp(subcmd, "hide_offline")) { | 827 } else if (!strcasecmp(subcmd, "hide_offline")) { |
834 buddylist_set_hide_offline_buddies(TRUE); | 828 buddylist_set_hide_offline_buddies(TRUE); |
835 if (current_buddy) | 829 scr_update_roster(); |
836 buddylist_defer_build(); | |
837 update_roster = TRUE; | |
838 } else if (!strcasecmp(subcmd, "show_offline")) { | 830 } else if (!strcasecmp(subcmd, "show_offline")) { |
839 buddylist_set_hide_offline_buddies(FALSE); | 831 buddylist_set_hide_offline_buddies(FALSE); |
840 buddylist_defer_build(); | 832 scr_update_roster(); |
841 update_roster = TRUE; | |
842 } else if (!strcasecmp(subcmd, "toggle_offline")) { | 833 } else if (!strcasecmp(subcmd, "toggle_offline")) { |
843 buddylist_set_hide_offline_buddies(-1); | 834 buddylist_set_hide_offline_buddies(-1); |
844 buddylist_defer_build(); | 835 scr_update_roster(); |
845 update_roster = TRUE; | |
846 } else if (!strcasecmp(subcmd, "display")) { | 836 } else if (!strcasecmp(subcmd, "display")) { |
847 scr_roster_display(arg); | 837 scr_roster_display(arg); |
848 } else if (!strcasecmp(subcmd, "item_lock")) { | 838 } else if (!strcasecmp(subcmd, "item_lock")) { |
849 roster_buddylock(arg, 1); | 839 roster_buddylock(arg, 1); |
850 } else if (!strcasecmp(subcmd, "item_unlock")) { | 840 } else if (!strcasecmp(subcmd, "item_unlock")) { |
865 scr_LogPrint(LPRINT_NORMAL, "What name or JID are you looking for?"); | 855 scr_LogPrint(LPRINT_NORMAL, "What name or JID are you looking for?"); |
866 free_arg_lst(paramlst); | 856 free_arg_lst(paramlst); |
867 return; | 857 return; |
868 } | 858 } |
869 scr_roster_search(arg); | 859 scr_roster_search(arg); |
870 update_roster = TRUE; | |
871 } else if (!strcasecmp(subcmd, "up")) { | 860 } else if (!strcasecmp(subcmd, "up")) { |
872 roster_updown(-1, arg); | 861 roster_updown(-1, arg); |
873 } else if (!strcasecmp(subcmd, "down")) { | 862 } else if (!strcasecmp(subcmd, "down")) { |
874 roster_updown(1, arg); | 863 roster_updown(1, arg); |
875 } else if (!strcasecmp(subcmd, "group_prev")) { | 864 } else if (!strcasecmp(subcmd, "group_prev")) { |
911 wildcard = to_utf8(arglist[1]); | 900 wildcard = to_utf8(arglist[1]); |
912 color = arglist[2]; | 901 color = arglist[2]; |
913 | 902 |
914 if (status && !strcmp(status, "clear")) { // Not a color command, clear all | 903 if (status && !strcmp(status, "clear")) { // Not a color command, clear all |
915 scr_roster_clear_color(); | 904 scr_roster_clear_color(); |
916 update_roster = TRUE; | |
917 } else { | 905 } else { |
918 if (!status || !*status || !wildcard || !*wildcard || !color || !*color) { | 906 if (!status || !*status || !wildcard || !*wildcard || !color || !*color) { |
919 scr_LogPrint(LPRINT_NORMAL, "Missing argument"); | 907 scr_LogPrint(LPRINT_NORMAL, "Missing argument"); |
920 } else { | 908 } else { |
921 update_roster = scr_roster_color(status, wildcard, color) || | 909 scr_roster_color(status, wildcard, color); |
922 update_roster; | |
923 } | 910 } |
924 } | 911 } |
925 free_arg_lst(arglist); | 912 free_arg_lst(arglist); |
926 g_free(wildcard); | 913 g_free(wildcard); |
927 } else if (!strcasecmp(subcmd, "muc")) { | 914 } else if (!strcasecmp(subcmd, "muc")) { |
1256 scr_roster_prev_group(); | 1243 scr_roster_prev_group(); |
1257 | 1244 |
1258 buddy_hide_group(group, group_state); | 1245 buddy_hide_group(group, group_state); |
1259 | 1246 |
1260 buddylist_defer_build(); | 1247 buddylist_defer_build(); |
1261 update_roster = TRUE; | 1248 scr_update_roster(); |
1262 | 1249 |
1263 do_group_return: | 1250 do_group_return: |
1264 free_arg_lst(paramlst); | 1251 free_arg_lst(paramlst); |
1265 } | 1252 } |
1266 | 1253 |
2225 } | 2212 } |
2226 } | 2213 } |
2227 | 2214 |
2228 g_free(name_utf8); | 2215 g_free(name_utf8); |
2229 g_free(newname); | 2216 g_free(newname); |
2230 update_roster = TRUE; | 2217 scr_update_roster(); |
2231 } | 2218 } |
2232 | 2219 |
2233 static void do_move(char *arg) | 2220 static void do_move(char *arg) |
2234 { | 2221 { |
2235 gpointer bud; | 2222 gpointer bud; |
2294 } | 2281 } |
2295 } | 2282 } |
2296 | 2283 |
2297 g_free(group_utf8); | 2284 g_free(group_utf8); |
2298 g_free(newgroupname); | 2285 g_free(newgroupname); |
2299 update_roster = TRUE; | 2286 scr_update_roster(); |
2300 } | 2287 } |
2301 | 2288 |
2302 static void list_option_cb(char *k, char *v, void *f) | 2289 static void list_option_cb(char *k, char *v, void *f) |
2303 { | 2290 { |
2304 if (strncmp(k, "password", 8) && strcmp(k, "pgp_passphrase")) { | 2291 if (strncmp(k, "password", 8) && strcmp(k, "pgp_passphrase")) { |
2400 gchar *alias, *value; | 2387 gchar *alias, *value; |
2401 | 2388 |
2402 assign = parse_assigment(arg, &alias, &value); | 2389 assign = parse_assigment(arg, &alias, &value); |
2403 if (!alias) { | 2390 if (!alias) { |
2404 settings_foreach(SETTINGS_TYPE_ALIAS, &dump_alias, NULL); | 2391 settings_foreach(SETTINGS_TYPE_ALIAS, &dump_alias, NULL); |
2405 update_roster = TRUE; | 2392 scr_update_roster(); |
2406 return; | 2393 return; |
2407 } | 2394 } |
2408 if (!assign) { // This is a query | 2395 if (!assign) { // This is a query |
2409 const char *val = settings_get(SETTINGS_TYPE_ALIAS, alias); | 2396 const char *val = settings_get(SETTINGS_TYPE_ALIAS, alias); |
2410 // NOTE: LPRINT_NOTUTF8 here, see below why it isn't encoded... | 2397 // NOTE: LPRINT_NOTUTF8 here, see below why it isn't encoded... |
2626 | 2613 |
2627 g_free(roomname_tmp); | 2614 g_free(roomname_tmp); |
2628 g_free(nick); | 2615 g_free(nick); |
2629 g_free(pass_utf8); | 2616 g_free(pass_utf8); |
2630 buddylist_defer_build(); | 2617 buddylist_defer_build(); |
2631 update_roster = TRUE; | 2618 scr_update_roster(); |
2632 free_arg_lst(paramlst); | 2619 free_arg_lst(paramlst); |
2633 } | 2620 } |
2634 | 2621 |
2635 static void room_invite(gpointer bud, char *arg) | 2622 static void room_invite(gpointer bud, char *arg) |
2636 { | 2623 { |
2925 } | 2912 } |
2926 // Delete the room | 2913 // Delete the room |
2927 roster_del_user(buddy_getjid(bud)); | 2914 roster_del_user(buddy_getjid(bud)); |
2928 scr_update_buddy_window(); | 2915 scr_update_buddy_window(); |
2929 buddylist_defer_build(); | 2916 buddylist_defer_build(); |
2930 update_roster = TRUE; | 2917 scr_update_roster(); |
2931 } | 2918 } |
2932 | 2919 |
2933 static void room_topic(gpointer bud, char *arg) | 2920 static void room_topic(gpointer bud, char *arg) |
2934 { | 2921 { |
2935 if (!buddy_getinsideroom(bud)) { | 2922 if (!buddy_getinsideroom(bud)) { |