[totem/wip/hadess/more-save-file-fixes: 5/5] save-file: Don't show "Make available offline" for files in $HOME
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem/wip/hadess/more-save-file-fixes: 5/5] save-file: Don't show "Make available offline" for files in $HOME
- Date: Thu, 7 Feb 2019 11:41:20 +0000 (UTC)
commit c4f7017c095552a53dc95cb4e0ed62f16af5b139
Author: Bastien Nocera <hadess hadess net>
Date: Thu Feb 7 12:36:55 2019 +0100
save-file: Don't show "Make available offline" for files in $HOME
When Videos is not Flatpak'ed. The only thing we can be sure of when
Flatpak'ed is access to the XDG videos dir, so the behaviour does not
change when Flatpak'ed.
Closes: #289
src/plugins/save-file/totem-save-file.c | 37 ++++++++++++++++++++++++---------
1 file changed, 27 insertions(+), 10 deletions(-)
---
diff --git a/src/plugins/save-file/totem-save-file.c b/src/plugins/save-file/totem-save-file.c
index 102954ae4..076fda76a 100644
--- a/src/plugins/save-file/totem-save-file.c
+++ b/src/plugins/save-file/totem-save-file.c
@@ -52,6 +52,7 @@ typedef struct {
gboolean is_tmp;
GCancellable *cancellable;
+ gboolean is_flatpaked;
GSimpleAction *action;
} TotemSaveFilePluginPrivate;
@@ -279,7 +280,6 @@ totem_save_file_file_opened (TotemObject *totem,
const char *mrl,
TotemSaveFilePlugin *pi)
{
- GFile *videos_dir_file;
GFile *cache_dir = NULL;
char *cache_path, *videos_dir;
GFile *file;
@@ -301,16 +301,33 @@ totem_save_file_file_opened (TotemObject *totem,
file = g_file_new_for_uri (mrl);
- /* We check whether it's in the Videos dir, in the future,
- * we might want to check if it's native instead */
- videos_dir = get_videos_dir_uri ();
- videos_dir_file = g_file_new_for_path (videos_dir);
- if (file_has_ancestor (file, videos_dir_file)) {
- g_debug ("Not enabling offline save, as '%s' already in '%s'", mrl, videos_dir);
+ if (pi->priv->is_flatpaked) {
+ GFile *videos_dir_file;
+
+ /* Check whether it's in the Videos dir */
+ videos_dir = get_videos_dir_uri ();
+ videos_dir_file = g_file_new_for_path (videos_dir);
+ if (file_has_ancestor (file, videos_dir_file)) {
+ g_debug ("Not enabling offline save, as '%s' already in '%s'", mrl, videos_dir);
+ g_object_unref (videos_dir_file);
+ g_free (videos_dir);
+ goto out;
+ }
+ g_object_unref (videos_dir_file);
g_free (videos_dir);
- goto out;
+ } else {
+ char *path;
+
+ path = g_file_get_path (file);
+ /* Check, crudely, whether it's in $HOME */
+ if (g_str_has_prefix (path, g_get_home_dir ()) &&
+ g_file_is_native (file)) {
+ g_debug ("Not enabling offline save, as '%s' already in $HOME, and native", mrl);
+ g_free (path);
+ goto out;
+ }
+ g_free (path);
}
- g_free (videos_dir);
/* Already cached? */
cache_path = get_cache_path ();
@@ -327,7 +344,6 @@ totem_save_file_file_opened (TotemObject *totem,
out:
g_clear_object (&cache_dir);
- g_clear_object (&videos_dir_file);
g_clear_object (&file);
}
@@ -412,6 +428,7 @@ impl_activate (PeasActivatable *plugin)
priv->totem = g_object_get_data (G_OBJECT (plugin), "object");
priv->bvw = totem_object_get_video_widget (priv->totem);
priv->cancellable = g_cancellable_new ();
+ priv->is_flatpaked = g_file_test ("/.flatpak-info", G_FILE_TEST_EXISTS);
g_signal_connect (priv->totem,
"file-opened",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]