diff options
Diffstat (limited to 'widgets')
-rw-r--r-- | widgets/misc/ChangeLog | 10 | ||||
-rw-r--r-- | widgets/misc/e-source-selector.c | 23 | ||||
-rw-r--r-- | widgets/misc/e-source-selector.h | 2 |
3 files changed, 34 insertions, 1 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog index 11ba7c99fd..8a38b6a6b2 100644 --- a/widgets/misc/ChangeLog +++ b/widgets/misc/ChangeLog @@ -1,3 +1,13 @@ +2004-06-24 Rodney Dawes <dobey@novell.com> + + * e-source-selector.[ch]: Add new "select_new" property to + private structure of the ESourceSelector + (rebuild_cb): Add code to select the new source, and cause the + selection_changed signal to get emitted, if we select new sources + (init): Don't select new sources by default + (e_source_selector_set_select_new): Add function to set whether or not + we want to select new sources when we add them + 2004-06-16 Not Zed <NotZed@Ximian.com> * e-source-selector.c (cell_toggled_callback): fix a path leak and diff --git a/widgets/misc/e-source-selector.c b/widgets/misc/e-source-selector.c index 1a0e0d1fbd..466930ed4f 100644 --- a/widgets/misc/e-source-selector.c +++ b/widgets/misc/e-source-selector.c @@ -53,6 +53,7 @@ struct _ESourceSelectorPrivate { gboolean toggled_last; gboolean checkboxes_shown; gboolean toggle_selection; + gboolean select_new; }; typedef struct { @@ -276,6 +277,10 @@ rebuild_model (ESourceSelector *selector) row_ref = g_hash_table_lookup (rebuild_data->remaining_uids, e_source_peek_uid (source)); if (!row_ref) { + if (selector->priv->select_new) { + select_source (selector, source); + rebuild_data->selection_changed = TRUE; + } gtk_tree_store_append (GTK_TREE_STORE (tree_store), &child_iter, &iter); gtk_tree_store_set (GTK_TREE_STORE (tree_store), &child_iter, 0, source, -1); @@ -726,6 +731,7 @@ init (ESourceSelector *selector) priv->toggled_last = FALSE; priv->checkboxes_shown = TRUE; + priv->select_new = FALSE; priv->selected_sources = create_selected_sources_hash (); @@ -891,7 +897,7 @@ e_source_selector_selection_shown (ESourceSelector *selector) * @selector: * @state: * - * Set the source selectr behaviour, whether you can toggle the + * Set the source selector behaviour, whether you can toggle the * current selection or not. **/ void @@ -903,6 +909,21 @@ e_source_selector_set_toggle_selection(ESourceSelector *selector, gboolean state } /** + * e_source_selector_set_select_new: + * @selector: An ESourceSelector widget + * @state: A gboolean + * + * Set whether or not to select new sources added to @selector. + **/ +void +e_source_selector_set_select_new (ESourceSelector *selector, gboolean state) +{ + g_return_if_fail (E_IS_SOURCE_SELECTOR (selector)); + + selector->priv->select_new = state; +} + +/** * e_source_selector_select_source: * @selector: An ESourceSelector widget * @source: An ESource. diff --git a/widgets/misc/e-source-selector.h b/widgets/misc/e-source-selector.h index 0b65d9443a..ec7d52bc26 100644 --- a/widgets/misc/e-source-selector.h +++ b/widgets/misc/e-source-selector.h @@ -74,6 +74,8 @@ gboolean e_source_selector_selection_shown (ESourceSelector *selector); void e_source_selector_set_toggle_selection(ESourceSelector *selector, gboolean state); +void e_source_selector_set_select_new (ESourceSelector *selector, gboolean state); + ESource *e_source_selector_peek_primary_selection (ESourceSelector *selector); void e_source_selector_set_primary_selection (ESourceSelector *selector, ESource *source); |