Mudlet: Copiar / pegar de la ventana de texto principal deja de funcionar

Creado en 22 dic. 2019  ·  24Comentarios  ·  Fuente: Mudlet/Mudlet

Breve resumen del problema / Descripción de la función solicitada:

Mudlet 4.4.0 en lugar de fallar ahora copiar / pegar simplemente no funciona a veces

  • No estoy seguro de qué causa exactamente que esto comience, pero parece que en algún momento copiar / pegar simplemente se negará a funcionar. cmd-c o copiar con el botón derecho del ratón, ambos no funcionarán. copiar como html funciona aunque. que es interesante.

esto es increíblemente frustrante.

bug high

Comentario más útil

@ njs50 @Ranfir He descubierto una manera de solucionar este problema sin tener que reiniciar su perfil. Crea un alias con esto:

echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
---etc, up to 1000 lines of the above echo

Luego presione su alias para enviar las 1000 líneas de spam a su perfil. ¡Un golpe y debería poder copiar y pegar de nuevo! Lo probé con un alias de 100 líneas y eso no fue suficiente, pero 1000 líneas funcionaron.

Todos 24 comentarios

Estoy experimentando este problema en Windows 10. Dejará de funcionar esporádicamente y luego comenzará a funcionar unos minutos más tarde. No está claro cómo reproducirse de forma coherente, pero ocurre con la frecuencia suficiente como para ser un detalle importante.

Sigo viendo este problema en 4.5.1-de.

esto es increíblemente frustrante.

No puedo estar más de acuerdo con esto.

Confirmado que este problema todavía ocurre en 4.6.2 en OSX. Es extraño porque también es específico del perfil. Un perfil podrá copiar y pegar, mientras que otro perfil abierto simultáneamente no podrá copiar y pegar.

Es difícil arreglar esto porque uno puede abrir Mudlet y está funcionando bien, entonces, ¿cómo encontrar el problema? Una forma de replicar el problema avanzaría esto por montones

fwiw, cuando está roto, la copia como html todavía funciona. tal vez eso ayude a delimitar dónde está el problema.

También creo que comenzó en el momento en que se fusionó este PR: https://github.com/Mudlet/Mudlet/pull/3241 solucionó el bloqueo, pero luego, en lugar de bloquearse, copiar / pegar deja de funcionar, así que tal vez algo no estaba del todo bien justo ahí...

Bueno, podemos probar esa teoría, prueba la compilación de prueba en https://github.com/Mudlet/Mudlet/pull/3688. Ejecute Mudlet desde la terminal, por lo que en macOS está dentro de .app / Contents. Imprimirá un mensaje cuando el cheque no coincida.

Noté una falla similar en Win10 hace unos días.

Pruebe la compilación de prueba, ejecute mudlet.exe y vea si aparece algo en la terminal cuando el problema resurja.

Bueno, actualmente ya estoy ejecutando y probando la próxima versión candidata a lanzamiento, así que lo haré más adelante. De todos modos, solo sucedió una vez antes (así que me di cuenta), y estuve ejecutando Mudlet durante bastante tiempo en ese momento. No estoy seguro de cómo replicar.

@ njs50 @Ranfir He descubierto una manera de solucionar este problema sin tener que reiniciar su perfil. Crea un alias con esto:

echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
echo("\nJust fill up the line with random gibberish!")
---etc, up to 1000 lines of the above echo

Luego presione su alias para enviar las 1000 líneas de spam a su perfil. ¡Un golpe y debería poder copiar y pegar de nuevo! Lo probé con un alias de 100 líneas y eso no fue suficiente, pero 1000 líneas funcionaron.

Para mí, el error ya no sucedió en las últimas semanas, pero tuvimos un jugador ocasional en Discord que informó algo similar. Parecían contentos con la solución anterior, por lo que esto puede ayudar a triangular el error.

En cualquier caso, en lugar de que todos pongan 1000 líneas de spam en su alias, puede usar un bucle lua :

 local repetitions = 1000
 local i = 1
 repeat
  echo("\nJust fill up the line with random gibberish!")
  i = i + 1
 until i > repetitions 

