From 3947065b29c4f7a63ec01cbf8a939f29f25130d7 Mon Sep 17 00:00:00 2001 From: Alan Fitton Date: Sun, 9 Oct 2011 19:51:24 +0000 Subject: restore status icon tooltips --- src/trg-client.c | 2 +- src/trg-main-window.c | 11 +++++++++++ src/trg-status-bar.c | 5 +++++ src/trg-status-bar.h | 1 + 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/trg-client.c b/src/trg-client.c index 0f6731d..8750e79 100644 --- a/src/trg-client.c +++ b/src/trg-client.c @@ -679,7 +679,7 @@ static gboolean dispatch_async_common(TrgClient * client, trg_request *trg_req, trg_req->callback = callback; trg_req->cb_data = data; - trg_req->connid = priv->connid; + trg_req->connid = g_atomic_int_get(&priv->connid); trg_client_thread_pool_push(client, trg_req, &error); if (error) { diff --git a/src/trg-main-window.c b/src/trg-main-window.c index c088c8a..ce49f01 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -916,6 +916,13 @@ static gboolean on_torrent_get(gpointer data, int mode) { priv->selectedTorrentId); trg_status_bar_update(priv->statusBar, &stats, client); + if (priv->statusIcon) + { + gchar *iconText = g_strdup_printf("%s: %s", _("Connected"), trg_status_bar_get_speed_text(priv->statusBar)); + gtk_status_icon_set_tooltip_text(priv->statusIcon, iconText); + g_free(iconText); + } + if (priv->graphNotebookIndex >= 0) trg_torrent_graph_set_speed(priv->graph, &stats); @@ -1194,6 +1201,9 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) { priv->timerId = 0; } + if (priv->statusIcon) + gtk_status_icon_set_tooltip_text(priv->statusIcon, connected ? _("Connected") : _("Disconnected")); + trg_client_status_change(tc, connected); } @@ -1790,6 +1800,7 @@ void trg_main_window_add_status_icon(TrgMainWindow * win) { G_CALLBACK(trg_status_icon_popup_menu_cb), win); gtk_status_icon_set_visible(priv->statusIcon, TRUE); + gtk_status_icon_set_tooltip_text(priv->statusIcon, trg_client_is_connected(priv->client) ? _("Connected") : _("Disconnected")); } TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win) { diff --git a/src/trg-status-bar.c b/src/trg-status-bar.c index 594ef16..bdc0a1d 100644 --- a/src/trg-status-bar.c +++ b/src/trg-status-bar.c @@ -174,6 +174,11 @@ void trg_status_bar_update(TrgStatusBar * sb, g_free(infoText); } +gchar *trg_status_bar_get_speed_text(TrgStatusBar *s) +{ + TrgStatusBarPrivate *priv = TRG_STATUS_BAR_GET_PRIVATE(s); + return gtk_label_get_text(GTK_LABEL(priv->speed_lbl)); +} TrgStatusBar *trg_status_bar_new() { diff --git a/src/trg-status-bar.h b/src/trg-status-bar.h index b7e515e..fd7ddfc 100644 --- a/src/trg-status-bar.h +++ b/src/trg-status-bar.h @@ -59,5 +59,6 @@ void trg_status_bar_push_connection_msg(TrgStatusBar * sb, const gchar * msg); void trg_status_bar_reset(TrgStatusBar *sb); void trg_status_bar_clear_indicators(TrgStatusBar *sb); +gchar *trg_status_bar_get_speed_text(TrgStatusBar *s); #endif /* TRG_STATUS_BAR_H_ */ -- cgit v1.2.3