[nautilus] window: move nautilus_window_open_slot to NautilusWindowPane



commit 33a79d4ca73be9b45b19ff28cd702103a40333c5
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Fri Jan 6 03:05:47 2012 +0100

    window: move nautilus_window_open_slot to NautilusWindowPane
    
    Where it should really belong.

 src/nautilus-window-manage-views.c |    4 +-
 src/nautilus-window-pane.c         |   75 ++++++++++++++++++++++++++----------
 src/nautilus-window-pane.h         |   12 ++---
 src/nautilus-window-private.h      |    4 --
 src/nautilus-window.c              |   64 ++----------------------------
 5 files changed, 66 insertions(+), 93 deletions(-)
---
diff --git a/src/nautilus-window-manage-views.c b/src/nautilus-window-manage-views.c
index 69dffe9..4179161 100644
--- a/src/nautilus-window-manage-views.c
+++ b/src/nautilus-window-manage-views.c
@@ -510,8 +510,8 @@ nautilus_window_slot_open_location_full (NautilusWindowSlot *slot,
 			slot_flags = NAUTILUS_WINDOW_OPEN_SLOT_APPEND;
 		}
 
-		target_slot = nautilus_window_open_slot (nautilus_window_get_active_pane (window),
-							 slot_flags);
+		target_slot = nautilus_window_pane_open_slot (nautilus_window_get_active_pane (window),
+							      slot_flags);
 	}
 
 	/* close the current window if the flags say so */
diff --git a/src/nautilus-window-pane.c b/src/nautilus-window-pane.c
index 530367d..fe06bfc 100644
--- a/src/nautilus-window-pane.c
+++ b/src/nautilus-window-pane.c
@@ -936,7 +936,7 @@ nautilus_window_pane_slot_close (NautilusWindowPane *pane,
 			nautilus_window_set_active_slot (window, next_slot);
 		}
 
-		nautilus_window_close_slot (slot);
+		nautilus_window_pane_close_slot (pane, slot);
 
 		/* If that was the last slot in the pane, close the pane or even the whole window. */
 		if (pane->slots == NULL) {
@@ -989,39 +989,72 @@ nautilus_window_pane_ensure_location_bar (NautilusWindowPane *pane)
 }
 
 void
-nautilus_window_pane_add_slot_in_tab (NautilusWindowPane *pane,
-				      NautilusWindowSlot *slot,
-				      NautilusWindowOpenSlotFlags flags)
+nautilus_window_pane_close_slot (NautilusWindowPane *pane,
+				 NautilusWindowSlot *slot)
 {
-	NautilusNotebook *notebook;
+	int page_num;
+	GtkNotebook *notebook;
+
+	g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
+	g_assert (NAUTILUS_IS_WINDOW_PANE (slot->pane));
+	g_assert (g_list_find (slot->pane->slots, slot) != NULL);
+
+	DEBUG ("Closing slot %p", slot);
+
+	/* save pane because slot is not valid anymore after this call */
+	pane = slot->pane;
+	notebook = GTK_NOTEBOOK (pane->notebook);
+
+	page_num = gtk_notebook_page_num (notebook, GTK_WIDGET (slot->content_box));
+	g_assert (page_num >= 0);
 
-	notebook = NAUTILUS_NOTEBOOK (pane->notebook);
 	g_signal_handlers_block_by_func (notebook,
-					 G_CALLBACK (notebook_switch_page_cb),
+                                        G_CALLBACK (notebook_switch_page_cb),
 					 pane);
-	nautilus_notebook_add_tab (notebook,
-				   slot,
-				   (flags & NAUTILUS_WINDOW_OPEN_SLOT_APPEND) != 0 ?
-				   -1 :
-				   gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook)) + 1,
-				   FALSE);
+	gtk_notebook_remove_page (notebook, page_num);
 	g_signal_handlers_unblock_by_func (notebook,
 					   G_CALLBACK (notebook_switch_page_cb),
 					   pane);
+
+	gtk_notebook_set_show_tabs (notebook,
+				    gtk_notebook_get_n_pages (notebook) > 1);
+
+	nautilus_window_manage_views_close_slot (pane, slot);
+
+	g_object_run_dispose (G_OBJECT (slot));
+	slot->pane = NULL;
+	g_object_unref (slot);
+	pane->slots = g_list_remove (pane->slots, slot);
 }
 
-void
-nautilus_window_pane_remove_page (NautilusWindowPane *pane,
-				  int page_num)
+NautilusWindowSlot *
+nautilus_window_pane_open_slot (NautilusWindowPane *pane,
+				NautilusWindowOpenSlotFlags flags)
 {
-	GtkNotebook *notebook;
-	notebook = GTK_NOTEBOOK (pane->notebook);
+	NautilusWindowSlot *slot;
 
-	g_signal_handlers_block_by_func (notebook,
+	g_assert (NAUTILUS_IS_WINDOW_PANE (pane));
+	g_assert (NAUTILUS_IS_WINDOW (pane->window));
+
+	slot = (NautilusWindowSlot *) g_object_new (NAUTILUS_TYPE_WINDOW_SLOT, NULL);
+	slot->pane = pane;
+
+	g_signal_handlers_block_by_func (pane->notebook,
 					 G_CALLBACK (notebook_switch_page_cb),
 					 pane);
-	gtk_notebook_remove_page (notebook, page_num);
-	g_signal_handlers_unblock_by_func (notebook,
+	nautilus_notebook_add_tab (NAUTILUS_NOTEBOOK (pane->notebook),
+				   slot,
+				   (flags & NAUTILUS_WINDOW_OPEN_SLOT_APPEND) != 0 ?
+				   -1 :
+				   gtk_notebook_get_current_page (GTK_NOTEBOOK (pane->notebook)) + 1,
+				   FALSE);
+	g_signal_handlers_unblock_by_func (pane->notebook,
 					   G_CALLBACK (notebook_switch_page_cb),
 					   pane);
+
+	gtk_widget_show (GTK_WIDGET (slot->content_box));
+
+	pane->slots = g_list_append (pane->slots, slot);
+
+	return slot;
 }
diff --git a/src/nautilus-window-pane.h b/src/nautilus-window-pane.h
index 2e48c4a..ec83e17 100644
--- a/src/nautilus-window-pane.h
+++ b/src/nautilus-window-pane.h
@@ -86,6 +86,11 @@ GType nautilus_window_pane_get_type (void);
 
 NautilusWindowPane *nautilus_window_pane_new (NautilusWindow *window);
 
+NautilusWindowSlot *nautilus_window_pane_open_slot  (NautilusWindowPane *pane,
+						     NautilusWindowOpenSlotFlags flags);
+void                nautilus_window_pane_close_slot (NautilusWindowPane *pane,
+						     NautilusWindowSlot *slot);
+
 void nautilus_window_pane_sync_location_widgets (NautilusWindowPane *pane);
 void nautilus_window_pane_sync_search_widgets  (NautilusWindowPane *pane);
 void nautilus_window_pane_set_active (NautilusWindowPane *pane, gboolean is_active);
@@ -99,11 +104,4 @@ void nautilus_window_pane_grab_focus (NautilusWindowPane *pane);
 /* bars */
 void     nautilus_window_pane_ensure_location_bar (NautilusWindowPane *pane);
 
-/* notebook */
-void     nautilus_window_pane_add_slot_in_tab (NautilusWindowPane *pane,
-					       NautilusWindowSlot *slot,
-					       NautilusWindowOpenSlotFlags flags);
-void     nautilus_window_pane_remove_page (NautilusWindowPane *pane,
-					   int page_num);
-
 #endif /* NAUTILUS_WINDOW_PANE_H */
diff --git a/src/nautilus-window-private.h b/src/nautilus-window-private.h
index 8c159c4..b993d16 100644
--- a/src/nautilus-window-private.h
+++ b/src/nautilus-window-private.h
@@ -133,10 +133,6 @@ void               nautilus_menus_append_bookmark_to_menu                (Nautil
                                                                           GCallback          refresh_callback,
                                                                           NautilusBookmarkFailedCallback failed_callback);
 
-NautilusWindowSlot *nautilus_window_open_slot                            (NautilusWindowPane *pane,
-									  NautilusWindowOpenSlotFlags flags);
-void                nautilus_window_close_slot                           (NautilusWindowSlot *slot);
-
 NautilusWindowSlot *nautilus_window_get_slot_for_view                    (NautilusWindow *window,
 									  NautilusView   *view);
 
diff --git a/src/nautilus-window.c b/src/nautilus-window.c
index 3e605f2..12bf47d 100644
--- a/src/nautilus-window.c
+++ b/src/nautilus-window.c
@@ -235,7 +235,7 @@ nautilus_window_new_tab (NautilusWindow *window)
 		}
 		g_free (scheme);
 
-		new_slot = nautilus_window_open_slot (current_slot->pane, flags);
+		new_slot = nautilus_window_pane_open_slot (current_slot->pane, flags);
 		nautilus_window_set_active_slot (window, new_slot);
 		nautilus_window_slot_go_to (new_slot, location, FALSE);
 		g_object_unref (location);
@@ -638,7 +638,7 @@ nautilus_window_constructed (GObject *self)
 	nautilus_window_set_initial_window_geometry (window);
 	nautilus_undo_manager_attach (application->undo_manager, G_OBJECT (window));
 
-	slot = nautilus_window_open_slot (window->details->active_pane, 0);
+	slot = nautilus_window_pane_open_slot (window->details->active_pane, 0);
 	nautilus_window_set_active_slot (window, slot);
 }
 
