diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-02-18 18:59:21 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-02-18 18:59:21 +0000 |
commit | b9880aea1124ad16595d3ada84b8636ebc41c8af (patch) | |
tree | b576e70b6320e47cde0a387387e3ec1d01a75d6b /src | |
parent | b885c3371d3dfbcebd05e8b081d7089cc3475311 (diff) |
torrent errors are no longer a mystery, also show location in general panel
Diffstat (limited to 'src')
-rw-r--r-- | src/trg-general-panel.c | 34 | ||||
-rw-r--r-- | src/trg-main-window.c | 2 |
2 files changed, 35 insertions, 1 deletions
diff --git a/src/trg-general-panel.c b/src/trg-general-panel.c index b98a78b..448deee 100644 --- a/src/trg-general-panel.c +++ b/src/trg-general-panel.c @@ -17,6 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ +#include <string.h> #include <glib-object.h> #include <gtk/gtk.h> @@ -26,6 +27,7 @@ #include "trg-torrent-model.h" static void gtk_label_clear(GtkLabel * l); +static GtkLabel *gen_panel_label_get_key_label(GtkLabel *l); static GtkLabel *trg_general_panel_add_label(TrgGeneralPanel * fixed, char *key, int col, int row); @@ -47,6 +49,8 @@ struct _TrgGeneralPanelPrivate { GtkLabel *gen_down_rate_label; GtkLabel *gen_up_rate_label; GtkLabel *gen_ratio_label; + GtkLabel *gen_downloaddir_label; + GtkLabel *gen_error_label; GtkTreeModel *model; }; @@ -66,6 +70,9 @@ void trg_general_panel_clear(TrgGeneralPanel * panel) gtk_label_clear(priv->gen_down_rate_label); gtk_label_clear(priv->gen_up_rate_label); gtk_label_clear(priv->gen_ratio_label); + gtk_label_clear(priv->gen_downloaddir_label); + gtk_label_clear(priv->gen_error_label); + gtk_label_clear(gen_panel_label_get_key_label(GTK_LABEL(priv->gen_error_label))); } static void gtk_label_clear(GtkLabel * l) @@ -73,6 +80,11 @@ static void gtk_label_clear(GtkLabel * l) gtk_label_set_text(l, ""); } +static GtkLabel *gen_panel_label_get_key_label(GtkLabel *l) +{ + return GTK_LABEL(g_object_get_data(G_OBJECT(l), "key-label")); +} + static void trg_general_panel_class_init(TrgGeneralPanelClass * klass) { g_type_class_add_private(klass, sizeof(TrgGeneralPanelPrivate)); @@ -85,8 +97,10 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, gchar buf[32]; gint sizeOfBuf; gchar *statusString; + const gchar *errorStr; gint64 eta; gint seeders, leechers; + GtkLabel *keyLabel; priv = TRG_GENERAL_PANEL_GET_PRIVATE(panel); @@ -122,6 +136,20 @@ void trg_general_panel_update(TrgGeneralPanel * panel, JsonObject * t, gtk_label_set_text(GTK_LABEL(priv->gen_name_label), torrent_get_name(t)); + gtk_label_set_text(GTK_LABEL(priv->gen_downloaddir_label), torrent_get_download_dir(t)); + + errorStr = torrent_get_errorstr(t); + keyLabel = gen_panel_label_get_key_label(GTK_LABEL(priv->gen_error_label)); + if (strlen(errorStr) > 0) { + gchar *errorValMarkup = g_markup_printf_escaped("<span fgcolor=\"red\">%s</span>", errorStr); + gtk_label_set_markup(GTK_LABEL(priv->gen_error_label), errorValMarkup); + g_free(errorValMarkup); + gtk_label_set_markup(keyLabel, "<span fgcolor=\"red\">Error:</span>"); + } else { + gtk_label_clear(GTK_LABEL(priv->gen_error_label)); + gtk_label_clear(keyLabel); + } + if ((eta = torrent_get_eta(t)) > 0) { tr_strltime_long(buf, eta, sizeOfBuf); gtk_label_set_text(GTK_LABEL(priv->gen_eta_label), buf); @@ -196,6 +224,12 @@ static void trg_general_panel_init(TrgGeneralPanel * self) priv->gen_ratio_label = trg_general_panel_add_label(self, "Ratio:", 1, 4); + priv->gen_downloaddir_label = + trg_general_panel_add_label(self, "Location:", 0, 5); + + priv->gen_error_label = + trg_general_panel_add_label(self, "", 0, 6); + gtk_widget_set_sensitive(GTK_WIDGET(self), FALSE); } diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 7c84cf1..7c28d92 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -762,7 +762,7 @@ GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) GtkWidget *notebook = gtk_notebook_new(); - gtk_widget_set_size_request(notebook, -1, 170); + gtk_widget_set_size_request(notebook, -1, 190); priv->genDetails = trg_general_panel_new(priv->sortedTorrentModel); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), |