summaryrefslogtreecommitdiff
path: root/src/trg-preferences-dialog.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-02-17 23:36:41 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-02-17 23:36:41 +0000
commitbfff941cb7fdb428de57971831e39e3cf660112b (patch)
treee74ff5edb16e7c296f89e9d895a927de80916188 /src/trg-preferences-dialog.c
parent973aaa9d9a020e1644ce2fe45fd3613422f6ada9 (diff)
tracker manipulation almost complete, addition needs some work. configurable update interval.
Diffstat (limited to 'src/trg-preferences-dialog.c')
-rw-r--r--src/trg-preferences-dialog.c37
1 files changed, 32 insertions, 5 deletions
diff --git a/src/trg-preferences-dialog.c b/src/trg-preferences-dialog.c
index 15616af..141fb8c 100644
--- a/src/trg-preferences-dialog.c
+++ b/src/trg-preferences-dialog.c
@@ -41,6 +41,7 @@ G_DEFINE_TYPE(TrgPreferencesDialog, trg_preferences_dialog,
enum {
PROP_0,
PROP_GCONF_CLIENT,
+ PROP_TRG_CLIENT,
PROP_MAIN_WINDOW
};
@@ -49,6 +50,7 @@ enum {
struct _TrgPreferencesDialogPrivate {
GConfClient *gconf;
TrgMainWindow *win;
+ trg_client *client;
};
static GObject *instance = NULL;
@@ -69,6 +71,9 @@ trg_preferences_dialog_set_property(GObject * object,
case PROP_MAIN_WINDOW:
priv->win = g_value_get_object(value);
break;
+ case PROP_TRG_CLIENT:
+ priv->client = g_value_get_pointer(value);
+ break;
}
}
@@ -76,11 +81,8 @@ static void
trg_preferences_response_cb(GtkDialog * dlg, gint res_id,
gpointer data G_GNUC_UNUSED)
{
- switch (res_id) {
- default:
gtk_widget_destroy(GTK_WIDGET(dlg));
instance = NULL;
- }
}
static void
@@ -99,6 +101,9 @@ trg_preferences_dialog_get_property(GObject * object,
case PROP_MAIN_WINDOW:
g_value_set_object(value, priv->win);
break;
+ case PROP_TRG_CLIENT:
+ g_value_set_pointer(value, priv->client);
+ break;
}
}
@@ -127,6 +132,12 @@ static GtkWidget *new_check_button(GConfClient * gconf,
return w;
}
+static void interval_changed_cb(GtkWidget *w, gpointer data)
+{
+ trg_client *client = (trg_client*)data;
+ client->interval = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w));
+}
+
static void spun_cb_int(GtkWidget * widget, gpointer gconf)
{
gchar *key;
@@ -251,7 +262,7 @@ static GtkWidget *trg_prefs_desktopPage(GConfClient * gconf,
return t;
}
-static GtkWidget *trg_prefs_serverPage(GConfClient * gconf)
+static GtkWidget *trg_prefs_serverPage(GConfClient * gconf, trg_client *client)
{
GtkWidget *w, *t;
gint row = 0;
@@ -273,6 +284,10 @@ static GtkWidget *trg_prefs_serverPage(GConfClient * gconf)
w = new_check_button(gconf, "SSL", TRG_GCONF_KEY_SSL);
hig_workarea_add_wide_control(t, &row, w);
+ w = new_spin_button(gconf, TRG_GCONF_KEY_UPDATE_INTERVAL, 1, 60, 1);
+ g_signal_connect(w, "value-changed", G_CALLBACK(interval_changed_cb), client);
+ hig_workarea_add_row(t, &row, "Update interval:", w, NULL);
+
hig_workarea_add_section_divider(t, &row);
hig_workarea_add_section_title(t, &row, "Authentication");
@@ -318,7 +333,7 @@ static GObject *trg_preferences_dialog_constructor(GType type,
notebook = gtk_notebook_new();
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
- trg_prefs_serverPage(priv->gconf),
+ trg_prefs_serverPage(priv->gconf, priv->client),
gtk_label_new("Connection"));
gtk_notebook_append_page(GTK_NOTEBOOK(notebook),
@@ -345,6 +360,17 @@ trg_preferences_dialog_class_init(TrgPreferencesDialogClass * class)
g_object_class->get_property = trg_preferences_dialog_get_property;
g_object_class_install_property(g_object_class,
+ PROP_TRG_CLIENT,
+ g_param_spec_pointer
+ ("trg-client", "TClient",
+ "Client",
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_NAME |
+ G_PARAM_STATIC_NICK |
+ G_PARAM_STATIC_BLURB));
+
+ g_object_class_install_property(g_object_class,
PROP_GCONF_CLIENT,
g_param_spec_object("gconf-client",
"GConf Client",
@@ -385,6 +411,7 @@ GtkWidget *trg_preferences_dialog_get_instance(TrgMainWindow * win,
if (instance == NULL) {
instance = g_object_new(TRG_TYPE_PREFERENCES_DIALOG,
"main-window", win,
+ "trg-client", client,
"gconf-client", client, NULL);
}