Gajim 开发新闻
这是关于 Gajim 开发的新闻系列的第二篇文章。在这些文章中,我(cal0pteryx)将尝试总结一个月的 Gajim 开发。有时这些文章还会涉及 python-nbxmpp 和 XMPP 一般。十一月的开发带来了对群聊、主题、拖放操作、OMEMO 等的改进。欢迎加入 gajim@conference.gajim.org 与我们讨论。
群聊窗口接收了大量设计更改。除了在十月开发新闻中提到的新参与者列表外,大多数与群聊相关的对话框已被覆盖在聊天窗口上的“页面”所替代。这个想法最初是在我们寻找展示群聊信息的地方时提出的(这些信息可能相当多)。未来这些信息的展示方式示例可以在下面的截图中看到。

在过去几个月中,越来越多的对话框已迁移到这种新方法中。用户现在可以在聊天窗口内:
Gajim 现在能够在联系人列表、标签和聊天上方的横幅区域显示群聊的名称(创建者选择的名称)(#5406)。如果用户选择了不同的名称(现在可以从联系人列表以及群聊中进行选择 (#9783),则将使用该名称。
在过去几个月中,Gajim 的拖放功能有了许多改进。现在可以通过拖放邀请联系人加入群聊。将文件拖放到联系人列表上现在会开始向被拖放文件的联系人传输文件。
许多用户抱怨主题窗口的可用性。我们尝试通过自动化之前要求用户手动执行的步骤来简化工作流程 (#9886)。如果用户想更改主题设置(例如字体大小),现在只需简单点击“添加设置”,这将 a) 添加一个新主题,b) 切换到新添加的主题,c) 添加所需的设置。这还使用户能够实时预览他们的预期更改。移除当前活动的主题现在将自动回退到默认主题,而无需先询问是否切换。
In Gajim 1.0, a Server Info dialog has been introduced. This dialog helps users to assess the capabilities of the service they are using by listing features supported by the server. In addition to the list of features, we now also show connection infos (e.g. transport security, chosen cipher, used proxy) (#6096). The server’s certificate can also be viewed from the Server Info dialog. Some servers offer contact addresses for support, feedback, or admin questions. These contact addresses are now displayed as well (#9848).
为了统一 Gajim 在需要用户确认或输入时显示的对话框,旧的对话框系统正在逐步被替换。许多旧对话框已经被移除或替换,从而实现了更一致的外观。
Gajim 内部设置快捷键的代码得到了改进。这使我们更接近于在未来提供可自定义的快捷键。此外,我们添加了 Ctrl+E 来打开插件窗口,Ctrl+Shift+X 来查看 XML 控制台。Gajim 中可用的许多快捷键在“关于 > 快捷键”中列出。
Gajim 的 Flatpak 版本本月也进行了更新,包括修复打开链接的错误和更新插件及其依赖项。自动状态消息和屏幕保护程序检测也已为 Flatpak 版本进行了重新设计。
为了能够修复错误,开发人员通常需要收集调试日志。当通过终端启动 Gajim 时(使用正确的参数),可以显示这样的调试日志。因为这有点技术性,并且我们希望每个用户都能收集这些日志,Gajim 有一个偏好设置(偏好设置 > 高级)来将调试日志存储在文件中。为了进一步简化这些步骤,我们添加了一个按钮,以快速导航到包含存储调试日志的文件夹。
本月进行了大量代码清理。这包括移除未使用的代码,以及修复许多 linting 错误,使代码更易于理解。
本月为 Gajim 的 OMEMO 插件带来了许多错误修复。接收未加密为用户设备的消息现在将触发错误消息(#452)。修复了一个归档(MAM)消息无法映射到 JID 的错误(#457)以及插件配置对话框中的错误(当没有可用账号时发生)。此外,Gajim 现在将检测所有群聊配置更改,并在 OMEMO 能够的群聊中保持更一致(#445)。除了查看 OMEMO 加密文件外,现在还可以打开包含该文件的文件夹(#430,#425)。
在处理 Gajim 的账号删除对话框时,python-nbxmpp 获得了对带内注册(XEP-0077)的支持,并进一步修复了对语句处理的错误。
使用 XMPP 的好处之一是选择的自由。用户可以自由选择他们想要使用的服务器(甚至可以自己托管一个),并且可以从许多可用的客户端中进行选择。有时,这种选择的自由也会导致客户端在协议规范之后表现不佳。Gajim 当然必须处理这个问题。最近修复了一个客户端发送格式错误的语句的案例(#89)。