/** * 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; }
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); }