Mudlet: 主文本窗口的复制/粘贴停止工作

创建于 2019-12-22  ·  24评论  ·  资料来源: Mudlet/Mudlet

问题的简要摘要/请求功能的描述:

Mudlet 4.4.0 现在不是崩溃而是复制/粘贴有时不起作用

  • 我不确定究竟是什么原因导致这种情况开始,但感觉在某些时候复制/粘贴将不再起作用。 cmd-c 或右键单击复制,两者都不起作用。 复制为 html 作品。 这很有趣。

这令人非常沮丧。

bug high

最有用的评论

@njs50 @Ranfir我发现了一种无需重新启动配置文件即可解决此问题的方法。 用这个做一个别名:

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

然后点击您的别名将 1000 行垃圾邮件发送到您的个人资料。 一击,您应该能够再次复制和粘贴! 我尝试使用 100 行别名,但这还不够,但是 1000 行成功了。

所有24条评论

我在 Windows 10 上遇到此问题。它会偶尔停止工作,然后在几分钟后开始工作。 不清楚如何一致地繁殖,但发生的频率足以成为一个主要的麻烦。

我仍然在 4.5.1-de 下看到这个问题。

这令人非常沮丧。

我完全同意这一点。

确认此问题在 OSX 上的 4.6.2 中仍然存在。 这很奇怪,因为它也是特定于配置文件的。 一个配置文件将能够复制和粘贴,而另一个同时打开的配置文件将无法复制和粘贴。

很难解决这个问题,因为可以打开 Mudlet 并且它工作正常,那么如何找到问题呢? 复制问题的方法将通过堆推进

fwiw,当它被破坏时,副本作为 html 仍然有效。 也许这可能有助于缩小问题所在。

我也认为它是在这个 PR 被合并的时候开始的: https :

嗯,我们可以测试这个理论,试试https://github.com/Mudlet/Mudlet/pull/3688 中的测试版本

几天前在Win10上发现了类似的缺陷。

尝试测试构建,运行mudlet.exe并查看当问题再次出现时终端中是否弹出任何内容。

嗯,目前我已经在运行并尝试下一个版本的候选版本,所以稍后会这样做。 无论如何,它之前只发生过一次(所以我注意到了),那时我运行 Mudlet 已经有一段时间了。 不知道如何复制。

@njs50 @Ranfir我发现了一种无需重新启动配置文件即可解决此问题的方法。 用这个做一个别名:

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

然后点击您的别名将 1000 行垃圾邮件发送到您的个人资料。 一击,您应该能够再次复制和粘贴! 我尝试使用 100 行别名,但这还不够,但是 1000 行成功了。

对我来说,这个错误在最近几周不再发生,但我们偶尔有 Discord 玩家报告了类似的情况。 他们似乎对上述解决方法感到满意,因此这可能有助于对错误进行三角测量。

在任何情况下,您都可以使用 lua 循环,而不是每个人在他们的别名中放置 1000 行垃圾邮件:

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

您甚至可以尝试重复次数,也许这会更有帮助? 目前 100 似乎很少,1000 似乎就足够了。 不确定,为什么以及在什么地方会发生变化。

:bulb: 嗯,IIRC 当前选择的详细信息存储在两个QPoint s TConsole::P_beginP_end - 但是当(void) TBuffer::shrinkBuffer()开始修剪从TBuffer(std::deque<std::deque<TChar>>) buffer(QStringList) lineBuffer以及一两个其他每行一个元素的容器开始的最旧(最低行号):采取了哪些步骤调整P_beginP_endy:问题:

我只注意到它发生在缓冲区变得足够长以缩小之后。 此外,当它发生时,似乎会导致顶部和底部缓冲区中的突出显示(当您在控制台中向上滚动时)彼此不同步。 在顶部和底部进行选择似乎有助于让复制功能再次工作,但我不能说它完全一致,因为它发生的频率不足以进行可靠的测试。

当常规副本停止工作时,“复制为 html”继续工作似乎真的很奇怪。 这似乎表明也许选择不是问题,而是选择中的问题?

我认为他们两个使用不同的算法。 这表明简单的复制可以从复制到 html 中学习一两个技巧。

复制为图像也仍然正确复制选择以及 iirc

有没有办法在不用 1000 行垃圾填充我的缓冲区的情况下执行 echo 技巧? 我想尝试一种解决方法,不包括破坏我也记录的完美游戏会话。

clearWindow 有用吗?

看起来它只对我有用。 不知道是不是巧合。 看起来像复制/粘贴将继续工作,直到东西开始从我的回滚结束逐出

我只是重复了一遍。 在执行 clearWindow() 直到缓冲区已满之前,复制/粘贴看起来不错。 当我复制一些飞过它的文本时它已满,它就会失败并停止工作。 clearWindow 再次修复它。

我也填满了我的游戏缓冲区,直到行开始在顶部消失。
当时,复制/粘贴仍然按预期工作正常。
你如何准确地填充你的缓冲区?

我尝试将控制台缓冲区大小的批量删除数降低到 10,虽然这确实会导致批量删除时出现奇怪的文本显示的副作用,但它似乎加快了修复复制问题的过程。

我也填满了我的游戏缓冲区,直到行开始在顶部消失。
当时,复制/粘贴仍然按预期工作正常。
你如何准确地填充你的缓冲区?

当时我正在用正在运行的游戏对其进行测试。 我通过在记事板上浏览一堆笔记来填充大部分内容,当我注意到文本再次从缓冲区顶部删除时,我做了一个新选择。

在我选择复制的整个过程中肯定会有文字出现。

当我复制时,我也肯定会回滚。 即我已将选择拖到足够远以离开当前文本页面。

从上下文菜单中使用 Ctrl-C(复制):

  • (void) TTextEdit::slot_copySelectionToClipboard()
  • (QString) TTextEdit::getSelectedText(char newlineChar) - 使用(QPoint) TTextEdit::mPAmpB的当前值并将文本放入QApplication::clipboard()

从上下文菜单中使用 Copy as HTML:

  • (void) TTextEdit::slot_copySelectionToClipboardHTML() - 使用(QPoint) TTextEdit::mDragStartmDragSelectionEnd来设置TTextEdit::mPAmpB ,然后立即使用后者复制数据TBuffer到生成的 HTML 中。

将选择过程从后者复制到前者可能值得尝试......

此页面是否有帮助?
0 / 5 - 0 等级