diff options
Diffstat (limited to 'src/trg-preferences-dialog.c')
-rw-r--r-- | src/trg-preferences-dialog.c | 61 |
1 files changed, 56 insertions, 5 deletions
diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c index b9327c6..53e4fe9 100644 --- a/src/trg-preferences-dialog.c +++ b/src/trg-preferences-dialog.c @@ -17,9 +17,7 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H #include "config.h" -#endif #include <glib.h> #include <glib/gi18n.h> @@ -60,6 +58,7 @@ struct _TrgPreferencesDialogPrivate { GtkWidget *profileNameEntry; GtkWidget *fullUpdateCheck; GList *widgets; + GtkWidget *notebook; }; static GObject *instance = NULL; @@ -601,7 +600,7 @@ static GtkWidget *trg_prefs_openExecPage(TrgPreferencesDialog * dlg) model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); ptv = trg_persistent_tree_view_new(priv->prefs, model, - TRG_PREFS_KEY_EXEC_COMMANDS); + TRG_PREFS_KEY_EXEC_COMMANDS, TRG_PREFS_PROFILE); trg_persistent_tree_view_set_add_select(ptv, trg_persistent_tree_view_add_column (ptv, 0, @@ -621,6 +620,46 @@ static GtkWidget *trg_prefs_openExecPage(TrgPreferencesDialog * dlg) return t; } +#ifdef HAVE_RSSGLIB +static GtkWidget *trg_prefs_rss_page(TrgPreferencesDialog * dlg) { + TrgPreferencesDialogPrivate *priv = + TRG_PREFERENCES_DIALOG_GET_PRIVATE(dlg); + GtkWidget *t; + guint row = 0; + TrgPersistentTreeView *ptv; + trg_pref_widget_desc *wd; + GtkListStore *model; + + t = hig_workarea_create(); + + hig_workarea_add_section_title(t, &row, + _("RSS Feeds")); + + model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); + + ptv = trg_persistent_tree_view_new(priv->prefs, model, + TRG_PREFS_KEY_RSS, TRG_PREFS_GLOBAL); + trg_persistent_tree_view_set_add_select(ptv, + trg_persistent_tree_view_add_column + (ptv, 0, + TRG_PREFS_RSS_SUBKEY_ID, + _("Name"))); + trg_persistent_tree_view_add_column(ptv, 1, + TRG_PREFS_RSS_SUBKEY_URL, + _("URL")); + + wd = trg_persistent_tree_view_get_widget_desc(ptv); + trg_pref_widget_refresh(dlg, wd); + priv->widgets = g_list_append(priv->widgets, wd); + + gtk_table_attach(GTK_TABLE(t), GTK_WIDGET(ptv), 1, 2, row, row + 1, + GTK_EXPAND | GTK_SHRINK | GTK_FILL, + GTK_FILL | GTK_EXPAND | GTK_SHRINK, 0, 0); + + return t; +} +#endif + static GtkWidget *trg_prefs_dirsPage(TrgPreferencesDialog * dlg) { TrgPreferencesDialogPrivate *priv = @@ -639,7 +678,7 @@ static GtkWidget *trg_prefs_dirsPage(TrgPreferencesDialog * dlg) model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); ptv = trg_persistent_tree_view_new(priv->prefs, model, - TRG_PREFS_KEY_DESTINATIONS); + TRG_PREFS_KEY_DESTINATIONS, TRG_PREFS_GLOBAL); trg_persistent_tree_view_set_add_select(ptv, trg_persistent_tree_view_add_column (ptv, 0, @@ -890,7 +929,7 @@ static GObject *trg_preferences_dialog_constructor(GType type, g_signal_connect(G_OBJECT(object), "response", G_CALLBACK(trg_preferences_response_cb), NULL); - notebook = gtk_notebook_new(); + notebook = priv->notebook = gtk_notebook_new(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), trg_prefs_serverPage(TRG_PREFERENCES_DIALOG @@ -917,6 +956,13 @@ static GObject *trg_preferences_dialog_constructor(GType type, (object)), gtk_label_new(_("Directories"))); +#ifdef HAVE_RSSGLIB + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), + trg_prefs_rss_page(TRG_PREFERENCES_DIALOG + (object)), + gtk_label_new(_("RSS Feeds"))); +#endif + gtk_container_set_border_width(GTK_CONTAINER(notebook), GUI_PAD); gtk_box_pack_start(GTK_BOX(contentvbox), notebook, TRUE, TRUE, 0); @@ -924,6 +970,11 @@ static GObject *trg_preferences_dialog_constructor(GType type, return object; } +void trg_preferences_dialog_set_page(TrgPreferencesDialog *pref_dlg, guint page) { + TrgPreferencesDialogPrivate *priv = TRG_PREFERENCES_DIALOG_GET_PRIVATE(pref_dlg); + gtk_notebook_set_current_page(GTK_NOTEBOOK(priv->notebook), page); +} + static void trg_preferences_dialog_init(TrgPreferencesDialog * pref_dlg) { } |