diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index f96c64080d..a68372f650 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -540,6 +540,7 @@ def choose_dir(window, name, title, default_dir='~'): parent=window, name=name, mode=QFileDialog.Directory, default_dir=default_dir) dir = fd.get_files() + fd.setParent(None) if dir: return dir[0] @@ -560,6 +561,7 @@ def choose_files(window, name, title, fd = FileDialog(title=title, name=name, filters=filters, parent=window, add_all_files_filter=all_files, mode=mode, ) + fd.setParent(None) if fd.accepted: return fd.get_files() return None @@ -570,6 +572,7 @@ def choose_images(window, name, title, select_only_single_file=True): filters=[('Images', ['png', 'gif', 'jpeg', 'jpg', 'svg'])], parent=window, add_all_files_filter=False, mode=mode, ) + fd.setParent(None) if fd.accepted: return fd.get_files() return None diff --git a/src/calibre/gui2/actions/add.py b/src/calibre/gui2/actions/add.py index 38c28661b7..9917c542ae 100644 --- a/src/calibre/gui2/actions/add.py +++ b/src/calibre/gui2/actions/add.py @@ -243,7 +243,9 @@ class AddAction(InterfaceAction): if hasattr(self._adder, 'cleanup'): self._adder.cleanup() - self._adder = None + self._adder.setParent(None) + del self._adder + self._adder = None def _add_from_device_adder(self, paths=[], names=[], infos=[], on_card=None, model=None): diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index 5f555ef138..601c620e9c 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -368,6 +368,10 @@ class Adder(QObject): # {{{ shutil.rmtree(self.worker.tdir) except: pass + self._parent = None + if hasattr(self, 'db_adder'): + self.db_adder.setParent(None) + @property def number_of_books_added(self):