""" Test de l'ImprovedGUI - Interface améliorée avec LogsPanel """ import sys sys.path.insert(0, 'geniusia2') from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import QTimer from gui import ImprovedGUI def main(): """Test de l'ImprovedGUI avec simulation d'événements""" app = QApplication(sys.argv) print("=" * 60) print("Test de l'ImprovedGUI") print("=" * 60) # Créer la GUI gui = ImprovedGUI() gui.show() print("\n✓ GUI créée et affichée") print(f" Taille: {gui.width()}x{gui.height()}px") print(f" Mode initial: {gui.state.mode}") print(f" Statut: {'En cours' if gui.state.is_running else 'Arrêté'}") # Fonction pour simuler des événements def simulate_workflow(): print("\n📝 Simulation d'un workflow complet...") # 1. Démarrage du système print(" 1. Démarrage du système") gui.signals.emit_status_change(True) gui.signals.emit_log("👀", "Système démarré en mode Observation", "info") # 2. Observation d'actions QTimer.singleShot(1000, lambda: [ print(" 2. Observation d'actions"), gui.signals.emit_log("👀", "J'observe vos actions dans Calculator", "info"), gui.signals.emit_stats_update({ 'actions_count': 3, 'patterns_count': 0, 'workflows_count': 0 }) ]) # 3. Détection de pattern QTimer.singleShot(2000, lambda: [ print(" 3. Détection de pattern"), gui.signals.emit_log("🎯", "Tiens ! Vous avez fait 3 fois la même chose", "success"), gui.signals.emit_stats_update({ 'actions_count': 9, 'patterns_count': 1, 'workflows_count': 0 }) ]) # 4. Apprentissage de workflow QTimer.singleShot(3000, lambda: [ print(" 4. Apprentissage de workflow"), gui.signals.emit_log("📚", "J'apprends: Calculer 9/9 (5 observations)", "info"), gui.signals.emit_stats_update({ 'actions_count': 12, 'patterns_count': 2, 'workflows_count': 1 }) ]) # 5. Changement de mode QTimer.singleShot(4000, lambda: [ print(" 5. Changement de mode vers Suggestions"), gui.signals.emit_mode_change("assist"), gui.signals.emit_log("✅", "Mode Suggestions activé", "success") ]) # 6. Collecte d'exemples pour fine-tuning QTimer.singleShot(5000, lambda: [ print(" 6. Collecte d'exemples pour fine-tuning"), gui.signals.emit_log("🧠", "Collecte d'exemples: 8/10", "info"), gui.signals.emit_stats_update({ 'actions_count': 15, 'patterns_count': 2, 'workflows_count': 1, 'finetuning_status': 'collecting', 'finetuning_progress': 8 }) ]) # 7. Fine-tuning en cours QTimer.singleShot(6000, lambda: [ print(" 7. Fine-tuning en cours"), gui.signals.emit_log("🧠", "Amélioration du modèle (10 exemples)...", "info"), gui.signals.emit_stats_update({ 'actions_count': 17, 'patterns_count': 2, 'workflows_count': 1, 'finetuning_status': 'training', 'finetuning_progress': None }) ]) # 8. Fine-tuning terminé QTimer.singleShot(7000, lambda: [ print(" 8. Fine-tuning terminé"), gui.signals.emit_log("✅", "Modèle amélioré (en 2.3s)", "success"), gui.signals.emit_stats_update({ 'actions_count': 17, 'patterns_count': 2, 'workflows_count': 1, 'finetuning_status': 'completed', 'finetuning_progress': None }) ]) # 9. Suggestion prête QTimer.singleShot(8000, lambda: [ print(" 9. Suggestion prête"), gui.signals.emit_log("💡", "Prêt à suggérer: Calculer 9/9", "info") ]) # 10. Test d'erreur QTimer.singleShot(9000, lambda: [ print(" 10. Test d'erreur"), gui.signals.emit_log("⚠️", "Application non autorisée - Terminal", "warning") ]) # 11. Test d'erreur critique QTimer.singleShot(10000, lambda: [ print(" 11. Test d'erreur critique"), gui.signals.emit_log("❌", "Impossible de se connecter - Calculator", "error") ]) # 12. Changement vers mode Copilote QTimer.singleShot(11000, lambda: [ print(" 12. Changement vers mode Copilote"), gui.signals.emit_mode_change("copilot"), gui.signals.emit_log("✅", "Mode Copilote activé", "success") ]) # 13. Changement vers mode Autonome QTimer.singleShot(12000, lambda: [ print(" 13. Changement vers mode Autonome"), gui.signals.emit_mode_change("auto"), gui.signals.emit_log("✅", "Mode Autonome activé", "success") ]) # 14. Test de la limite de 30 logs QTimer.singleShot(13000, lambda: [ print(" 14. Test de la limite de 30 logs (ajout de 25 logs)"), *[gui.signals.emit_log("📝", f"Message de test #{i+1}", "info") for i in range(25)] ]) # 15. Vérification finale QTimer.singleShot(14000, lambda: [ print("\n✅ Simulation terminée!"), print(f"\nStatistiques finales:"), print(f" Actions: {gui.state.actions_count}"), print(f" Patterns: {gui.state.patterns_count}"), print(f" Workflows: {gui.state.workflows_count}"), print(f" Logs affichés: {gui.logs_panel.get_log_count()}"), print(f"\n💡 Testez maintenant:"), print(f" - Scroll dans les logs"), print(f" - Boutons Pause/Arrêter"), print(f" - Icône system tray (clic droit)"), print(f" - Minimisation vers le tray"), print(f"\nFermez la fenêtre pour quitter.") ]) # Démarrer la simulation après 500ms QTimer.singleShot(500, simulate_workflow) sys.exit(app.exec_()) if __name__ == "__main__": main()