From 846a755761c96c38666600950bbb7913eecbd529 Mon Sep 17 00:00:00 2001 From: Alex Xu Date: Sat, 1 Aug 2026 15:58:45 -0700 Subject: [PATCH] fix label feature on Windows (#1413) --- gui/KCC.ui | 6 ++++++ kindlecomicconverter/KCC_gui.py | 15 +++++++------- kindlecomicconverter/KCC_spread_label.py | 25 ++++++++++++------------ kindlecomicconverter/KCC_ui.py | 1 + 4 files changed, 27 insertions(+), 20 deletions(-) diff --git a/gui/KCC.ui b/gui/KCC.ui index e0b09530..acfe7a60 100644 --- a/gui/KCC.ui +++ b/gui/KCC.ui @@ -773,6 +773,12 @@ Keeping this file may crash some readers like the Kobo native CBZ reader. + + + 0 + 30 + + Label Spreads diff --git a/kindlecomicconverter/KCC_gui.py b/kindlecomicconverter/KCC_gui.py index a0381eb5..d9dff252 100644 --- a/kindlecomicconverter/KCC_gui.py +++ b/kindlecomicconverter/KCC_gui.py @@ -730,13 +730,14 @@ class KCCGUI(KCC_ui.Ui_mainWindow): dst.save(os.path.join(workdir, f'label-{i:04}.png')) images.append(os.path.join(workdir, f'label-{i:04}.png')) - dlg = LabelSpreadsDialog(APP.primaryScreen().availableGeometry().height(), images, spreads) - dlg.setWindowTitle(job) - if dlg.exec() == 1: - with open(job+'.json', "w") as fp: - # TODO: not very clean to grab index from filename - spreads = [int(filename[6:10]) for filename in spreads] - json.dump({'spreads': sorted(set(spreads))} , fp) + if images: + dlg = LabelSpreadsDialog(APP.primaryScreen().availableGeometry().height(), images, spreads) + dlg.setWindowTitle(job) + if dlg.exec() == 1: + with open(job+'.json', "w") as fp: + # TODO: not very clean to grab index from filename + spreads = [int(filename[6:10]) for filename in spreads] + json.dump({'spreads': sorted(set(spreads))} , fp) rmtree(path, True) rmtree(workdir, True) diff --git a/kindlecomicconverter/KCC_spread_label.py b/kindlecomicconverter/KCC_spread_label.py index 4e393b9e..5d1ce8e3 100644 --- a/kindlecomicconverter/KCC_spread_label.py +++ b/kindlecomicconverter/KCC_spread_label.py @@ -2,7 +2,7 @@ import os from PySide6.QtCore import (Qt) from PySide6.QtGui import (QKeyEvent, QPixmap) -from PySide6.QtWidgets import (QDialogButtonBox, QHBoxLayout, QLabel, QDialog) +from PySide6.QtWidgets import (QHBoxLayout, QLabel, QDialog) class LabelSpreadsDialog(QDialog): def __init__(self, available_height, images, spreads): @@ -17,14 +17,6 @@ class LabelSpreadsDialog(QDialog): # self.setMaximumSize(APP.primaryScreen().availableSize()) self.available_height = available_height - QBtn = ( - QDialogButtonBox.Yes | QDialogButtonBox.No - ) - - self.buttonBox = QDialogButtonBox(QBtn) - self.buttonBox.accepted.connect(self.accept) - self.buttonBox.rejected.connect(self.reject) - layout = QHBoxLayout() self.setLayout(layout) @@ -37,14 +29,14 @@ class LabelSpreadsDialog(QDialog): label2.setText("not a spread") help_text = [ - "Press Yes to save labels to file.", "Use arrows to change index.", "Use space bar to confirm spreads.", "Use spread shift option to offset by 1.", + "Use enter key to confirm all spreads." + "Close window to cancel." ] buttonLabel = QLabel('\n'.join(help_text)) layout.addWidget(buttonLabel) - layout.addWidget(self.buttonBox) # print(label.size()) # print(label.maximumSize()) # l, t, r, b = layout.getContentsMargins() @@ -59,6 +51,7 @@ class LabelSpreadsDialog(QDialog): # label2.setPixmap(pixmap2) #label2.setScaledContents(True) #self.resize(pixmap2.width(), pixmap2.height()) + def keyReleaseEvent(self, event): # t = 20 # b = 20 @@ -85,8 +78,14 @@ class LabelSpreadsDialog(QDialog): # pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b) # self.label2.setPixmap(pixmap2) elif event.key() == Qt.Key.Key_Space: - self.spreads.append(os.path.basename(self.images[self.index])) - self.label2.setText('spread') + if self.label2.text() == "not a spread": + self.spreads.append(os.path.basename(self.images[self.index])) + self.label2.setText('spread') + else: + self.spreads.remove(os.path.basename(self.images[self.index])) + self.label2.setText('not a spread') + elif event.key() == Qt.Key.Key_Return or event.key() == Qt.Key.Key_Enter: + self.accept() else: super().keyReleaseEvent(event) else: diff --git a/kindlecomicconverter/KCC_ui.py b/kindlecomicconverter/KCC_ui.py index b47fa0da..9c777dac 100644 --- a/kindlecomicconverter/KCC_ui.py +++ b/kindlecomicconverter/KCC_ui.py @@ -390,6 +390,7 @@ class Ui_mainWindow(object): self.labelSpreadsButton = QPushButton(self.toolWidget) self.labelSpreadsButton.setObjectName(u"labelSpreadsButton") + self.labelSpreadsButton.setMinimumSize(QSize(0, 30)) self.gridLayout_6.addWidget(self.labelSpreadsButton, 0, 1, 1, 1)