A couple of bugs fix in dolcon.
[doldaconnect.git] / clients / gtk2 / dolcon.c
index c71b9a1..18a0a38 100644 (file)
@@ -47,7 +47,6 @@
 #endif
 #include "dolcon.h"
 #include "hublist.h"
-#include "progressbar.h"
 
 #define TRHISTSIZE 10
 
@@ -292,6 +291,27 @@ char *bytes2si(long long bytes)
     return(ret);
 }
 
+void progressfunc(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
+{
+    int totalc, curc;
+    int total, cur;
+    char buf[64];
+    
+    totalc = (GPOINTER_TO_INT(data) & 0xff00) >> 8;
+    curc = GPOINTER_TO_INT(data) & 0xff;
+    gtk_tree_model_get(model, iter, totalc, &total, curc, &cur, -1);
+    if(total < 1)
+       g_object_set(rend, "value", GINT_TO_POINTER(0), NULL);
+    else
+       g_object_set(rend, "value", GINT_TO_POINTER((int)(((double)cur / (double)total) * 100)), NULL);
+    if(cur < 0) {
+       g_object_set(rend, "text", "", NULL);
+    } else {
+       snprintf(buf, 64, "%'i", cur);
+       g_object_set(rend, "text", buf, NULL);
+    }
+}
+
 void percentagefunc(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
 {
     int colnum;
@@ -981,6 +1001,7 @@ gint ksupdatecb(gpointer data)
        ksquerytag = dc_queuecmd(NULL, NULL, L"filtercmd", L"userspeeda", L"%a", users, NULL);
        dc_freewcsarr(users);
     }
+    updatewrite();
     return(TRUE);
 }
 
@@ -1296,6 +1317,7 @@ void cb_main_lsres_activate(GtkWidget *widget, gpointer data)
        lsrestag = dc_queuecmd(NULL, NULL, L"filtercmd", L"lsres", NULL);
        gtk_widget_set_sensitive(reslist_reload, FALSE);
     }
+    updatewrite();
 }
 
 void dcconnect(char *host)
@@ -2035,6 +2057,7 @@ void cb_reslist_reload_clicked(GtkWidget *widget, gpointer data)
     gtk_list_store_clear(reslist);
     lsrestag = dc_queuecmd(NULL, NULL, L"filtercmd", L"lsres", NULL);
     gtk_widget_set_sensitive(reslist_reload, FALSE);
+    updatewrite();
 }
 
 int rmres(char *id)