summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/trg-client.c2
-rw-r--r--src/trg-main-window.c11
-rw-r--r--src/trg-status-bar.c5
-rw-r--r--src/trg-status-bar.h1
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_ */