[gnome-builder] unsaved-files: place buffers in per-project cache dir
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] unsaved-files: place buffers in per-project cache dir
- Date: Tue, 21 Nov 2017 07:39:15 +0000 (UTC)
commit 4c1487879dac094e7d4899706da3ac953d2d1033
Author: Christian Hergert <chergert redhat com>
Date: Mon Nov 20 23:38:04 2017 -0800
unsaved-files: place buffers in per-project cache dir
We want to keep as much stuff in the cache-dir per-project so
that cleaning up after a project is easier.
src/libide/buffers/ide-unsaved-files.c | 36 ++++++++++++++++++-------------
1 files changed, 21 insertions(+), 15 deletions(-)
---
diff --git a/src/libide/buffers/ide-unsaved-files.c b/src/libide/buffers/ide-unsaved-files.c
index a91eaca..fedb8de 100644
--- a/src/libide/buffers/ide-unsaved-files.c
+++ b/src/libide/buffers/ide-unsaved-files.c
@@ -170,12 +170,11 @@ hash_uri (const gchar *uri)
}
static gchar *
-get_buffers_dir (void)
+get_buffers_dir (IdeContext *context)
{
- return g_build_filename (g_get_user_cache_dir (),
- "gnome-builder",
- "buffers",
- NULL);
+ g_assert (IDE_IS_CONTEXT (context));
+
+ return ide_context_cache_filename (context, "buffers", NULL);
}
static void
@@ -530,9 +529,10 @@ ide_unsaved_files_remove (IdeUnsavedFiles *self,
}
static void
-setup_tempfile (GFile *file,
- gint *temp_fd,
- gchar **temp_path_out)
+setup_tempfile (IdeContext *context,
+ GFile *file,
+ gint *temp_fd,
+ gchar **temp_path_out)
{
g_autofree gchar *tmpdir = NULL;
g_autofree gchar *name = NULL;
@@ -562,7 +562,7 @@ setup_tempfile (GFile *file,
* control the directory so that we can ensure we have one that is available
* to both the flatpak runtime and the host system.
*/
- tmpdir = get_buffers_dir ();
+ tmpdir = get_buffers_dir (context);
shortname = g_strdup_printf ("buffer-XXXXXX%s", suffix);
tmpl_path = g_build_filename (tmpdir, shortname, NULL);
@@ -583,6 +583,7 @@ ide_unsaved_files_update (IdeUnsavedFiles *self,
{
IdeUnsavedFilesPrivate *priv = ide_unsaved_files_get_instance_private (self);
UnsavedFile *unsaved;
+ IdeContext *context;
guint i;
g_return_if_fail (IDE_IS_UNSAVED_FILES (self));
@@ -596,6 +597,8 @@ ide_unsaved_files_update (IdeUnsavedFiles *self,
return;
}
+ context = ide_object_get_context (IDE_OBJECT (self));
+
for (i = 0; i < priv->unsaved_files->len; i++)
{
unsaved = g_ptr_array_index (priv->unsaved_files, i);
@@ -626,7 +629,7 @@ ide_unsaved_files_update (IdeUnsavedFiles *self,
unsaved->file = g_object_ref (file);
unsaved->content = g_bytes_ref (content);
unsaved->sequence = priv->sequence;
- setup_tempfile (file, &unsaved->temp_fd, &unsaved->temp_path);
+ setup_tempfile (context, file, &unsaved->temp_fd, &unsaved->temp_path);
g_ptr_array_insert (priv->unsaved_files, 0, unsaved);
}
@@ -777,12 +780,15 @@ ide_unsaved_files_set_context (IdeObject *object,
* Setup a reaper to cleanup old files in case that we left some around
* after a previous crash.
*/
- path = get_buffers_dir ();
- buffersdir = g_file_new_for_path (path);
- dzl_directory_reaper_add_directory (reaper, buffersdir, G_TIME_SPAN_DAY);
+ if (context != NULL)
+ {
+ path = get_buffers_dir (context);
+ buffersdir = g_file_new_for_path (path);
+ dzl_directory_reaper_add_directory (reaper, buffersdir, G_TIME_SPAN_HOUR);
- /* Now cleanup the old files */
- dzl_directory_reaper_execute_async (reaper, NULL, NULL, NULL);
+ /* Now cleanup the old files */
+ dzl_directory_reaper_execute_async (reaper, NULL, NULL, NULL);
+ }
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]