2017-08-04 00:52:19 +00:00
|
|
|
# Copyright 2017 Virgil Dupras
|
2013-07-19 23:16:11 +00:00
|
|
|
|
2017-08-04 00:52:19 +00:00
|
|
|
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
|
|
# which should be included with this package. The terms are also available at
|
2013-07-19 23:16:11 +00:00
|
|
|
# http://www.hardcoded.net/licenses/bsd_license
|
|
|
|
|
|
|
|
from gi.repository import GObject, Gio
|
2018-02-16 14:30:26 +00:00
|
|
|
from .exceptions import TrashPermissionError
|
2021-08-08 02:48:10 +00:00
|
|
|
from .util import preprocess_paths
|
2013-07-19 23:16:11 +00:00
|
|
|
|
2020-06-03 16:49:41 +00:00
|
|
|
|
|
|
|
def send2trash(paths):
|
2021-08-08 02:48:10 +00:00
|
|
|
paths = preprocess_paths(paths)
|
2020-06-03 16:49:41 +00:00
|
|
|
for path in paths:
|
|
|
|
try:
|
|
|
|
f = Gio.File.new_for_path(path)
|
|
|
|
f.trash(cancellable=None)
|
|
|
|
except GObject.GError as e:
|
|
|
|
if e.code == Gio.IOErrorEnum.NOT_SUPPORTED:
|
|
|
|
# We get here if we can't create a trash directory on the same
|
|
|
|
# device. I don't know if other errors can result in NOT_SUPPORTED.
|
|
|
|
raise TrashPermissionError("")
|
|
|
|
raise OSError(e.message)
|