aboutsummaryrefslogtreecommitdiffstats
path: root/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'widgets')
-rw-r--r--widgets/misc/ChangeLog10
-rw-r--r--widgets/misc/e-source-selector.c23
-rw-r--r--widgets/misc/e-source-selector.h2
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);