Mudlet: Copiar / colar da janela de texto principal para de funcionar

Criado em 22 dez. 2019  ·  24Comentários  ·  Fonte: Mudlet/Mudlet

Breve resumo do problema / Descrição do recurso solicitado:

Mudlet 4.4.0 em vez de travar agora, copiar / colar simplesmente não funciona às vezes

  • Não sei exatamente o que faz com que isso comece, mas parece que em algum ponto copiar / colar simplesmente se recusará a funcionar. Copiar cmd-c ou com o botão direito, ambos não funcionarão. copiar como html funciona tho. o que é interessante.

isso é incrivelmente frustrante.

bug high

Comentários muito úteis

@ njs50 @Ranfir Descobri uma maneira de consertar isso sem precisar reiniciar seu perfil. Faça um alias com este:

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

Em seguida, clique no seu alias para enviar as 1000 linhas de spam para o seu perfil. Um clique e você poderá copiar e colar novamente! Eu tentei com um alias de 100 linhas e isso não foi suficiente, mas 1000 linhas funcionaram.

Todos 24 comentários

Estou tendo esse problema no Windows 10. Ele parará de funcionar esporadicamente e começará a funcionar alguns minutos depois. Não está claro como reproduzir de forma consistente, mas acontece com freqüência suficiente para ser uma nuissância importante.

Ainda estou vendo esse problema em 4.5.1-de.

isso é incrivelmente frustrante.

Eu não posso concordar mais com isso.

Confirmado que esse problema ainda ocorre em 4.6.2 no OSX. É estranho porque também é específico de um perfil. Um perfil poderá copiar e colar, enquanto outro perfil aberto simultaneamente não poderá copiar e colar.

É difícil consertar isso porque pode-se abrir Mudlet e está funcionando bem, então como encontrar o problema? Uma maneira de replicar o problema avançaria muito

fwiw, quando ele está quebrado, a cópia como html ainda funciona. talvez isso ajude a identificar onde está o problema.

também acho que começou na época em que este PR foi mesclado: https://github.com/Mudlet/Mudlet/pull/3241 ele corrigiu o travamento, mas, em vez de travar, copiar / colar para de funcionar, então talvez algo não tenha dado certo ali...

Bem, podemos testar essa teoria, tente a construção de teste em https://github.com/Mudlet/Mudlet/pull/3688. Execute o Mudlet do terminal - então, no macOS, ele está dentro do .app / Contents. Ele imprimirá uma mensagem quando o cheque não corresponder.

Percebi uma falha semelhante no Win10 há alguns dias.

Experimente a compilação de teste, execute mudlet.exe e veja se algo aparece no terminal quando o problema reaparece.

Bem, atualmente eu já estou executando e tentando o próximo candidato a lançamento de versão, então farei isso mais tarde. De qualquer forma, isso só aconteceu uma vez antes (de modo que eu percebi), e eu estava comandando Mudlet por um bom tempo naquele ponto. Não tenho certeza de como replicar.

@ njs50 @Ranfir Descobri uma maneira de consertar isso sem precisar reiniciar seu perfil. Faça um alias com este:

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

Em seguida, clique no seu alias para enviar as 1000 linhas de spam para o seu perfil. Um clique e você poderá copiar e colar novamente! Eu tentei com um alias de 100 linhas e isso não foi suficiente, mas 1000 linhas funcionaram.

Para mim, o bug não aconteceu mais nas últimas semanas, mas tivemos um jogador ocasional no Discord que relatou o mesmo. Eles pareciam satisfeitos com a solução alternativa acima, então isso pode ajudar a triangular o bug.

Em qualquer caso, em vez de todo mundo colocar 1000 linhas de spam em seu alias, você pode usar um loop lua :

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

Você pode até experimentar com o número de repetições, talvez isso ajude ainda mais? Atualmente, 100 parecem poucos e 1000 parecem suficientes. Não tenho certeza, por que e onde muda exatamente.

