这是关于 Gajim 开发的新闻系列的第二篇文章。在这些文章中,我(wurstsalat)将尝试总结一个月的 Gajim 开发。有时这些文章还会涉及 python-nbxmpp 和 XMPP 一般。十一月的开发带来了对群聊、主题、拖放操作、OMEMO 等的改进。欢迎加入 gajim@conference.gajim.org 与我们讨论。
Gajim 的变化
群聊
群聊窗口接收了大量设计更改。除了在十月开发新闻中提到的新参与者列表外,大多数与群聊相关的对话框已被覆盖在聊天窗口上的“页面”所替代。这个想法最初是在我们寻找展示群聊信息的地方时提出的(这些信息可能相当多)。未来这些信息的展示方式示例可以在下面的截图中看到。
在过去几个月中,越来越多的对话框已迁移到这种新方法中。用户现在可以在聊天窗口内:
- 更改他们的昵称
- 更改群聊的主题
- 踢出/封禁用户
- 输入密码/验证码
- 销毁群聊
- 重命名群聊(本地)
Gajim 现在能够在联系人列表、标签和聊天上方的横幅区域显示群聊的名称(创建者选择的名称)(#5406)。如果用户选择了不同的名称(现在可以从联系人列表以及群聊中进行选择 (#9783),则将使用该名称。
拖放、主题、服务器信息
在过去几个月中,Gajim 的拖放功能有了许多改进。现在可以通过拖放邀请联系人加入群聊。将文件拖放到联系人列表上现在会开始向被拖放文件的联系人传输文件。
许多用户抱怨主题窗口的可用性。我们尝试通过自动化之前要求用户手动执行的步骤来简化工作流程 (#9886)。如果用户想更改主题设置(例如字体大小),现在只需简单点击“添加设置”,这将 a) 添加一个新主题,b) 切换到新添加的主题,c) 添加所需的设置。这还使用户能够实时预览他们的预期更改。移除当前活动的主题现在将自动回退到默认主题,而无需先询问是否切换。
在 Gajim 1.0 中,引入了服务器信息对话框。该对话框帮助用户评估他们所使用服务的能力,通过列出服务器支持的功能。除了功能列表外,我们现在还显示连接信息(例如传输安全、选择的密码、使用的代理)(#6096)。服务器的证书也可以从服务器信息对话框中查看。一些服务器提供支持、反馈或管理员问题的联系地址。这些联系地址现在也显示出来了(#9848)。
为了统一 Gajim 在需要用户确认或输入时显示的对话框,旧的对话框系统正在逐步被替换。许多旧对话框已经被移除或替换,从而实现了更一致的外观。
Gajim 内部设置快捷键的代码得到了改进。这使我们更接近于在未来提供可自定义的快捷键。此外,我们添加了 Ctrl+E 来打开插件窗口,Ctrl+Shift+X 来查看 XML 控制台。Gajim 中可用的许多快捷键在“关于 > 快捷键”中列出。
Gajim 的 Flatpak 版本本月也进行了更新,包括修复打开链接的错误和更新插件及其依赖项。自动状态消息和屏幕保护程序检测也已为 Flatpak 版本进行了重新设计。
为了能够修复错误,开发人员通常需要收集调试日志。当通过终端启动 Gajim 时(使用正确的参数),可以显示这样的调试日志。因为这有点技术性,并且我们希望每个用户都能收集这些日志,Gajim 有一个偏好设置(偏好设置 > 高级)来将调试日志存储在文件中。为了进一步简化这些步骤,我们添加了一个按钮,以快速导航到包含存储调试日志的文件夹。
本月进行了大量代码清理。这包括移除未使用的代码,以及修复许多 linting 错误,使代码更易于理解。
其它更新
- 移除了 ReStructured text (rst) 到 XHTML 的转换功能
- 移除了自定义“打开方式”应用程序的设置(将使用系统默认应用程序)
- 移除了 SI 文件传输代码的残余(该方法已被弃用)
- 移除了在使用上下文菜单打开聊天时选择资源的能力(#8471)
- Gajim 的日志数据库(聊天记录等保存的地方)进行了性能改进,现在将同时存储消息和 XHTML 数据
- 从 Gajim 内部打开文件的功能已重新设计
- 证书的发行/到期日期现在以用户的区域设置显示
- Gajim 的 XML 控制台现在有了搜索栏(Ctrl+F 搜索,F3 搜索下一个)
- 修复了私密消息错误出现在群聊聊天窗口中的问题(#9488)
- Gajim 现在在向一组联系人发送消息时使用裸 JID(#9738)
- 阻止一组联系人的时候,将显示正确的对话框(#7524)
- 修复导入警告的问题(#9874)
插件更新
本月为 Gajim 的 OMEMO 插件带来了许多错误修复。接收未加密为用户设备的消息现在将触发错误消息(#452)。修复了一个归档(MAM)消息无法映射到 JID 的错误(#457)以及插件配置对话框中的错误(当没有可用账号时发生)。此外,Gajim 现在将检测所有群聊配置更改,并在 OMEMO 能够的群聊中保持更一致(#445)。除了查看 OMEMO 加密文件外,现在还可以打开包含该文件的文件夹(#430,#425)。
python-nbxmpp 中的变化
在处理 Gajim 的账号删除对话框时,python-nbxmpp 获得了对带内注册(XEP-0077)的支持,并进一步修复了对语句处理的错误。
使用 XMPP 的好处之一是选择的自由。用户可以自由选择他们想要使用的服务器(甚至可以自己托管一个),并且可以从许多可用的客户端中进行选择。有时,这种选择的自由也会导致客户端在协议规范之后表现不佳。Gajim 当然必须处理这个问题。最近修复了一个客户端发送格式错误的语句的案例(#89)。