V3.1.0 — Selection multiple, impression, MAJ dans Aide, menu contextuel

- Selection multiple dans les vignettes (Ctrl+clic, Maj+clic)
- Rotation/suppression sur selection multiple
- Impression : os.startfile(print) avec fallback
- MAJ deplacee dans Aide > Rechercher une mise a jour (plus au demarrage)
- Support arguments CLI : ouvrir un PDF en argument, fusionner si plusieurs
- register_windows.bat : association fichier PDF + menu contextuel Windows
  - Clic droit > CopyDev Impose > Ouvrir / Livret A4 / Livret A3
- Presets manager (base pour macros)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jules
2026-03-21 16:15:25 +01:00
parent 673d76caa2
commit 1d48e103e3
7 changed files with 223 additions and 38 deletions

40
main.py
View File

@@ -201,30 +201,30 @@ def main():
splash.show()
QApplication.processEvents()
splash.set_status("Recherche de mises a jour...")
# Verification de mise a jour silencieuse
from app.updater import check_for_update, VERSION
update_available, remote_version = check_for_update()
if update_available:
reply = QMessageBox.question(
None, "Mise a jour disponible",
f"Une nouvelle version est disponible : {remote_version}\n"
f"(version actuelle : {VERSION})\n\n"
"Voulez-vous mettre a jour maintenant ?",
QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
)
if reply == QMessageBox.StandardButton.Yes:
from app.updater import do_update
success, msg = do_update()
if success:
QMessageBox.information(None, "Mise a jour", f"{msg}\n\nL'application va redemarrer.")
os.execv(sys.executable, [sys.executable] + sys.argv)
else:
QMessageBox.warning(None, "Mise a jour", f"Echec de la mise a jour :\n{msg}")
# Plus de verification de MAJ au demarrage — c'est dans Aide > Rechercher une MAJ
splash.set_status("Chargement de l'interface...")
from app.main_window import MainWindow
window = MainWindow()
# Ouvrir les fichiers passes en argument
files_to_open = [a for a in sys.argv[1:] if a.lower().endswith('.pdf') and os.path.exists(a)]
if len(files_to_open) == 1:
window._open_pdf(files_to_open[0])
elif len(files_to_open) > 1:
# Plusieurs fichiers = fusionner
from pypdf import PdfWriter
import tempfile
writer = PdfWriter()
for f in files_to_open:
writer.append(f)
fd, merged = tempfile.mkstemp(suffix=".pdf")
os.close(fd)
with open(merged, "wb") as out:
writer.write(out)
window._open_pdf(merged)
window._status_label.setText(f"{len(files_to_open)} fichiers fusionnes")
window.show()
splash.close()
sys.exit(app.exec())