From: rjk@greenend.org.uk <> Date: Sun, 30 Sep 2007 14:15:16 +0000 (+0100) Subject: grey out edit->track properties when not connected X-Git-Tag: debian-1_5_99dev8~204 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/e836b1aa5fb2d0c035e7390a726a0cd0529bd906 grey out edit->track properties when not connected --- diff --git a/disobedience/client.c b/disobedience/client.c index ea0dbd9..869bcf3 100644 --- a/disobedience/client.c +++ b/disobedience/client.c @@ -112,6 +112,7 @@ static void gtkclient_comms_error(void attribute((unused)) *u, D(("gtkclient_comms_error %s", msg)); /* Control buttons might have become unusable */ control_update(); + menu_update(-1); gtk_label_set_text(GTK_LABEL(report_label), msg); } @@ -136,6 +137,8 @@ static void gtkclient_report(void attribute((unused)) *u, if(!msg) /* We're idle - clear the report line */ gtk_label_set_text(GTK_LABEL(report_label), ""); + control_update(); + menu_update(-1); } void popup_protocol_error(int attribute((unused)) code, diff --git a/disobedience/menu.c b/disobedience/menu.c index ded1f89..4569385 100644 --- a/disobedience/menu.c +++ b/disobedience/menu.c @@ -61,7 +61,8 @@ void menu_update(int page) { assert(t != 0); gtk_widget_set_sensitive(properties_widget, - t->properties_sensitive(tab)); + (t->properties_sensitive(tab) + && disorder_eclient_connected(client))); gtk_widget_set_sensitive(selectall_widget, t->selectall_sensitive(tab)); } diff --git a/lib/eclient.c b/lib/eclient.c index e98d152..6bbb530 100644 --- a/lib/eclient.c +++ b/lib/eclient.c @@ -497,8 +497,12 @@ static void maybe_connected(disorder_eclient *c) { comms_error(c, "connecting to %s: %s", c->ident, strerror(err)); /* sets state_disconnected */ } else { + char *r; + /* The connection succeeded */ c->state = state_connected; + byte_xasprintf(&r, "connected to %s", c->ident); + c->callbacks->report(c->u, r); } } @@ -526,6 +530,8 @@ static void authbanner_opcallback(disorder_eclient *c, static void authuser_opcallback(disorder_eclient *c, struct operation *op) { + char *r; + D(("authuser_opcallback")); if(c->rc / 100 != 2) { /* Wrong password or something. We cannot proceed. */ @@ -535,6 +541,8 @@ static void authuser_opcallback(disorder_eclient *c, } /* OK, we're authenticated now. */ c->authenticated = 1; + byte_xasprintf(&r, "authenticated with %s", c->ident); + c->callbacks->report(c->u, r); if(c->log_callbacks && !(c->ops && c->ops->opcallback == log_opcallback)) /* We are a log client, switch to logging mode */ stash_command(c, 0/*queuejump*/, log_opcallback, 0/*completed*/, c->log_v,