aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--widgets/misc/ChangeLog6
-rw-r--r--widgets/misc/e-multi-config-dialog.c65
2 files changed, 15 insertions, 56 deletions
diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog
index 7127146d30..015432eb1d 100644
--- a/widgets/misc/ChangeLog
+++ b/widgets/misc/ChangeLog
@@ -1,5 +1,11 @@
2002-03-12 Christopher James Lahey <clahey@ximian.com>
+ * e-multi-config-dialog.c: Removed Page struct.
+ (e_multi_config_dialog_add_page): Select the initial row after
+ appending to the model.
+
+2002-03-12 Christopher James Lahey <clahey@ximian.com>
+
* e-multi-config-dialog.c (init): Use Use e_table_memory_store
instead of e_table_memory_callbacks. Use e_cell_vbox to include a
pixbuf cell and a text cell.
diff --git a/widgets/misc/e-multi-config-dialog.c b/widgets/misc/e-multi-config-dialog.c
index df773f90f1..59b008f378 100644
--- a/widgets/misc/e-multi-config-dialog.c
+++ b/widgets/misc/e-multi-config-dialog.c
@@ -41,13 +41,6 @@
static GnomeDialogClass *parent_class = NULL;
-struct _Page {
- char *title;
- char *description;
- GdkPixbuf *icon;
- EConfigPage *page_widget;
-};
-typedef struct _Page Page;
struct _EMultiConfigDialogPrivate {
GSList *pages;
@@ -106,38 +99,6 @@ update_buttons (EMultiConfigDialog *dialog)
/* Page handling. */
-static Page *
-page_new (const char *title,
- const char *description,
- GdkPixbuf *icon,
- EConfigPage *page_widget)
-{
- Page *new;
-
- new = g_new (Page, 1);
- new->title = g_strdup (title);
- new->description = g_strdup (description);
- new->icon = icon;
- new->page_widget = page_widget;
-
- if (icon != NULL)
- gdk_pixbuf_ref (icon);
-
- return new;
-}
-
-static void
-page_free (Page *page)
-{
- g_free (page->title);
- g_free (page->description);
-
- if (page->icon != NULL)
- gdk_pixbuf_unref (page->icon);
-
- g_free (page);
-}
-
static GtkWidget *
create_page_container (const char *description,
GtkWidget *widget)
@@ -201,12 +162,10 @@ do_apply (EMultiConfigDialog *dialog)
priv = dialog->priv;
for (p = priv->pages; p != NULL; p = p->next) {
- const Page *page;
-
- page = (const Page *) p->data;
+ EConfigPage *page_widget = p->data;
- if (! e_config_page_is_applied (page->page_widget)) {
- e_config_page_apply (page->page_widget);
+ if (! e_config_page_is_applied (page_widget)) {
+ e_config_page_apply (page_widget);
priv->num_unapplied --;
}
}
@@ -249,13 +208,10 @@ impl_destroy (GtkObject *object)
{
EMultiConfigDialog *dialog;
EMultiConfigDialogPrivate *priv;
- GSList *p;
dialog = E_MULTI_CONFIG_DIALOG (object);
priv = dialog->priv;
- for (p = priv->pages; p != NULL; p = p->next)
- page_free ((Page *) p->data);
g_slist_free (priv->pages);
g_free (priv);
@@ -411,7 +367,6 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog,
EConfigPage *page_widget)
{
EMultiConfigDialogPrivate *priv;
- Page *new_page;
g_return_if_fail (E_IS_MULTI_CONFIG_DIALOG (dialog));
g_return_if_fail (title != NULL);
@@ -420,9 +375,13 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog,
priv = dialog->priv;
- new_page = page_new (title, description, icon, page_widget);
+ priv->pages = g_slist_append (priv->pages, page_widget);
- priv->pages = g_slist_append (priv->pages, new_page);
+ e_table_memory_store_insert_list (E_TABLE_MEMORY_STORE (priv->list_e_table_model), -1, NULL, title, icon);
+
+ gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
+ create_page_container (description, GTK_WIDGET (page_widget)),
+ NULL);
if (priv->pages->next == NULL) {
ETable *table;
@@ -434,12 +393,6 @@ e_multi_config_dialog_add_page (EMultiConfigDialog *dialog,
e_selection_model_select_all (e_table_get_selection_model (table));
}
- e_table_memory_store_insert_list (E_TABLE_MEMORY_STORE (priv->list_e_table_model), -1, NULL, title, icon);
-
- gtk_notebook_append_page (GTK_NOTEBOOK (priv->notebook),
- create_page_container (new_page->description, GTK_WIDGET (page_widget)),
- NULL);
-
if (! e_config_page_is_applied (page_widget))
priv->num_unapplied ++;