diff --git a/gui/KCC.ui b/gui/KCC.ui
index 6d7d2e6a..af39d92b 100644
--- a/gui/KCC.ui
+++ b/gui/KCC.ui
@@ -915,10 +915,12 @@ Higher values are larger and higher quality, and may resolve blank page issues.<
Qt::FocusPolicy::ClickFocus
- <html><head/><body><p>Default Title</p></body></html>
+ For one item/fusion, sets the default title and filename.
+
+For multiple files, will enumerate the titles and filenames, e.g. Series 01, Series 02, etc.
- Default Title
+ Default Title/Series
false
diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py
index 16ed8563..84b544f0 100644
--- a/kindlecomicconverter/KCC_gui.py
+++ b/kindlecomicconverter/KCC_gui.py
@@ -466,11 +466,6 @@ class WorkerThread(QThread):
except Exception as e:
print('Fusion Failed. ' + str(e))
MW.addMessage.emit(i18n.tr_arg(QCoreApplication.translate('KCCGUI', 'Fusion Failed. %1'), str(e)), 'error', True)
- elif len(currentJobs) > 1 and options.title != 'defaulttitle':
- currentJobs.clear()
- error_message = QCoreApplication.translate('KCCGUI', 'Process Failed. Custom title can\'t be set when processing more than 1 source.\nDid you forget to check fusion?')
- print(error_message)
- MW.addMessage.emit(error_message, 'error', True)
for i, job in enumerate(currentJobs, start=1):
job_progress_number = f'[{i}/{len(currentJobs)}] '
sleep(0.5)
@@ -495,6 +490,8 @@ class WorkerThread(QThread):
jobargv.append(job)
try:
comic2ebook.options = comic2ebook.checkOptions(copy(options))
+ if len(currentJobs) > 1 and comic2ebook.options.title != 'defaulttitle':
+ comic2ebook.options.title += f' {i:0{len(str(len(currentJobs)))}}'
outputPath = comic2ebook.makeBook(job, fusion_cover_path, self, job_progress_number)
MW.hideProgressBar.emit()
except UserWarning as warn:
diff --git a/kindlecomicconverter/KCC_rc.py b/kindlecomicconverter/KCC_rc.py
index 48e07a67..53828345 100644
--- a/kindlecomicconverter/KCC_rc.py
+++ b/kindlecomicconverter/KCC_rc.py
@@ -1,6 +1,6 @@
# Resource object code (Python 3)
# Created by: object code
-# Created by: The Resource Compiler for Qt version 6.9.3
+# Created by: The Resource Compiler for Qt version 6.12.0
# WARNING! All changes made in this file will be lost!
from PySide6 import QtCore
@@ -25270,69 +25270,69 @@ qt_resource_struct = b"\
\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x09\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x02\xe2\x00\x00\x00\x00\x00\x01\x00\x05\x80\xb4\
-\x00\x00\x01\xa0\xf7.\x05\xa1\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x03 \x00\x00\x00\x00\x00\x01\x00\x05\xd5N\
-\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x03\x0c\x00\x00\x00\x00\x00\x01\x00\x05\xabS\
-\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x02\xf8\x00\x00\x00\x00\x00\x01\x00\x05\x9f\xf0\
-\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x0e\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\xc8\x00\x00\x00\x00\x00\x01\x00\x04z^\
-\x00\x00\x01\xa0\xf7.\x05\xa0\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x01\xde\x00\x00\x00\x00\x00\x01\x00\x04\x83\xb6\
-\x00\x00\x01\xa0\xf7.\x05\xa2\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x04oW\
-\x00\x00\x01\xa0\xf7.\x05\xa0\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x01\xf2\x00\x00\x00\x00\x00\x01\x00\x04\x8b\xcc\
-\x00\x00\x01\xa0\xf7.\x05\xa1\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x00v\x00\x02\x00\x00\x00\x03\x00\x00\x00\x13\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x03d\x00\x00\x00\x00\x00\x01\x00\x06\x07\x9a\
-\x00\x00\x01\xa0\xf7.\x05\xb0\
+\x00\x00\x01\xa1U\x80\xce\x0c\
\x00\x00\x036\x00\x00\x00\x00\x00\x01\x00\x05\xf1\x9d\
-\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x03L\x00\x00\x00\x00\x00\x01\x00\x05\xfa\xfa\
-\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x00v\x00\x02\x00\x00\x00\x07\x00\x00\x00\x17\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x02>\x00\x00\x00\x00\x00\x01\x00\x04\xa2x\
-\x00\x00\x01\xa0\xf7.\x05\xb1\
+\x00\x00\x01\xa1U\x80\xce\x0c\
\x00\x00\x02T\x00\x00\x00\x00\x00\x01\x00\x04\xcb \
-\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x02\xb6\x00\x00\x00\x00\x00\x01\x00\x05#\xf4\
-\x00\x00\x01\xa0\xf7.\x05\xaf\
+\x00\x00\x01\xa1U\x80\xce\x0c\
\x00\x00\x02\x9c\x00\x00\x00\x00\x00\x01\x00\x04\xde\xad\
-\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x02&\x00\x00\x00\x00\x00\x01\x00\x04\x9e\x19\
-\x00\x00\x01\xa0\xf7.\x05\xa8\
+\x00\x00\x01\xa1U\x80\xce\x09\
\x00\x00\x02\x0a\x00\x00\x00\x00\x00\x01\x00\x04\x91\xb0\
-\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x02v\x00\x00\x00\x00\x00\x01\x00\x04\xd4w\
-\x00\x00\x01\xa0\xf7.\x05\xac\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x00v\x00\x02\x00\x00\x00\x04\x00\x00\x00\x1f\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x01\x8e\x00\x00\x00\x00\x00\x01\x00\x045m\
-\x00\x00\x01\xa0\xf7.\x05\xad\
+\x00\x00\x01\xa1U\x80\xce\x0b\
\x00\x00\x01j\x00\x00\x00\x00\x00\x01\x00\x04\x11,\
-\x00\x00\x01\xa0\xf7.\x05\xaf\
+\x00\x00\x01\xa1U\x80\xce\x0c\
\x00\x00\x01\x22\x00\x00\x00\x00\x00\x01\x00\x03\xb0B\
-\x00\x00\x01\xa0\xf7.\x05\x9e\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x01D\x00\x00\x00\x00\x00\x01\x00\x03\xd0\x82\
-\x00\x00\x01\xa0\xf7.\x05\x9f\
+\x00\x00\x01\xa1U\x80\xce\x06\
\x00\x00\x00\xc8\x00\x00\x00\x00\x00\x01\x00\x01\xf5-\
-\x00\x00\x01\xa14u\xc9@\
+\x00\x00\x01\xa1U\x80\xce,\
\x00\x00\x01\x04\x00\x01\x00\x00\x00\x01\x00\x03\x92Q\
-\x00\x00\x01\xa19\xc6y$\
+\x00\x00\x01\xa1U\x80\xce+\
\x00\x00\x00\xe6\x00\x00\x00\x00\x00\x01\x00\x02\xba\xc8\
-\x00\x00\x01\xa14u\xc7S\
+\x00\x00\x01\xa1U\x80\xce+\
\x00\x00\x00\xaa\x00\x00\x00\x00\x00\x01\x00\x01\x1d\x90\
-\x00\x00\x01\xa14u\xc85\
+\x00\x00\x01\xa1U\x80\xce+\
\x00\x00\x00v\x00\x02\x00\x00\x00\x01\x00\x00\x00(\
\x00\x00\x00\x00\x00\x00\x00\x00\
\x00\x00\x00\x86\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\
-\x00\x00\x01\xa0\xf7.\x05\xab\
+\x00\x00\x01\xa1U\x80\xce\x0b\
"
def qInitResources():
diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py
index e7ad1c0e..ee7edcc7 100644
--- a/kindlecomicconverter/KCC_ui.py
+++ b/kindlecomicconverter/KCC_ui.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'KCC.ui'
##
-## Created by: Qt User Interface Compiler version 6.9.3
+## Created by: Qt User Interface Compiler version 6.12.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -889,9 +889,11 @@ class Ui_mainWindow(object):
#endif // QT_CONFIG(tooltip)
self.colorBox.setText(QCoreApplication.translate("mainWindow", u"Color mode", None))
#if QT_CONFIG(tooltip)
- self.titleEdit.setToolTip(QCoreApplication.translate("mainWindow", u"
Default Title
", None))
+ self.titleEdit.setToolTip(QCoreApplication.translate("mainWindow", u"For one item/fusion, sets the default title and filename.\n"
+"\n"
+"For multiple files, will enumerate the titles and filenames, e.g. Series 01, Series 02, etc.", None))
#endif // QT_CONFIG(tooltip)
- self.titleEdit.setPlaceholderText(QCoreApplication.translate("mainWindow", u"Default Title", None))
+ self.titleEdit.setPlaceholderText(QCoreApplication.translate("mainWindow", u"Default Title/Series", None))
#if QT_CONFIG(tooltip)
self.coverFillBox.setToolTip(QCoreApplication.translate("mainWindow", u"Resize cover to exact device resolution by center-cropping to aspect ratio first.\n"
"May crop top/bottom or left/right depending on source aspect ratio. Not implemented for Kindle Scribe.", None))
diff --git a/kindlecomicconverter/KCC_ui_editor.py b/kindlecomicconverter/KCC_ui_editor.py
index 07ec9401..12840916 100644
--- a/kindlecomicconverter/KCC_ui_editor.py
+++ b/kindlecomicconverter/KCC_ui_editor.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'MetaEditor.ui'
##
-## Created by: Qt User Interface Compiler version 6.9.3
+## Created by: Qt User Interface Compiler version 6.12.0
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
diff --git a/kindlecomicconverter/comic2ebook.py b/kindlecomicconverter/comic2ebook.py
index 1a9a13e5..ac266b90 100755
--- a/kindlecomicconverter/comic2ebook.py
+++ b/kindlecomicconverter/comic2ebook.py
@@ -1076,8 +1076,7 @@ def getOutputFilename(srcpath, wantedname, ext, tomenumber):
if options.folder_output:
ext = ''
source_path = Path(srcpath)
- if srcpath[-1] == os.path.sep:
- srcpath = srcpath[:-1]
+
if 'Ko' in options.profile and options.format == 'EPUB':
if options.noKepub:
# Just use normal epub extension if no_kepub option is true
@@ -1085,36 +1084,25 @@ def getOutputFilename(srcpath, wantedname, ext, tomenumber):
else:
ext = '.kepub.epub'
- custom_output_directory = False
if wantedname:
- wanted_root, wanted_ext = os.path.splitext(wantedname)
- # so you could have an output folder with . in the filename
- if not options.folder_output and wantedname.endswith(ext):
- filename = os.path.abspath(wantedname)
- elif wanted_ext == '.mobi' and ext == '.epub':
- filename = os.path.abspath(wanted_root + ext)
- else:
- custom_output_directory = True
- abs_path = os.path.abspath(options.output)
- if not os.path.exists(abs_path):
- os.mkdir(abs_path)
+ abs_path = os.path.abspath(options.output)
+ if not os.path.exists(abs_path):
+ os.mkdir(abs_path)
+ else:
+ abs_path = source_path.parent
- if not wantedname or custom_output_directory:
- if 'Ko' in options.profile and options.format == 'EPUB':
- if source_path.is_file():
- name = KOBO_TOUCH_DRIVER_REGEX.sub('_', source_path.stem) + tomenumber + ext
- else:
- name = KOBO_TOUCH_DRIVER_REGEX.sub('_', source_path.name) + tomenumber + ext
+ if options.title != 'defaulttitle':
+ name = options.title
+ else:
+ if source_path.is_file():
+ name = source_path.stem
else:
- if source_path.is_file():
- name = source_path.stem + tomenumber + ext
- else:
- name = source_path.name + tomenumber + ext
+ name = source_path.name
- if custom_output_directory:
- filename = os.path.join(os.path.abspath(options.output), name)
- else:
- filename = source_path.with_name(name)
+ if 'Ko' in options.profile and options.format == 'EPUB':
+ name = KOBO_TOUCH_DRIVER_REGEX.sub('_', name)
+
+ filename = os.path.join(abs_path, name + tomenumber + ext)
if os.path.exists(filename):
counter = 0