Initial commit — Copydev Imposing Tool
Outil d'imposition PDF desktop (PyQt6) remplacant Quite Imposing Plus. 9 fonctions : livret, n-up, step & repeat, imposition manuelle, jointure pages, pages blanches, numerotation, masquage, fonds perdus. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
82
app/dialogs/insert_blank_dialog.py
Normal file
82
app/dialogs/insert_blank_dialog.py
Normal file
@@ -0,0 +1,82 @@
|
||||
"""Dialogue Inserer des pages blanches."""
|
||||
|
||||
from PyQt6.QtWidgets import (QDialog, QVBoxLayout, QHBoxLayout, QLabel,
|
||||
QGroupBox, QRadioButton, QSpinBox,
|
||||
QDialogButtonBox)
|
||||
|
||||
|
||||
class InsertBlankDialog(QDialog):
|
||||
def __init__(self, total_pages=1, parent=None):
|
||||
super().__init__(parent)
|
||||
self.setWindowTitle("Inserer des pages blanches")
|
||||
self.setMinimumWidth(400)
|
||||
self._total_pages = total_pages
|
||||
self._setup_ui()
|
||||
|
||||
def _setup_ui(self):
|
||||
layout = QVBoxLayout(self)
|
||||
|
||||
grp = QGroupBox("Mode d'insertion")
|
||||
gl = QVBoxLayout(grp)
|
||||
|
||||
self.rb_after = QRadioButton("Apres la page :")
|
||||
self.rb_after.setChecked(True)
|
||||
after_layout = QHBoxLayout()
|
||||
after_layout.addWidget(self.rb_after)
|
||||
self.spin_pos = QSpinBox()
|
||||
self.spin_pos.setRange(1, self._total_pages)
|
||||
self.spin_pos.setValue(1)
|
||||
after_layout.addWidget(self.spin_pos)
|
||||
after_layout.addStretch()
|
||||
gl.addLayout(after_layout)
|
||||
|
||||
self.rb_before = QRadioButton("Avant la page selectionnee")
|
||||
gl.addWidget(self.rb_before)
|
||||
|
||||
every_layout = QHBoxLayout()
|
||||
self.rb_every = QRadioButton("Toutes les")
|
||||
every_layout.addWidget(self.rb_every)
|
||||
self.spin_every = QSpinBox()
|
||||
self.spin_every.setRange(1, 100)
|
||||
self.spin_every.setValue(2)
|
||||
self.spin_every.setEnabled(False)
|
||||
every_layout.addWidget(self.spin_every)
|
||||
every_layout.addWidget(QLabel("pages"))
|
||||
every_layout.addStretch()
|
||||
gl.addLayout(every_layout)
|
||||
|
||||
pad_layout = QHBoxLayout()
|
||||
self.rb_pad = QRadioButton("Completer au multiple de")
|
||||
pad_layout.addWidget(self.rb_pad)
|
||||
self.spin_multiple = QSpinBox()
|
||||
self.spin_multiple.setRange(2, 32)
|
||||
self.spin_multiple.setValue(4)
|
||||
self.spin_multiple.setEnabled(False)
|
||||
pad_layout.addWidget(self.spin_multiple)
|
||||
pad_layout.addWidget(QLabel("pages"))
|
||||
pad_layout.addStretch()
|
||||
gl.addLayout(pad_layout)
|
||||
|
||||
layout.addWidget(grp)
|
||||
|
||||
# Activer/desactiver les spinbox
|
||||
self.rb_every.toggled.connect(self.spin_every.setEnabled)
|
||||
self.rb_pad.toggled.connect(self.spin_multiple.setEnabled)
|
||||
|
||||
# Boutons
|
||||
buttons = QDialogButtonBox(
|
||||
QDialogButtonBox.StandardButton.Ok | QDialogButtonBox.StandardButton.Cancel
|
||||
)
|
||||
buttons.accepted.connect(self.accept)
|
||||
buttons.rejected.connect(self.reject)
|
||||
layout.addWidget(buttons)
|
||||
|
||||
def get_settings(self):
|
||||
if self.rb_after.isChecked():
|
||||
return {"mode": "after", "position": self.spin_pos.value()}
|
||||
elif self.rb_before.isChecked():
|
||||
return {"mode": "before", "position": self.spin_pos.value()}
|
||||
elif self.rb_every.isChecked():
|
||||
return {"mode": "every_n", "every_n": self.spin_every.value()}
|
||||
else:
|
||||
return {"mode": "pad_to_multiple", "target_multiple": self.spin_multiple.value()}
|
||||
Reference in New Issue
Block a user