diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-03-16 22:03:15 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-03-16 22:03:15 +0000 |
commit | 376327480b37a6d0a88029f070df991e6add71dc (patch) | |
tree | 8c6cd5519b36155b6a773fd513b5dfc18175ec77 | |
parent | fd2ee406559f8732b50e7f5ca5ec0bade12bf83f (diff) |
fix a crash if disconnecting with the graph disabled, disabling tracker/dir filters while disconnected. change possible -NaN for ratio to N/A in general panel.
-rw-r--r-- | src/transmission-remote-gtk.schemas | 13 | ||||
-rw-r--r-- | src/trg-general-panel.c | 22 | ||||
-rw-r--r-- | src/trg-main-window.c | 8 | ||||
-rw-r--r-- | src/trg-preferences.h | 1 | ||||
-rw-r--r-- | src/trg-state-selector.c | 3 |
5 files changed, 36 insertions, 11 deletions
diff --git a/src/transmission-remote-gtk.schemas b/src/transmission-remote-gtk.schemas index 6fa2cc8..4849f83 100644 --- a/src/transmission-remote-gtk.schemas +++ b/src/transmission-remote-gtk.schemas @@ -132,6 +132,19 @@ </schema> <schema> + <key>/schemas/apps/transmission-remote-gtk/graph-span</key> + <applyto>/apps/transmission-remote-gtk/graph-span</applyto> + <owner>transmission-remote-gtk</owner> + <type>int</type> + <default>60</default> + + <locale name="C"> + <short>Graph span</short> + <long>Graph span</long> + </locale> + </schema> + + <schema> <key>/schemas/apps/transmission-remote-gtk/window-width</key> <applyto>/apps/transmission-remote-gtk/window-width</applyto> <owner>transmission-remote-gtk</owner> diff --git a/src/trg-general-panel.c b/src/trg-general-panel.c index 2e6ed83..91274bf 100644 --- a/src/trg-general-panel.c +++ b/src/trg-general-panel.c @@ -108,7 +108,7 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, gint sizeOfBuf; gchar *statusString; const gchar *errorStr; - gint64 eta; + gint64 eta, uploaded, downloaded; gint seeders, leechers; GtkLabel *keyLabel; @@ -125,16 +125,22 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, trg_strlspeed(buf, torrent_get_rate_up(t) / KILOBYTE_FACTOR); gtk_label_set_text(GTK_LABEL(priv->gen_up_rate_label), buf); - trg_strlsize(buf, torrent_get_uploaded(t)); + uploaded = torrent_get_uploaded(t); + trg_strlsize(buf, uploaded); gtk_label_set_text(GTK_LABEL(priv->gen_uploaded_label), buf); - trg_strlsize(buf, torrent_get_downloaded(t)); + downloaded = torrent_get_downloaded(t); + trg_strlsize(buf, downloaded); gtk_label_set_text(GTK_LABEL(priv->gen_downloaded_label), buf); - trg_strlratio(buf, - (double) torrent_get_uploaded(t) / - (double) torrent_get_downloaded(t)); - gtk_label_set_text(GTK_LABEL(priv->gen_ratio_label), buf); + if (uploaded > 0 && downloaded > 0) { + trg_strlratio(buf, + (double) uploaded / + (double) downloaded); + gtk_label_set_text(GTK_LABEL(priv->gen_ratio_label), buf); + } else { + gtk_label_set_text(GTK_LABEL(priv->gen_ratio_label), _("N/A")); + } statusString = torrent_get_status_string(torrent_get_status(t)); gtk_label_set_text(GTK_LABEL(priv->gen_status_label), statusString); @@ -159,7 +165,7 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, gtk_label_set_markup(GTK_LABEL(priv->gen_error_label), markup); g_free(markup); - markup = g_markup_printf_escaped("<span fgcolor=\"red\">%s</span>", + markup = g_markup_printf_escaped("<span font_weight=\"bold\" fgcolor=\"red\">%s</span>", _("Error")); gtk_label_set_markup(keyLabel, markup); g_free(markup); diff --git a/src/trg-main-window.c b/src/trg-main-window.c index d0ce41a..883faa3 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -1035,13 +1035,13 @@ static gboolean trg_torrent_tree_view_visible_func(GtkTreeModel * model, GtkTreeIter * iter, gpointer data) { + TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); + guint flags; gboolean visible; gchar *name; const gchar *filterText; - TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(data); - guint32 criteria = trg_state_selector_get_flag(priv->stateSelector); gtk_tree_model_get(model, iter, TORRENT_COLUMN_FLAGS, &flags, -1); @@ -1240,8 +1240,10 @@ void trg_main_window_conn_changed(TrgMainWindow * win, gboolean connected) gtk_list_store_clear(GTK_LIST_STORE(priv->torrentModel)); trg_main_window_torrent_scrub(win); - trg_torrent_graph_set_nothing(priv->graph); trg_state_selector_disconnect(priv->stateSelector); + + if (priv->graphNotebookIndex >= 0) + trg_torrent_graph_set_nothing(priv->graph); } } diff --git a/src/trg-preferences.h b/src/trg-preferences.h index 6702de0..e4a047d 100644 --- a/src/trg-preferences.h +++ b/src/trg-preferences.h @@ -31,6 +31,7 @@ #define TRG_GCONF_KEY_ADD_NOTIFY "/apps/transmission-remote-gtk/add-notify" #define TRG_GCONF_KEY_WINDOW_WIDTH "/apps/transmission-remote-gtk/window-width" #define TRG_GCONF_KEY_WINDOW_HEIGHT "/apps/transmission-remote-gtk/window-height" +#define TRG_GCONF_KEY_GRAPH_SPAN "/apps/transmission-remote-gtk/graph-span" #define TRG_GCONF_KEY_SYSTEM_TRAY "/apps/transmission-remote-gtk/system-tray" #define TRG_GCONF_KEY_SHOW_GRAPH "/apps/transmission-remote-gtk/show-graph" #define TRG_GCONF_KEY_SYSTEM_TRAY_MINIMISE "/apps/transmission-remote-gtk/system-tray-minimise" diff --git a/src/trg-state-selector.c b/src/trg-state-selector.c index 1cde8a2..b6f3462 100644 --- a/src/trg-state-selector.c +++ b/src/trg-state-selector.c @@ -219,6 +219,9 @@ void trg_state_selector_update(TrgStateSelector * s) int i, j; struct cruft_remove_args cruft; + if (!client->session) + return; + for (i = 0; i < json_array_get_length(client->torrents); i++) { JsonObject *t = json_array_get_object_element(client->torrents, i); gpointer result; |