示例#1
0
文件: gitg-window.c 项目: mpe/gitg
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);
}
示例#2
0
文件: gitg.c 项目: epronk/gitg
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);
}
示例#3
0
文件: gitg-window.c 项目: mpe/gitg
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);
}
示例#4
0
文件: gitg-window.c 项目: mpe/gitg
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);
}