[求助] 關於 Qt4 的字型顯示補丁

KDE 是一個強大的圖形桌面環境,各項關於 KDE 使用上的問題或討論歡迎在此提出。

版主: AceLan, Franklin

[求助] 關於 Qt4 的字型顯示補丁

文章belly » 週五 7月 25, 2008 10:56 pm

因為 Qt toolkit 自第4版起不使用Xft來畫字,其字型效果就顯得和其他程式不大一樣(eg: 使用cairo或Xft的程式),造成許多正面/負面的評價
雖然Qt4推出已經有一段時間,但小弟我還是Google不到相關patch,只好自己摸索,目前有一些看似可用的補丁(以下列出)
因為我只是end user,不會programming,以下patch code都是trial-and-error加上copy其他人的code,所以希望可以找到“有力人士”(i.e., 有看程式碼能力/願意幫助的人)可以幫忙review。
因為我沒有網路空間放補丁,且用貼文會太長(wc -l: 共673),我將以e-mail 方式傳送patch,希望願意幫忙的人回文。

----------各patch目的----------------
01.basic.diff:基本hint-style matching改善,解決Qt4在rgba mode下不尊重hintstyle的情形
029.ftlcdfil.diff:使用Freetype做 Lcd Subpixel Filtering(借用David Turner的code)
20.embeddedbitmap.diff:使Qt4尊重embeddedbitmap
至於 embolden,對岸似乎已有人提交upstream,且實作較複雜(aka 超過我的能有),所以暫時不管
belly
 

文章訪客 » 週六 7月 26, 2008 7:53 pm

google "pastebin" 把 patch 貼出來。

另外 push patch author 跟 upstream 溝通,比較實際。

很多 upstream 是只接受 patch author 本人交付 patch 的。
訪客
 

謝謝樓上訪客兄的意見

文章belly » 週日 7月 27, 2008 9:16 am

謝謝樓上訪客兄回應 我已經將patch 貼到 pastebin 上了

01.basic.diff : http://pastebin.com/m6ca6d582

029.ftlcdfil.diff: http://pastebin.com/m1f92f1ad

20.embeddedbitmap.diff: http://pastebin.com/m1d74d759

***********
說些題外話
之所以希望有人review 主要是因為 小弟不懂寫程式 所以不敢當patch author
希望有人自願review並作為patch author以 submit 到 favorite distributions(我不奢望upstream)
這樣我就不需要每次自己苦命打品質未知的補丁了
(qt4 編譯前 300mb 編譯後 2.4GB)
belly
 

文章belly » 週日 7月 27, 2008 9:27 am

再說些題外話好了
話說前幾次 在moto此處發文詢問 都沒人理
不過我只知道moto這裡(而且在我印象中 moto是個溫韾的園地啊)
所以仍在此發文請求幫助

我想 可能是因為我寫的都有些沒頭沒腦的
加上這些問題不大有人關心?(上一次貼文 關於hintstyle和rgba*
其實這問題仍有些重要性 不信請見ubuntu 8.10 blueprint其中一條關於 fontconfig的,這是癥結之一)
所以甚少人回吧?

*那一次我有到freedesktop提交bug report(還自己標severity=minor)
結果 至今 仍沒人理啊
belly
 

文章Franklin » 週一 7月 28, 2008 9:34 am

在台灣的 developer 比較少,尤其 Qt 或 KDE 相關的 developer 可能更是屈指可數,所以問到跟 qt 有關的東西,我想自然回應會比較少吧。

我自己只有在幾年前有小小研究過一下 Qt3,也曾試著寫過一個小程式看股票行情。Qt4 我到現在還沒碰過呢。
頭像
Franklin
懵懂的國中生
懵懂的國中生
 
文章: 171
註冊時間: 週五 6月 16, 2006 1:13 pm

感謝Franklin回應

文章belly » 週一 7月 28, 2008 1:18 pm

Update: 029.ftlcdfil.diff 改正glyphslot的metrics資訊錯誤
http://pastebin.com/m69a65b87
belly
 

文章belly » 週三 7月 30, 2008 11:39 am

Update:
增加偽粗體補丁

50.add-missing-style.diff:對沒有粗體的字型增加 bold style(參考既有補丁)
http://pastebin.com/m882fca3

55.synthetic-bold.diff:使用freetype 將需求的字畫加粗,和既有補丁不同,不使用FC_EMBOLDEN來判斷加粗與否
http://pastebin.com/m72afa47f

兩者需合用才有完整的偽粗體功能,另,關於補丁的次序,029.ftlcdfil.diff要最後才打,否則會有reject

並附上binary 供參考(自qt-x11-opensource-src-4.4.0 vanilla 加上以上所有補丁)
http://FileHost.JustFreeSpace.Com/263libQtGui.so.4.4.0
(有人知道哪裡有適合的temporary file hosting service嗎)

