114 lines
4.2 KiB
Python
114 lines
4.2 KiB
Python
"""
|
|
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_())
|