diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-10-09 19:51:24 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-10-09 19:51:24 +0000 |
commit | 3947065b29c4f7a63ec01cbf8a939f29f25130d7 (patch) | |
tree | a1e6357b389fd2f6c3c3c80d1a98f7c73d9012b9 | |
parent | 174fa6717506ea4539b13953ae5161a18368a73a (diff) |
restore status icon tooltips
-rw-r--r-- | src/trg-client.c | 2 | ||||
-rw-r--r-- | src/trg-main-window.c | 11 | ||||
-rw-r--r-- | src/trg-status-bar.c | 5 | ||||
-rw-r--r-- | src/trg-status-bar.h | 1 |
4 files changed, 18 insertions, 1 deletions
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_ */ |