[gnome-shell] screencastService: Create directory if it doesn't exist



commit 0e4b87fe5adeb388dad92978a9bf55780782516c
Author: Ivan Molodetskikh <yalterz gmail com>
Date:   Fri Dec 17 10:17:35 2021 +0300

    screencastService: Create directory if it doesn't exist
    
    Instead of testing if the videos directory exists and using the home
    directory otherwise, just try to create the target directory. This
    aligns with how the screenshot UI handles the screenshots folder, and
    it's convenient for putting screencasts into a subdirectory.
    
    Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2102>

 js/dbusServices/screencast/screencastService.js | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)
---
diff --git a/js/dbusServices/screencast/screencastService.js b/js/dbusServices/screencast/screencastService.js
index 708a15c84e..069b00d1a9 100644
--- a/js/dbusServices/screencast/screencastService.js
+++ b/js/dbusServices/screencast/screencastService.js
@@ -58,6 +58,14 @@ var Recorder = class {
         this._height = height;
         this._filePath = filePath;
 
+        try {
+            const dir = Gio.File.new_for_path(filePath).get_parent();
+            dir.make_directory_with_parents(null);
+        } catch (e) {
+            if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.EXISTS))
+                throw e;
+        }
+
         this._pipelineString = DEFAULT_PIPELINE;
         this._framerate = DEFAULT_FRAMERATE;
         this._drawCursor = DEFAULT_DRAW_CURSOR;
@@ -287,9 +295,6 @@ var ScreencastService = class extends ServiceImplementation {
             return filename;
 
         let videoDir = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_VIDEOS);
-        if (!GLib.file_test(videoDir, GLib.FileTest.EXISTS))
-            videoDir = GLib.get_home_dir();
-
         return GLib.build_filenamev([videoDir, filename]);
     }
 


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