Esempio n. 1
0
/**
 * gedit_utils_uri_get_dirname:
 *
 * Note: this function replace home dir with ~
 */
gchar *
gedit_utils_uri_get_dirname (const gchar *uri)
{
	gchar *res;
	gchar *str;

	g_return_val_if_fail (uri != NULL, NULL);

	/* CHECK: does it work with uri chaining? - Paolo */
	str = g_path_get_dirname (uri);
	g_return_val_if_fail (str != NULL, g_strdup ("."));

	if ((strlen (str) == 1) && (*str == '.'))
	{
		g_free (str);

		return NULL;
	}

	res = gedit_utils_replace_home_dir_with_tilde (str);

	g_free (str);

	return res;
}
Esempio n. 2
0
void RecentManager::addRecentMenu(GtkRecentInfo *info, int i) {
	XOJ_CHECK_TYPE(RecentManager);

	gchar * label = NULL;
	const char * display_name = gtk_recent_info_get_display_name(info);
	char * escaped = gedit_utils_escape_underscores(display_name, -1);
	if (i >= 10) {
		label = g_strdup_printf("%d.  %s", i, escaped);
	} else {
		label = g_strdup_printf("_%d.  %s", i, escaped);
	}
	g_free(escaped);

	/* gtk_recent_info_get_uri_display (info) is buggy and
	 * works only for local files */
	char * uri = gedit_utils_uri_for_display(gtk_recent_info_get_uri(info));

	char * ruri = gedit_utils_replace_home_dir_with_tilde(uri);
	g_free(uri);

	// Translators: %s is a URI
	char * tip = g_strdup_printf(_("Open '%s'"), ruri);
	g_free(ruri);

	GtkWidget * item = gtk_menu_item_new_with_mnemonic(label);

	gtk_widget_set_tooltip_text(item, tip);

	g_object_set_data_full(G_OBJECT (item), "gtk-recent-info", gtk_recent_info_ref(info), (GDestroyNotify) gtk_recent_info_unref);

	g_signal_connect (item,
			"activate",
			G_CALLBACK (recentsMenuActivateCallback),
			this);

	gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
	gtk_widget_set_visible(GTK_WIDGET(item), true);

	this->menuItemList = g_list_append(this->menuItemList, item);

	g_free(label);
	g_free(tip);
}