summaryrefslogtreecommitdiff
path: root/src/trg-state-selector.c
diff options
context:
space:
mode:
authorGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-08 11:34:13 +0000
committerGravatar Alan Fitton <ajf@eth0.org.uk>2011-09-08 11:34:13 +0000
commit859d493ec2cb0360b648ccf1d9b22ca1dafadc20 (patch)
tree2d65685f2116f5bba7746175b49edf04f366469a /src/trg-state-selector.c
parent0f5d47e437d8e32fbdb95c85055faf36fdf1ce17 (diff)
and save
Diffstat (limited to 'src/trg-state-selector.c')
-rw-r--r--src/trg-state-selector.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/trg-state-selector.c b/src/trg-state-selector.c
index 301796e..199598e 100644
--- a/src/trg-state-selector.c
+++ b/src/trg-state-selector.c
@@ -78,6 +78,7 @@ static void state_selection_changed(GtkTreeSelection * selection,
GtkTreeIter iter;
GtkTreeView *tv;
GtkTreeModel *stateModel;
+ guint index;
priv = TRG_STATE_SELECTOR_GET_PRIVATE(data);
@@ -86,10 +87,12 @@ static void state_selection_changed(GtkTreeSelection * selection,
if (gtk_tree_selection_get_selected(selection, &stateModel, &iter))
gtk_tree_model_get(stateModel, &iter, STATE_SELECTOR_BIT,
- &(priv->flag), -1);
+ &priv->flag, STATE_SELECTOR_INDEX, &index, -1);
else
priv->flag = 0;
+ trg_prefs_set_int(priv->prefs, TRG_PREFS_STATE_SELECTOR_LAST, index, TRG_PREFS_GLOBAL);
+
g_signal_emit(TRG_STATE_SELECTOR(data),
signals[SELECTOR_STATE_CHANGED], 0, priv->flag);
}
@@ -317,8 +320,9 @@ void trg_state_selector_update(TrgStateSelector * s)
STATE_SELECTOR_NAME, announceHost,
STATE_SELECTOR_SERIAL,
updateSerial,
- STATE_SELECTOR_BIT,
- FILTER_FLAG_TRACKER, -1);
+ STATE_SELECTOR_BIT, FILTER_FLAG_TRACKER,
+ STATE_SELECTOR_INDEX, 0,
+ -1);
g_hash_table_insert(priv->trackers, announceHost,
quick_tree_ref_new(model, &iter));
}
@@ -344,6 +348,7 @@ void trg_state_selector_update(TrgStateSelector * s)
STATE_SELECTOR_SERIAL,
updateSerial,
STATE_SELECTOR_BIT, FILTER_FLAG_DIR,
+ STATE_SELECTOR_INDEX, 0,
-1);
g_hash_table_insert(priv->directories, g_strdup(dir),
quick_tree_ref_new(model, &iter));
@@ -399,7 +404,9 @@ static void trg_state_selector_add_state(GtkListStore * model,
gtk_list_store_set(model, iter,
STATE_SELECTOR_ICON, icon,
STATE_SELECTOR_NAME, name,
- STATE_SELECTOR_BIT, flag, -1);
+ STATE_SELECTOR_BIT, flag,
+ STATE_SELECTOR_INDEX, gtk_tree_model_iter_n_children (GTK_TREE_MODEL(model), NULL),
+ -1);
}
static void remove_row_ref_and_free(GtkTreeRowReference * rr)
@@ -476,7 +483,7 @@ static GObject *trg_state_selector_constructor(GType type,
store =
gtk_list_store_new(STATE_SELECTOR_COLUMNS, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT64);
+ G_TYPE_STRING, G_TYPE_UINT, G_TYPE_INT64, G_TYPE_UINT);
trg_state_selector_add_state(store, &iter, GTK_STOCK_ABOUT, _("All"),
0);