X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=clients%2Fgtk2%2Fmain.c;h=aebab1d8d35704884e44cc456ed3a5884ffb3fc4;hb=2b5c42febc3e4440a404d71dc4e902749bfc9dfb;hp=ccdd6d400b913793c7b75b1beb550a1757d64da4;hpb=ef0f20e9c964e5c65bdc8542ba02a8900783230c;p=doldaconnect.git diff --git a/clients/gtk2/main.c b/clients/gtk2/main.c index ccdd6d4..aebab1d 100644 --- a/clients/gtk2/main.c +++ b/clients/gtk2/main.c @@ -135,6 +135,7 @@ void cb_main_srhash_activate(GtkWidget *widget, gpointer data); void cb_main_srcopy_activate(GtkWidget *widget, gpointer data); void cb_main_trhash_activate(GtkWidget *widget, gpointer data); void cb_main_trcopy_activate(GtkWidget *widget, gpointer data); +void cb_main_trreset_activate(GtkWidget *widget, gpointer data); void cb_main_trcancel_activate(GtkWidget *widget, gpointer data); gboolean cb_main_srpopup(GtkWidget *widget, GdkEventButton *event, gpointer data); gboolean cb_main_trpopup(GtkWidget *widget, GdkEventButton *event, gpointer data); @@ -363,7 +364,7 @@ void percentagefunc(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeModel float val; char buf[64]; - colnum = (int)data; + colnum = GPOINTER_TO_INT(data); gtk_tree_model_get(model, iter, colnum, &val, -1); snprintf(buf, 64, "%.2f%%", (double)(val * 100.0)); g_object_set(rend, "text", buf, NULL); @@ -374,7 +375,7 @@ void transnicebytefunc(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeMod int colnum, val; char buf[64]; - colnum = (int)data; + colnum = GPOINTER_TO_INT(data); gtk_tree_model_get(model, iter, colnum, &val, -1); if(val >= 0) snprintf(buf, 64, "%'i", val); @@ -389,7 +390,7 @@ void transnicebytefunc2(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeMo long long val; char buf[64]; - colnum = (int)data; + colnum = GPOINTER_TO_INT(data); gtk_tree_model_get(model, iter, colnum, &val, -1); if(val >= 0) strcpy(buf, bytes2si(val)); @@ -403,7 +404,7 @@ void hidezerofunc(GtkTreeViewColumn *col, GtkCellRenderer *rend, GtkTreeModel *m int colnum, val; char buf[64]; - colnum = (int)data; + colnum = GPOINTER_TO_INT(data); gtk_tree_model_get(model, iter, colnum, &val, -1); if(val > 0) snprintf(buf, 64, "%i", val); @@ -695,6 +696,12 @@ char *inputbox(char *title, char *prompt, char *def, int echo) } int msgbox(int type, int buttons, char *format, ...) +#if defined(__GNUC__) + __attribute__ ((format (printf, 3, 4))) +#endif +; + +int msgbox(int type, int buttons, char *format, ...) { GtkWidget *swnd; va_list args; @@ -1464,7 +1471,7 @@ void setpubhubmodel(GtkTreeModel *model, int sortcol, int numcols, int *cols, ch gtk_tree_view_column_set_title(col, names[i]); rnd = gtk_cell_renderer_text_new(); gtk_tree_view_column_pack_start(col, rnd, TRUE); - gtk_tree_view_column_set_cell_data_func(col, rnd, transnicebytefunc2, (gpointer)cols[i], NULL); + gtk_tree_view_column_set_cell_data_func(col, rnd, transnicebytefunc2, GINT_TO_POINTER(cols[i]), NULL); } else { col = gtk_tree_view_column_new_with_attributes(names[i], gtk_cell_renderer_text_new(), "text", cols[i], NULL); } @@ -1518,6 +1525,11 @@ int pubhubxmlhandler(int op, char *buf, size_t *len) } break; case PHO_EOF: + if(ctxt == NULL) + { + msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("A hub list could not be read from %s"), pubhubaddr); + break; + } xmlParseChunk(ctxt, NULL, 0, 1); if(!ctxt->wellFormed) { @@ -1582,7 +1594,7 @@ int pubhubxmlhandler(int op, char *buf, size_t *len) } if(i == numcols) { - msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("The hub list at %s did not contain the address to any hubs")); + msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("The hub list at %s did not contain the address to any hubs"), pubhubaddr); break; } model = gtk_list_store_newv(numcols, types); @@ -2295,7 +2307,7 @@ void cb_main_trcopy_activate(GtkWidget *widget, gpointer data) g_free(hash); } -void cb_main_trcancel_activate(GtkWidget *widget, gpointer data) +void cb_main_trreset_activate(GtkWidget *widget, gpointer data) { GtkTreeSelection *sel; GtkTreeModel *model; @@ -2303,8 +2315,33 @@ void cb_main_trcancel_activate(GtkWidget *widget, gpointer data) int id, tag; struct dc_response *resp; - if(nextsrch != -1) + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(main_downloads)); + if(gtk_tree_selection_get_selected(sel, &model, &iter)) + { + gtk_tree_model_get(model, &iter, 0, &id, -1); + tag = dc_queuecmd(NULL, NULL, L"reset", L"%i", id, NULL); + if((resp = dc_gettaggedrespsync(tag)) != NULL) + { + if(resp->code == 502) + msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("You do not have permission to do that")); + else if(resp->code != 200) + msgbox(GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, _("An error occurred while trying to reset (%i)"), resp->code); + dc_freeresp(resp); + } + handleresps(); + } else { return; + } +} + +void cb_main_trcancel_activate(GtkWidget *widget, gpointer data) +{ + GtkTreeSelection *sel; + GtkTreeModel *model; + GtkTreeIter iter; + int id, tag; + struct dc_response *resp; + sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(main_downloads)); if(gtk_tree_selection_get_selected(sel, &model, &iter)) {