[gimp] app: Move out dock window logic from gimp_session_info_dock_restore()
- From: Martin Nordholts <martinn src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gimp] app: Move out dock window logic from gimp_session_info_dock_restore()
- Date: Sat, 5 Dec 2009 21:44:05 +0000 (UTC)
commit 3bb15eac782f1633e86955c1dae7e143ff296194
Author: Martin Nordholts <martinn src gnome org>
Date: Sat Dec 5 22:43:32 2009 +0100
app: Move out dock window logic from gimp_session_info_dock_restore()
Move out dock window logic, most notably aux info, from
gimp_session_info_dock_restore() and put it in
gimp_session_info_restore() where it belongs.
app/widgets/gimpsessioninfo-dock.c | 39 ++++++++++++++++++++---------------
app/widgets/gimpsessioninfo-dock.h | 5 ++-
app/widgets/gimpsessioninfo.c | 16 ++++++++++++-
3 files changed, 39 insertions(+), 21 deletions(-)
---
diff --git a/app/widgets/gimpsessioninfo-dock.c b/app/widgets/gimpsessioninfo-dock.c
index bce46ca..10a1a9e 100644
--- a/app/widgets/gimpsessioninfo-dock.c
+++ b/app/widgets/gimpsessioninfo-dock.c
@@ -172,33 +172,39 @@ gimp_session_info_dock_paned_map (GtkWidget *paned,
}
void
-gimp_session_info_dock_restore (GimpSessionInfo *info,
+gimp_session_info_dock_restore (GList *books,
GimpDialogFactory *factory,
- GdkScreen *screen)
+ GdkScreen *screen,
+ GimpDockWindow *dock_window)
{
- GimpDock *dock = NULL;
- GimpDockWindow *dock_window = NULL;
- GList *books = NULL;
+ GtkWidget *dock = NULL;
+ GList *iter = NULL;
+ GimpUIManager *ui_manager = NULL;
- g_return_if_fail (info != NULL);
g_return_if_fail (GIMP_IS_DIALOG_FACTORY (factory));
g_return_if_fail (GDK_IS_SCREEN (screen));
- dock = GIMP_DOCK (gimp_dialog_factory_dock_with_window_new (factory, screen));
- dock_window = gimp_dock_window_from_dock (GIMP_DOCK (dock));
+ ui_manager = gimp_dock_window_get_ui_manager (GIMP_DOCK_WINDOW (dock_window));
+ dock = gimp_dialog_factory_dock_new (factory, screen, ui_manager);
- if (dock && info->p->aux_info)
- gimp_session_info_aux_set_list (GTK_WIDGET (dock_window), info->p->aux_info);
+ g_return_if_fail (GIMP_IS_DOCK (dock));
- for (books = info->p->books; books; books = g_list_next (books))
+ /* Add the dock to the dock window immediately so the stuff in the
+ * dock has access to e.g. a dialog factory
+ */
+ gimp_dock_window_add_dock (GIMP_DOCK_WINDOW (dock_window),
+ GIMP_DOCK (dock),
+ -1);
+
+ for (iter = books; iter; iter = g_list_next (iter))
{
- GimpSessionInfoBook *book_info = books->data;
+ GimpSessionInfoBook *book_info = iter->data;
GtkWidget *dockbook;
GtkWidget *parent;
- dockbook = GTK_WIDGET (gimp_session_info_book_restore (book_info, dock));
-
- parent = gtk_widget_get_parent (dockbook);
+ dockbook = GTK_WIDGET (gimp_session_info_book_restore (book_info,
+ GIMP_DOCK (dock)));
+ parent = gtk_widget_get_parent (dockbook);
if (GTK_IS_VPANED (parent))
{
@@ -211,6 +217,5 @@ gimp_session_info_dock_restore (GimpSessionInfo *info,
}
}
- gtk_widget_show (GTK_WIDGET (dock_window));
- gtk_widget_show (GTK_WIDGET (dock));
+ gtk_widget_show (dock);
}
diff --git a/app/widgets/gimpsessioninfo-dock.h b/app/widgets/gimpsessioninfo-dock.h
index d5f383d..6933fa8 100644
--- a/app/widgets/gimpsessioninfo-dock.h
+++ b/app/widgets/gimpsessioninfo-dock.h
@@ -30,9 +30,10 @@ GTokenType gimp_session_info_dock_deserialize (GScanner *scanner,
GList * gimp_session_info_dock_from_widget (GimpDock *dock);
-void gimp_session_info_dock_restore (GimpSessionInfo *info,
+void gimp_session_info_dock_restore (GList *books,
GimpDialogFactory *factory,
- GdkScreen *screen);
+ GdkScreen *screen,
+ GimpDockWindow *dock_window);
#endif /* __GIMP_SESSION_INFO_DOCK_H__ */
diff --git a/app/widgets/gimpsessioninfo.c b/app/widgets/gimpsessioninfo.c
index de9ed6a..f877a95 100644
--- a/app/widgets/gimpsessioninfo.c
+++ b/app/widgets/gimpsessioninfo.c
@@ -385,10 +385,22 @@ gimp_session_info_restore (GimpSessionInfo *info,
}
else
{
- GIMP_LOG (DIALOG_FACTORY, "restoring dock (info %p)",
+ GtkWidget *dock_window = NULL;
+
+ GIMP_LOG (DIALOG_FACTORY, "restoring dock window (info %p)",
info);
- gimp_session_info_dock_restore (info, factory, screen);
+ dock_window = gimp_dialog_factory_dock_window_new (factory, screen);
+
+ if (dock_window && info->p->aux_info)
+ gimp_session_info_aux_set_list (GTK_WIDGET (dock_window), info->p->aux_info);
+
+ gimp_session_info_dock_restore (info->p->books,
+ factory,
+ screen,
+ GIMP_DOCK_WINDOW (dock_window));
+
+ gtk_widget_show (GTK_WIDGET (dock_window));
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]