Incluso puedes experimentar con la cantidad de repeticiones, ¿tal vez eso ayude aún más? Actualmente 100 parece poco y 1000 parece suficiente. No estoy seguro de por qué y dónde cambia exactamente.

: bulb: Um, IIRC los detalles de la selección actual se almacenan en dos QPoint s TConsole::P_begin & P_end - sin embargo, cuando (void) TBuffer::shrinkBuffer() activa para recortar el más antiguo (números de línea más bajos) desde el inicio de los TBuffer (std::deque<std::deque<TChar>>) buffer y (QStringList) lineBuffer y uno o dos contenedores de un elemento por línea más: qué pasos se toman para ajustar los valores y de P_begin y P_end : pregunta:

Solo he notado que sucede después de que el búfer se haya alargado lo suficiente como para encogerse. Además, cuando está sucediendo, parece que hace que el resaltado en el búfer superior e inferior (cuando se haya desplazado hacia arriba en la consola) no esté sincronizado entre sí. Hacer selecciones en la parte superior e inferior parece ayudar a que la funcionalidad de copia funcione nuevamente, pero no puedo decir que sea completamente consistente porque no sucede con la frecuencia suficiente para probar de manera confiable.

parece realmente extraño que la "copia como html" continúe funcionando cuando la copia normal deja de funcionar. eso parece indicar que tal vez la selección no es el problema, sino algo que está en la selección.

Creo que los dos usan algoritmos diferentes. Lo que indica que simplemente copiar uno podría aprender uno o dos trucos de copiar a html.

copiar como imagen también sigue copiando la selección correctamente también iirc

¿Hay alguna manera de hacer el truco del eco sin llenar mi búfer con 1000 líneas de basura? Me gustaría intentar obtener una solución que no incluya destruir una sesión de juego perfectamente buena que también registro.

¿ClearWindow funciona?

parece que simplemente funcionó para mí. No sé si fue una coincidencia. Parece sospechosamente que copiar / pegar continuará funcionando hasta que las cosas comiencen a ser expulsadas del final de mi scrollback

Solo lo repetí de nuevo. copiar / pegar parecía correcto después de hacer clearWindow () hasta que el búfer estaba lleno. tan pronto como estaba lleno, cuando copié un texto que pasaba volando, falló y dejó de funcionar. clearWindow lo arregló de nuevo.

También llené el búfer de mi juego hasta que las líneas comenzaron a desaparecer en la parte superior.
En ese momento, copiar / pegar todavía funcionaba bien como se esperaba.
¿Cómo llenas tu búfer exactamente?

Intenté reducir el número de eliminación por lotes para el tamaño del búfer de mi consola a 10, y aunque eso causa el efecto secundario de la visualización de texto extraño cuando ocurre la eliminación por lotes, parece acelerar el proceso de solucionar el problema de copia.

También llené el búfer de mi juego hasta que las líneas comenzaron a desaparecer en la parte superior.
En ese momento, copiar / pegar todavía funcionaba bien como se esperaba.
¿Cómo llenas tu búfer exactamente?

Lo estaba probando con un juego en ejecución en ese momento. Llené la mayor parte revisando un montón de notas en un tablero de notas y cuando noté que el texto se estaba borrando de la parte superior del búfer nuevamente, hice una nueva selección.

Definitivamente hubo texto en todo el tiempo que estaba seleccionando para copiar.

Definitivamente también estaba en el pergamino cuando estaba copiando. es decir, había arrastrado la selección lo suficiente como para salir de la página de texto actual.

Usando Ctrl-C (Copiar) desde el menú contextual:

  • (void) TTextEdit::slot_copySelectionToClipboard()
  • (QString) TTextEdit::getSelectedText(char newlineChar) - que usa los valores actuales en (QPoint) TTextEdit::mPA & mpB y coloca el texto en QApplication::clipboard()

Usando Copiar como HTML desde el menú contextual:

  • (void) TTextEdit::slot_copySelectionToClipboardHTML() - usa (QPoint) TTextEdit::mDragStart y mDragSelectionEnd para SET TTextEdit::mPA & mpB según corresponda y luego usa inmediatamente este último para copiar los datos del TBuffer en el HTML generado.

Podría valer la pena experimentar copiando el proceso de selección del último al primero ...

¿Fue útil esta página
0 / 5 - 0 calificaciones