如何关闭TeXStudio中的黄色小鸭子

如何关闭TeXStudio中的黄色小鸭子

我真的TeXStudio,但是它有一个功能最近开始让我烦恼。

每当我想获得更多工作空间时,我就会开始点击按钮Esc。这是(在各种 IDE 中)一个称为“关闭某些内容”的功能的常用快捷方式,它基本上会逐个关闭辅助浮动窗口。

但是,如果我Esc在所有浮动窗口都已关闭后继续点击(由于惯性,这种情况总是会发生),则会出现一个带有黄色鸭子的弹出窗口:

在此处输入图片描述

我尝试在互联网上搜索有关此问题的信息,但只收到几份小报告,将这种行为描述为“复活节彩蛋“。在我看来,这是一个有点侵扰性的复活节彩蛋,所以如果有人告诉我如何摆脱它,我会很高兴。

由 CarLaTeX 编辑: (&KJO) TeXStudio duck 已更新,TikZducks 现在出现!

在此处输入图片描述

答案1

我倾向于按下 ESC 键,即使我知道它不会做任何事情。我经常被这个烦人的鸭子打扰(抱歉,但这完全是侵入性的,我讨厌屏幕中间弹出一些东西)。所以这里有一个基于 TeXStudio 宏系统的解决方案:

  • 去除Esc 当前的的快捷键。您无法禁用默认快捷键,但可以禁用其他快捷键Close ElementOptions > Configure TeXstudio > Shortcuts > Menus > View > Close Element

  • 在 中Options > Configure TeXstudio > Shortcuts,启用Close Log-ViewClose Embedded Viewer

  • 打开宏编辑器并使用快捷键创建宏脚本Esc

    /* for old TexStudio versions, uncomment the following line 
     * to indicate that the macro is to be executed as a script 
     */
    // %SCRIPT
    panel = app.getManagedAction("main/view/show/outputview")
    /* open a fake panel if none exists */
    if (pdfs.length === 0 && !panel.checked) panel.trigger()
    /* close the menu or anything that should be closed */
    app.viewCloseElement()
    /* close the fake panel if needed */
    if (panel.checked) panel.trigger()
    

脚本的工作方式如下:如果您打开了消息面板或打开了 PDF 查看器,则它只会关闭元素(默认情况下会发生这种情况)。如果没有,它会打开面板并关闭当前元素(可以是此面板或要关闭的另一个元素)。如果打开了另一个菜单(例如,像“插入 Unicode 字符”或自动完成器这样的菜单,在 QtScript 中无法获取其状态),则假面板会再次关闭。

这样,鸭子就不会被触发,因为动作总是会发生某事。

答案2

我必须声明存在利益冲突,犯罪我真的不支持把这只可爱的鸭子除掉!

不过我可以回答如何用定制版本替换普通黄鸭:)


如果你不介意编译一个新版本来源,我想最重要的一点是

    txsInformation("<html><head></head><body><img src=':/images/egg.png'></body></html>");

摘自texstudio.cpp,l. 6646。如果删除此行,则不会打开带有鸭子的新窗口,但这当然不是我们想要的。相反,请用您最喜欢的鸭子替换此图像,例如:

在此处输入图片描述

答案3

以下部分代码负责函数中的小黄鸭void Texstudio::viewCloseSomething()

QTime ct = QTime::currentTime();
if (ct.second() % 5 != 0) return;
for (int i=2; i<63; i++) if (ct.minute() != i && ct.minute() % i == 0) return;
txsInformation("<html><head></head><body><img src=':/images/egg.png'></body></html>");

这部分代码之前,处理了按下按钮Esc真正起作用的几种情况。如果没有发生任何反应,则执行引用的代码。

这意味着当以下条件全部满足时,小黄鸭就会出现:

  1. Esc被按下,并且

  2. 不会造成其他影响,并且

  3. 当前秒是 5 的倍数,最后,

  4. 当前分钟是一个质数。

编辑:

它也适用于 Ubuntu

答案4

当前代码已更改为更具季节性(请参阅上面问题中的最新图片)

6918    // easter egg 
6919    QTime ct = QTime::currentTime(); 
6920    if (ct.second() % 5 != 0) return; 
6921    for (int i = 2; i < 63; i++) if (ct.minute() != i && ct.minute() % i  == 0) return; 
6922    QDate cd = QDate::currentDate(); 
6923    const char * mode = ""; 
6924    if (cd.month() == 12 && cd.day() >= 20) mode = "-santa"; 
6925    else if ( (cd.month() == 10 && cd.day() >= 30) || (cd.month() == 11 && cd.day() == 1)) mode = "-witch"; 
6926      else if ( (cd.month() == 3 && cd.day() >= 22) || (cd.month() == 4 && cd.day() <= 25)) mode = "-easter"; 
6927    UtilsUi::txsInformation(QString("<html><head></head><body><img src=':/images/egg%1.png'></body></html>").arg(mode)); 
6928  }

因此,除了 BMV 的答案

  1. 如果时间/日期满足 1 至 4 的条件,并且是复活节/万圣节/圣诞节,您就会看到一只主题鸭子。

感谢@CarLaTeX 的更新和@BMV 解释出现频率

剧透警告由我决定.ò_ó.看看你是否能算出它们会出现在哪几天。

相关内容