""" Test visuel du LogsPanel - Démontre toutes les fonctionnalités """ import sys sys.path.insert(0, 'geniusia2') from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton, QHBoxLayout from PyQt5.QtCore import QTimer from gui.logs_panel import LogsPanel class TestWindow(QMainWindow): """Fenêtre de test pour le LogsPanel""" def __init__(self): super().__init__() self.setWindowTitle("Test LogsPanel - Amélioration GUI et Logs") self.setGeometry(100, 100, 500, 600) # Widget central central_widget = QWidget() self.setCentralWidget(central_widget) # Layout principal main_layout = QVBoxLayout() central_widget.setLayout(main_layout) # Créer le panneau de logs self.logs_panel = LogsPanel() main_layout.addWidget(self.logs_panel) # Boutons de test button_layout = QHBoxLayout() add_log_btn = QPushButton("Ajouter Log Info") add_log_btn.clicked.connect(lambda: self.logs_panel.add_log( "J'observe vos actions dans Calculator", "👀", "info" )) button_layout.addWidget(add_log_btn) add_success_btn = QPushButton("Ajouter Success") add_success_btn.clicked.connect(lambda: self.logs_panel.add_log( "Pattern détecté: Calculer 9/9", "🎯", "success" )) button_layout.addWidget(add_success_btn) add_warning_btn = QPushButton("Ajouter Warning") add_warning_btn.clicked.connect(lambda: self.logs_panel.add_log( "Application non autorisée", "⚠️", "warning" )) button_layout.addWidget(add_warning_btn) add_error_btn = QPushButton("Ajouter Error") add_error_btn.clicked.connect(lambda: self.logs_panel.add_log( "Impossible de se connecter", "❌", "error" )) button_layout.addWidget(add_error_btn) main_layout.addLayout(button_layout) # Boutons de contrôle control_layout = QHBoxLayout() add_many_btn = QPushButton("Ajouter 35 Logs (Test limite 30)") add_many_btn.clicked.connect(self.add_many_logs) control_layout.addWidget(add_many_btn) clear_btn = QPushButton("Effacer Tous") clear_btn.clicked.connect(self.logs_panel.clear) control_layout.addWidget(clear_btn) main_layout.addLayout(control_layout) # Ajouter quelques logs initiaux self.add_initial_logs() def add_initial_logs(self): """Ajoute quelques logs initiaux pour démonstration""" self.logs_panel.add_log("Système démarré en mode Shadow", "👀", "info") self.logs_panel.add_log("J'observe vos actions dans Calculator", "👀", "info") self.logs_panel.add_log("Tiens ! Vous avez fait 3 fois la même chose", "🎯", "success") self.logs_panel.add_log("J'apprends: Calculer 9/9 (5 observations)", "📚", "info") self.logs_panel.add_log("Mode Suggestions activé", "✅", "success") def add_many_logs(self): """Ajoute beaucoup de logs pour tester la limite de 30""" for i in range(35): self.logs_panel.add_log(f"Message de test #{i+1}", "📝", "info") # Vérifier le nombre de logs count = self.logs_panel.get_log_count() print(f"Nombre de logs après ajout de 35: {count}") print(f"✓ Limite de 30 respectée: {count == 30}") if __name__ == "__main__": app = QApplication(sys.argv) window = TestWindow() window.show() print("="*60) print("Test Visuel du LogsPanel") print("="*60) print("\nFonctionnalités à tester:") print("1. Ajout de logs avec différents niveaux (info, success, warning, error)") print("2. Scroll automatique quand on est en bas") print("3. Pas de scroll automatique si on scrolle manuellement vers le haut") print("4. Limite de 30 messages (les plus anciens sont supprimés)") print("5. Effacement de tous les logs") print("\nUtilisez les boutons pour tester les fonctionnalités!") print("="*60) sys.exit(app.exec_())