: bulb: Hum, IIRC os detalhes da seleção atual são armazenados em dois QPoint s TConsole::P_begin & P_end - entretanto, quando (void) TBuffer::shrinkBuffer() entra em ação para aparar o mais antigo (números de linha mais baixos) do início dos TBuffer 's (std::deque<std::deque<TChar>>) buffer e (QStringList) lineBuffer e um ou dois outros contêineres de um elemento por linha: quais etapas são executadas para ajustar os valores de y de P_begin e P_end : questão:

Só percebi que isso aconteceu depois que o buffer ficou longo o suficiente para encolher. Além disso, quando está acontecendo, parece que faz com que o destaque no buffer superior e inferior (quando você rolou para cima no console) fiquem fora de sincronia um com o outro. Fazer seleções na parte superior e inferior parece ajudar a fazer com que a funcionalidade de cópia funcione novamente, mas não posso dizer que seja totalmente consistente porque não acontece com frequência suficiente para testar de maneira confiável.

parece muito estranho a "cópia como html" continuar a funcionar quando a cópia normal para de funcionar. isso parece indicar que talvez a seleção não seja o problema, mas algo que está na seleção?

Os dois usam algoritmos diferentes, eu acho. O que indica que o simples copiar pode aprender um truque ou dois de copiar para html.

copiar como imagem também ainda copia a seleção apropriadamente também iirc

Existe uma maneira de fazer o truque do eco sem preencher meu buffer com 1000 linhas de lixo? Eu gostaria de tentar obter uma solução alternativa que não inclua destruir uma sessão de jogo perfeitamente boa que eu também registro.

O clearWindow funciona?

parece que funcionou para mim. não sei se foi coincidência. Parece que copiar / colar continuará funcionando até que as coisas comecem a ser despejadas no final do meu scrollback

Eu apenas repeti isso de novo. copiar / colar parecia bom depois de fazer clearWindow () até que o buffer estivesse cheio. assim que estava cheio, quando copiei algum texto que estava voando, ele falhou e parou de funcionar. clearWindow corrigiu novamente.

Eu também enchi meu buffer de jogo até que as linhas começaram a desaparecer no topo.
Naquela época, copiar / colar ainda funcionava corretamente, conforme o esperado.
Como você preenche seu buffer exatamente?

Tentei reduzir o número de exclusão de lote para o tamanho do buffer do meu console para 10 e, embora isso cause o efeito colateral de exibição de texto estranho quando ocorre a exclusão do lote, parece acelerar o processo de corrigir o problema de cópia.

Eu também enchi meu buffer de jogo até que as linhas começaram a desaparecer no topo.
Naquela época, copiar / colar ainda funcionava corretamente, conforme o esperado.
Como você preenche seu buffer exatamente?

Eu estava testando com um jogo rodando na época. Eu preenchi a maior parte examinando várias anotações em um quadro de avisos e, quando percebi que o texto estava sendo excluído do topo do buffer novamente, fiz uma nova seleção.

Definitivamente, havia texto chegando durante todo o tempo que eu estava selecionando para copiar.

Eu também estava definitivamente voltado para o pergaminho quando estava copiando. ou seja, eu arrastei a seleção longe o suficiente para sair da página de texto atual.

Usando Ctrl-C (Copiar) no menu de contexto:

  • (void) TTextEdit::slot_copySelectionToClipboard()
  • (QString) TTextEdit::getSelectedText(char newlineChar) - que usa os valores atuais em (QPoint) TTextEdit::mPA & mpB e coloca o texto em QApplication::clipboard()

Usando Copiar como HTML no menu de contexto:

  • (void) TTextEdit::slot_copySelectionToClipboardHTML() - usa (QPoint) TTextEdit::mDragStart e mDragSelectionEnd para SET TTextEdit::mPA & mpB conforme apropriado e imediatamente usa o último para copiar os dados do TBuffer no HTML gerado.

Pode valer a pena experimentar copiar o processo de seleção do último para o primeiro ....

Esta página foi útil?
0 / 5 - 0 avaliações