From e32018e8f64decb97d0674d8c72454c82bfd1778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Jastrz=C4=99bski?= Date: Thu, 15 Aug 2013 10:05:03 +0200 Subject: [PATCH] Improved cleanup (close #58) --- kcc/KCC_gui.py | 15 ++++++++++++--- kcc/comic2ebook.py | 6 +++--- kcc/comic2panel.py | 2 +- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/kcc/KCC_gui.py b/kcc/KCC_gui.py index c387b98..0b80e94 100644 --- a/kcc/KCC_gui.py +++ b/kcc/KCC_gui.py @@ -228,8 +228,10 @@ class WorkerThread(QtCore.QThread): continue if not self.conversionAlive: for item in outputPath: - os.remove(item) - os.remove(item.replace('.epub', '.mobi')) + if os.path.exists(item): + os.remove(item) + if os.path.exists(item.replace('.epub', '.mobi')): + os.remove(item.replace('.epub', '.mobi')) self.clean() return if self.kindlegenErrorCode == 0: @@ -532,8 +534,15 @@ class Ui_KCC(object): def hideProgressBar(self): GUI.ProgressBar.hide() - # noinspection PyUnusedLocal def saveSettings(self, event): + if self.conversionAlive: + GUI.ConvertButton.setEnabled(False) + self.addMessage('Process will be interrupted. Please wait.', 'warning') + self.conversionAlive = False + self.worker.sync() + event.ignore() + if not GUI.ConvertButton.isEnabled(): + event.ignore() self.settings.setValue('lastPath', self.lastPath) self.settings.setValue('lastDevice', GUI.DeviceBox.currentIndex()) self.settings.setValue('currentFormat', GUI.FormatBox.currentIndex()) diff --git a/kcc/comic2ebook.py b/kcc/comic2ebook.py index 97c32f4..b3cbacb 100755 --- a/kcc/comic2ebook.py +++ b/kcc/comic2ebook.py @@ -364,7 +364,7 @@ def dirImgProcess(path): pass if not GUI.conversionAlive: pool.terminate() - rmtree(path) + rmtree(os.path.join(path, '..', '..')) raise UserWarning("Conversion interrupted.") GUI.emit(QtCore.SIGNAL("progressBarTick")) pool.join() @@ -372,7 +372,7 @@ def dirImgProcess(path): try: splitpages = splitpages.get() except: - rmtree(path) + rmtree(os.path.join(path, '..', '..')) raise RuntimeError("One of workers crashed. Cause: " + str(sys.exc_info()[1])) splitpages = filter(None, splitpages) splitpages.sort() @@ -382,7 +382,7 @@ def dirImgProcess(path): pagenumbermodifier += 1 pagenumbermodifier += 1 else: - rmtree(path) + rmtree(os.path.join(path, '..', '..')) raise UserWarning("Source directory is empty.") diff --git a/kcc/comic2panel.py b/kcc/comic2panel.py index dc3bae0..8111c13 100644 --- a/kcc/comic2panel.py +++ b/kcc/comic2panel.py @@ -255,7 +255,7 @@ def main(argv=None, qtGUI=None): try: workers.get() except: - rmtree(options.targetDir) + rmtree(options.targetDir, True) raise RuntimeError("One of workers crashed. Cause: " + str(sys.exc_info()[1])) if GUI: GUI.emit(QtCore.SIGNAL("progressBarTick"), 1)