Site Meter

2007年3月1日

[轉載]通向 KDE 4 之路(四):新的工作進度管理器

你有過這樣的經歷了嗎,10 個程序的任務欄同時出現在你的桌面上,只有等某個任務結束時其任務欄才會消失?文檔打印進度,K3b CD 燒製對話框,KAudioCreator 的音頻編碼器,Konqueror 的文件傳輸,Kopete,KTorrent,KMail 正在檢查郵件……而 KDE 4 中新的工作進度管理器將統一顯示這些任務了,這將使您更輕鬆地查看和管理你的系統中正在進行的任務。下面是詳細內容。

設想下 Firefox 的下載管理器與 KDE 的打印隊列管理器,除了工作類型外並沒有什麼實質上的差別。每個 KDE 4 程序在有任務時都會在一個進度管理器對話框內添加一個叫作觀察器(Observer)的標記。然後這個獨立的程序就能觀察到任何正在進行中的任務了,並且 能像原來的進度對話框那樣顯示進度甚至添加某些可回饋到原程序的操作按鈕(如「取消下載」等)。有些程序如 K3b,它已具備了非常良好的進度報告系統,那它們的對話框就會保留下來,但其進度仍將被新的進度管理器觀察到,於是所有的任務進度條都被放在了同一個地 方。

Rafael Fernandez Lopez 的努力下,工作進度管理器原本作為一項虛擬的 KDE 4 改進設想通過 KDE-Look.org 逐漸成為一個功能完備的 KDE 4 整合項目。大量程序已通過修改支持了這個新管理器,很多的進度條集合在了一起。上週二的「二進制不兼容變化」日中,大量的改變被正式地提交到 KDE 4 倉庫中了。

下圖是 KDE 用戶及 KDE-look.org 的貢獻者 kiras 所製的原始模擬圖。

應注意的是上圖還只是個模擬圖,並不是 KDE 4、Plasma 或 Konqueror 的最終的真正的樣子。

目前它已被做成一個標準的系統托盤程序(就像 KDE 3.5.5 中的打印隊列管理器那樣),它與 GNOME 的托盤可相互配合使用。但它目前還只能觀察到 KDE 程序,所以目前監視 Firefox 的下載進度還不支持。不過也不能說以後不會支持,因為使用 D-Bus 交互進程通訊構架後非 KDE 程序的進度應該是能被觀察到的。目前已有意向與 GNOME 下的 Mathusalem 團隊合作開發了,這是個類似的項目。

下圖是目前已實現的監視程序的截圖,只要點擊下托盤圖標,它就會顯示出來。您可以看到,它已經相當實用了。

您可以看到 Kopete 的按鈕位置已被預留住了,它還沒什麼意義只是為了做測試用的。不過只要你點擊某個按鈕中的,它就會回傳給 Kopete 一個信號,然後 Kopete 就跳出一個更小的對話框。

您所看到的 Konqueror 的下載進度條顯示的是一個真實文件的下載進度。當 Konqueror 關閉後,它們仍會繼續工作。而像「中斷下載」之類有用的操作按鈕正在實現中。

如果您想要參與 KDE 4 的開發工作,為 KDE 程序添加新的 Kjobs 進度監視支持是相當容易的切入點。它只需要幾行代碼就可以使得應用程序在進度管理器上顯示進度,也只要幾行代碼就可以實現操作按鈕的功能。

這個新的進度監視技術將整合入 Konqueror(如模型中的那樣)、桌面托盤程序,其它程序將直接使用 D-Bus。我甚至可以想像到一個小的網絡程序可以讓您遠程監測進度……

Rafael 的目標是在最初的功能實現之後,就添加項目保留功能,這樣當一個工作結束之後,它就可以隨意地保留在隊列中直到被用戶關閉為止。他也在尋求人們對這個工具的反饋以及可實現的改進。

期待有更多的文章羅列出 KDE 4 偉大的技術。

方法論上的一個小便條:我確保在我的截圖上使用 KDE 默認的風格,即使它很醜陋我也要這麼做,因為這樣你就可以對 KDE 的進展有一個更好的理解並可以清晰地看到它的進步。另外作為一種準則,我到目前為止所演示的各種特性都是可用的,任何人都可以通過下載 SVN 上的源代碼進行編譯安裝重現我的演示。而今天的文章,我不得不弄了一些簡單的代碼以使這個正在開發中的程序可用,這是我一直堅守的準則的一個例外。另外, Kopete 進度支持還沒放入官方的 SVN 庫,但 Rafael 已用它來測試特性了。

原文:The Road to KDE 4: Job Progress Reimagined
譯文:通向 KDE 4 之路(四):新的工作進度管理器

(Troy Unrau/文 yuanjiayj/譯)

轉載自 通向 KDE 4 之路(四):新的工作进度管理器

-2007/3/12-------------------------------------------------------------
已經將本篇文章的圖片轉至本Blog上了,圖片已經可正常顯示。

沒有留言:

張貼留言

請注意,在較舊的文章留言並不會馬上出現在回應區!