From 4614fdd07ae07e2abc6c6146ed15a896c5ed3419 Mon Sep 17 00:00:00 2001 From: kiryl Date: Tue, 7 Oct 2025 14:08:32 +0200 Subject: [PATCH] Add Title gui Allow to set custom title on mobi without editing metadata. --- gui/KCC.ui | 22 ++++++++++++++++++++++ kindlecomicconverter/KCC_gui.py | 12 ++++++++++++ kindlecomicconverter/KCC_ui.py | 15 ++++++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/gui/KCC.ui b/gui/KCC.ui index c95f3e9..a612533 100644 --- a/gui/KCC.ui +++ b/gui/KCC.ui @@ -516,6 +516,28 @@ + + + + 0 + 0 + + + + Qt::FocusPolicy::ClickFocus + + + <html><head/><body><p>Default Title</p></body></html> + + + Default Title + + + false + + + + diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py index a272244..0e8afaf 100644 --- a/kindlecomicconverter/KCC_gui.py +++ b/kindlecomicconverter/KCC_gui.py @@ -346,6 +346,8 @@ class WorkerThread(QThread): options.customheight = str(GUI.heightBox.value()) if GUI.targetDirectory != '': options.output = GUI.targetDirectory + if GUI.titleEdit.text(): + options.title = str(GUI.titleEdit.text()) if GUI.authorEdit.text(): options.author = str(GUI.authorEdit.text()) if GUI.chunkSizeCheckBox.isChecked(): @@ -745,6 +747,14 @@ class KCCGUI(KCC_ui.Ui_mainWindow): def togglechunkSizeCheckBox(self, value): GUI.chunkSizeWidget.setVisible(value) + def toggletitleEdit(self, value): + if value: + self.metadataTitleBox.setChecked(False) + + def togglemetadataTitleBox(self, value): + if value: + GUI.titleEdit.setText(None) + def changeGamma(self, value): valueRaw = int(5 * round(float(value) / 5)) value = '%.2f' % (float(valueRaw) / 100) @@ -1257,6 +1267,8 @@ class KCCGUI(KCC_ui.Ui_mainWindow): GUI.chunkSizeCheckBox.stateChanged.connect(self.togglechunkSizeCheckBox) GUI.deviceBox.activated.connect(self.changeDevice) GUI.formatBox.activated.connect(self.changeFormat) + GUI.titleEdit.textChanged.connect(self.toggletitleEdit) + GUI.metadataTitleBox.stateChanged.connect(self.togglemetadataTitleBox) MW.progressBarTick.connect(self.updateProgressbar) MW.modeConvert.connect(self.modeConvert) MW.addMessage.connect(self.addMessage) diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py index 26454a3..7db3e4f 100644 --- a/kindlecomicconverter/KCC_ui.py +++ b/kindlecomicconverter/KCC_ui.py @@ -289,7 +289,16 @@ class Ui_mainWindow(object): self.authorEdit.setFocusPolicy(Qt.FocusPolicy.ClickFocus) self.authorEdit.setClearButtonEnabled(False) - self.gridLayout_2.addWidget(self.authorEdit, 0, 0, 1, 1) + self.gridLayout_2.addWidget(self.authorEdit, 0, 1, 1, 1) + + self.titleEdit = QLineEdit(self.optionWidget) + self.titleEdit.setObjectName(u"titleEdit") + sizePolicy3.setHeightForWidth(self.titleEdit.sizePolicy().hasHeightForWidth()) + self.titleEdit.setSizePolicy(sizePolicy3) + self.titleEdit.setFocusPolicy(Qt.FocusPolicy.ClickFocus) + self.titleEdit.setClearButtonEnabled(False) + + self.gridLayout_2.addWidget(self.titleEdit, 0, 0, 1, 1) self.rotateFirstBox = QCheckBox(self.optionWidget) self.rotateFirstBox.setObjectName(u"rotateFirstBox") @@ -563,6 +572,10 @@ class Ui_mainWindow(object): self.authorEdit.setToolTip(QCoreApplication.translate("mainWindow", u"Default Author is KCC", None)) #endif // QT_CONFIG(tooltip) self.authorEdit.setPlaceholderText(QCoreApplication.translate("mainWindow", u"Default Author", None)) +#if QT_CONFIG(tooltip) + self.titleEdit.setToolTip(QCoreApplication.translate("mainWindow", u"Default Title is based on filename, directory name or metadata", None)) +#endif // QT_CONFIG(tooltip) + self.titleEdit.setPlaceholderText(QCoreApplication.translate("mainWindow", u"Default Title", None)) #if QT_CONFIG(tooltip) self.rotateFirstBox.setToolTip(QCoreApplication.translate("mainWindow", u"

When the spread splitter option is partially checked,

Unchecked - Rotate Last
Put the rotated 2 page spread after the split spreads.

Checked - Rotate First
Put the rotated 2 page spread before the split spreads.

", None)) #endif // QT_CONFIG(tooltip)