From cd2eeb4d0f0e372e4efc3046da61b512d12f973b Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Wed, 15 Apr 2026 21:40:03 -0700 Subject: [PATCH] option: create temporary files directory on source file drive (#1296) --- README.md | 1 + gui/KCC.ui | 10 ++++++++++ kindlecomicconverter/KCC_gui.py | 3 +++ kindlecomicconverter/KCC_ui.py | 9 +++++++++ kindlecomicconverter/comic2ebook.py | 5 ++++- 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 01cebcc..4d74f0f 100644 --- a/README.md +++ b/README.md @@ -282,6 +282,7 @@ PROCESSING: --jpeg-quality The JPEG quality, on a scale from 0 (worst) to 95 (best). Default 85 for most devices. --maximizestrips Turn 1x4 strips to 2x2 strips -d, --delete Delete source file(s) or a directory. It's not recoverable. + --tempdir Create temporary files directory on source file drive. OUTPUT SETTINGS: -o OUTPUT, --output OUTPUT diff --git a/gui/KCC.ui b/gui/KCC.ui index b2c960d..7b4e57f 100644 --- a/gui/KCC.ui +++ b/gui/KCC.ui @@ -885,6 +885,16 @@ Ignored for Kindle EPUB/MOBI and all PDF. + + + + <html><head/><body><p><span style=" font-weight:600; text-decoration: underline;">Unchecked - Main Drive<br/></span>Use dedicated temporary directory on main OS drive.</p><p><span style=" font-weight:600; text-decoration: underline;">Checked - Source File Drive<br/></span>Create temporary file directory on source file drive.</p></body></html> + + + Temp Directory + + + diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py index 089af51..11b797b 100644 --- a/kindlecomicconverter/KCC_gui.py +++ b/kindlecomicconverter/KCC_gui.py @@ -341,6 +341,8 @@ class WorkerThread(QThread): options.metadatatitle = 2 if GUI.deleteBox.isChecked(): options.delete = True + if GUI.tempDirBox.isChecked(): + options.tempdir = True if GUI.spreadShiftBox.isChecked(): options.spreadshift = True if GUI.fileFusionBox.isChecked(): @@ -1090,6 +1092,7 @@ class KCCGUI(KCC_ui.Ui_mainWindow): 'widthBox': GUI.widthBox.value(), 'heightBox': GUI.heightBox.value(), 'deleteBox': GUI.deleteBox.checkState(), + 'tempDirBox': GUI.tempDirBox.checkState(), 'spreadShiftBox': GUI.spreadShiftBox.checkState(), 'fileFusionBox': GUI.fileFusionBox.checkState(), 'defaultOutputFolderBox': GUI.defaultOutputFolderBox.checkState(), diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py index cf11c6e..25fc4fc 100644 --- a/kindlecomicconverter/KCC_ui.py +++ b/kindlecomicconverter/KCC_ui.py @@ -450,6 +450,11 @@ class Ui_mainWindow(object): self.gridLayout_2.addWidget(self.webpBox, 12, 0, 1, 1) + self.tempDirBox = QCheckBox(self.optionWidget) + self.tempDirBox.setObjectName(u"tempDirBox") + + self.gridLayout_2.addWidget(self.tempDirBox, 12, 1, 1, 1) + self.gridLayout.addWidget(self.optionWidget, 5, 0, 1, 2) @@ -821,6 +826,10 @@ class Ui_mainWindow(object): "Ignored for Kindle EPUB/MOBI and all PDF.", None)) #endif // QT_CONFIG(tooltip) self.webpBox.setText(QCoreApplication.translate("mainWindow", u"WebP (experimental)", None)) +#if QT_CONFIG(tooltip) + self.tempDirBox.setToolTip(QCoreApplication.translate("mainWindow", u"

Unchecked - Main Drive
Use dedicated temporary directory on main OS drive.

Checked - Source File Drive
Create temporary file directory on source file drive.

", None)) +#endif // QT_CONFIG(tooltip) + self.tempDirBox.setText(QCoreApplication.translate("mainWindow", u"Temp Directory", None)) #if QT_CONFIG(tooltip) self.convertButton.setToolTip(QCoreApplication.translate("mainWindow", u"

Shift+Click to select the output directory for this list.

", None)) #endif // QT_CONFIG(tooltip) diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py index 11ffabd..c95820c 100755 --- a/kindlecomicconverter/comic2ebook.py +++ b/kindlecomicconverter/comic2ebook.py @@ -874,7 +874,8 @@ def mupdf_pdf_process_pages_parallel(filename, output_dir, target_width, target_ def getWorkFolder(afile, workdir=None): if not workdir: workdir = mkdtemp('', 'KCC-') - # workdir = mkdtemp('', 'KCC-', os.path.dirname(afile)) + if options.tempdir: + workdir = mkdtemp('', 'KCC-', os.path.dirname(afile)) fullPath = os.path.join(workdir, 'OEBPS', 'Images') else: fullPath = workdir @@ -1450,6 +1451,8 @@ def makeParser(): help="Turn 1x4 strips to 2x2 strips") processing_options.add_argument("-d", "--delete", action="store_true", dest="delete", default=False, help="Delete source file(s) or a directory. It's not recoverable.") + processing_options.add_argument("--tempdir", action="store_true", dest="tempdir", default=False, + help="Create temporary files directory on source file drive.") custom_profile_options.add_argument("--customwidth", type=int, dest="customwidth", default=0, help="Replace screen width provided by device profile")