[gnome-builder] projects-dialog: remove project from recent items



commit dbd9e645207b5cf1a2720e2180d34828a38ecf48
Author: Christian Hergert <christian hergert me>
Date:   Wed Apr 8 00:32:18 2015 -0700

    projects-dialog: remove project from recent items

 src/dialogs/gb-projects-dialog.c |   24 +++++++++++++++++++++++-
 1 files changed, 23 insertions(+), 1 deletions(-)
---
diff --git a/src/dialogs/gb-projects-dialog.c b/src/dialogs/gb-projects-dialog.c
index 92db43e..5d8e138 100644
--- a/src/dialogs/gb-projects-dialog.c
+++ b/src/dialogs/gb-projects-dialog.c
@@ -376,6 +376,24 @@ gb_projects_dialog__new_button_clicked (GbProjectsDialog *self,
 }
 
 static void
+gb_projects_dialog_remove_recent (GbProjectsDialog *self,
+                                  IdeProjectInfo   *project_info)
+{
+  g_autofree gchar *uri = NULL;
+  GtkRecentManager *recent_manager;
+  GFile *file;
+
+  g_assert (GB_IS_PROJECTS_DIALOG (self));
+  g_assert (IDE_IS_PROJECT_INFO (project_info));
+
+  recent_manager = gtk_recent_manager_get_default ();
+  file = ide_project_info_get_file (project_info);
+  uri = g_file_get_uri (file);
+
+  gtk_recent_manager_remove_item (recent_manager, uri, NULL);
+}
+
+static void
 gb_projects_dialog__delete_button_clicked (GbProjectsDialog *self,
                                            GtkButton        *delete_button)
 {
@@ -395,9 +413,13 @@ gb_projects_dialog__delete_button_clicked (GbProjectsDialog *self,
 
   for (iter = list; iter; iter = iter->next)
     {
-
       if (gb_recent_project_row_get_selected (iter->data))
         {
+          IdeProjectInfo *project_info;
+
+          project_info = gb_recent_project_row_get_project_info (iter->data);
+          gb_projects_dialog_remove_recent (self, project_info);
+
           gtk_container_remove (GTK_CONTAINER (self->listbox), iter->data);
         }
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]