你
有过这样的经历了吗,10个程序的任务栏同时出现在你的桌面上,只有等某个任务结束时其任务栏才会消失?文档打印进度,K3b
CD烧制对话框,KAudioCreator的音频编码器,Konqueror的文件传输,Kopete,KTorrent,KMail正在检查邮
件...而KDE4中新的工作进度管理器将统一显示这些任务了,这将使您更轻松地察看和管理你的系统中正在进行的任务。下面是详细内容。
设想下Firefox的下载管理器与KDE的打印队列管理器,除了工作类型外并没有什么实质上的差别。每个KDE
4程序在有任务时都会在一个进度管理器对话框内添加一个叫作观察器(Observer)的标记。然后这个独立的程序就能观察到任何正在进行中的任务了,并
且能像原来的进度对话框那样显示进度甚至添加某些可回馈到原程序的操作按钮(如“取消下载”
等)。有些程序如K3b,它已具备了非常良好的进度报告系统,那它们的对话框就会保留下来,但其进度仍将被新的进度管理器观察到,于是所有的任务进度条都
被放在了同一个地方。
在Rafael Fernandez Lopez的努力下,工作进度管理器原本作为一项虚拟的KDE4改进设想通过KDE-Look.org逐渐成为一个功能完备的KDE4整合项目。大量程序已通过修改支持了这个新管理器,很多的进度条集合在了一起。上周二的“二进制不兼容变化”日中,大量的改变被正式地提交到KDE4仓库中了。
下图是KDE用户及KDE-look.org的贡献者kiras所制的原始模拟图。
应注意的是上图还只是个模拟图,并不是KDE4,Plasma或Konqueror的最终的真正的样子。
目前它已被做成一个标准的系统托盘程序(就像KDE3.5.5中的打印队列管理器那样),它与GNOME的托盘可相互配合使用。但它目前还只能观察到
KDE程序,所以目前监视Firefox的下载进度还不支持。不过也不能说以后不会支持,因为使用D-Bus交互进程序通讯构架后非KDE程序的进度应该
是能被观察到的。目前已有意向与GNOME下的Mathusalem团队合作开发了,这是个类似的项目。
下图是目前已实现的监视程序的截图,只要点击下托盘图标,它就会显示出来。您可以看到,它已经相当实用了。
您所看到的Konqueror的下载进度条显示的是一个真实文件的下载进度。当Konqueror关闭后,它们仍会继续工作。而像“中断下载”之类有用的操作按钮正在实现中。
如果您想要参与KDE4的开发工作,为KDE程序添加新的Kjobs进度监视支持是相当容易的切入点。它只需要几行代码就可以使得应用程序在进度管理器上显示进度,也只要几行代码就可以实现操作按钮的功能。
这个新的进度监视技术将整合入Konqueror(如模型中的那样)、桌面托盘程序,其它程序将直接使用D-Bus。我甚至可以想像到一个小的网络程序可以让您远程监测进度...
Rafael的目标是在最初的功能实现之后,就添加项目保留功能,这样当一个工作结束之后,它就可以随意地保留在队列中直到被用户关闭为止。他也在寻求人们对这个工具的反馈以及可实现的改进。
期待有更多的文章罗列出KDE4伟大的技术。
方法论上的一个小便条:我确保在我的截图上使用KDE默认的风格,即使它很丑陋我也要这么做,因为这样你就可以对KDE的进展有一个更好的理解并可以清晰 地看到它的进步。另外作为一种准则,我到目前为止所演示的各种特性都是可用的,任何人都可以通过下载SVN上的源代码进行编译安装重现我的演示。而今天的 文章,我不得不弄了一些简单的代码以使这个正在开发中的程序可用,这是我一直坚守的准则的一个例外。另外,Kopete进度支持还没放入官方的SVN库, 但Rafael已用它来测试特性了。