另外 所有diff的對象皆在 (workingdir)/qt-x11-opensource-src-4.4.0/src/gui/text/
影響的file包括以下:qfontdatabase_x11.cpp qfontengine_ft.cpp qfontengine_ft_p.h qfontengine_x11.cpp
(小弟第一次改程式,所以src/dst path有點奇怪,若因此patch不便請見諒*)

*不過無人反應,應該沒有人看過/使用這些patch吧? :(
belly
 

文章Franklin » 週三 7月 30, 2008 11:56 am

給你個建議,做這些事情自己高興就好,不必太在意有沒有人喜歡或甚至有沒有人在用。
像我做 KDE 翻譯一兩年了,絕少有人來跟我反應翻譯不正確的地方,不過我覺得那也無所謂。自己用這些事情來練功,做得高興就好。 :-)

另一方面是看看能不能把你的 patch 送回官方。
頭像
Franklin
懵懂的國中生
懵懂的國中生
 
文章: 171
註冊時間: 週五 6月 16, 2006 1:13 pm

感謝Franklin的建議

文章belly » 週四 7月 31, 2008 10:21 am

感謝Franklin前輩的建議,其實我不擔心沒人用,只怕補丁的質素不好。
Franklin 寫:另一方面是看看能不能把你的 patch 送回官方。

目前有意提交upstream(trolltech),但不得其門而入(其 bug tracker很怪,faq資料甚少難以摸索,不知從何取得 tasktracker account)

另一個想法
則是提交給愛用 custom patch 的 distribution(像是ubuntu),不過上次我在launchpad提了一個bug,過了一年才收到回覆 囧
(不過運氣不錯 package maintainer和upstream正好是同一人)

請問大家,這個想法可行嗎(或是有誰用過trolltech的tasktracker)
belly
 

文章訪客 » 週四 7月 31, 2008 3:23 pm

既然確定是 upstream 的問題,就應該 report to upstream。

這種美觀方面的 patch 最好附圖,並解釋為啥需要 patch。
訪客
 

文章siyuan.nz » 週日 8月 03, 2008 6:13 pm

感謝 belly 大提供那些 patch,我一直為 qt4 不支援內嵌點陣字、合成粗體、字距問題煩了好久,總算都差不多解決了。
現在只差一個小問題了,就是在 konsole 下打 ls,資料夾名稱尾巴會被切掉一點。一點小遺憾,但有了這些 patch 後,KDE4/Qt4 用起來比以前好太多了。

ignore-global-advance.diff:
http://pastebin.com/f77d2de5e
siyuan.nz
可愛的小學生
可愛的小學生
 
文章: 27
註冊時間: 週四 5月 31, 2007 3:57 pm
來自: 紐西蘭

感謝siyuan.nz回應

文章belly » 週一 8月 04, 2008 9:53 pm

感謝樓上回應。不過我不是什麼"大“,只是同樣為這類問題煩太久的、幾乎看不懂程式碼的end user,想著KDE4.1而不得不自力救濟。

至於konsole的問題,因為目前沒在使用,只能推測:我想可能和Qt4本身較沒關係?(不過已經很久沒用kde了,沒想到現在konsole還有問題 :/)

目前仍在尋找將補丁提交至上游的途徑。
belly
 

文章Franklin » 週二 8月 05, 2008 10:31 am

不然我幫你問問 Liang Qi 吧, 印象中他應該是有參與 qt 的開發, 在本站也有帳號. 目前我做 qt4 翻譯是他牽的線.

或是你丟個 email 來給我, 我給你他的 email 你親自去問問也可以.
我的 email
franklin at goodhorse dot idv dot tw
頭像
Franklin
懵懂的國中生
懵懂的國中生
 
文章: 171
註冊時間: 週五 6月 16, 2006 1:13 pm

文章Franklin » 週五 8月 08, 2008 7:55 am

不知道你有沒有收到我的 email。我看我的 email 寄到 yahoo 帳號會被退件的樣子,後來有補一封從公司寄的。

真的還沒收到,就用這個站台的私人訊息好啦。
頭像
Franklin
懵懂的國中生
懵懂的國中生
 
文章: 171
註冊時間: 週五 6月 16, 2006 1:13 pm

文章swyear » 週五 8月 08, 2008 8:54 pm

我在 openSUSE 11.0 上測試了一下,覺得不錯
詳細報告:
http://swyear.blogspot.com/2008/08/kde4 ... glish.html
http://swyear.blogspot.com/2008/08/kde4 ... tches.html
也將這些修正提交到 openSUSE bugzilla:
https://bugzilla.novell.com/show_bug.cgi?id=374066
大家可以關切一下
swyear
 

下一頁

回到 KDE 一般討論

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron