raise gui warning on move_storage failure
This commit is contained in:
parent
e09d489077
commit
4c03881aba
|
@ -107,6 +107,9 @@ class InvalidEncodingError(DelugeError):
|
||||||
class FilesystemError(DelugeError):
|
class FilesystemError(DelugeError):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class SystemError(DelugeError):
|
||||||
|
pass
|
||||||
|
|
||||||
# Note: this may be raised both from deluge-core.cpp and deluge.py, for
|
# Note: this may be raised both from deluge-core.cpp and deluge.py, for
|
||||||
# different reasons, both related to duplicate torrents
|
# different reasons, both related to duplicate torrents
|
||||||
class DuplicateTorrentError(DelugeError):
|
class DuplicateTorrentError(DelugeError):
|
||||||
|
@ -183,6 +186,7 @@ class Manager:
|
||||||
# Pre-initialize the core's data structures
|
# Pre-initialize the core's data structures
|
||||||
deluge_core.pre_init(DelugeError,
|
deluge_core.pre_init(DelugeError,
|
||||||
InvalidEncodingError,
|
InvalidEncodingError,
|
||||||
|
SystemError,
|
||||||
FilesystemError,
|
FilesystemError,
|
||||||
DuplicateTorrentError,
|
DuplicateTorrentError,
|
||||||
InvalidTorrentError)
|
InvalidTorrentError)
|
||||||
|
@ -531,7 +535,8 @@ class Manager:
|
||||||
try:
|
try:
|
||||||
deluge_core.move_storage(event['unique_ID'], self.get_pref('default_finished_path'))
|
deluge_core.move_storage(event['unique_ID'], self.get_pref('default_finished_path'))
|
||||||
except SystemError:
|
except SystemError:
|
||||||
print "You cannot move downloaded file/folder to a different partition"
|
raise SystemError("You cannot move torrent to a different partition. Please fix your preferences")
|
||||||
|
continue
|
||||||
else:
|
else:
|
||||||
self.unique_IDs[event['unique_ID']].save_dir = self.get_pref('default_finished_path')
|
self.unique_IDs[event['unique_ID']].save_dir = self.get_pref('default_finished_path')
|
||||||
if self.get_pref('queue_seeds_to_bottom'):
|
if self.get_pref('queue_seeds_to_bottom'):
|
||||||
|
|
|
@ -127,6 +127,7 @@ torrents_t *M_torrents = NULL;
|
||||||
static PyObject *DelugeError = NULL;
|
static PyObject *DelugeError = NULL;
|
||||||
static PyObject *InvalidEncodingError = NULL;
|
static PyObject *InvalidEncodingError = NULL;
|
||||||
static PyObject *FilesystemError = NULL;
|
static PyObject *FilesystemError = NULL;
|
||||||
|
static PyObject *SystemError = NULL;
|
||||||
static PyObject *DuplicateTorrentError = NULL;
|
static PyObject *DuplicateTorrentError = NULL;
|
||||||
static PyObject *InvalidTorrentError = NULL;
|
static PyObject *InvalidTorrentError = NULL;
|
||||||
|
|
||||||
|
@ -292,8 +293,9 @@ long count_DHT_peers(entry &state)
|
||||||
|
|
||||||
static PyObject *torrent_pre_init(PyObject *self, PyObject *args)
|
static PyObject *torrent_pre_init(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
if (!PyArg_ParseTuple(args, "OOOOO", &DelugeError,
|
if (!PyArg_ParseTuple(args, "OOOOOO", &DelugeError,
|
||||||
&InvalidEncodingError,
|
&InvalidEncodingError,
|
||||||
|
&SystemError,
|
||||||
&FilesystemError,
|
&FilesystemError,
|
||||||
&DuplicateTorrentError,
|
&DuplicateTorrentError,
|
||||||
&InvalidTorrentError))
|
&InvalidTorrentError))
|
||||||
|
@ -546,16 +548,9 @@ static PyObject *torrent_move_storage(PyObject *self, PyObject *args)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
boost::filesystem::path move_dir_2 (move_dir, empty_name_check);
|
boost::filesystem::path move_dir_2 (move_dir, empty_name_check);
|
||||||
try
|
M_torrents->at(index).handle.move_storage(move_dir_2);
|
||||||
{
|
if(M_torrents->at(index).handle.save_path()!=move_dir_2)
|
||||||
M_torrents->at(index).handle.move_storage(move_dir_2);
|
RAISE_PTR(SystemError, "You cannot move torrent to a different partition. Please fix your preferences");
|
||||||
if(M_torrents->at(index).handle.save_path()!=move_dir_2)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
catch (boost::filesystem::filesystem_error&)
|
|
||||||
{ RAISE_PTR(FilesystemError, ""); }
|
|
||||||
|
|
||||||
Py_INCREF(Py_None); return Py_None;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *torrent_remove_torrent(PyObject *self, PyObject *args)
|
static PyObject *torrent_remove_torrent(PyObject *self, PyObject *args)
|
||||||
|
|
|
@ -83,7 +83,7 @@ class PreferencesDlg:
|
||||||
self.glade.get_widget("radio_ask_save").set_active(True)
|
self.glade.get_widget("radio_ask_save").set_active(True)
|
||||||
self.glade.get_widget("chk_move_completed").set_sensitive(False)
|
self.glade.get_widget("chk_move_completed").set_sensitive(False)
|
||||||
self.glade.get_widget("finished_path_button").set_sensitive(False)
|
self.glade.get_widget("finished_path_button").set_sensitive(False)
|
||||||
self.glade.get_widget("finished_path_button").set_filename(self.preferences.get("default_finished_path"))
|
self.glade.get_widget("finished_path_button").set_filename(self.preferences.get("default_finished_path"))
|
||||||
self.glade.get_widget("download_path_button").set_filename(self.preferences.get("default_download_path"))
|
self.glade.get_widget("download_path_button").set_filename(self.preferences.get("default_download_path"))
|
||||||
self.glade.get_widget("chk_compact").set_active(self.preferences.get("use_compact_storage"))
|
self.glade.get_widget("chk_compact").set_active(self.preferences.get("use_compact_storage"))
|
||||||
self.glade.get_widget("active_port_label").set_text(str(self.parent.manager.get_state()['port']))
|
self.glade.get_widget("active_port_label").set_text(str(self.parent.manager.get_state()['port']))
|
||||||
|
|
|
@ -826,7 +826,11 @@ class DelugeGTK:
|
||||||
self.manager.apply_queue()
|
self.manager.apply_queue()
|
||||||
|
|
||||||
# Handle the events
|
# Handle the events
|
||||||
self.manager.handle_events()
|
try:
|
||||||
|
self.manager.handle_events()
|
||||||
|
except core.SystemError, e:
|
||||||
|
print "SystemError", e
|
||||||
|
dialogs.show_popup_warning(self.window, _("You cannot move torrent to a different partition. Please fix your preferences"))
|
||||||
|
|
||||||
# Make sure that the interface still exists
|
# Make sure that the interface still exists
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in New Issue