static void gitg_window_finalize(GObject *object) { GitgWindow *self = GITG_WINDOW(object); g_free(self->priv->current_branch); g_timer_destroy(self->priv->load_timer); gdk_cursor_unref(self->priv->hand); G_OBJECT_CLASS(gitg_window_parent_class)->finalize(object); }
static GitgWindow * build_ui () { GtkBuilder *builder = gitg_utils_new_builder ("gitg-window.ui"); GtkWidget *window = GTK_WIDGET (gtk_builder_get_object(builder, "window")); gtk_widget_show_all (window); g_signal_connect_after (window, "destroy", G_CALLBACK (on_window_delete_event), NULL); g_object_unref (builder); return GITG_WINDOW (window); }
static void gitg_window_parser_finished(GtkBuildable *buildable, GtkBuilder *builder) { if (parent_iface.parser_finished) parent_iface.parser_finished(buildable, builder); // Store widgets GitgWindow *window = GITG_WINDOW(buildable); window->priv->vpaned_main = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_main")); window->priv->hpaned_commit = GTK_WIDGET(gtk_builder_get_object(builder, "hpaned_commit")); window->priv->vpaned_commit = GTK_WIDGET(gtk_builder_get_object(builder, "vpaned_commit")); window->priv->notebook_main = GTK_NOTEBOOK(gtk_builder_get_object(builder, "notebook_main")); window->priv->tree_view = GTK_TREE_VIEW(gtk_builder_get_object(builder, "tree_view_rv")); window->priv->statusbar = GTK_STATUSBAR(gtk_builder_get_object(builder, "statusbar")); window->priv->revision_view = GITG_REVISION_VIEW(gtk_builder_get_object(builder, "revision_view")); window->priv->revision_tree_view = GITG_REVISION_TREE_VIEW(gtk_builder_get_object(builder, "revision_tree_view")); window->priv->commit_view = GITG_COMMIT_VIEW(gtk_builder_get_object(builder, "hpaned_commit")); restore_state(window); window->priv->edit_group = GTK_ACTION_GROUP(gtk_builder_get_object(builder, "action_group_menu_edit")); GtkTreeViewColumn *col = GTK_TREE_VIEW_COLUMN(gtk_builder_get_object(builder, "rv_column_subject")); window->priv->renderer_path = GITG_CELL_RENDERER_PATH(gtk_builder_get_object(builder, "rv_renderer_subject")); gtk_tree_view_column_set_cell_data_func(col, GTK_CELL_RENDERER(window->priv->renderer_path), (GtkTreeCellDataFunc)on_renderer_path, window, NULL); GtkRecentFilter *filter = gtk_recent_filter_new(); gtk_recent_filter_add_group(filter, "gitg"); GtkRecentChooser *chooser = GTK_RECENT_CHOOSER(gtk_builder_get_object(builder, "RecentOpenAction")); gtk_recent_chooser_add_filter(chooser, filter); // Intialize branches build_branches_combo(window, builder); // Create search entry build_search_entry(window, builder); gtk_builder_connect_signals(builder, window); // Connect signals GtkTreeSelection *selection = gtk_tree_view_get_selection(window->priv->tree_view); g_signal_connect(selection, "changed", G_CALLBACK(on_selection_changed), window); g_signal_connect(window->priv->revision_view, "parent-activated", G_CALLBACK(on_parent_activated), window); g_signal_connect(window->priv->tree_view, "motion-notify-event", G_CALLBACK(on_tree_view_motion), window); g_signal_connect(window->priv->tree_view, "button-release-event", G_CALLBACK(on_tree_view_button_release), window); }
static void gitg_window_destroy(GtkObject *object) { GitgWindow *window = GITG_WINDOW(object); if (!window->priv->destroy_has_run) { save_state(window); gtk_tree_view_set_model(window->priv->tree_view, NULL); window->priv->destroy_has_run = TRUE; } if (GTK_OBJECT_CLASS(parent_class)->destroy) GTK_OBJECT_CLASS(parent_class)->destroy(object); }