X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=config%2Fdolconf.c;h=cd5c5aa22e2370c9646448819c90fca4cad5900a;hb=bbc9d874b771a9b87b63e5d370491c0b0646f1df;hp=629752fe5c58b69f892e32bb29bf1bab949269e7;hpb=958a04bd86b0911a1298d85110e55f08c33c6f98;p=doldaconnect.git diff --git a/config/dolconf.c b/config/dolconf.c index 629752f..cd5c5aa 100644 --- a/config/dolconf.c +++ b/config/dolconf.c @@ -31,6 +31,8 @@ #include #include #include +#include +#include #ifdef HAVE_CONFIG_H #include @@ -69,6 +71,7 @@ void cb_cfw_orport_toggled(GtkWidget *widget, gpointer uudata); void cb_cfw_oraddr_toggled(GtkWidget *widget, gpointer uudata); void cb_cfw_uinet_toggled(GtkWidget *widget, gpointer uudata); void cb_cfw_save_activate(GtkWidget *widget, gpointer uudata); +void cb_cfw_hup_activate(GtkWidget *widget, gpointer uudata); void cb_cfw_quit_activate(GtkWidget *widget, gpointer uudata); void cb_cfw_shareadd_clicked(GtkWidget *widget, gpointer uudata); void cb_cfw_sharerem_clicked(GtkWidget *widget, gpointer uudata); @@ -716,6 +719,29 @@ void cb_cfw_uinet_toggled(GtkWidget *widget, gpointer uudata) gtk_widget_set_sensitive(GTK_WIDGET(cfw_uibox), gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))); } +void cb_cfw_hup_activate(GtkWidget *widget, gpointer uudata) +{ + int tag; + struct dc_response *resp; + + if(dc_connectsync2(dc_srv_local, DC_LATEST) < 0) { + msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect to server")); + return; + } + if(dc_login(NULL, 1, dc_convnone, NULL) != DC_LOGIN_ERR_SUCCESS) { + dc_disconnect(); + msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect to server")); + return; + } + tag = dc_queuecmd(NULL, NULL, L"hup", NULL); + if((resp = dc_gettaggedrespsync(tag)) != NULL) { + if(resp->code != 200) + msgbox(GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, _("Could not connect to server")); + dc_freeresp(resp); + } + dc_disconnect(); +} + void cb_cfw_save_activate(GtkWidget *widget, gpointer uudata) { struct cfvar *cv; @@ -730,10 +756,9 @@ void cb_cfw_save_activate(GtkWidget *widget, gpointer uudata) void cb_cfw_quit_activate(GtkWidget *widget, gpointer uudata) { - cfw2conf(); if(dirty) { - if(msgbox(GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("There are unsaved settings. Do you wish to discard the changes and exit anyway?")) == GTK_RESPONSE_NO) + if(msgbox(GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _("There are unsaved changes. Do you wish to discard the changes and exit anyway?")) == GTK_RESPONSE_NO) return; } gtk_main_quit(); @@ -749,6 +774,7 @@ int main(int argc, char **argv) bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); prepstatic(); + dc_init(); gtk_init(&argc, &argv); state = -1;