fix label feature on Windows (#1413)

This commit is contained in:
Alex Xu
2026-08-01 15:58:45 -07:00
committed by GitHub
parent ff80d275e6
commit 846a755761
4 changed files with 27 additions and 20 deletions
+6
View File
@@ -773,6 +773,12 @@ Keeping this file may crash some readers like the Kobo native CBZ reader.</strin
</item> </item>
<item row="0" column="1"> <item row="0" column="1">
<widget class="QPushButton" name="labelSpreadsButton"> <widget class="QPushButton" name="labelSpreadsButton">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="text"> <property name="text">
<string>Label Spreads</string> <string>Label Spreads</string>
</property> </property>
+8 -7
View File
@@ -730,13 +730,14 @@ class KCCGUI(KCC_ui.Ui_mainWindow):
dst.save(os.path.join(workdir, f'label-{i:04}.png')) dst.save(os.path.join(workdir, f'label-{i:04}.png'))
images.append(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) if images:
dlg.setWindowTitle(job) dlg = LabelSpreadsDialog(APP.primaryScreen().availableGeometry().height(), images, spreads)
if dlg.exec() == 1: dlg.setWindowTitle(job)
with open(job+'.json', "w") as fp: if dlg.exec() == 1:
# TODO: not very clean to grab index from filename with open(job+'.json', "w") as fp:
spreads = [int(filename[6:10]) for filename in spreads] # TODO: not very clean to grab index from filename
json.dump({'spreads': sorted(set(spreads))} , fp) spreads = [int(filename[6:10]) for filename in spreads]
json.dump({'spreads': sorted(set(spreads))} , fp)
rmtree(path, True) rmtree(path, True)
rmtree(workdir, True) rmtree(workdir, True)
+12 -13
View File
@@ -2,7 +2,7 @@ import os
from PySide6.QtCore import (Qt) from PySide6.QtCore import (Qt)
from PySide6.QtGui import (QKeyEvent, QPixmap) from PySide6.QtGui import (QKeyEvent, QPixmap)
from PySide6.QtWidgets import (QDialogButtonBox, QHBoxLayout, QLabel, QDialog) from PySide6.QtWidgets import (QHBoxLayout, QLabel, QDialog)
class LabelSpreadsDialog(QDialog): class LabelSpreadsDialog(QDialog):
def __init__(self, available_height, images, spreads): def __init__(self, available_height, images, spreads):
@@ -17,14 +17,6 @@ class LabelSpreadsDialog(QDialog):
# self.setMaximumSize(APP.primaryScreen().availableSize()) # self.setMaximumSize(APP.primaryScreen().availableSize())
self.available_height = available_height 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() layout = QHBoxLayout()
self.setLayout(layout) self.setLayout(layout)
@@ -37,14 +29,14 @@ class LabelSpreadsDialog(QDialog):
label2.setText("not a spread") label2.setText("not a spread")
help_text = [ help_text = [
"Press Yes to save labels to file.",
"Use arrows to change index.", "Use arrows to change index.",
"Use space bar to confirm spreads.", "Use space bar to confirm spreads.",
"Use spread shift option to offset by 1.", "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)) buttonLabel = QLabel('\n'.join(help_text))
layout.addWidget(buttonLabel) layout.addWidget(buttonLabel)
layout.addWidget(self.buttonBox)
# print(label.size()) # print(label.size())
# print(label.maximumSize()) # print(label.maximumSize())
# l, t, r, b = layout.getContentsMargins() # l, t, r, b = layout.getContentsMargins()
@@ -59,6 +51,7 @@ class LabelSpreadsDialog(QDialog):
# label2.setPixmap(pixmap2) # label2.setPixmap(pixmap2)
#label2.setScaledContents(True) #label2.setScaledContents(True)
#self.resize(pixmap2.width(), pixmap2.height()) #self.resize(pixmap2.width(), pixmap2.height())
def keyReleaseEvent(self, event): def keyReleaseEvent(self, event):
# t = 20 # t = 20
# b = 20 # b = 20
@@ -85,8 +78,14 @@ class LabelSpreadsDialog(QDialog):
# pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b) # pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b)
# self.label2.setPixmap(pixmap2) # self.label2.setPixmap(pixmap2)
elif event.key() == Qt.Key.Key_Space: elif event.key() == Qt.Key.Key_Space:
self.spreads.append(os.path.basename(self.images[self.index])) if self.label2.text() == "not a spread":
self.label2.setText('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: else:
super().keyReleaseEvent(event) super().keyReleaseEvent(event)
else: else:
+1
View File
@@ -390,6 +390,7 @@ class Ui_mainWindow(object):
self.labelSpreadsButton = QPushButton(self.toolWidget) self.labelSpreadsButton = QPushButton(self.toolWidget)
self.labelSpreadsButton.setObjectName(u"labelSpreadsButton") self.labelSpreadsButton.setObjectName(u"labelSpreadsButton")
self.labelSpreadsButton.setMinimumSize(QSize(0, 30))
self.gridLayout_6.addWidget(self.labelSpreadsButton, 0, 1, 1, 1) self.gridLayout_6.addWidget(self.labelSpreadsButton, 0, 1, 1, 1)