[gimp] app: Introduce gimp_dialog_factory_get_singleton()
- From: Martin Nordholts <martinn src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: Introduce gimp_dialog_factory_get_singleton()
- Date: Sun, 28 Feb 2010 22:21:10 +0000 (UTC)
commit 11b1300b6f6752124f765305f3d78c54c1fa795a
Author: Martin Nordholts <martinn src gnome org>
Date: Sun Feb 28 23:20:57 2010 +0100
app: Introduce gimp_dialog_factory_get_singleton()
Instead of including dialogs/dialogs.h everywhere, introduce
gimp_dialog_factory_get_singleton(). The dialog factory singleton is
still initialized by dialogs.c though.
Right now the assumption is that we never will have another dialog
factory instance around. There were so many problems before when we
had four of them, so let's just keep one of them around.
app/actions/colormap-commands.c | 4 +--
app/actions/context-commands.c | 10 +++-----
app/actions/data-commands.c | 4 +--
app/actions/dialogs-commands.c | 6 +---
app/actions/dockable-commands.c | 2 -
app/actions/edit-commands.c | 3 +-
app/actions/file-commands.c | 11 ++++-----
app/actions/gradient-editor-commands.c | 7 ++---
app/actions/image-commands.c | 3 +-
app/actions/palette-editor-commands.c | 4 +--
app/actions/palettes-commands.c | 4 +--
app/actions/select-commands.c | 3 +-
app/actions/templates-commands.c | 1 -
app/actions/view-commands.c | 4 +--
app/actions/windows-actions.c | 8 +++---
app/actions/windows-commands.c | 10 ++++----
app/dialogs/dialogs.c | 27 ++++++++++++-----------
app/dialogs/preferences-dialog.c | 6 +---
app/display/gimpdisplayshell-cursor.c | 6 +---
app/gui/gimpuiconfigurer.c | 10 +++-----
app/gui/gui-message.c | 8 ++----
app/gui/gui-vtable.c | 8 ++----
app/gui/gui.c | 4 +-
app/gui/session.c | 8 +++---
app/menus/windows-menu.c | 8 +++---
app/tests.c | 2 -
app/tests/test-session-management.c | 2 -
app/tests/test-ui.c | 16 ++++++-------
app/tests/test-window-management.c | 6 +---
app/tools/gimpcolortool.c | 8 ++----
app/tools/gimptexttool-editor.c | 4 +--
app/tools/gimptexttool.c | 4 +--
app/widgets/gimpcontrollereditor.c | 4 +--
app/widgets/gimpcontrollerlist.c | 4 +--
app/widgets/gimpdevicestatus.c | 4 +--
app/widgets/gimpdialogfactory.c | 37 ++++++++++++++++++++++++++++++++
app/widgets/gimpdialogfactory.h | 3 ++
app/widgets/gimpdockable.c | 4 +--
app/widgets/gimpdockcolumns.c | 2 -
app/widgets/gimpdockwindow.c | 2 +-
app/widgets/gimppanedbox.c | 2 -
app/widgets/gimpsessioninfo.c | 4 +--
app/widgets/gimptoolbox-color-area.c | 4 +--
app/widgets/gimptooldialog.c | 4 +--
app/widgets/gimpviewablebox.c | 6 +---
45 files changed, 133 insertions(+), 158 deletions(-)
---
diff --git a/app/actions/colormap-commands.c b/app/actions/colormap-commands.c
index e71fbe6..3a522d6 100644
--- a/app/actions/colormap-commands.c
+++ b/app/actions/colormap-commands.c
@@ -33,8 +33,6 @@
#include "widgets/gimpcolormapeditor.h"
#include "widgets/gimpdialogfactory.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "colormap-commands.h"
@@ -83,7 +81,7 @@ colormap_edit_color_cmd_callback (GtkAction *action,
GIMP_STOCK_COLORMAP,
desc,
GTK_WIDGET (editor),
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-colormap-editor-color-dialog",
(const GimpRGB *) &color,
FALSE, FALSE);
diff --git a/app/actions/context-commands.c b/app/actions/context-commands.c
index 2987874..4bdf86b 100644
--- a/app/actions/context-commands.c
+++ b/app/actions/context-commands.c
@@ -41,8 +41,6 @@
#include "widgets/gimppaletteeditor.h"
#include "widgets/gimpcolormapeditor.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "context-commands.h"
@@ -872,9 +870,9 @@ context_get_palette_editor (void)
{
GimpSessionInfo *info = NULL;
- g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (global_dialog_factory), NULL);
+ g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (gimp_dialog_factory_get_singleton ()), NULL);
- info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-palette-editor");
if (info && gimp_session_info_get_widget (info))
return GIMP_PALETTE_EDITOR (gtk_bin_get_child (GTK_BIN (gimp_session_info_get_widget (info))));
@@ -887,9 +885,9 @@ context_get_colormap_editor (void)
{
GimpSessionInfo *info = NULL;
- g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (global_dialog_factory), NULL);
+ g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (gimp_dialog_factory_get_singleton ()), NULL);
- info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-indexed-palette");
if (info && gimp_session_info_get_widget (info))
return GIMP_COLORMAP_EDITOR (gtk_bin_get_child (GTK_BIN (gimp_session_info_get_widget (info))));
diff --git a/app/actions/data-commands.c b/app/actions/data-commands.c
index f6b3f39..66fb5a8 100644
--- a/app/actions/data-commands.c
+++ b/app/actions/data-commands.c
@@ -41,8 +41,6 @@
#include "widgets/gimpmessagebox.h"
#include "widgets/gimpmessagedialog.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "data-commands.h"
@@ -302,7 +300,7 @@ data_edit_cmd_callback (GtkAction *action,
GdkScreen *screen = gtk_widget_get_screen (GTK_WIDGET (view));
GtkWidget *dockable;
- dockable = gimp_dialog_factory_dialog_raise (global_dialog_factory, screen,
+ dockable = gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (), screen,
value, -1);
gimp_data_editor_set_data (GIMP_DATA_EDITOR (gtk_bin_get_child (GTK_BIN (dockable))),
diff --git a/app/actions/dialogs-commands.c b/app/actions/dialogs-commands.c
index 9b10b84..f576bda 100644
--- a/app/actions/dialogs-commands.c
+++ b/app/actions/dialogs-commands.c
@@ -25,8 +25,6 @@
#include "widgets/gimpdialogfactory.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "dialogs-commands.h"
@@ -42,7 +40,7 @@ dialogs_create_toplevel_cmd_callback (GtkAction *action,
return_if_no_widget (widget, data);
if (value)
- gimp_dialog_factory_dialog_new (global_dialog_factory,
+ gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
value, -1, TRUE);
}
@@ -56,7 +54,7 @@ dialogs_create_dockable_cmd_callback (GtkAction *action,
return_if_no_widget (widget, data);
if (value)
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
value, -1);
}
diff --git a/app/actions/dockable-commands.c b/app/actions/dockable-commands.c
index 846efcc..8623849 100644
--- a/app/actions/dockable-commands.c
+++ b/app/actions/dockable-commands.c
@@ -34,8 +34,6 @@
#include "widgets/gimpdocked.h"
#include "widgets/gimpsessioninfo.h"
-#include "dialogs/dialogs.h"
-
#include "dockable-commands.h"
diff --git a/app/actions/edit-commands.c b/app/actions/edit-commands.c
index abfcb30..37e9b16 100644
--- a/app/actions/edit-commands.c
+++ b/app/actions/edit-commands.c
@@ -49,7 +49,6 @@
#include "display/gimpdisplayshell.h"
#include "display/gimpdisplayshell-transform.h"
-#include "dialogs/dialogs.h"
#include "dialogs/fade-dialog.h"
#include "actions.h"
@@ -449,7 +448,7 @@ edit_named_paste_cmd_callback (GtkAction *action,
GtkWidget *widget;
return_if_no_widget (widget, data);
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-buffer-list|gimp-buffer-grid", -1);
}
diff --git a/app/actions/file-commands.c b/app/actions/file-commands.c
index 38debaf..5060d69 100644
--- a/app/actions/file-commands.c
+++ b/app/actions/file-commands.c
@@ -52,7 +52,6 @@
#include "display/gimpdisplay.h"
#include "display/gimpdisplay-foreach.h"
-#include "dialogs/dialogs.h"
#include "dialogs/file-save-dialog.h"
#include "actions.h"
@@ -142,7 +141,7 @@ file_open_location_cmd_callback (GtkAction *action,
GtkWidget *widget;
return_if_no_widget (widget, data);
- gimp_dialog_factory_dialog_new (global_dialog_factory,
+ gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-file-open-location-dialog", -1, TRUE);
}
@@ -450,7 +449,7 @@ file_close_all_cmd_callback (GtkAction *action,
GtkWidget *widget;
return_if_no_widget (widget, data);
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-close-all-dialog", -1);
}
@@ -489,7 +488,7 @@ file_open_dialog_show (Gimp *gimp,
{
GtkWidget *dialog;
- dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
+ dialog = gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (parent),
"gimp-file-open-dialog", -1, FALSE);
@@ -531,7 +530,7 @@ file_save_dialog_show (Gimp *gimp,
if (! dialog)
{
- dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
+ dialog = gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (parent),
"gimp-file-save-dialog",
-1, FALSE);
@@ -581,7 +580,7 @@ file_export_dialog_show (Gimp *gimp,
if (! dialog)
{
- dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
+ dialog = gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (parent),
"gimp-file-export-dialog",
-1, FALSE);
diff --git a/app/actions/gradient-editor-commands.c b/app/actions/gradient-editor-commands.c
index 1e2aee1..204e10d 100644
--- a/app/actions/gradient-editor-commands.c
+++ b/app/actions/gradient-editor-commands.c
@@ -29,13 +29,12 @@
#include "core/gimpgradient.h"
#include "widgets/gimpcolordialog.h"
+#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpgradienteditor.h"
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpuimanager.h"
#include "widgets/gimpviewabledialog.h"
-#include "dialogs/dialogs.h"
-
#include "gradient-editor-commands.h"
#include "gimp-intl.h"
@@ -86,7 +85,7 @@ gradient_editor_left_color_cmd_callback (GtkAction *action,
GIMP_STOCK_GRADIENT,
_("Gradient Segment's Left Endpoint Color"),
GTK_WIDGET (editor),
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-gradient-editor-color-dialog",
&editor->control_sel_l->left_color,
editor->instant_update, TRUE);
@@ -237,7 +236,7 @@ gradient_editor_right_color_cmd_callback (GtkAction *action,
GIMP_STOCK_GRADIENT,
_("Gradient Segment's Right Endpoint Color"),
GTK_WIDGET (editor),
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-gradient-editor-color-dialog",
&editor->control_sel_l->right_color,
editor->instant_update, TRUE);
diff --git a/app/actions/image-commands.c b/app/actions/image-commands.c
index 3342ffc..d1f0740 100644
--- a/app/actions/image-commands.c
+++ b/app/actions/image-commands.c
@@ -50,7 +50,6 @@
#include "display/gimpdisplayshell.h"
#include "dialogs/convert-dialog.h"
-#include "dialogs/dialogs.h"
#include "dialogs/grid-dialog.h"
#include "dialogs/image-merge-layers-dialog.h"
#include "dialogs/image-new-dialog.h"
@@ -127,7 +126,7 @@ image_new_cmd_callback (GtkAction *action,
GtkWidget *dialog;
return_if_no_widget (widget, data);
- dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
+ dialog = gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-image-new-dialog", -1, FALSE);
diff --git a/app/actions/palette-editor-commands.c b/app/actions/palette-editor-commands.c
index 5346dee..43fe8c0 100644
--- a/app/actions/palette-editor-commands.c
+++ b/app/actions/palette-editor-commands.c
@@ -32,8 +32,6 @@
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimppaletteeditor.h"
-#include "dialogs/dialogs.h"
-
#include "palette-editor-commands.h"
#include "gimp-intl.h"
@@ -71,7 +69,7 @@ palette_editor_edit_color_cmd_callback (GtkAction *action,
GIMP_STOCK_PALETTE,
_("Edit Color Palette Entry"),
GTK_WIDGET (editor),
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-palette-editor-color-dialog",
&editor->color->color,
FALSE, FALSE);
diff --git a/app/actions/palettes-commands.c b/app/actions/palettes-commands.c
index 6acd9cc..6bd2efb 100644
--- a/app/actions/palettes-commands.c
+++ b/app/actions/palettes-commands.c
@@ -34,8 +34,6 @@
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpview.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "palettes-commands.h"
@@ -58,7 +56,7 @@ palettes_import_cmd_callback (GtkAction *action,
GtkWidget *widget;
return_if_no_widget (widget, data);
- gimp_dialog_factory_dialog_new (global_dialog_factory,
+ gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-palette-import-dialog", -1, TRUE);
}
diff --git a/app/actions/select-commands.c b/app/actions/select-commands.c
index df69d96..4c4bc4b 100644
--- a/app/actions/select-commands.c
+++ b/app/actions/select-commands.c
@@ -38,7 +38,6 @@
#include "display/gimpdisplay.h"
#include "display/gimpdisplayshell.h"
-#include "dialogs/dialogs.h"
#include "dialogs/stroke-dialog.h"
#include "actions.h"
@@ -319,7 +318,7 @@ select_save_cmd_callback (GtkAction *action,
gimp_selection_save (GIMP_SELECTION (gimp_image_get_mask (image)));
gimp_image_flush (image);
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-channel-list", -1);
}
diff --git a/app/actions/templates-commands.c b/app/actions/templates-commands.c
index 045d814..57d413a 100644
--- a/app/actions/templates-commands.c
+++ b/app/actions/templates-commands.c
@@ -41,7 +41,6 @@
#include "widgets/gimptemplateeditor.h"
#include "widgets/gimptemplateview.h"
-#include "dialogs/dialogs.h"
#include "dialogs/template-options-dialog.h"
#include "actions.h"
diff --git a/app/actions/view-commands.c b/app/actions/view-commands.c
index 67ef2e9..c0e10fd 100644
--- a/app/actions/view-commands.c
+++ b/app/actions/view-commands.c
@@ -50,8 +50,6 @@
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpuimanager.h"
-#include "dialogs/dialogs.h"
-
#include "actions.h"
#include "view-commands.h"
@@ -320,7 +318,7 @@ view_navigation_window_cmd_callback (GtkAction *action,
GimpDisplayShell *shell;
return_if_no_shell (shell, data);
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (GTK_WIDGET (shell)),
"gimp-navigation-view", -1);
}
diff --git a/app/actions/windows-actions.c b/app/actions/windows-actions.c
index bb4dc37..adf4572 100644
--- a/app/actions/windows-actions.c
+++ b/app/actions/windows-actions.c
@@ -151,21 +151,21 @@ windows_actions_setup (GimpActionGroup *group)
windows_actions_display_add (group->gimp->displays, display, group);
}
- g_signal_connect_object (global_dialog_factory, "dock-window-added",
+ g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-added",
G_CALLBACK (windows_actions_dock_window_added),
group, 0);
- g_signal_connect_object (global_dialog_factory, "dock-window-removed",
+ g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-removed",
G_CALLBACK (windows_actions_dock_window_removed),
group, 0);
- for (list = gimp_dialog_factory_get_open_dialogs (global_dialog_factory);
+ for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ());
list;
list = g_list_next (list))
{
GimpDockWindow *dock_window = list->data;
if (GIMP_IS_DOCK_WINDOW (dock_window))
- windows_actions_dock_window_added (global_dialog_factory,
+ windows_actions_dock_window_added (gimp_dialog_factory_get_singleton (),
dock_window,
group);
}
diff --git a/app/actions/windows-commands.c b/app/actions/windows-commands.c
index 6318e87..16f2024 100644
--- a/app/actions/windows-commands.c
+++ b/app/actions/windows-commands.c
@@ -54,7 +54,7 @@ windows_hide_docks_cmd_callback (GtkAction *action,
gpointer data)
{
gboolean active = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
- GimpDialogsState state = gimp_dialog_factory_get_state (global_dialog_factory);
+ GimpDialogsState state = gimp_dialog_factory_get_state (gimp_dialog_factory_get_singleton ());
GimpDialogsState new_state = state;
Gimp *gimp = NULL;
return_if_no_gimp (gimp, data);
@@ -69,7 +69,7 @@ windows_hide_docks_cmd_callback (GtkAction *action,
new_state = GIMP_DIALOGS_SHOWN;
if (state != new_state)
- gimp_dialog_factory_set_state (global_dialog_factory, new_state);
+ gimp_dialog_factory_set_state (gimp_dialog_factory_get_singleton (), new_state);
g_object_set (gimp->config,
"hide-docks", active,
@@ -119,9 +119,9 @@ windows_open_recent_cmd_callback (GtkAction *action,
g_object_ref (info);
gimp_container_remove (global_recent_docks, GIMP_OBJECT (info));
- gimp_dialog_factory_add_session_info (global_dialog_factory, info);
+ gimp_dialog_factory_add_session_info (gimp_dialog_factory_get_singleton (), info);
- gimp_session_info_restore (info, global_dialog_factory);
+ gimp_session_info_restore (info, gimp_dialog_factory_get_singleton ());
gimp_session_info_clear_info (info);
}
@@ -132,7 +132,7 @@ windows_show_toolbox (void)
if (! dialogs_get_toolbox ())
{
- toolbox = gimp_dock_with_window_new (global_dialog_factory,
+ toolbox = gimp_dock_with_window_new (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
TRUE /*toolbox*/);
diff --git a/app/dialogs/dialogs.c b/app/dialogs/dialogs.c
index 62f1fbf..d31a9b0 100644
--- a/app/dialogs/dialogs.c
+++ b/app/dialogs/dialogs.c
@@ -45,8 +45,7 @@
#include "gimp-intl.h"
-GimpDialogFactory *global_dialog_factory = NULL;
-GimpContainer *global_recent_docks = NULL;
+GimpContainer *global_recent_docks = NULL;
#define FOREIGN(id, singleton, remember_size) \
@@ -377,17 +376,19 @@ void
dialogs_init (Gimp *gimp,
GimpMenuFactory *menu_factory)
{
- gint i;
+ GimpDialogFactory *factory = NULL;
+ gint i = 0;
g_return_if_fail (GIMP_IS_GIMP (gimp));
g_return_if_fail (GIMP_IS_MENU_FACTORY (menu_factory));
- global_dialog_factory = gimp_dialog_factory_new ("toplevel",
- gimp_get_user_context (gimp),
- menu_factory);
+ factory = gimp_dialog_factory_new ("toplevel",
+ gimp_get_user_context (gimp),
+ menu_factory);
+ gimp_dialog_factory_set_singleton (factory);
for (i = 0; i < G_N_ELEMENTS (entries); i++)
- gimp_dialog_factory_register_entry (global_dialog_factory,
+ gimp_dialog_factory_register_entry (gimp_dialog_factory_get_singleton (),
entries[i].identifier,
gettext (entries[i].name),
gettext (entries[i].blurb),
@@ -410,10 +411,10 @@ dialogs_exit (Gimp *gimp)
{
g_return_if_fail (GIMP_IS_GIMP (gimp));
- if (global_dialog_factory)
+ if (gimp_dialog_factory_get_singleton ())
{
- g_object_unref (global_dialog_factory);
- global_dialog_factory = NULL;
+ g_object_unref (gimp_dialog_factory_get_singleton ());
+ gimp_dialog_factory_set_singleton (NULL);
}
if (global_recent_docks)
@@ -433,7 +434,7 @@ dialogs_ensure_factory_entry_on_recent_dock (GimpSessionInfo *info)
/* The recent docks container only contains session infos for
* dock windows
*/
- entry = gimp_dialog_factory_find_entry (global_dialog_factory,
+ entry = gimp_dialog_factory_find_entry (gimp_dialog_factory_get_singleton (),
"gimp-dock-window");
gimp_session_info_set_factory_entry (info, entry);
@@ -506,9 +507,9 @@ dialogs_get_toolbox (void)
{
GList *list;
- g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (global_dialog_factory), NULL);
+ g_return_val_if_fail (GIMP_IS_DIALOG_FACTORY (gimp_dialog_factory_get_singleton ()), NULL);
- for (list = gimp_dialog_factory_get_open_dialogs (global_dialog_factory);
+ for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ());
list;
list = g_list_next (list))
{
diff --git a/app/dialogs/preferences-dialog.c b/app/dialogs/preferences-dialog.c
index fe6c1ae..39feb42 100644
--- a/app/dialogs/preferences-dialog.c
+++ b/app/dialogs/preferences-dialog.c
@@ -59,8 +59,6 @@
#include "gui/session.h"
#include "gui/themes.h"
-#include "dialogs/dialogs.h"
-
#include "preferences-dialog.h"
#include "resolution-calibrate-dialog.h"
@@ -493,7 +491,7 @@ static void
prefs_input_devices_dialog (GtkWidget *widget,
Gimp *gimp)
{
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-input-devices-dialog", 0);
}
@@ -502,7 +500,7 @@ static void
prefs_keyboard_shortcuts_dialog (GtkWidget *widget,
Gimp *gimp)
{
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (widget),
"gimp-keyboard-shortcuts-dialog", 0);
}
diff --git a/app/display/gimpdisplayshell-cursor.c b/app/display/gimpdisplayshell-cursor.c
index 1aea1c9..29be4cd 100644
--- a/app/display/gimpdisplayshell-cursor.c
+++ b/app/display/gimpdisplayshell-cursor.c
@@ -31,8 +31,6 @@
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpsessioninfo.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdisplay.h"
#include "gimpcursorview.h"
#include "gimpdisplayshell.h"
@@ -166,7 +164,7 @@ gimp_display_shell_update_cursor (GimpDisplayShell *shell,
gimp_statusbar_update_cursor (statusbar, precision, image_x, image_y);
- session_info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ session_info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-cursor-view");
if (session_info && gimp_session_info_get_widget (session_info))
{
@@ -203,7 +201,7 @@ gimp_display_shell_clear_cursor (GimpDisplayShell *shell)
gimp_statusbar_clear_cursor (statusbar);
- session_info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ session_info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-cursor-view");
if (session_info && gimp_session_info_get_widget (session_info))
{
diff --git a/app/gui/gimpuiconfigurer.c b/app/gui/gimpuiconfigurer.c
index d4dfa7e..7537384 100644
--- a/app/gui/gimpuiconfigurer.c
+++ b/app/gui/gimpuiconfigurer.c
@@ -37,8 +37,6 @@
#include "display/gimpdisplayshell.h"
#include "display/gimpimagewindow.h"
-#include "dialogs/dialogs.h"
-
#include "menus/menus.h"
#include "gimpuiconfigurer.h"
@@ -161,7 +159,7 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
GList *dialog_iter = NULL;
dialogs =
- g_list_copy (gimp_dialog_factory_get_open_dialogs (global_dialog_factory));
+ g_list_copy (gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ()));
for (dialog_iter = dialogs; dialog_iter; dialog_iter = dialog_iter->next)
{
@@ -203,7 +201,7 @@ gimp_ui_configurer_move_docks_to_columns (GimpUIConfigurer *ui_configurer,
if (GTK_IS_WIDGET (dock_window) &&
g_list_length (gimp_dock_window_get_docks (dock_window)) == 0)
{
- gimp_dialog_factory_remove_dialog (global_dialog_factory,
+ gimp_dialog_factory_remove_dialog (gimp_dialog_factory_get_singleton (),
GTK_WIDGET (dock_window));
gtk_widget_destroy (GTK_WIDGET (dock_window));
}
@@ -283,7 +281,7 @@ gimp_ui_configurer_move_docks_to_window (GimpUIConfigurer *ui_configurer,
* toolbox
*/
dock_window =
- gimp_dialog_factory_dialog_new (global_dialog_factory,
+ gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
screen,
(GIMP_IS_TOOLBOX (dock) ?
"gimp-toolbox-window" :
@@ -325,7 +323,7 @@ gimp_ui_configurer_separate_shells (GimpUIConfigurer *ui_configurer,
new_image_window = gimp_image_window_new (ui_configurer->p->gimp,
NULL,
global_menu_factory,
- global_dialog_factory);
+ gimp_dialog_factory_get_singleton ());
/* Move the shell there */
shell = gimp_image_window_get_shell (source_image_window, 1);
diff --git a/app/gui/gui-message.c b/app/gui/gui-message.c
index 4ec2f9b..38523c3 100644
--- a/app/gui/gui-message.c
+++ b/app/gui/gui-message.c
@@ -41,8 +41,6 @@
#include "widgets/gimpsessioninfo.h"
#include "widgets/gimpwidgets-utils.h"
-#include "dialogs/dialogs.h"
-
#include "gui-message.h"
#include "gimp-intl.h"
@@ -102,7 +100,7 @@ gui_message_error_console (GimpMessageSeverity severity,
{
GimpSessionInfo *info;
- info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-error-console");
if (info && GIMP_IS_DOCKABLE (gimp_session_info_get_widget (info)))
@@ -110,7 +108,7 @@ gui_message_error_console (GimpMessageSeverity severity,
}
if (! dockable)
- dockable = gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ dockable = gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
"gimp-error-console", -1);
@@ -175,7 +173,7 @@ progress_error_dialog (GimpProgress *progress)
static GtkWidget *
global_error_dialog (void)
{
- return gimp_dialog_factory_dialog_new (global_dialog_factory,
+ return gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
"gimp-error-dialog", -1,
FALSE);
diff --git a/app/gui/gui-vtable.c b/app/gui/gui-vtable.c
index 917efa9..023e3b8 100644
--- a/app/gui/gui-vtable.c
+++ b/app/gui/gui-vtable.c
@@ -70,8 +70,6 @@
#include "menus/menus.h"
-#include "dialogs/dialogs.h"
-
#include "gui-message.h"
#include "gui-vtable.h"
#include "themes.h"
@@ -199,7 +197,7 @@ static void
gui_set_busy (Gimp *gimp)
{
gimp_displays_set_busy (gimp);
- gimp_dialog_factory_set_busy (global_dialog_factory);
+ gimp_dialog_factory_set_busy (gimp_dialog_factory_get_singleton ());
gdk_flush ();
}
@@ -208,7 +206,7 @@ static void
gui_unset_busy (Gimp *gimp)
{
gimp_displays_unset_busy (gimp);
- gimp_dialog_factory_unset_busy (global_dialog_factory);
+ gimp_dialog_factory_unset_busy (gimp_dialog_factory_get_singleton ());
gdk_flush ();
}
@@ -351,7 +349,7 @@ gui_display_create (Gimp *gimp,
display = gimp_display_new (gimp, image, unit, scale,
global_menu_factory,
image_managers->data,
- global_dialog_factory);
+ gimp_dialog_factory_get_singleton ());
}
if (gimp_context_get_display (context) == display)
diff --git a/app/gui/gui.c b/app/gui/gui.c
index a872bc1..70148a3 100644
--- a/app/gui/gui.c
+++ b/app/gui/gui.c
@@ -560,7 +560,7 @@ gui_exit_callback (Gimp *gimp,
if (! force && gimp_displays_dirty (gimp))
{
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
"gimp-quit-dialog", -1);
@@ -697,7 +697,7 @@ gui_device_change_notify (Gimp *gimp)
{
GimpSessionInfo *session_info;
- session_info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ session_info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-device-status");
if (session_info && gimp_session_info_get_widget (session_info))
diff --git a/app/gui/session.c b/app/gui/session.c
index d07f1c9..e457448 100644
--- a/app/gui/session.c
+++ b/app/gui/session.c
@@ -139,10 +139,10 @@ session_init (Gimp *gimp)
/* In versions <= GIMP 2.6 there was a "toolbox", a
* "dock", a "display" and a "toplevel" factory. These
- * are now merged to a single global_dialog_factory. We
+ * are now merged to a single gimp_dialog_factory_get_singleton (). We
* need the legacy name though, so keep it around.
*/
- factory = global_dialog_factory;
+ factory = gimp_dialog_factory_get_singleton ();
info = gimp_session_info_new ();
@@ -268,7 +268,7 @@ session_restore (Gimp *gimp)
{
g_return_if_fail (GIMP_IS_GIMP (gimp));
- gimp_dialog_factory_restore (global_dialog_factory);
+ gimp_dialog_factory_restore (gimp_dialog_factory_get_singleton ());
}
void
@@ -307,7 +307,7 @@ session_save (Gimp *gimp,
if (!writer)
return;
- gimp_dialog_factory_save (global_dialog_factory, writer);
+ gimp_dialog_factory_save (gimp_dialog_factory_get_singleton (), writer);
gimp_config_writer_linefeed (writer);
/* save last tip shown
diff --git a/app/menus/windows-menu.c b/app/menus/windows-menu.c
index 6b27cbb..57ab241 100644
--- a/app/menus/windows-menu.c
+++ b/app/menus/windows-menu.c
@@ -104,21 +104,21 @@ windows_menu_setup (GimpUIManager *manager,
windows_menu_display_add (manager->gimp->displays, display, manager);
}
- g_signal_connect_object (global_dialog_factory, "dock-window-added",
+ g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-added",
G_CALLBACK (windows_menu_dock_window_added),
manager, 0);
- g_signal_connect_object (global_dialog_factory, "dock-window-removed",
+ g_signal_connect_object (gimp_dialog_factory_get_singleton (), "dock-window-removed",
G_CALLBACK (windows_menu_dock_window_removed),
manager, 0);
- for (list = gimp_dialog_factory_get_open_dialogs (global_dialog_factory);
+ for (list = gimp_dialog_factory_get_open_dialogs (gimp_dialog_factory_get_singleton ());
list;
list = g_list_next (list))
{
GimpDockWindow *dock_window = list->data;
if (GIMP_IS_DOCK_WINDOW (dock_window))
- windows_menu_dock_window_added (global_dialog_factory,
+ windows_menu_dock_window_added (gimp_dialog_factory_get_singleton (),
dock_window,
manager);
}
diff --git a/app/tests.c b/app/tests.c
index fdbfe7d..e78102a 100644
--- a/app/tests.c
+++ b/app/tests.c
@@ -25,8 +25,6 @@
#include "actions/actions.h"
-#include "dialogs/dialogs.h"
-
#include "menus/menus.h"
#include "base/base.h"
diff --git a/app/tests/test-session-management.c b/app/tests/test-session-management.c
index f998e81..1543e66 100644
--- a/app/tests/test-session-management.c
+++ b/app/tests/test-session-management.c
@@ -26,8 +26,6 @@
#include "dialogs/dialogs-types.h"
-#include "dialogs/dialogs.h"
-
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpsessioninfo.h"
diff --git a/app/tests/test-ui.c b/app/tests/test-ui.c
index 1d66426..21f4cfc 100644
--- a/app/tests/test-ui.c
+++ b/app/tests/test-ui.c
@@ -25,8 +25,6 @@
#include "dialogs/dialogs-types.h"
-#include "dialogs/dialogs.h"
-
#include "display/gimpdisplay.h"
#include "display/gimpdisplayshell.h"
#include "display/gimpdisplayshell-transform.h"
@@ -181,7 +179,7 @@ gimp_ui_tool_options_editor_updates (GimpTestFixture *fixture,
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
GimpImageWindow *image_window = GIMP_IMAGE_WINDOW (toplevel);
GimpUIManager *ui_manager = gimp_image_window_get_ui_manager (image_window);
- GtkWidget *dockable = gimp_dialog_factory_dialog_new (global_dialog_factory,
+ GtkWidget *dockable = gimp_dialog_factory_dialog_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (toplevel),
"gimp-tool-options",
-1 /*view_size*/,
@@ -234,7 +232,7 @@ gimp_ui_create_new_image_via_dialog (GimpTestFixture *fixture,
/* Get the GtkWindow of the dialog */
new_image_dialog =
- gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (GTK_WIDGET (shell)),
"gimp-image-new-dialog",
-1 /*view_size*/);
@@ -270,11 +268,11 @@ gimp_ui_restore_recently_closed_dock (GimpTestFixture *fixture,
GList *session_infos = NULL;
/* Find a non-toolbox dock window */
- dock_window = gimp_ui_find_non_toolbox_dock_window (global_dialog_factory);
+ dock_window = gimp_ui_find_non_toolbox_dock_window (gimp_dialog_factory_get_singleton ());
g_assert (dock_window != NULL);
/* Count number of docks */
- session_infos = gimp_dialog_factory_get_session_infos (global_dialog_factory);
+ session_infos = gimp_dialog_factory_get_session_infos (gimp_dialog_factory_get_singleton ());
n_session_infos_before_close = g_list_length (session_infos);
/* Close one of the dock windows */
@@ -282,7 +280,7 @@ gimp_ui_restore_recently_closed_dock (GimpTestFixture *fixture,
gimp_test_run_mainloop_until_idle ();
/* Make sure the number of session infos went down */
- session_infos = gimp_dialog_factory_get_session_infos (global_dialog_factory);
+ session_infos = gimp_dialog_factory_get_session_infos (gimp_dialog_factory_get_singleton ());
n_session_infos_after_close = g_list_length (session_infos);
g_assert_cmpint (n_session_infos_before_close,
>,
@@ -296,7 +294,7 @@ gimp_ui_restore_recently_closed_dock (GimpTestFixture *fixture,
/* FIXME: This is severly hardcoded */
"windows-recent-0003");
gimp_test_run_mainloop_until_idle ();
- session_infos = gimp_dialog_factory_get_session_infos (global_dialog_factory);
+ session_infos = gimp_dialog_factory_get_session_infos (gimp_dialog_factory_get_singleton ());
n_session_infos_after_restore = g_list_length (session_infos);
g_assert_cmpint (n_session_infos_after_close,
<,
@@ -328,7 +326,7 @@ gimp_ui_tab_toggle_dont_change_position (GimpTestFixture *fixture,
gint h_after_show = -1;
/* Find a non-toolbox dock window */
- dock_window = gimp_ui_find_non_toolbox_dock_window (global_dialog_factory);
+ dock_window = gimp_ui_find_non_toolbox_dock_window (gimp_dialog_factory_get_singleton ());
g_assert (dock_window != NULL);
g_assert (gtk_widget_get_visible (dock_window));
diff --git a/app/tests/test-window-management.c b/app/tests/test-window-management.c
index 95a4ea6..dd00984 100644
--- a/app/tests/test-window-management.c
+++ b/app/tests/test-window-management.c
@@ -20,8 +20,6 @@
#include "dialogs/dialogs-types.h"
-#include "dialogs/dialogs.h"
-
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpdock.h"
#include "widgets/gimpdockwindow.h"
@@ -99,10 +97,10 @@ gimp_test_window_roles (GimpTestFixture *fixture,
GimpDockWindow *dock_window = NULL;
GimpDockWindow *toolbox_window = NULL;
- dock = gimp_dock_with_window_new (global_dialog_factory,
+ dock = gimp_dock_with_window_new (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
FALSE /*toolbox*/);
- toolbox = gimp_dock_with_window_new (global_dialog_factory,
+ toolbox = gimp_dock_with_window_new (gimp_dialog_factory_get_singleton (),
gdk_screen_get_default (),
TRUE /*toolbox*/);
dock_window = gimp_dock_window_from_dock (GIMP_DOCK (dock));
diff --git a/app/tools/gimpcolortool.c b/app/tools/gimpcolortool.c
index aae7b0b..07c382d 100644
--- a/app/tools/gimpcolortool.c
+++ b/app/tools/gimpcolortool.c
@@ -50,8 +50,6 @@
#include "display/gimpdisplayshell-selection.h"
#include "display/gimpdisplayshell-transform.h"
-#include "dialogs/dialogs.h"
-
#include "gimpcoloroptions.h"
#include "gimpcolortool.h"
#include "gimptoolcontrol.h"
@@ -646,7 +644,7 @@ gimp_color_tool_real_picked (GimpColorTool *color_tool,
if (GIMP_IMAGE_TYPE_IS_INDEXED (sample_type))
{
- info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-indexed-palette");
if (info && gimp_session_info_get_widget (info))
{
@@ -660,7 +658,7 @@ gimp_color_tool_real_picked (GimpColorTool *color_tool,
if (TRUE)
{
- info = gimp_dialog_factory_find_session_info (global_dialog_factory,
+ info = gimp_dialog_factory_find_session_info (gimp_dialog_factory_get_singleton (),
"gimp-palette-editor");
if (info && gimp_session_info_get_widget (info))
{
@@ -696,7 +694,7 @@ gimp_color_tool_real_picked (GimpColorTool *color_tool,
GtkWidget *dockable;
screen = gtk_widget_get_screen (GTK_WIDGET (shell));
- dockable = gimp_dialog_factory_dialog_raise (global_dialog_factory,
+ dockable = gimp_dialog_factory_dialog_raise (gimp_dialog_factory_get_singleton (),
screen,
"gimp-palette-editor",
-1);
diff --git a/app/tools/gimptexttool-editor.c b/app/tools/gimptexttool-editor.c
index 477dfd3..29f40d7 100644
--- a/app/tools/gimptexttool-editor.c
+++ b/app/tools/gimptexttool-editor.c
@@ -45,8 +45,6 @@
#include "display/gimpdisplay.h"
#include "display/gimpdisplayshell.h"
-#include "dialogs/dialogs.h"
-
#include "gimprectangletool.h"
#include "gimptextoptions.h"
#include "gimptexttool.h"
@@ -1139,7 +1137,7 @@ gimp_text_tool_editor_dialog (GimpTextTool *text_tool)
return;
}
- dialog_factory = global_dialog_factory;
+ dialog_factory = gimp_dialog_factory_get_singleton ();
if (tool->display)
{
diff --git a/app/tools/gimptexttool.c b/app/tools/gimptexttool.c
index 2b4108e..20ac045 100644
--- a/app/tools/gimptexttool.c
+++ b/app/tools/gimptexttool.c
@@ -58,8 +58,6 @@
#include "display/gimpdisplay.h"
#include "display/gimpdisplayshell.h"
-#include "dialogs/dialogs.h"
-
#include "gimprectangletool.h"
#include "gimptextoptions.h"
#include "gimptexttool.h"
@@ -662,7 +660,7 @@ gimp_text_tool_get_popup (GimpTool *tool,
GtkWidget *im_menu;
GList *children;
- dialog_factory = global_dialog_factory;
+ dialog_factory = gimp_dialog_factory_get_singleton ();
text_tool->ui_manager =
gimp_menu_factory_manager_new (gimp_dialog_factory_get_menu_factory (dialog_factory),
diff --git a/app/widgets/gimpcontrollereditor.c b/app/widgets/gimpcontrollereditor.c
index 8f44d9a..c9d6ca7 100644
--- a/app/widgets/gimpcontrollereditor.c
+++ b/app/widgets/gimpcontrollereditor.c
@@ -33,8 +33,6 @@
#include "core/gimpcontext.h"
-#include "dialogs/dialogs.h"
-
#include "gimpactioneditor.h"
#include "gimpactionview.h"
#include "gimpcontrollereditor.h"
@@ -683,7 +681,7 @@ gimp_controller_editor_edit_clicked (GtkWidget *button,
g_object_add_weak_pointer (G_OBJECT (editor->edit_dialog),
(gpointer) &editor->edit_dialog);
- gimp_dialog_factory_add_foreign (global_dialog_factory,
+ gimp_dialog_factory_add_foreign (gimp_dialog_factory_get_singleton (),
"gimp-controller-action-dialog",
editor->edit_dialog);
diff --git a/app/widgets/gimpcontrollerlist.c b/app/widgets/gimpcontrollerlist.c
index e600a8e..bc40a10 100644
--- a/app/widgets/gimpcontrollerlist.c
+++ b/app/widgets/gimpcontrollerlist.c
@@ -34,8 +34,6 @@
#include "core/gimp.h"
#include "core/gimpcontainer.h"
-#include "dialogs/dialogs.h"
-
#include "gimpcontainertreeview.h"
#include "gimpcontainerview.h"
#include "gimpcontrollereditor.h"
@@ -636,7 +634,7 @@ gimp_controller_list_edit_clicked (GtkWidget *button,
NULL);
- gimp_dialog_factory_add_foreign (global_dialog_factory,
+ gimp_dialog_factory_add_foreign (gimp_dialog_factory_get_singleton (),
"gimp-controller-editor-dialog",
dialog);
diff --git a/app/widgets/gimpdevicestatus.c b/app/widgets/gimpdevicestatus.c
index fb0b8a1..b5b885e 100644
--- a/app/widgets/gimpdevicestatus.c
+++ b/app/widgets/gimpdevicestatus.c
@@ -35,8 +35,6 @@
#include "core/gimppattern.h"
#include "core/gimptoolinfo.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdnd.h"
#include "gimpdeviceinfo.h"
#include "gimpdevices.h"
@@ -471,7 +469,7 @@ gimp_device_status_view_clicked (GtkWidget *widget,
{
GimpDialogFactory *dialog_factory;
- dialog_factory = global_dialog_factory;
+ dialog_factory = gimp_dialog_factory_get_singleton ();
gimp_dialog_factory_dialog_raise (dialog_factory,
gtk_widget_get_screen (widget),
diff --git a/app/widgets/gimpdialogfactory.c b/app/widgets/gimpdialogfactory.c
index 22caa80..c99c8af 100644
--- a/app/widgets/gimpdialogfactory.c
+++ b/app/widgets/gimpdialogfactory.c
@@ -96,6 +96,14 @@ G_DEFINE_TYPE (GimpDialogFactory, gimp_dialog_factory, GIMP_TYPE_OBJECT)
static guint factory_signals[LAST_SIGNAL] = { 0 };
+/* Is set by dialogs.c to a dialog factory initialized there.
+ *
+ * FIXME: The layer above should not do this kind of initialization of
+ * layers below.
+ */
+static GimpDialogFactory *gimp_toplevel_factory = NULL;
+
+
static void
gimp_dialog_factory_class_init (GimpDialogFactoryClass *klass)
{
@@ -1429,3 +1437,32 @@ gimp_dialog_factory_unset_busy (GimpDialogFactory *factory)
}
}
}
+
+/**
+ * gimp_dialog_factory_get_singleton:
+ *
+ * Returns: The toplevel GimpDialogFactory instance.
+ **/
+GimpDialogFactory *
+gimp_dialog_factory_get_singleton (void)
+{
+ g_return_val_if_fail (gimp_toplevel_factory != NULL, NULL);
+
+ return gimp_toplevel_factory;
+}
+
+/**
+ * gimp_dialog_factory_set_singleton:
+ * @:
+ *
+ * Set the toplevel GimpDialogFactory instance. Must only be called by
+ * dialogs_init()!.
+ **/
+void
+gimp_dialog_factory_set_singleton (GimpDialogFactory *factory)
+{
+ g_return_if_fail (gimp_toplevel_factory == NULL ||
+ factory == NULL);
+
+ gimp_toplevel_factory = factory;
+}
diff --git a/app/widgets/gimpdialogfactory.h b/app/widgets/gimpdialogfactory.h
index 4fd33d2..56cca12 100644
--- a/app/widgets/gimpdialogfactory.h
+++ b/app/widgets/gimpdialogfactory.h
@@ -171,5 +171,8 @@ void gimp_dialog_factory_set_has_min_size (GtkWindow
gboolean has_min_size);
gboolean gimp_dialog_factory_get_has_min_size (GtkWindow *window);
+GimpDialogFactory * gimp_dialog_factory_get_singleton (void);
+void gimp_dialog_factory_set_singleton (GimpDialogFactory *factory);
+
#endif /* __GIMP_DIALOG_FACTORY_H__ */
diff --git a/app/widgets/gimpdockable.c b/app/widgets/gimpdockable.c
index 362ba66..a94da9f 100644
--- a/app/widgets/gimpdockable.c
+++ b/app/widgets/gimpdockable.c
@@ -32,8 +32,6 @@
#include "menus/menus.h"
-#include "dialogs/dialogs.h"
-
#include "core/gimpcontext.h"
#include "gimpdialogfactory.h"
@@ -1205,7 +1203,7 @@ gimp_dockable_detach (GimpDockable *dockable)
src_dock = gimp_dockbook_get_dock (dockable->p->dockbook);
src_dock_window = gimp_dock_window_from_dock (src_dock);
- dock = gimp_dock_with_window_new (global_dialog_factory,
+ dock = gimp_dock_with_window_new (gimp_dialog_factory_get_singleton (),
gtk_widget_get_screen (GTK_WIDGET (dockable)),
FALSE /*toolbox*/);
dock_window = gimp_dock_window_from_dock (GIMP_DOCK (dock));
diff --git a/app/widgets/gimpdockcolumns.c b/app/widgets/gimpdockcolumns.c
index d7d1dde..e4e9328 100644
--- a/app/widgets/gimpdockcolumns.c
+++ b/app/widgets/gimpdockcolumns.c
@@ -30,8 +30,6 @@
#include "core/gimpcontext.h"
#include "core/gimpmarshal.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdialogfactory.h"
#include "gimpdock.h"
#include "gimpdockable.h"
diff --git a/app/widgets/gimpdockwindow.c b/app/widgets/gimpdockwindow.c
index 1e99244..8980b69 100644
--- a/app/widgets/gimpdockwindow.c
+++ b/app/widgets/gimpdockwindow.c
@@ -637,7 +637,7 @@ gimp_dock_window_delete_event (GtkWidget *widget,
entry_name = (gimp_dock_window_has_toolbox (dock_window) ?
"gimp-toolbox-window" :
"gimp-dock-window");
- entry = gimp_dialog_factory_find_entry (global_dialog_factory, entry_name);
+ entry = gimp_dialog_factory_find_entry (gimp_dialog_factory_get_singleton (), entry_name);
gimp_session_info_set_factory_entry (info, entry);
gimp_container_add (global_recent_docks, GIMP_OBJECT (info));
diff --git a/app/widgets/gimppanedbox.c b/app/widgets/gimppanedbox.c
index 18f5b94..e7b6606 100644
--- a/app/widgets/gimppanedbox.c
+++ b/app/widgets/gimppanedbox.c
@@ -29,8 +29,6 @@
#include "core/gimpcontext.h"
#include "core/gimpmarshal.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdialogfactory.h"
#include "gimpdnd.h"
#include "gimpdockable.h"
diff --git a/app/widgets/gimpsessioninfo.c b/app/widgets/gimpsessioninfo.c
index f00ac42..2e83a31 100644
--- a/app/widgets/gimpsessioninfo.c
+++ b/app/widgets/gimpsessioninfo.c
@@ -28,8 +28,6 @@
#include "widgets-types.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdialogfactory.h"
#include "gimpdock.h"
#include "gimpdockwindow.h"
@@ -264,7 +262,7 @@ gimp_session_info_deserialize (GimpConfig *config,
if (! gimp_scanner_parse_string (scanner, &identifier))
goto error;
- entry = gimp_dialog_factory_find_entry (global_dialog_factory,
+ entry = gimp_dialog_factory_find_entry (gimp_dialog_factory_get_singleton (),
identifier);
if (! entry)
goto error;
diff --git a/app/widgets/gimptoolbox-color-area.c b/app/widgets/gimptoolbox-color-area.c
index e142ae6..b1eeb88 100644
--- a/app/widgets/gimptoolbox-color-area.c
+++ b/app/widgets/gimptoolbox-color-area.c
@@ -26,8 +26,6 @@
#include "core/gimp.h"
#include "core/gimpcontext.h"
-#include "dialogs/dialogs.h"
-
#include "gimpcolordialog.h"
#include "gimpdialogfactory.h"
#include "gimpfgbgeditor.h"
@@ -154,7 +152,7 @@ color_area_color_clicked (GimpFgBgEditor *editor,
color_dialog = gimp_color_dialog_new (NULL, context,
NULL, NULL, NULL,
GTK_WIDGET (editor),
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-toolbox-color-dialog",
&color,
TRUE, FALSE);
diff --git a/app/widgets/gimptooldialog.c b/app/widgets/gimptooldialog.c
index 82db78a..8e8c5e8 100644
--- a/app/widgets/gimptooldialog.c
+++ b/app/widgets/gimptooldialog.c
@@ -29,8 +29,6 @@
#include "core/gimpobject.h"
#include "core/gimptoolinfo.h"
-#include "dialogs/dialogs.h"
-
#include "gimpdialogfactory.h"
#include "gimptooldialog.h"
@@ -96,7 +94,7 @@ gimp_tool_dialog_new (GimpToolInfo *tool_info,
identifier = g_strconcat (gimp_object_get_name (tool_info), "-dialog", NULL);
- gimp_dialog_factory_add_foreign (global_dialog_factory,
+ gimp_dialog_factory_add_foreign (gimp_dialog_factory_get_singleton (),
identifier,
dialog);
diff --git a/app/widgets/gimpviewablebox.c b/app/widgets/gimpviewablebox.c
index d7e4ef2..21172fd 100644
--- a/app/widgets/gimpviewablebox.c
+++ b/app/widgets/gimpviewablebox.c
@@ -30,8 +30,6 @@
#include "core/gimpcontext.h"
#include "core/gimpdatafactory.h"
-#include "dialogs/dialogs.h"
-
#include "gimpcontainerentry.h"
#include "gimpdialogfactory.h"
#include "gimppropwidgets.h"
@@ -199,7 +197,7 @@ gradient_box_new (GimpContainer *container,
button = gimp_viewable_button_new (container, context,
view_type,
GIMP_VIEW_SIZE_LARGE, view_size, 1,
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
"gimp-gradient-list|gimp-gradient-grid",
GIMP_STOCK_GRADIENT,
_("Open the gradient selection dialog"));
@@ -425,7 +423,7 @@ gimp_viewable_box_new (GimpContainer *container,
button = gimp_viewable_button_new (container, context,
view_type, button_view_size, view_size, 1,
- global_dialog_factory,
+ gimp_dialog_factory_get_singleton (),
dialog_identifier,
dialog_stock_id,
dialog_tooltip);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]