X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=clients%2Fgtk2%2Fmain.c;h=5b286f3627fa88ae0d9793b1bd22d02dc4dd9afc;hb=48f7dc10b52a13f7c5dfc11e84b428c4e3e26550;hp=d74e19206d93073f19aed2524a078dca8437809a;hpb=a2f77326ce99e5eb08b90cee1ee9f14a50d0f181;p=doldaconnect.git diff --git a/clients/gtk2/main.c b/clients/gtk2/main.c index d74e192..5b286f3 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); @@ -1083,8 +1084,8 @@ void handleresps(void) dc_disconnect(); dcdisconnected(); } else { - tosbuf = 0x10; /* Minimum cost */ - setsockopt(dcfd, SOL_IP, IP_TOS, &tosbuf, sizeof(tosbuf)); + tosbuf = 0x10; /* Minimum delay */ + setsockopt(dcfd, IPPROTO_IP, IP_TOS, &tosbuf, sizeof(tosbuf)); updatesbar(_("Connected")); dc_loginasync(connectas, 1, loginconv, logincallback, NULL); } @@ -2306,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; @@ -2314,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)) {