hiding away/idle buddies on buddy list

2005-01-26
2013-01-14
  • Justin Bailey

    Justin Bailey - 2005-01-26

    Just a request, everyone is always online now a days because of broadband connections.  Just having hide offline buddies doesn't cut it anymore because everyone is online.  Would be awesome to have an option for showing/hiding idle and away buddies.  If someone wants to program this or a plugin it'd be greatly appreciated :).

     
    • FOBioPatel

      FOBioPatel - 2005-01-26

      i can see your need for this, it makes sense. i personally use my messenger services as answering machines.

      with gaim i leave an away message on at all times and even chat with one on, this lets me filter my IMs and selectively respond.

      if people began filtering me out for my away status, I would be missing out some potential conversations.

       
    • Justin Bailey

      Justin Bailey - 2005-01-29

      okay since nobody wanted to program this I took it upon myself to do it... Here's the patch... I'm not much of a programmer but it works for me.

      --- gaim-1.1.2/src/gtkblist.c   2005-01-17 06:44:19.000000000 -0500
      +++ gaim-1.1.2/src/gtkblist.c   2005-01-29 12:40:16.000000000 -0500
      @@ -1520,6 +1520,11 @@
                              gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
      }

      +static void gaim_gtk_blist_show_away_idle_cb(gpointer data, guint action, GtkWidget *item)
      +{
      +       gaim_prefs_set_bool("/gaim/gtk/blist/show_away_idle",
      +                       gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(item)));
      +}
      static void gaim_gtk_blist_edit_mode_cb(gpointer callback_data, guint callback_action,
                      GtkWidget *checkitem) {
              if(gtkblist->window->window) {
      @@ -2406,6 +2411,7 @@
              { "/Buddies/sep1", NULL, NULL, 0, "<Separator>" },
              { N_("/Buddies/Show _Offline Buddies"), NULL, gaim_gtk_blist_edit_mode_cb, 1, "<CheckItem>"},
              { N_("/Buddies/Show _Empty Groups"), NULL, gaim_gtk_blist_show_empty_groups_cb, 1, "<CheckItem>"},
      +       { N_("/Buddies/Show _Away & Idle Buddies"), NULL, gaim_gtk_blist_show_away_idle_cb, 1, "<CheckItem>"},
              { N_("/Buddies/_Add Buddy..."), "<CTL>B", gaim_gtk_blist_add_buddy_cb, 0, "<StockItem>", GTK_STOCK_ADD },
              { N_("/Buddies/Add C_hat..."), NULL, gaim_gtk_blist_add_chat_cb, 0, "<StockItem>", GTK_STOCK_ADD },
              { N_("/Buddies/Add _Group..."), NULL, gaim_blist_request_add_group, 0, "<StockItem>", GTK_STOCK_ADD },
      @@ -3252,6 +3258,8 @@
                              gaim_prefs_get_bool("/gaim/gtk/blist/show_offline_buddies"));
              gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Empty Groups"))),
                              gaim_prefs_get_bool("/gaim/gtk/blist/show_empty_groups"));
      +       gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item (gtkblist->ift, N_("/Buddies/Show Away & Idle Buddies"))),
      +                       gaim_prefs_get_bool("/gaim/gtk/blist/show_away_idle"));

              /* OK... let's show this bad boy. */
              gaim_gtk_blist_refresh(list);
      @@ -3353,6 +3361,10 @@
                                              _prefs_change_redo_list, NULL)));
              blist_prefs_callbacks = g_slist_prepend(blist_prefs_callbacks,
                              GINT_TO_POINTER(
      +                               gaim_prefs_connect_callback("/gaim/gtk/blist/show_away_idle",
      +                                       _prefs_change_redo_list, NULL)));
      +       blist_prefs_callbacks = g_slist_prepend(blist_prefs_callbacks,
      +                       GINT_TO_POINTER(
                                      gaim_prefs_connect_callback("/gaim/gtk/blist/show_offline_buddies",
                                              _prefs_change_redo_list, NULL)));

      @@ -3752,10 +3764,12 @@
              contact = (GaimContact*)node;
              buddy = gaim_contact_get_priority_buddy(contact);

      -       if(buddy && (buddy->present != GAIM_BUDDY_OFFLINE ||
      +       if(buddy && ((buddy->present != GAIM_BUDDY_OFFLINE &&
      +                       (gaim_prefs_get_bool("/gaim/gtk/blist/show_away_idle") ||
      +                               ((!(buddy->uc & UC_UNAVAILABLE)) && (buddy->idle > 0)))) ||
                              (gaim_account_is_connected(buddy->account) &&
                               gaim_prefs_get_bool("/gaim/gtk/blist/show_offline_buddies")) ||
      -                       gaim_blist_node_get_bool(node, "show_offline"))) {
      +                       gaim_blist_node_get_bool(node, "show_offline"))) {
                      GtkTreeIter iter;

                      if(!insert_node(list, node, &iter))
      @@ -4662,6 +4676,7 @@
              gaim_prefs_add_bool("/gaim/gtk/blist/raise_on_events", FALSE);
              gaim_prefs_add_bool("/gaim/gtk/blist/show_buddy_icons", TRUE);
              gaim_prefs_add_bool("/gaim/gtk/blist/show_empty_groups", FALSE);
      +       gaim_prefs_add_bool("/gaim/gtk/blist/show_away_idle", TRUE);
              gaim_prefs_add_bool("/gaim/gtk/blist/show_idle_time", TRUE);
              gaim_prefs_add_bool("/gaim/gtk/blist/show_offline_buddies", FALSE);
              gaim_prefs_add_bool("/gaim/gtk/blist/show_warning_level", TRUE);

       
    • Justin Bailey

      Justin Bailey - 2005-01-29

      ack, spaces didn't come out to well.

      I threw it on my server for anyone that wants to grab it
      patch: http://shank.qpoe.com/code/away-idle.patch
      or
      src: http://shank.qpoe.com/code/gtkblist.c

       
    • Gunner

      Gunner - 2005-07-18

      I'll go you one better.  Rather than simply hiding them, why not add the option to move away buddies into a separate group, the way AIM does with offline buddies!  This would be perfect because the group can be collapsed to get the people out of the way, or expanded to quickly view them.

      I have wanted this feature in every version of AIM for the past 2-3 years with the increase of broadband users leaving their names on at all times.

       
    • periferral

      periferral - 2005-07-19

      this would be great. How do i apply the patch to my windows gaim.

       
    • Justin Bailey

      Justin Bailey - 2005-07-26

      well the patch is old so you'd have to manually put the lines with the + into the src file and delete the lines with the -, I'll get yall one for 1.4.0 as soon as I can.

      https://sourceforge.net/tracker/index.php?func=detail&aid=1113591&group_id=235&atid=700058 <-- that is for gaim 2.0, I suggested it, made a patch but that is the response I received. 

      to compile in windows you'd have to follow the instructions in the windows port link on the gaim website.  Basically download cygwin and some other compiler and do a configure and make. It's not to difficult.

      As for the new group, some people have a lot of groups.

       
    • periferral

      periferral - 2005-07-27

      can someone post a windows dll for us not so complier savvy people. thanks

       
    • Justin Bailey

      Justin Bailey - 2005-07-27

      k, I'll download the latest source and update it, it may be a week or two as I need to fix my windows computer to do this and I don't have time right now. 

      It isn't the best patch but it does the trick.  Only problem I see is that it doesn't have show you when people go idle, they just disappear off the buddy list and pop back on after returning from idle/away, there could be a door sign but I haven't gotten around to that and probably won't since it won't ever be in a real release. 

       
    • Justin Bailey

      Justin Bailey - 2005-08-03

      here yall go..

      http://myweb.usf.edu/~jbailey5/code/idle_away_win32.zip

      Just extra it to the program files\gaim\ directory and you should be okay.

       

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks