diff options
Diffstat (limited to 'src/nautilus-window.c')
-rw-r--r-- | src/nautilus-window.c | 132 |
1 files changed, 36 insertions, 96 deletions
diff --git a/src/nautilus-window.c b/src/nautilus-window.c index 997e8eb02..f697f01a8 100644 --- a/src/nautilus-window.c +++ b/src/nautilus-window.c @@ -1298,21 +1298,12 @@ places_sidebar_populate_popup_cb (GtkPlacesSidebar *sidebar, static void nautilus_window_set_up_sidebar (NautilusWindow *window) { - window->priv->sidebar = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); - gtk_style_context_add_class (gtk_widget_get_style_context (window->priv->sidebar), - GTK_STYLE_CLASS_SIDEBAR); - - gtk_paned_pack1 (GTK_PANED (window->priv->content_paned), - GTK_WIDGET (window->priv->sidebar), - FALSE, FALSE); - setup_side_pane_width (window); g_signal_connect (window->priv->sidebar, "size-allocate", G_CALLBACK (side_pane_size_allocate_callback), window); - window->priv->places_sidebar = gtk_places_sidebar_new (); gtk_places_sidebar_set_open_flags (GTK_PLACES_SIDEBAR (window->priv->places_sidebar), (GTK_PLACES_OPEN_NORMAL | GTK_PLACES_OPEN_NEW_TAB @@ -1336,22 +1327,6 @@ nautilus_window_set_up_sidebar (NautilusWindow *window) g_signal_connect (window, "loading-uri", G_CALLBACK (window_loading_uri_cb), window); - - gtk_box_pack_start (GTK_BOX (window->priv->sidebar), window->priv->places_sidebar, TRUE, TRUE, 0); - gtk_widget_show (window->priv->places_sidebar); - gtk_widget_show (window->priv->sidebar); -} - -static void -nautilus_window_tear_down_sidebar (NautilusWindow *window) -{ - DEBUG ("Destroying sidebar"); - - if (window->priv->sidebar != NULL) { - gtk_widget_destroy (GTK_WIDGET (window->priv->sidebar)); - window->priv->sidebar = NULL; - window->priv->places_sidebar = NULL; - } } void @@ -1363,7 +1338,7 @@ nautilus_window_hide_sidebar (NautilusWindow *window) return; } - nautilus_window_tear_down_sidebar (window); + gtk_widget_hide (window->priv->sidebar); } void @@ -1371,15 +1346,12 @@ nautilus_window_show_sidebar (NautilusWindow *window) { DEBUG ("Called show_sidebar()"); - if (window->priv->sidebar != NULL) { - return; - } - if (window->priv->disable_chrome) { return; } - nautilus_window_set_up_sidebar (window); + gtk_widget_show (window->priv->sidebar); + setup_side_pane_width (window); } gboolean @@ -1748,22 +1720,19 @@ nautilus_window_get_toolbar (NautilusWindow *window) return window->priv->toolbar; } -static GtkWidget * +static void create_toolbar (NautilusWindow *window) { - GtkWidget *toolbar; GtkWidget *path_bar; GtkWidget *location_entry; - /* build the toolbar */ - toolbar = nautilus_toolbar_new (NAUTILUS_WINDOW (window)); - + g_object_set (window->priv->toolbar, "window", window, NULL); g_object_bind_property (window, "disable-chrome", - toolbar, "visible", + window->priv->toolbar, "visible", G_BINDING_INVERT_BOOLEAN); /* connect to the pathbar signals */ - path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (toolbar)); + path_bar = nautilus_toolbar_get_path_bar (NAUTILUS_TOOLBAR (window->priv->toolbar)); g_signal_connect_object (path_bar, "path-clicked", G_CALLBACK (path_bar_location_changed_callback), window, 0); @@ -1771,14 +1740,13 @@ create_toolbar (NautilusWindow *window) G_CALLBACK (path_bar_path_event_callback), window, 0); /* connect to the location entry signals */ - location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (toolbar)); + location_entry = nautilus_toolbar_get_location_entry (NAUTILUS_TOOLBAR (window->priv->toolbar)); g_signal_connect_object (location_entry, "location-changed", G_CALLBACK (location_entry_location_changed_callback), window, 0); g_signal_connect_object (location_entry, "cancel", G_CALLBACK (location_entry_cancel_callback), window, 0); - return toolbar; } static void @@ -1865,50 +1833,36 @@ notebook_create_window_cb (GtkNotebook *notebook, return GTK_NOTEBOOK (new_window->priv->notebook); } -static GtkWidget * +static void create_notebook (NautilusWindow *window) { - GtkWidget *notebook; - - notebook = g_object_new (NAUTILUS_TYPE_NOTEBOOK, NULL); - g_signal_connect (notebook, "tab-close-request", + g_signal_connect (window->priv->notebook, "tab-close-request", G_CALLBACK (notebook_tab_close_requested), window); - g_signal_connect (notebook, "popup-menu", + g_signal_connect (window->priv->notebook, "popup-menu", G_CALLBACK (notebook_popup_menu_cb), window); - g_signal_connect (notebook, "switch-page", + g_signal_connect (window->priv->notebook, "switch-page", G_CALLBACK (notebook_switch_page_cb), window); - g_signal_connect (notebook, "create-window", + g_signal_connect (window->priv->notebook, "create-window", G_CALLBACK (notebook_create_window_cb), window); - g_signal_connect (notebook, "page-added", + g_signal_connect (window->priv->notebook, "page-added", G_CALLBACK (notebook_page_added_cb), window); - g_signal_connect (notebook, "page-removed", + g_signal_connect (window->priv->notebook, "page-removed", G_CALLBACK (notebook_page_removed_cb), window); - g_signal_connect_after (notebook, "button-press-event", + g_signal_connect_after (window->priv->notebook, "button-press-event", G_CALLBACK (notebook_button_press_cb), window); - - gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); - gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); - gtk_widget_show (notebook); - gtk_container_set_border_width (GTK_CONTAINER (notebook), 0); - - gtk_container_add (GTK_CONTAINER (window->priv->main_view), - notebook); - - return notebook; } static void nautilus_window_constructed (GObject *self) { NautilusWindow *window; - GtkWidget *grid; NautilusWindowSlot *slot; NautilusApplication *application; @@ -1921,34 +1875,11 @@ nautilus_window_constructed (GObject *self) application = NAUTILUS_APPLICATION (g_application_get_default ()); gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (application)); - /* disable automatic menubar handling, since we show our regular - * menubar together with the app menu. - */ - gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (self), FALSE); - - grid = gtk_grid_new (); - gtk_orientable_set_orientation (GTK_ORIENTABLE (grid), GTK_ORIENTATION_VERTICAL); - gtk_widget_show (grid); - gtk_container_add (GTK_CONTAINER (window), grid); - - window->priv->toolbar = create_toolbar (window); - gtk_window_set_titlebar (GTK_WINDOW (window), window->priv->toolbar); + create_toolbar (window); - window->priv->content_paned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); - gtk_widget_set_hexpand (window->priv->content_paned, TRUE); - gtk_widget_set_vexpand (window->priv->content_paned, TRUE); - - gtk_container_add (GTK_CONTAINER (grid), window->priv->content_paned); - gtk_widget_show (window->priv->content_paned); - - window->priv->main_view = gtk_overlay_new (); - gtk_paned_pack2 (GTK_PANED (window->priv->content_paned), - window->priv->main_view, - TRUE, FALSE); - gtk_widget_show (window->priv->main_view); - - window->priv->notebook = create_notebook (window); nautilus_window_set_initial_window_geometry (window); + create_notebook (window); + nautilus_window_set_up_sidebar (window); window->priv->notification_manager = GTK_WIDGET (nautilus_notification_manager_new ()); gtk_overlay_add_overlay (GTK_OVERLAY (window->priv->main_view), @@ -2040,9 +1971,6 @@ nautilus_window_destroy (GtkWidget *object) DEBUG ("Destroying window"); - /* close the sidebar first */ - nautilus_window_tear_down_sidebar (window); - /* close all slots safely */ slots_copy = g_list_copy (window->priv->slots); if (window->priv->active_slot != NULL) { @@ -2300,6 +2228,7 @@ void nautilus_window_sync_title (NautilusWindow *window, NautilusWindowSlot *slot) { + return; if (NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title != NULL) { NAUTILUS_WINDOW_CLASS (G_OBJECT_GET_CLASS (window))->sync_title (window, slot); @@ -2432,19 +2361,21 @@ static void nautilus_window_init (NautilusWindow *window) { GtkWindowGroup *window_group; - window->priv = nautilus_window_get_instance_private (window); + g_type_ensure (NAUTILUS_TYPE_TOOLBAR); + g_type_ensure (NAUTILUS_TYPE_NOTEBOOK); + g_print ("start template generation \n"); + g_print ("type %s\n", G_OBJECT_TYPE_NAME (window)); + gtk_widget_init_template (GTK_WIDGET (window)); + g_print ("end template generation \n"); + window->priv->slots = NULL; window->priv->active_slot = NULL; window_group = gtk_window_group_new (); gtk_window_group_add_window (window_group, GTK_WINDOW (window)); g_object_unref (window_group); - - /* Set initial window title */ - gtk_window_set_title (GTK_WINDOW (window), _("Files")); - gtk_window_set_icon_name (GTK_WINDOW (window), "system-file-manager"); } static void @@ -2478,6 +2409,15 @@ nautilus_window_class_init (NautilusWindowClass *class) class->close = real_window_close; + gtk_widget_class_set_template_from_resource (wclass, + "/org/gnome/nautilus/nautilus-window.xml"); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, toolbar); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, content_paned); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, sidebar); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, places_sidebar); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, main_view); + gtk_widget_class_bind_template_child_private (wclass, NautilusWindow, notebook); + properties[PROP_DISABLE_CHROME] = g_param_spec_boolean ("disable-chrome", "Disable chrome", |