V3.4.0 — Panneau fusion, macros CLI, bouton config client Vision

- Panneau de fusion PDF avec dialog dedié :
  - Liste des fichiers avec drag & drop pour reordonner
  - Boutons Ajouter/Retirer/Monter/Descendre
  - Pre-rempli avec le fichier courant
- Support --macro en ligne de commande
- register_windows.bat : ajout dynamique des macros au menu contextuel
- Vision : bouton "Configurer le client" dans le modal licence
  (ouvre le gros modal client avec SFTP, fonctions, tunnel, etc.)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jules
2026-03-21 16:54:34 +01:00
parent 5e368ef260
commit e05f2e1fba
6 changed files with 153 additions and 20 deletions

View File

@@ -1108,25 +1108,29 @@ class MainWindow(QMainWindow):
QMessageBox.critical(self, "Erreur", str(e))
def _do_merge(self):
paths, _ = QFileDialog.getOpenFileNames(self, "Selectionner les PDF a fusionner", "", "PDF (*.pdf)")
if not paths or len(paths) < 2:
if paths and len(paths) == 1:
from app.dialogs.merge_dialog import MergeDialog
# Pre-remplir avec le fichier courant si ouvert
initial = [self._current_file] if self._current_file else []
dlg = MergeDialog(initial_files=initial, parent=self)
if dlg.exec():
files = dlg.get_files()
if len(files) < 2:
QMessageBox.information(self, "Fusion", "Selectionnez au moins 2 fichiers PDF.")
return
from pypdf import PdfWriter
self._show_progress()
try:
writer = PdfWriter()
for path in paths:
writer.append(path)
output = self._make_temp()
with open(output, "wb") as f:
writer.write(f)
self._show_result(output)
self._status_label.setText(f"Fusion de {len(paths)} fichiers terminee")
except Exception as e:
self._hide_progress()
QMessageBox.critical(self, "Erreur", str(e))
return
from pypdf import PdfWriter
self._show_progress()
try:
writer = PdfWriter()
for path in files:
writer.append(path)
output = self._make_temp()
with open(output, "wb") as f:
writer.write(f)
self._show_result(output)
self._status_label.setText(f"Fusion de {len(files)} fichiers terminee")
except Exception as e:
self._hide_progress()
QMessageBox.critical(self, "Erreur", str(e))
# ── A propos ──