mirror of
https://github.com/ciromattia/kcc
synced 2026-08-26 21:47:05 +00:00
92 lines
3.9 KiB
Python
92 lines
3.9 KiB
Python
import os
|
|
|
|
from PySide6.QtCore import (Qt)
|
|
from PySide6.QtGui import (QKeyEvent, QPixmap)
|
|
from PySide6.QtWidgets import (QHBoxLayout, QLabel, QDialog)
|
|
|
|
class LabelSpreadsDialog(QDialog):
|
|
def __init__(self, available_height, images, spreads):
|
|
super().__init__()
|
|
self.index = 0
|
|
self.images = images
|
|
self.spreads = spreads
|
|
self.index2page = {i: os.path.basename(image) for i, image in enumerate(images)}
|
|
|
|
self.setWindowTitle("TODO: Filename goes here")
|
|
# self.setGeometry(APP.primaryScreen().availableGeometry())
|
|
# self.setMaximumSize(APP.primaryScreen().availableSize())
|
|
self.available_height = available_height
|
|
|
|
layout = QHBoxLayout()
|
|
self.setLayout(layout)
|
|
|
|
label = QLabel()
|
|
label2 = QLabel()
|
|
self.label = label
|
|
self.label2 = label2
|
|
layout.addWidget(label)
|
|
layout.addWidget(label2)
|
|
label2.setText("not a spread")
|
|
|
|
help_text = [
|
|
"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)
|
|
# print(label.size())
|
|
# print(label.maximumSize())
|
|
# l, t, r, b = layout.getContentsMargins()
|
|
|
|
#label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
|
pixmap = QPixmap(images[0]).scaledToHeight(self.available_height * 0.9)
|
|
label.setPixmap(pixmap)
|
|
#label.setScaledContents(True)
|
|
|
|
#label2.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)
|
|
# pixmap2 = QPixmap(images[0]).scaledToHeight(self.frameGeometry().height() - t - b - t - b)
|
|
# label2.setPixmap(pixmap2)
|
|
#label2.setScaledContents(True)
|
|
#self.resize(pixmap2.width(), pixmap2.height())
|
|
|
|
def keyReleaseEvent(self, event):
|
|
# t = 20
|
|
# b = 20
|
|
if isinstance(event, QKeyEvent):
|
|
if event.key() == Qt.Key.Key_Left:
|
|
self.index = max(0, self.index - 1)
|
|
if self.index2page[self.index] in self.spreads:
|
|
self.label2.setText('spread')
|
|
else:
|
|
self.label2.setText('not a spread')
|
|
pixmap = QPixmap(self.images[self.index]).scaledToHeight(self.available_height * 0.9)
|
|
self.label.setPixmap(pixmap)
|
|
# pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b)
|
|
# self.label2.setPixmap(pixmap2)
|
|
elif event.key() == Qt.Key.Key_Right:
|
|
self.index = min(self.index + 1, len(self.images) - 1)
|
|
if self.index2page[self.index] in self.spreads:
|
|
self.label2.setText('spread')
|
|
else:
|
|
self.label2.setText('not a spread')
|
|
|
|
pixmap = QPixmap(self.images[self.index]).scaledToHeight(self.available_height * 0.9)
|
|
self.label.setPixmap(pixmap)
|
|
# pixmap2 = QPixmap(images[self.index]).scaledToHeight(self.frameGeometry().height() - t - b - t - b)
|
|
# self.label2.setPixmap(pixmap2)
|
|
elif event.key() == Qt.Key.Key_Space:
|
|
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:
|
|
super().keyReleaseEvent(event) |