/* The GeditRecentConfiguration struct is allocated and owned by the caller */ void gedit_recent_configuration_init_default (GeditRecentConfiguration *config) { GSettings *settings; config->manager = gtk_recent_manager_get_default (); if (config->filter != NULL) { g_object_unref (config->filter); } config->filter = gtk_recent_filter_new (); gtk_recent_filter_add_application (config->filter, g_get_application_name ()); gtk_recent_filter_add_mime_type (config->filter, "text/plain"); g_object_ref_sink (config->filter); settings = g_settings_new ("org.gnome.gedit.preferences.ui"); g_settings_get (settings, GEDIT_SETTINGS_MAX_RECENTS, "u", &config->limit); g_object_unref (settings); config->show_not_found = TRUE; config->show_private = FALSE; config->local_only = FALSE; config->substring_filter = NULL; }
static void recent_cb (GSimpleAction *action, GVariant *parameter, gpointer app) { GtkWidget *dialog; GtkWindow *win; GtkRecentInfo *info; GtkRecentChooser *chooser; GtkRecentFilter *filter; GtkRecentFilter *filter_all; const gchar *uri = NULL; win = gtk_application_get_active_window (app); dialog = gtk_recent_chooser_dialog_new ( _("Recent Files"), win, _("_Cancel"), GTK_RESPONSE_CANCEL, _("_Open"), GTK_RESPONSE_ACCEPT, NULL); gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (dialog), GTK_RECENT_SORT_MRU); /* Most Recently Used first */ gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (dialog), TRUE); filter = gtk_recent_filter_new (); gtk_recent_filter_set_name (filter, _("Parlatype")); gtk_recent_filter_add_application (filter, "parlatype"); gtk_recent_filter_add_mime_type (filter, "audio/*"); gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (dialog), filter); filter_all = gtk_recent_filter_new (); gtk_recent_filter_set_name (filter_all, _("All files")); gtk_recent_filter_add_pattern (filter_all, "*"); gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (dialog), filter_all); gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (dialog), filter); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { chooser = GTK_RECENT_CHOOSER (dialog); info = gtk_recent_chooser_get_current_item (chooser); uri = gtk_recent_info_get_uri (info); } gtk_widget_destroy (dialog); if (uri) { /* GStreamer has problems with uris from recent chooser, as a workaround use GFile magic */ GFile *file = g_file_new_for_uri (uri); gchar *tmp = g_file_get_uri (file); pt_window_open_file (PT_WINDOW (win), tmp); g_free (tmp); g_object_unref (file); gtk_recent_info_unref (info); } }
static GtkWidget * create_recent_chooser_menu (gint limit) { GtkWidget *menu; GtkRecentFilter *filter; GtkWidget *menuitem; menu = gtk_recent_chooser_menu_new_for_manager (manager); if (limit > 0) gtk_recent_chooser_set_limit (GTK_RECENT_CHOOSER (menu), limit); gtk_recent_chooser_set_local_only (GTK_RECENT_CHOOSER (menu), TRUE); gtk_recent_chooser_set_show_icons (GTK_RECENT_CHOOSER (menu), TRUE); gtk_recent_chooser_set_show_tips (GTK_RECENT_CHOOSER (menu), TRUE); gtk_recent_chooser_set_sort_type (GTK_RECENT_CHOOSER (menu), GTK_RECENT_SORT_MRU); gtk_recent_chooser_menu_set_show_numbers (GTK_RECENT_CHOOSER_MENU (menu), TRUE); filter = gtk_recent_filter_new (); gtk_recent_filter_set_name (filter, "Gedit files"); gtk_recent_filter_add_application (filter, "gedit"); gtk_recent_chooser_add_filter (GTK_RECENT_CHOOSER (menu), filter); gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (menu), filter); g_signal_connect (menu, "item-activated", G_CALLBACK (item_activated_cb), NULL); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("Test prepend"); gtk_menu_shell_prepend (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); menuitem = gtk_separator_menu_item_new (); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_label ("Test append"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); menuitem = gtk_menu_item_new_with_mnemonic ("Clear"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem); gtk_widget_show (menuitem); gtk_widget_show_all (menu); return menu; }
static void glide_window_insert_recent_menu_item (GlideWindow *w) { GtkRecentFilter *filter = gtk_recent_filter_new (); GtkWidget *men = gtk_recent_chooser_menu_new_for_manager (w->priv->recent_manager); GtkMenuItem *recent_menu_item = GTK_MENU_ITEM (GLIDE_WINDOW_UI_OBJECT (w, "open-recent-menuitem")); gtk_recent_filter_add_application (filter, "Glide"); gtk_recent_chooser_set_filter (GTK_RECENT_CHOOSER (men), filter); g_signal_connect (men, "item-activated", G_CALLBACK (glide_window_recent_item_activated), w); gtk_menu_item_set_submenu (recent_menu_item, men); }
static VALUE rg_add_application(VALUE self, VALUE application) { gtk_recent_filter_add_application(_SELF(self), RVAL2CSTR(application)); return self; }