diff options
author | Alan Fitton <ajf@eth0.org.uk> | 2011-09-08 21:47:27 +0000 |
---|---|---|
committer | Alan Fitton <ajf@eth0.org.uk> | 2011-09-08 21:47:27 +0000 |
commit | 35ab76c3e30c2721b5c4ba17d4c9f89cc5759131 (patch) | |
tree | f3d2f857a2fda4597bd62fd6de4c7ec59a97a348 /src | |
parent | 6da9f33b200227e3dadf53d3fdbbf7712b90ba01 (diff) |
sync up the view menu and the desktop preferences page a bit
Diffstat (limited to 'src')
-rw-r--r-- | src/trg-main-window.c | 27 | ||||
-rw-r--r-- | src/trg-main-window.h | 1 | ||||
-rw-r--r-- | src/trg-menu-bar.c | 15 | ||||
-rw-r--r-- | src/trg-preferences-dialog.c | 50 | ||||
-rw-r--r-- | src/trg-torrent-model.c | 2 |
5 files changed, 73 insertions, 22 deletions
diff --git a/src/trg-main-window.c b/src/trg-main-window.c index 05208d4..5358423 100644 --- a/src/trg-main-window.c +++ b/src/trg-main-window.c @@ -676,6 +676,19 @@ static void view_notebook_toggled_cb(GtkCheckMenuItem * w, gpointer data) { trg_widget_set_visible(priv->notebook, gtk_check_menu_item_get_active(w)); } +static void trg_main_window_toggle_graph_cb(GtkCheckMenuItem * w, gpointer win) { + if (gtk_check_menu_item_get_active(w)) + trg_main_window_add_graph(TRG_MAIN_WINDOW(win), TRUE); + else + trg_main_window_remove_graph(TRG_MAIN_WINDOW(win)); +} + +void trg_main_window_notebook_set_visible(TrgMainWindow *win, gboolean visible) +{ + TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); + trg_widget_set_visible(priv->notebook, visible); +} + static GtkWidget *trg_main_window_notebook_new(TrgMainWindow * win) { TrgMainWindowPrivate *priv = TRG_MAIN_WINDOW_GET_PRIVATE(win); TrgPrefs *prefs = trg_client_get_prefs(priv->client); @@ -1149,7 +1162,7 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { *b_remove, *b_delete, *b_props, *b_local_prefs, *b_remote_prefs, *b_about, *b_view_states, *b_view_notebook, *b_view_stats, *b_add_url, *b_quit, *b_move, *b_reannounce, *b_pause_all, - *b_resume_all, *b_dir_filters, *b_tracker_filters; + *b_resume_all, *b_dir_filters, *b_tracker_filters, *b_show_graph; TrgMenuBar *menuBar; menuBar = trg_menu_bar_new(trg_client_get_prefs(priv->client)); @@ -1165,6 +1178,7 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { "view-states-button", &b_view_states, "view-stats-button", &b_view_stats, "about-button", &b_about, "quit-button", &b_quit, "dir-filters", &b_dir_filters, "tracker-filters", &b_tracker_filters, + "show-graph", &b_show_graph, NULL); g_signal_connect(b_connect, "activate", G_CALLBACK(connect_cb), win); @@ -1191,16 +1205,19 @@ static TrgMenuBar *trg_main_window_menu_bar_new(TrgMainWindow * win) { G_CALLBACK(open_remote_prefs_cb), win); g_signal_connect(b_view_notebook, "toggled", G_CALLBACK(view_notebook_toggled_cb), win); - g_signal_connect(b_view_states, "toggled", - G_CALLBACK(view_notebook_toggled_cb), win); - g_signal_connect(b_view_states, "toggled", - G_CALLBACK(view_states_toggled_cb), win); g_signal_connect(b_dir_filters, "toggled", G_CALLBACK(main_window_toggle_filter_dirs), win); g_signal_connect(b_tracker_filters, "toggled", G_CALLBACK(main_window_toggle_filter_trackers), win); + g_signal_connect(b_tracker_filters, "toggled", + G_CALLBACK(trg_main_window_toggle_graph_cb), win); + g_signal_connect(b_view_states, "toggled", + G_CALLBACK(view_states_toggled_cb), win); g_signal_connect(b_view_stats, "activate", G_CALLBACK(view_stats_toggled_cb), win); + g_signal_connect(b_show_graph, "toggled", + G_CALLBACK(trg_main_window_toggle_graph_cb), win); + g_signal_connect(b_props, "activate", G_CALLBACK(open_props_cb), win); g_signal_connect(b_quit, "activate", G_CALLBACK(quit_cb), win); diff --git a/src/trg-main-window.h b/src/trg-main-window.h index ed28f04..da04254 100644 --- a/src/trg-main-window.h +++ b/src/trg-main-window.h @@ -70,6 +70,7 @@ void trg_main_window_remove_graph(TrgMainWindow * win); TrgStateSelector *trg_main_window_get_state_selector(TrgMainWindow * win); gint trg_mw_get_selected_torrent_id(TrgMainWindow * win); GtkTreeModel *trg_main_window_get_torrent_model(TrgMainWindow * win); +void trg_main_window_notebook_set_visible(TrgMainWindow *win, gboolean visible); G_END_DECLS #endif /* MAIN_WINDOW_H_ */ diff --git a/src/trg-menu-bar.c b/src/trg-menu-bar.c index 6d73df4..dc3523b 100644 --- a/src/trg-menu-bar.c +++ b/src/trg-menu-bar.c @@ -48,7 +48,8 @@ enum { PROP_QUIT, PROP_PREFS, PROP_DIR_FILTERS, - PROP_TRACKER_FILTERS + PROP_TRACKER_FILTERS, + PROP_VIEW_SHOW_GRAPH }; G_DEFINE_TYPE(TrgMenuBar, trg_menu_bar, GTK_TYPE_MENU_BAR) @@ -80,6 +81,7 @@ struct _TrgMenuBarPrivate { GtkWidget *mb_quit; GtkWidget *mb_directory_filters; GtkWidget *mb_tracker_filters; + GtkWidget *mb_view_graph; TrgPrefs *prefs; }; @@ -180,6 +182,9 @@ trg_menu_bar_get_property(GObject * object, guint property_id, case PROP_ABOUT_BUTTON: g_value_set_object(value, priv->mb_about); break; + case PROP_VIEW_SHOW_GRAPH: + g_value_set_object(value, priv->mb_view_graph); + break; case PROP_VIEW_STATES_BUTTON: g_value_set_object(value, priv->mb_view_states); break; @@ -294,10 +299,13 @@ static GtkWidget *trg_menu_bar_view_menu_new(TrgMenuBar * mb) gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_tracker_filters); - priv->mb_view_notebook = trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_NOTEBOOK, _("Torrent details"), NULL); + priv->mb_view_notebook = trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_NOTEBOOK, _("Torrent Details"), NULL); gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), priv->mb_view_notebook); + priv->mb_view_graph = trg_menu_bar_view_item_new(priv->prefs, TRG_PREFS_KEY_SHOW_GRAPH, _("Graph"), priv->mb_view_notebook); + gtk_menu_shell_append(GTK_MENU_SHELL(viewMenu), + priv->mb_view_graph); priv->mb_view_stats = gtk_menu_item_new_with_mnemonic(_("_Statistics")); @@ -510,6 +518,9 @@ static void trg_menu_bar_class_init(TrgMenuBarClass * klass) trg_menu_bar_install_widget_prop(object_class, PROP_TRACKER_FILTERS, "tracker-filters", "Tracker Filters"); + trg_menu_bar_install_widget_prop(object_class, PROP_VIEW_SHOW_GRAPH, + "show-graph", "Show Graph"); + g_object_class_install_property(object_class, PROP_PREFS, diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index fd9add2..c187301 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -206,8 +206,13 @@ static void check_save(TrgPrefs *prefs, void *wdp) { wd->flags); } +static void trgp_toggle_dependent(GtkToggleButton *b, gpointer data) +{ + gtk_widget_set_sensitive(GTK_WIDGET(data), gtk_toggle_button_get_active(b)); +} + static GtkWidget *trgp_check_new(TrgPreferencesDialog *dlg, - const char *mnemonic, gchar *key, int flags) { + const char *mnemonic, gchar *key, int flags, GtkToggleButton *dependency) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); GtkWidget *w = gtk_check_button_new_with_mnemonic(mnemonic); @@ -217,6 +222,13 @@ static GtkWidget *trgp_check_new(TrgPreferencesDialog *dlg, wd->refreshFunc = &check_refresh; check_refresh(priv->prefs, wd); + if (dependency) + { + g_signal_connect(dependency, "toggled", + G_CALLBACK(trgp_toggle_dependent), w); + gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(dependency)); + } + priv->widgets = g_list_append(priv->widgets, wd); return w; @@ -294,6 +306,10 @@ static void menu_bar_toggle_filter_dirs(GtkToggleButton * w, gpointer win) { trg_state_selector_set_show_dirs(selector, gtk_toggle_button_get_active(w)); } +static void notebook_toggled_cb(GtkToggleButton *b, gpointer data) { + trg_main_window_notebook_set_visible(TRG_MAIN_WINDOW(data), gtk_toggle_button_get_active(b)); +} + static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); @@ -305,19 +321,25 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { hig_workarea_add_section_title(t, &row, _("Features")); w = trgp_check_new(dlg, _("Directory filters"), TRG_PREFS_KEY_FILTER_DIRS, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL, NULL); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(menu_bar_toggle_filter_dirs), priv->win); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Tracker filters"), - TRG_PREFS_KEY_FILTER_TRACKERS, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_FILTER_TRACKERS, TRG_PREFS_GLOBAL, NULL); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(toggle_filter_trackers), priv->win); hig_workarea_add_wide_control(t, &row, w); + w = trgp_check_new(dlg, _("Torrent Details"), TRG_PREFS_KEY_SHOW_NOTEBOOK, + TRG_PREFS_GLOBAL, NULL); + g_signal_connect(G_OBJECT(w), "toggled", + G_CALLBACK(notebook_toggled_cb), priv->win); + hig_workarea_add_wide_control(t, &row, w); + w = trgp_check_new(dlg, _("Show graph"), TRG_PREFS_KEY_SHOW_GRAPH, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL, GTK_TOGGLE_BUTTON(w)); g_signal_connect(G_OBJECT(w), "toggled", G_CALLBACK(toggle_graph), priv->win); hig_workarea_add_wide_control(t, &row, w); @@ -325,13 +347,13 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { hig_workarea_add_section_title(t, &row, _("System Tray")); tray = trgp_check_new(dlg, _("Show in system tray"), - TRG_PREFS_KEY_SYSTEM_TRAY, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_SYSTEM_TRAY, TRG_PREFS_GLOBAL, NULL); g_signal_connect(G_OBJECT(tray), "toggled", G_CALLBACK(toggle_tray_icon), priv->win); hig_workarea_add_wide_control(t, &row, tray); w = trgp_check_new(dlg, _("Minimise to system tray"), - TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_SYSTEM_TRAY_MINIMISE, TRG_PREFS_GLOBAL, NULL); gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (tray))); g_signal_connect(G_OBJECT(tray), "toggled", @@ -339,7 +361,7 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Torrent added notifications"), - TRG_PREFS_KEY_ADD_NOTIFY, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_ADD_NOTIFY, TRG_PREFS_GLOBAL, NULL); gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (tray))); g_signal_connect(G_OBJECT(tray), "toggled", @@ -347,7 +369,7 @@ static GtkWidget *trg_prefs_desktopPage(TrgPreferencesDialog *dlg) { hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Torrent complete notifications"), - TRG_PREFS_KEY_COMPLETE_NOTIFY, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_COMPLETE_NOTIFY, TRG_PREFS_GLOBAL, NULL); gtk_widget_set_sensitive(w, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (tray))); g_signal_connect(G_OBJECT(tray), "toggled", @@ -366,15 +388,15 @@ static GtkWidget *trg_prefs_behaviorPage(TrgPreferencesDialog * dlg) { hig_workarea_add_section_title(t, &row, _("Torrents")); w = trgp_check_new(dlg, _("Start paused"), TRG_PREFS_KEY_START_PAUSED, - TRG_PREFS_GLOBAL); + TRG_PREFS_GLOBAL, NULL); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Options dialog on add"), - TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_ADD_OPTIONS_DIALOG, TRG_PREFS_GLOBAL, NULL); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Delete local .torrent file after adding"), - TRG_PREFS_KEY_DELETE_LOCAL_TORRENT, TRG_PREFS_GLOBAL); + TRG_PREFS_KEY_DELETE_LOCAL_TORRENT, TRG_PREFS_GLOBAL, NULL); hig_workarea_add_wide_control(t, &row, w); return t; @@ -572,14 +594,14 @@ static GtkWidget *trg_prefs_serverPage(TrgPreferencesDialog *dlg) { hig_workarea_add_row(t, &row, _("Minimised update interval:"), w, NULL); w = trgp_check_new(dlg, _("Automatically connect"), - TRG_PREFS_KEY_AUTO_CONNECT, TRG_PREFS_PROFILE); + TRG_PREFS_KEY_AUTO_CONNECT, TRG_PREFS_PROFILE, NULL); hig_workarea_add_wide_control(t, &row, w); - w = trgp_check_new(dlg, _("SSL"), TRG_PREFS_KEY_SSL, TRG_PREFS_PROFILE); + w = trgp_check_new(dlg, _("SSL"), TRG_PREFS_KEY_SSL, TRG_PREFS_PROFILE, NULL); hig_workarea_add_wide_control(t, &row, w); w = trgp_check_new(dlg, _("Update active torrents only"), - TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, TRG_PREFS_PROFILE); + TRG_PREFS_KEY_UPDATE_ACTIVE_ONLY, TRG_PREFS_PROFILE, NULL); g_signal_connect(w, "toggled", G_CALLBACK(update_activeonly_cb), tc); hig_workarea_add_wide_control(t, &row, w); diff --git a/src/trg-torrent-model.c b/src/trg-torrent-model.c index 89f6641..5438802 100644 --- a/src/trg-torrent-model.c +++ b/src/trg-torrent-model.c @@ -240,7 +240,7 @@ update_torrent_iter(TrgTorrentModel * model, gint64 rpcv, gint64 serial, uploaded = torrent_get_uploaded(t); downloaded = torrent_get_downloaded(t); - downloadDir = torrent_get_download_dir(t); + downloadDir = (gchar*)torrent_get_download_dir(t); rm_trailing_slashes(downloadDir); id = torrent_get_id(t); |