be more tolerant and silently skip entries that the dialog factory doesn't

2004-11-04  Sven Neumann  <sven@gimp.org>

	* app/widgets/gimpsessioninfo.c: be more tolerant and silently
	skip entries that the dialog factory doesn't recognize.

	* app/widgets/gimpdialogfactory.c: minor cleanup.
This commit is contained in:
Sven Neumann 2004-11-04 21:02:34 +00:00 committed by Sven Neumann
parent 17905c1b1e
commit a24047788c
3 changed files with 20 additions and 18 deletions

View File

@ -1,3 +1,10 @@
2004-11-04 Sven Neumann <sven@gimp.org>
* app/widgets/gimpsessioninfo.c: be more tolerant and silently
skip entries that the dialog factory doesn't recognize.
* app/widgets/gimpdialogfactory.c: minor cleanup.
2004-11-04 Sven Neumann <sven@gimp.org>
* app/dialogs/user-install-dialog.c (user_install_response): don't

View File

@ -357,9 +357,7 @@ gimp_dialog_factory_find_entry (GimpDialogFactory *factory,
for (list = factory->registered_dialogs; list; list = g_list_next (list))
{
GimpDialogFactoryEntry *entry;
entry = (GimpDialogFactoryEntry *) list->data;
GimpDialogFactoryEntry *entry = list->data;
if (! strcmp (identifier, entry->identifier))
return entry;
@ -379,9 +377,7 @@ gimp_dialog_factory_find_session_info (GimpDialogFactory *factory,
for (list = factory->session_infos; list; list = g_list_next (list))
{
GimpSessionInfo *info;
info = (GimpSessionInfo *) list->data;
GimpSessionInfo *info = list->data;
if ((info->toplevel_entry &&
! strcmp (identifier, info->toplevel_entry->identifier)) ||
@ -792,7 +788,7 @@ gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
for (list = factory->session_infos; list; list = g_list_next (list))
{
info = (GimpSessionInfo *) list->data;
info = list->data;
if ((info->toplevel_entry == entry) ||
(info->dockable_entry == entry))
@ -869,7 +865,7 @@ gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
for (list = factory->session_infos; list; list = g_list_next (list))
{
info = (GimpSessionInfo *) list->data;
info = list->data;
/* take the first empty slot */
if (! info->toplevel_entry &&

View File

@ -504,6 +504,7 @@ gimp_session_info_deserialize (GScanner *scanner,
GimpDialogFactory *factory;
GimpSessionInfo *info = NULL;
GTokenType token;
gboolean skip = FALSE;
gchar *factory_name;
gchar *entry_name;
@ -559,15 +560,10 @@ gimp_session_info_deserialize (GScanner *scanner,
{
info->toplevel_entry = gimp_dialog_factory_find_entry (factory,
entry_name);
g_free (entry_name);
skip = (info->toplevel_entry == NULL);
}
if (! info->toplevel_entry)
goto error;
}
else
{
g_free (entry_name);
}
g_free (entry_name);
token = G_TOKEN_LEFT_PAREN;
@ -651,13 +647,16 @@ gimp_session_info_deserialize (GScanner *scanner,
{
token = G_TOKEN_RIGHT_PAREN;
if (g_scanner_peek_next_token (scanner) == token)
if (!skip && g_scanner_peek_next_token (scanner) == token)
factory->session_infos = g_list_append (factory->session_infos, info);
else
gimp_session_info_free (info);
}
else
{
error:
gimp_session_info_free (info);
if (info)
gimp_session_info_free (info);
}
g_scanner_scope_remove_symbol (scanner, scope, "position");