summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-03-16 22:03:15 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-03-16 22:03:15 +0000
commit376327480b37a6d0a88029f070df991e6add71dc (patch)
tree8c6cd5519b36155b6a773fd513b5dfc18175ec77 /src
parentfd2ee406559f8732b50e7f5ca5ec0bade12bf83f (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.
Diffstat (limited to 'src')
-rw-r--r--src/transmission-remote-gtk.schemas13
-rw-r--r--src/trg-general-panel.c22
-rw-r--r--src/trg-main-window.c8
-rw-r--r--src/trg-preferences.h1
-rw-r--r--src/trg-state-selector.c3
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;