# Mejoras Implementadas en Calculadora MAV PySide6 ## Problemas Solucionados ### 1. ✅ Comentarios en Panel de Resultados - **Problema**: Los comentarios no se copiaban al panel de resultados - **Solución**: - Modificada función `_evaluate_lines()` para detectar comentarios con `#` - Agregado formato especial para comentarios en `setup_output_tags()` - Los comentarios ahora aparecen en verde cursiva en el panel de resultados - Correspondencia 1:1 mantenida entre entrada y salida ### 2. ✅ Comentarios en Panel MathJax - **Problema**: Los comentarios no se mostraban correctamente en el panel LaTeX - **Solución**: - Mejorado el JavaScript del panel MathJax para manejar comentarios - Los comentarios se muestran con formato especial (sin LaTeX) - Agregada función `preprocessLatex()` para mejor procesamiento ### 3. ✅ Filtrado de Contenido en Panel MathJax - **Problema**: Se mostraba todo en el panel LaTeX - **Solución**: - Mejorada función `_add_to_latex_panel_if_applicable()` con reglas claras: - **Comentarios**: Siempre se agregan - **Asignaciones**: Variables = expresiones simbólicas - **Ecuaciones**: Expresiones con símbolos matemáticos - **Exclusiones**: Resultados numéricos simples sin contenido simbólico ### 4. ✅ Persistencia de Dimensiones - **Problema**: Las dimensiones no se guardaban entre sesiones - **Solución**: - Agregada función `save_settings()` mejorada que guarda: - Posición de ventana (x, y) - Tamaño de ventana (width, height) - Tamaños de cada panel del splitter - Estado visible/oculto del panel LaTeX - Agregada función `restore_geometry()` para cargar configuración - Archivos de configuración separados: `hybrid_calc_settings_pyside6.json` ### 5. ✅ Parsing LaTeX Mejorado - **Problema**: Errores con divisiones y funciones como sqrt - **Solución**: - Mejorado HTML base con macros LaTeX para funciones comunes - Agregada función `preprocessLatex()` en JavaScript: - Convierte `/` a `\frac{}{}` - Convierte `sqrt()` a `\sqrt{}` - Maneja funciones trigonométricas - Mejorada función `_sympy_to_latex()` con fallbacks - Mejor manejo de errores de MathJax con fallback a texto plano ### 6. ✅ Cierre de Popups con Enter - **Problema**: Los popups de autocompletado no se cerraban con Enter - **Solución**: - Modificada función `_handle_key_press()` para detectar Enter/Return - Los popups se cierran automáticamente al presionar Enter - Mantiene funcionalidad normal de nueva línea ## Nuevas Características ### 📐 Panel MathJax Rediseñado - Diseño moderno con gradientes y sombras - Scrollbar personalizado - Mejor tipografía y espaciado - Animaciones suaves de hover - Indicadores de tipo por colores ### 💾 Configuración Persistente - Geometría de ventana completamente persistente - Tamaños de paneles individuales guardados - Configuración en archivo JSON separado - Carga automática al iniciar ### 🎨 Resaltado de Sintaxis Mejorado - Colores optimizados para tema oscuro - Comentarios en verde cursiva - Números, funciones y operadores diferenciados ## Estructura de Archivos ``` Calcv2/ ├── main_calc_app_pyside6.py # Aplicación principal PySide6 ├── hybrid_calc_settings_pyside6.json # Configuración persistente ├── hybrid_calc_history_pyside6.txt # Historial de sesión └── README_MEJORAS_PYSIDE6.md # Este archivo ``` ## Cómo Probar las Mejoras ### 1. Comentarios ```python # Este es un comentario que aparece en ambos paneles x = 2 + 3 # Comentario al final de línea # Otro comentario y = x * 4 ``` ### 2. Ecuaciones LaTeX ```python from sympy import * x, y = symbols('x y') # Divisiones (ahora renderiza correctamente) expr1 = (x + 1) / (x - 1) # Funciones sqrt expr2 = sqrt(x**2 + y**2) # Funciones trigonométricas expr3 = sin(x) / cos(x) # Asignaciones simbólicas z = x**2 + 2*x + 1 ``` ### 3. Persistencia 1. Redimensiona la ventana y los paneles 2. Muestra/oculta el panel LaTeX con F12 3. Cierra la aplicación 4. Reabre - debería mantener todas las dimensiones ### 4. Autocompletado ```python # Escribe "sympy." y aparece popup # Presiona Enter para cerrar sin seleccionar # Escribe "x." después de definir una variable ``` ## Comando de Ejecución ```bash python main_calc_app_pyside6.py ``` ## Atajos de Teclado - **F12**: Mostrar/ocultar panel LaTeX - **Ctrl+Enter**: Evaluar manualmente - **Shift+Enter**: Evaluar manualmente - **Escape**: Cerrar popups de autocompletado - **Enter**: Cerrar popups y crear nueva línea ## Log de Debugging La aplicación mantiene logs detallados para debugging en: - Consola durante ejecución - Información de estado en barra inferior - Errores de MathJax manejados graciosamente ## Próximas Mejoras Sugeridas 1. **Exportar LaTeX**: Botón para exportar todas las ecuaciones del panel 2. **Temas**: Opción para cambiar entre tema claro/oscuro 3. **Búsqueda**: Función de búsqueda en historial 4. **Variables Globales**: Panel lateral con variables definidas 5. **Plots Integrados**: Mostrar gráficos directamente en el panel LaTeX