Branding CopyDev complet — splash screen, A propos, statusbar
- Splash screen au demarrage (fond sombre, logo CopyDev, nom, coordonnees) - Statut dans le splash : licence, mise a jour, chargement - A propos refait : design sombre pro, logo 150px, version, description, coordonnees completes (email, web, tel), copyright - Barre de titre : "CopyDev Imposing Tool vX.X.X — www.copydev.fr" - Barre de statut : mention "CopyDev — contact@copydev.fr" permanente Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -34,7 +34,8 @@ from app.engine.bleeds import define_bleeds
|
||||
class MainWindow(QMainWindow):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.setWindowTitle("Copydev Imposing Tool")
|
||||
from app.updater import VERSION
|
||||
self.setWindowTitle(f"CopyDev Imposing Tool v{VERSION} — www.copydev.fr")
|
||||
self.setMinimumSize(1000, 700)
|
||||
|
||||
# Icone de la fenetre
|
||||
@@ -170,6 +171,9 @@ class MainWindow(QMainWindow):
|
||||
self._statusbar.addWidget(self._status_label, 1)
|
||||
self._file_label = QLabel("")
|
||||
self._statusbar.addPermanentWidget(self._file_label)
|
||||
brand = QLabel(" CopyDev — contact@copydev.fr ")
|
||||
brand.setStyleSheet("color: #64748b; font-size: 10px;")
|
||||
self._statusbar.addPermanentWidget(brand)
|
||||
|
||||
def _on_page_changed(self, page, total):
|
||||
pass
|
||||
@@ -339,14 +343,16 @@ class MainWindow(QMainWindow):
|
||||
QMessageBox.critical(self, "Erreur", str(e))
|
||||
|
||||
def _show_about(self):
|
||||
from PyQt6.QtWidgets import QDialog, QVBoxLayout, QHBoxLayout, QLabel, QDialogButtonBox
|
||||
from PyQt6.QtGui import QPixmap
|
||||
from PyQt6.QtWidgets import QDialog, QVBoxLayout, QLabel, QDialogButtonBox
|
||||
from PyQt6.QtGui import QPixmap, QFont
|
||||
from PyQt6.QtCore import Qt
|
||||
|
||||
dlg = QDialog(self)
|
||||
dlg.setWindowTitle("A propos")
|
||||
dlg.setFixedSize(480, 380)
|
||||
dlg.setWindowTitle("A propos — CopyDev Imposing Tool")
|
||||
dlg.setFixedSize(520, 520)
|
||||
dlg.setStyleSheet("QDialog { background-color: #0f172a; }")
|
||||
layout = QVBoxLayout(dlg)
|
||||
layout.setContentsMargins(40, 30, 40, 25)
|
||||
|
||||
# Logo
|
||||
logo_label = QLabel()
|
||||
@@ -354,60 +360,82 @@ class MainWindow(QMainWindow):
|
||||
_base = _sys._MEIPASS if getattr(_sys, 'frozen', False) else os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
logo_path = os.path.join(_base, "resources", "logo.png")
|
||||
if os.path.exists(logo_path):
|
||||
pixmap = QPixmap(logo_path).scaled(120, 120, Qt.AspectRatioMode.KeepAspectRatio,
|
||||
pixmap = QPixmap(logo_path).scaled(150, 150, Qt.AspectRatioMode.KeepAspectRatio,
|
||||
Qt.TransformationMode.SmoothTransformation)
|
||||
logo_label.setPixmap(pixmap)
|
||||
logo_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
layout.addWidget(logo_label)
|
||||
|
||||
layout.addSpacing(10)
|
||||
|
||||
# Titre
|
||||
title = QLabel("<h2>Copydev Imposing Tool</h2>")
|
||||
title = QLabel("COPYDEV IMPOSING TOOL")
|
||||
title.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
title.setFont(QFont("Segoe UI", 20, QFont.Weight.Bold))
|
||||
title.setStyleSheet("color: white;")
|
||||
layout.addWidget(title)
|
||||
|
||||
# Version
|
||||
version = QLabel("Version 1.0.0")
|
||||
from app.updater import VERSION
|
||||
version = QLabel(f"Version {VERSION}")
|
||||
version.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
version.setStyleSheet("color: #666;")
|
||||
version.setFont(QFont("Segoe UI", 10))
|
||||
version.setStyleSheet("color: #64748b;")
|
||||
layout.addWidget(version)
|
||||
|
||||
layout.addSpacing(10)
|
||||
layout.addSpacing(15)
|
||||
|
||||
# Description
|
||||
desc = QLabel(
|
||||
"Outil professionnel d'imposition PDF.\n"
|
||||
"Creation de livrets, n-up, repetition, imposition manuelle,\n"
|
||||
"Outil professionnel d'imposition PDF\n"
|
||||
"Livrets, n-up, repetition, imposition manuelle,\n"
|
||||
"numerotation, masquage et fonds perdus."
|
||||
)
|
||||
desc.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
desc.setFont(QFont("Segoe UI", 10))
|
||||
desc.setStyleSheet("color: #94a3b8;")
|
||||
desc.setWordWrap(True)
|
||||
layout.addWidget(desc)
|
||||
|
||||
layout.addSpacing(20)
|
||||
|
||||
# Separateur
|
||||
sep = QLabel()
|
||||
sep.setFixedHeight(1)
|
||||
sep.setStyleSheet("background-color: #1e293b;")
|
||||
layout.addWidget(sep)
|
||||
|
||||
layout.addSpacing(15)
|
||||
|
||||
# Coordonnees
|
||||
contact = QLabel(
|
||||
'<p style="text-align:center;">'
|
||||
'<b>CopyDev</b><br>'
|
||||
'Jules Dubois<br>'
|
||||
'<a href="mailto:contact@copydev.fr">contact@copydev.fr</a><br>'
|
||||
'<a href="https://copydev.fr">www.copydev.fr</a>'
|
||||
'<p style="text-align:center; line-height: 1.6;">'
|
||||
'<span style="font-size:14px; font-weight:bold; color:white;">CopyDev</span><br>'
|
||||
'<span style="color:#94a3b8;">Jules Dubois — Developpeur logiciel</span><br><br>'
|
||||
'<span style="color:#94a3b8;">Email : </span>'
|
||||
'<a href="mailto:contact@copydev.fr" style="color:#38bdf8;">contact@copydev.fr</a><br>'
|
||||
'<span style="color:#94a3b8;">Web : </span>'
|
||||
'<a href="https://copydev.fr" style="color:#38bdf8;">www.copydev.fr</a><br>'
|
||||
'<span style="color:#94a3b8;">Tel : </span>'
|
||||
'<span style="color:#e2e8f0;">06 52 07 92 35</span>'
|
||||
'</p>'
|
||||
)
|
||||
contact.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
contact.setOpenExternalLinks(True)
|
||||
layout.addWidget(contact)
|
||||
|
||||
layout.addSpacing(5)
|
||||
layout.addStretch()
|
||||
|
||||
# Copyright
|
||||
copy_label = QLabel("© 2026 CopyDev — Tous droits reserves")
|
||||
copy_label = QLabel("2026 CopyDev — Tous droits reserves\nLogiciel sous licence — Reproduction interdite")
|
||||
copy_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||
copy_label.setStyleSheet("color: #999; font-size: 11px;")
|
||||
copy_label.setFont(QFont("Segoe UI", 8))
|
||||
copy_label.setStyleSheet("color: #334155;")
|
||||
layout.addWidget(copy_label)
|
||||
|
||||
# Bouton Fermer
|
||||
buttons = QDialogButtonBox(QDialogButtonBox.StandardButton.Close)
|
||||
buttons.setStyleSheet("QPushButton { background: #1e293b; color: white; border: 1px solid #334155; padding: 6px 20px; border-radius: 4px; } QPushButton:hover { background: #334155; }")
|
||||
buttons.rejected.connect(dlg.close)
|
||||
layout.addWidget(buttons)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user