mirror of
https://github.com/elementary/gala.git
synced 2024-12-26 10:44:46 +03:00
Save screenshots to (self created) screenshots folder (#459)
* Save screenshots to (self created) screenshots folder * Fallback to pictures folder * Explicitly forwarding error
This commit is contained in:
parent
6654145bb2
commit
74e7541c2b
@ -86,7 +86,7 @@ namespace Gala
|
||||
public async void screenshot_area (int x, int y, int width, int height, bool flash, string filename, out bool success, out string filename_used) throws DBusError, IOError
|
||||
{
|
||||
debug ("Taking area screenshot");
|
||||
|
||||
|
||||
yield wait_stage_repaint ();
|
||||
|
||||
var image = take_screenshot (x, y, width, height, false);
|
||||
@ -138,19 +138,44 @@ namespace Gala
|
||||
|
||||
yield;
|
||||
selection_area.destroy ();
|
||||
|
||||
|
||||
yield wait_stage_repaint ();
|
||||
selection_area.get_selection_rectangle (out x, out y, out width, out height);
|
||||
}
|
||||
|
||||
public static void create_dir_if_missing (string path) throws Error {
|
||||
File file = File.new_for_path (path);
|
||||
if (!file.query_exists ()) {
|
||||
try {
|
||||
file.make_directory_with_parents ();
|
||||
} catch (Error e) {
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static string find_target_path ()
|
||||
{
|
||||
var pictures_path = Environment.get_user_special_dir (UserDirectory.PICTURES);
|
||||
var screenshot_folder = _("Screenshots");
|
||||
var path = Path.build_path (
|
||||
Path.DIR_SEPARATOR_S,
|
||||
pictures_path,
|
||||
screenshot_folder
|
||||
);
|
||||
try {
|
||||
create_dir_if_missing (path);
|
||||
return path;
|
||||
} catch (Error e) {
|
||||
warning (e.message);
|
||||
return pictures_path;
|
||||
}
|
||||
}
|
||||
|
||||
static bool save_image (Cairo.ImageSurface image, string filename, out string used_filename)
|
||||
{
|
||||
if (!Path.is_absolute (filename)) {
|
||||
string path = Environment.get_user_special_dir (UserDirectory.PICTURES);
|
||||
if (!FileUtils.test (path, FileTest.EXISTS)) {
|
||||
path = Environment.get_home_dir ();
|
||||
}
|
||||
|
||||
var path = find_target_path ();
|
||||
if (!filename.has_suffix (".png")) {
|
||||
used_filename = Path.build_filename (path, filename.concat (".png"), null);
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user