@@ -842,26 +842,6 @@ nautilus_window_close (NautilusWindow *window)
 	NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->close (window);
 }
 
-NautilusWindowSlot *
-nautilus_window_open_slot (NautilusWindowPane *pane,
-			   NautilusWindowOpenSlotFlags flags)
-{
-	NautilusWindowSlot *slot;
-
-	g_assert (NAUTILUS_IS_WINDOW_PANE (pane));
-	g_assert (NAUTILUS_IS_WINDOW (pane->window));
-
-	slot = (NautilusWindowSlot *) g_object_new (NAUTILUS_TYPE_WINDOW_SLOT, NULL);
-	slot->pane = pane;
-
-	nautilus_window_pane_add_slot_in_tab (pane, slot, flags);
-	gtk_widget_show (slot->content_box);
-
-	pane->slots = g_list_append (pane->slots, slot);
-
-	return slot;
-}
-
 void
 nautilus_window_close_pane (NautilusWindow *window,
 			    NautilusWindowPane *pane)
@@ -871,7 +851,7 @@ nautilus_window_close_pane (NautilusWindow *window,
 	while (pane->slots != NULL) {
 		NautilusWindowSlot *slot = pane->slots->data;
 
-		nautilus_window_close_slot (slot);
+		nautilus_window_pane_close_slot (pane, slot);
 	}
 
 	/* If the pane was active, set it to NULL. The caller is responsible
@@ -886,40 +866,6 @@ nautilus_window_close_pane (NautilusWindow *window,
 	gtk_widget_destroy (GTK_WIDGET (pane));
 }
 
-void
-nautilus_window_close_slot (NautilusWindowSlot *slot)
-{
-	NautilusWindowPane *pane;
-	int page_num;
-	GtkNotebook *notebook;
-
-	g_assert (NAUTILUS_IS_WINDOW_SLOT (slot));
-	g_assert (NAUTILUS_IS_WINDOW_PANE(slot->pane));
-	g_assert (g_list_find (slot->pane->slots, slot) != NULL);
-
-	DEBUG ("Closing slot %p", slot);
-
-	/* save pane because slot is not valid anymore after this call */
-	pane = slot->pane;
-	notebook = GTK_NOTEBOOK (pane->notebook);
-
-	page_num = gtk_notebook_page_num (notebook, slot->content_box);
-	g_assert (page_num >= 0);
-
-	nautilus_window_pane_remove_page (pane, page_num);
-
-	gtk_notebook_set_show_tabs (notebook,
-				    gtk_notebook_get_n_pages (notebook) > 1);
-
-	nautilus_window_manage_views_close_slot (pane, slot);
-	cancel_view_as_callback (slot);
-
-	g_object_run_dispose (G_OBJECT (slot));
-	slot->pane = NULL;
-	g_object_unref (slot);
-	pane->slots = g_list_remove (pane->slots, slot);
-}
-
 NautilusWindowPane*
 nautilus_window_get_active_pane (NautilusWindow *window)
 {
@@ -1814,8 +1760,8 @@ create_extra_pane (NautilusWindow *window)
 	}
 
 	/* slot */
-	slot = nautilus_window_open_slot (NAUTILUS_WINDOW_PANE (pane),
-					  NAUTILUS_WINDOW_OPEN_SLOT_APPEND);
+	slot = nautilus_window_pane_open_slot (NAUTILUS_WINDOW_PANE (pane),
+					       NAUTILUS_WINDOW_OPEN_SLOT_APPEND);
 	pane->active_slot = slot;
 
 	return slot;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]