Kita - 2ch client for KDE
■ このスレッドは過去ログ倉庫に格納されています
0001login:Penguin
03/11/25 14:42ID:uhP0wE+x名前の由来はKDEの'K'に「板(board)」を加えたのと、キターー(゜∀゜)ーー!!から来てます。
Kitaのウェブサイト
http://kita.sourceforge.jp/
http://sourceforge.jp/projects/kita/
前スレ
おいお前ら! GTK+使ってLinux版かちゅーしゃ作れや
http://pc.2ch.net/test/read.cgi/linux/1022744633/
姉妹スレ?
おいお前ら! おちゅ〜しゃはどうですか?
http://pc.2ch.net/test/read.cgi/linux/1069623143/
0524login:Penguin
04/02/26 15:50ID:0ySR6oM+規制で遅くなりましたが、いつも感謝しています。
ありがとうです。
0525login:Penguin
04/02/28 01:44ID:CgaKDvPIスレに書き込みを行う際に、「キャンセル」を押すと確認のメッセージが英語で出てくるんですが、
これは仕様なのですか?(暫定?)
それとも僕だけなのかなぁ…。
0526login:Penguin
04/02/28 10:21ID:IYz/dG+Bお二方乙っす。
0527kitaの中の人 ◆KITAulkOso
04/02/28 10:56ID:5obZoigI>>525
翻訳サボってるだけですw
0528login:Penguin
04/02/28 14:10ID:/Of/lt+E160さんは
>KDEのバージョンが混乱してました。
ということで解決したそうですが、解決方法がわかりません。
どのように解決したのかを教えていただけますでしょうか。
gentoo+KDE3.2です。
/usr/kde以下には 3.1と3.2が存在します。
0529kitaの中の人 ◆KITAulkOso
04/02/28 14:32ID:5obZoigI翻訳しますた。
>>528
こんからサイドバーはKDE3.2に対応してないです。
>>452の方法でstandaloneアプリだけインストールしてください。
(´-`).。oO(k2chの中の人戻って来ないかな...)
0531login:Penguin
04/02/29 01:29ID:Sdp5+esa0532421
04/02/29 02:58ID:ojTFTviLttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-b9.tar.gz
Readmeを3/4位書きました。それとKitaナビなる謎の機能を搭載させてみたり・・・
0533kitaの中の人 ◆KITAulkOso
04/02/29 18:10ID:IOHDwo5l今回はコードの整理と翻訳くらいです。
あとは「まちBBS」のスレ一覧表示を実装しました。
スレは表示出来ないのでブラウザで表示させてください。
>>531
とりあえずその線でいきます。
保守してないのでデフォルトはoffかな。
0534522
04/03/01 07:53ID:4ZJW/Jntありがとうございます。
早速使ってみますね。
0535login:Penguin
04/03/01 13:54ID:ECCfJRgj報告:knoppixで動いた。
0537login:Penguin
04/03/01 23:46ID:fUtRFwpO> ここ読んでみたんですが、まちBBSはDAT直読みが不可能みたいですね。
他のブラウザの場合はHTMLをDATに変換しているみたい。
まちBBSのソースを見たところ結構簡単な構造をしていたので
QStringの機能をうまく使えば数行くらいでフィルタが作れるん
じゃないかなあ。いや、良く知りませんがw
0538login:Penguin
04/03/02 19:04ID:4jDHFUY8サンクス
fedora上でさっそくmakeしてみた。
一ヶ所エラーがでたが、コメントにして強引に通してまった
なんか問題あるかな w
--->
kitathreadtabwidget.cppの最後の行でshowInfoなんかないよというエラー
で今kitaでレス機能を使って書いている。素晴しい。
一応動作しているから気にしない....w
0539login:Penguin
04/03/03 23:04ID:dif6d9Y7改良スレッドビュー Ver.2ベータ13
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-b13.tar.gz
Makefileをいじったので./configureする前に上書きしてください。まだ調整していませんが
0.102.1でも動きます、一応。
0540421
04/03/03 23:07ID:dif6d9Y7>>538
>kitathreadtabwidget.cppの最後の行でshowInfoなんかないよというエラー
そこは単にタブの切替えを感知してるだけのところなので消しても全然害は無いです。
0541kitaの中の人 ◆KITAulkOso
04/03/05 00:38ID:OF7cH7KUなるほど。ソースのHTMLを見ましたが、解析は楽そうですね。
とりあえず速度無視で正規表現使っててきとーに実装してみます。
>>421
機能がかなり多いのでそろそろmerge始めた方がよさそうですが、
適当にやっちゃっていいですか?
0542421
04/03/05 23:42ID:7igcOUC7/part以下はもう少し触りたいので一週間程待ってください。
これ以上変更予定の無い/libkita/access.cpp,h とkitathreadtabwidget.cpp.h
は既存のコードに影響を与えないのでマージしても問題ないと思います。ただダミーで
void KitaThreadView::showStatusBar(QString info){}; という関数を付け加える
必要がありますが。
0543login:Penguin
04/03/07 09:00ID:FTnDNaj7navi2chとおちゅーしゃも使ってますが・・・
0544421
04/03/08 00:47ID:IezEjTJNttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-bf.tar.gz
大幅な機能追加は一応これで打ち切って、今後は細かい調整とデバッグとソースとドキュメントの
整理に移ります。スケジュールとしては木曜か金曜あたりにRC版を出してとりあえず拡張は終わりに
します。その前に出来るだけバグは潰しておきたいので興味のある人は協力お願いします。それと細
かい機能追加ならまだ間に合うのでこういう機能が欲しいという人は今のうちに言って下さい。
0545login:Penguin
04/03/08 10:30ID:sqDCBA1T0546login:Penguin
04/03/08 12:47ID:TzNNCEgG中ボタンクリックで新規タブにしてほしい
あと、スレ内で別のスレへのリンククリックすると
しょっちゅう固まるようです。
(dat落ちしているときにそうなるのかな)
0547login:Penguin
04/03/08 15:13ID:sqDCBA1Tなんで?
Janeみたいにして欲しいなって思ったんだけど
0548VineでKDEをパケジしてる人
04/03/08 15:24ID:bzh18E9jパケジにして、VinePlusにうpしました。
kita-0.102.1-0vl3.src.rpm
0549login:Penguin
04/03/08 15:35ID:YoMswNWm別にデフォルトじゃなくたっていいだろ。
むしろそっちがデフォルトじゃなきゃならないのが「なんで?」って感じだな。
0550login:Penguin
04/03/08 16:04ID:sqDCBA1Tなにイライラしてんの?
0551login:Penguin
04/03/08 16:26ID:JzTj4Ll+中ボタンでのクリックがあるんだからそれ使えばいいだけじゃん。
unixではそれが普通だし
別にwindowsに倣う必要は無いだろ。
通常のクリックと中ボタンクリックを使い分ける方が効率的。
で、
これを踏まえた上で通常クリックで新規タブを作成するようにするメリットを述べよ
0552login:Penguin
04/03/08 16:29ID:GdusSd4+KDEのガイドラインに従って第2ボタンで新規タブのほうが自然だと思う。
OpenJaneも使ったことあるけど、あっちのほうが不自然な感じがする
0553login:Penguin
04/03/08 16:30ID:GdusSd4+0554login:Penguin
04/03/08 16:31ID:2s+KIGZdwin厨が何でもwindowsと同じ挙動にしないと気がすまないのはいつものこと。
実装するかしないかは、中の人にまかせれば良し。
0555login:Penguin
04/03/08 16:36ID:JzTj4Ll+まぁそうなんだけどね…
ちなみにおちゅ〜しゃの方は中ボタンクリックで新規タブ作成になってる
0556login:Penguin
04/03/08 17:13ID:78y6kEPE他のページや画像がタブで開ける方がいいなぁ
KViewやKHTMLのpart埋めればできそうだし
と言ってみるテスト
ついでにバグ報告
kitathreadview.cpp:200あたり
.arg( KitaConfig::threadFont().pointSize() )
- .arg( KitaConfig::font().family() )
+ .arg( KitaConfig::threadFont().family() )
.arg( KitaConfig::threadColor().name() )
.arg( KitaConfig::threadBackgroundColor().name() );
0557login:Penguin
04/03/08 17:57ID:rXBEJ+v30558login:Penguin
04/03/08 18:05ID:GdusSd4+shobonviewで上下にでる
全部 1- 101- 201- 301- 401- 501-
のような部分表示選択は、スレリロードボタンの右あたりに
ComboBoxで実装してほしいです。
0559421
04/03/09 00:58ID:qZAXLWPnありませんか? ノーマルのKitaでもたまに落ちるし、画像のサイズを変更したり
ホイールでスクロールさせてる時にも落ちたことがあるのでKHTMLの仕業だと
思うのですが(表示イベントが起きたときに何かの拍子で落ちる?)、AAのズレみ
たいにこちらの工夫で回避できるかもしれないのでそういう状態になったときは
環境とその時の状況などをお知らせください。
しかし、いじればいじる程KHTMLが嫌いになってくなあ(w
>>558
ComboBoxとかのGUIのパーツ周りは中の人に任せようと思っているので中の人
に頼んで見てください。ただ個人的にはツールバーにあまりペタペタとボタンとか
を貼るのは好きでなかったり・・・
0560login:Penguin
04/03/09 01:04ID:wQ7jDuusあってもいいような気がするきょうこのごろ
0561login:Penguin
04/03/09 01:25ID:pZoWgbiyそういうのはあんまりないなあ。。
うちの環境(KDE3.2onFedora)だとKHTMLはきわめて安定している
0562kitaの中の人 ◆KITAulkOso
04/03/09 01:36ID:rVKcJlrWKDEのガイドラインを優先したいので、とりあえず中ボタンで実装します。
>>556
thanks. commitしますた。
>>558
とりあえず採用。ボタンが増えるのはよろしくはないですが、
どこにいてもジャンプ出来る機能はあるとよさそうなので。
>>421=shobonの人
うちの環境ではスレ表示で落ちたことはないです。
なぜか書き込みダイアログを閉じたときに落ちることはありますけど。
あと、kitashobonですが、Kitaのライセンスは「GPL2」でなく「GPL2 or later」なので、
もしよければ変えてもらえませんか?
0563421
04/03/09 01:58ID:CeJkSuIrのが悪いのか。たまにウィンドウマネージャ自体が飛ぶし(w
ライセンスは自分の書いたコードはパブリックドメインにしても良いや
とさえ思っているのでKitaに合わせます。
0564421
04/03/10 00:24ID:BOtMMJgT↓ スレッドビュー表示(スレッドビュー上ではKitaナビ表示)
↓← イメージKitaナビ表示
↓→ (分離していたら)サブジェクトビュー表示
← 前のタブに移動
→ 次のタブに移動
←↑ タブを閉じる
←↓ リロード (スレ、Image)
→↑ 先頭に移動 (スレ、Navi) 、 ズームイン (image)
→↓ 最後に移動 (スレ、Navi) 、 ズームアウト (image)
(スレ: スレッドビュー、 Navi: Kitaナビ, Image: イメージKitaナビ)
って感じにしようと思っているのですが、他に何かこのアクションは必要だとか
このコマンドはこっちの方が良いという意見があったら言って下さい。しかし
マウスジェスチャを考えた人は天才だなと思う今日このごろ・・・
あとついでに前から気になってた>>410の(4)のバグも直しときました。
0565kitaの中の人 ◆KITAulkOso
04/03/11 01:07ID:bFhcvi2WFedora Core 1にKDE 3.2.1を入れてみたけど、いろいろバグってたり直ってたりしますねぇ。
0566421
04/03/13 00:49ID:AUygDdU0できてないのと、KDE3.2.1に対応中というのと、今日飲み会があって7時位から今ま
で飲んでいたのと、明日映画に行く約束したということで2,3日遅れそうです。
でKDE3.2.1ですが、例のAAズレバグが修正されていたためデフォルトではズレの
補正をOFFにすることにしました。3.2.0以前を使用する方はオプションでONにする
必要があります。それと>>559のバグですが、make clean してmakeしなおしたら
直りました。そういうものか(w
0567login:Penguin
04/03/14 23:20ID:T9pH9oIbttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-prc.tar.gz
とりあえずデバッグとコード整理はほぼ終了しました。じゃあ何で「プレ」がついてるか
というとちょっとだけ仕様が変わりまして・・・・
(1) KDE3.2.1対応
APIも3.2系に準拠してるので3.1系で互換性の問題がでるかも。
(2) datファイルの保存先を$KDEHOME/share/cache/k2ch以下に変更
従来はKonquerorと同じ所に保存していたため>>497みたいないろいろヤバい
問題が生じてたのですが、応急処置として保存先を変えてみました。ただあくまで
応急処置なので根本的な処置は中の人のキャッシュの改良待ちということで。
ってことで4,5日様子を見てみることにしました。特に問題がなければドキュメントを清書して、
若干残っているデバッグのチェック項目を消化してRC版になると思います。
0568421
04/03/14 23:23ID:T9pH9oIb0569login:Penguin
04/03/15 15:32ID:WmVxb/dY解決法ご存じの方いましたら教えて下さい。
0570kitaの中の人 ◆KITAulkOso
04/03/15 22:00ID:tLKIbE7bhicolor -> crystalsvg(自分の使ってるテーマによる)に変えればとりあえずOK。
うちはFedora Core 1 + KDE 3.2.1(ftp.kde.orgの)を使ってるのですが、
なんかKDEのバグなんだかFedoraのバグなんだか分からん状態なので
これでしのいで下さい。とりあえずFedora Core 2 Test 2が出るまでは。
0571421
04/03/17 23:56ID:ejq12TwKttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-rcf.tar.gz
一応完成な訳ですが、以前書いたようにこのままコンパイルするとKDE3.2.0以前の
環境ではAAがズレますので shobon-cfg.h で m_showAA = TRUE としてからコンパイル
してください。もちろんレンダリング速度は低下しますが。
あとは2chブラウザで必要だと思われる機能は大体付けておきましたが、他スレへの
アンカーポップアップはキャッシュ周りの処理が関わってくるのでまだ実装していません。
今後の課題ということにさせて下さい。また今後デバッグなどでパッチを出すときはこの
バージョンをベースとして出すことになります。
ま、そんなところで。
0572login:Penguin
04/03/20 18:26ID:sRNN8eRBそれがないと乗り換えられないYO。
0573kitaの中の人%愚痴モード ◆KITAulkOso
04/03/20 19:27ID:2Bp37P/t>>571をマージしないと先に進めません(進む気力もありません)。
でもパッチが大きすぎるのでまともにチェックしてたらマージするのに数ヵ月かかるでしょうね。
0574572
04/03/20 20:36ID:sRNN8eRBそうでつか・・・。じゃ、未定ってことですね。
ただいま別件でQt勉強中なので、そのうちお手伝いできればとは
思ってるんですが、いまのところはとてもとてもな状態です。
では、がんばってください。
0575421
04/03/21 00:20ID:YM+I6+22コード量が多すぎて怒らせてしまったか・・・_| ̄|○
どうも気分が乗るとコードを書くスピードが上がるという悪い(?)癖
が出てしまったもので・・・
まあ、何かこの処理や関数の意味が分からないとか疑問点があったら
すぐ尋ねてください。それと必要ないと感じた機能なら削っても構いません
し、マージのためのパッチ書きならいくらでも協力しますので無理しないで
マタリと作業してください。
0576login:Penguin
04/03/21 15:55ID:mgRAAi4i./configureの前に
export DO_NOT_COMPILE=k2ch_module しとく
DO_NOT_COMPILE=k2ch_module ; ./configure でもおkかな?
>>452 でもダメな人はお試しあれ
0577kitaの中の人 ◆KITAulkOso
04/03/21 23:45ID:Zvl2PTxQいや、まあ、早めに言わなかった自分が悪いのですが。とりあえず、
機能別にパッチが欲しいのと、アーカイブでなくてdiff -c形式で欲しいです。
とりあえずレンダリングと引用してカキコの部分があると助かります。
>>576
CVS版にはその修正入れてます。
--enable-sidebarを付けなければDO_NOT_COMPILEがセットされます。
CVS版ではk2ch_moduleだけでなくk2ch_protocolもコンパイルしないようにしてますが、
k2ch_protocolは分けた方がいいですか?
0578421
04/03/22 00:39ID:x/hO8PDj了解です。それ以外の機能のコードは削除した方が良いか #ifdef?#endif
でコメントアウトしておいた方が良いか教えてください。とりあえず
レンダリング部分(画像除く)
引用
のところだけでよろしいですか?
それとレンダリング部分はほとんど新規に書き起こしたのでdiffはあまり意味が
無い気がしますが、既存のコードをいじったところはdiff形式にしときます。
0579VineでKDEをパケジしてる人
04/03/22 00:47ID:uJDvg38Y確認しました。GJ!
Vine2.6環境でKDE-3.2.1とkitaを動かしてます。
まだリリースできないんで、もすこしお待ちを。
>>577
中の人、kitaは使いやすいんでがんがってくだされ。
421氏もがんがれ!
0580login:Penguin
04/03/22 01:43ID:IRC6XAmtVine2.6環境でKDE&kita愛用させていただいています。
いつもありがとう!
0581login:Penguin
04/03/22 12:16ID:XXqHuue8かちゅ〜しゃだと板の移動先を検索してくれるんだけど、linux板をクリックしても古い板のままなんで。
デザインはいいとして、2channel.brdとの互換性もないし使い難いんだが(゚Д゚ )ゴルァ!!していいですか?
0582login:Penguin
04/03/22 16:00ID:V+epzDig0583login:Penguin
04/03/22 16:13ID:V+epzDig0584576
04/03/22 18:00ID:k28kuMaa>>577
> CVS版ではk2ch_moduleだけでなくk2ch_protocolもコンパイルしないようにしてますが、
> k2ch_protocolは分けた方がいいですか?
k2ch_protocolはどうもk2ch_moduleに依存してるのか
k2ch://pc3.2ch.net/test/read.cgi/linux/1069738960/を読み込み中にエラー:
k2ch://pc3.2ch.net プロトコルのプロセスが突然落ちました
とかいわれて使えなくなるようなのでそのままでいいみたいですね
0585kitaの中の人 ◆KITAulkOso
04/03/22 23:44ID:/qLAcG3Eとりあえずお気に入り/既読情報は移行出来るようにする予定。
>>581
2channel.brdって初めて知りました…。
0586421
04/03/23 00:06ID:9uiDV1AS(1) レンダリングまわり
(1.5) 2以降のための下準備
(2) 書き込み時プレビュー (#define SHOBONEXT_PREVIEW)
(3) インライン画像 (#define SHOBONEXT_INLINEIMG)
(4) Kitaナビ (#define SHOBONEXT_KITANAVI)
(5) 画像Kitaナビ (#define SHOBONEXT_IMGKITANAVI)
(6) マウスジェスチャ( #define SHOBONEXT_MOUSEGT)
うしろのdefineはshobon-ext.hの中にあります。で、今回は
ステージ1のレンダリング関係のパッチです。というか最初にして
一番マージが難しい部分だったりするんですが・・・。まあ何か良く
わからない点があったら尋ねて下さい・・・。
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/shobonmg1.tar.gz
0587kitaの中の人 ◆KITAulkOso
04/03/23 01:13ID:YASGihYIhttp://kita.sourceforge.jp/screenshots/screenshot-replace.png
のように手動で設定する必要がありますが、とりあえず動いているようです。
お気に入りと、スレの既読数の情報が対応してます。HTTPのキャッシュは対応しません。
近日中に次のバージョン出します。
>>586=421
thanks.あとで見てみます。
0588kitaの中の人 ◆KITAulkOso
04/03/23 20:44ID:YASGihYI・ --enable-sidebarオプションの追加
・ 鯖移転に一部対応>>587
Linux板の場合、
置換元: http://pc.2ch.net/linux/
置換先: http://pc3.2ch.net/linux/
と入力してください。
0589421
04/03/23 23:04ID:hs6WMwtgttp://www.geocities.co.jp/SiliconValley-Bay/7435/kitashobon2-rcf2.tar.gz
kita0.103.0対応版です。最初は>>571との差分だけ配布しようと思ってたのですが、
機能分割のために細かくいじったところが多かったので全体配布とします。
ちなみにこれと>>586のパッチとのdiffは
part/kitathreadview.cpp
< .arg( KitaConfig::font().family() )
---
> .arg( KitaConfig::threadFont().family() )
のとこだけです・・・
あとKDE3.2.1で cd kita しなくても make が通るようになってますね。
0590kitaの中の人 ◆KITAulkOso
04/03/24 23:08ID:S6l/GggXとにかくファイルサイズを小さくしてください。
10Kか、せいぜい20K程度でないとコードを見るのは無理です。具体的には、
・ファイルの追加は基本的に行わないでください。
kitathreadview2.cpp -> kitathreadview.cpp
kitahtmlpart2.cpp -> kitahtmlpart.cpp
kita-spHtmlChar.h -> kitadomtree.cpp
などにそれぞれ取り込んでください。kitadomtree.*は一つのクラスなのでいいです。
・#defineで囲まれている部分(2)-(6)のコードをばっさり取ってください。
kitathreadview2.cppはこれでサイズが半分になります。
・fprintfの残骸とか、元のコードと区別付けるための/*-----*/のようなのも削除してください。
・それでも駄目なら、createTugi100とか、機能を削っていいので、必須でないコードを削ってください。
パッチは小さければ小さい程いいです。速度は優先度を最低にしてください。
・あと、インデントは4スペースで整形してください。
KDevelopを使う場合は、カッコ→Linuxスタイル、パディングは両方ともチェックしてください。
ちょっと注文が多くなりましたが、よろしくお願いします。
0591kitaの中の人 ◆KITAulkOso
04/03/24 23:21ID:S6l/GggX> パッチは小さければ小さい程いいです。速度は優先度を最低にしてください。
これは難しそうならこちらでなんとかします。
あと出来たら、KitaHTMLPart::parseHTMLdat() をchar*を使わないように修正してください…。
0592421
04/03/25 02:36ID:9BqD+CZBttp://www.geocities.co.jp/SiliconValley-Bay/7435/shobonmg1.1.tar.gz
> 10Kか、せいぜい20K程度でないとコードを見るのは無理です。具体的には、
うーん、レンダリング部分はコード量が多くなってしまうので、どうしても4,50k
位になってしまいますねえ・・・。ここを過ぎればコード量はガクンと減るんですが・・・
> ・ファイルの追加は基本的に行わないでください。
> ・#defineで囲まれている部分(2)-(6)のコードをばっさり取ってください。
> ・fprintfの残骸とか、元のコードと区別付けるための/*-----*/のようなのも削除してください。
やっておきました。
> ・それでも駄目なら、createTugi100とか、機能を削っていいので、必須でないコードを削ってください。
> パッチは小さければ小さい程いいです。速度は優先度を最低にしてください。
速度というかレスポンス重視で設計したのであまりこの辺は削りたくなかったりするのですが、
まあ、逆に言えば特にこだわりも無いので好きに削って頂いても構いません。
> ・あと、インデントは4スペースで整形してください。
> KDevelopを使う場合は、カッコ→Linuxスタイル、パディングは両方ともチェックしてください。
私はemacsの人なのでこの位のインデントで丁度良いんですが、インデントは中の人が
見やすいように自由に変更してくださっても構いません。
他にも何か問題があったら対処するので言ってください。(でも4月になると少し忙しくなるので
若干レスポンスが悪くなるかもしれないなあ・・・)
0593login:Penguin
04/03/25 12:14ID:zIQj/Y2/0594login:Penguin
04/03/25 12:18ID:eU25PJ980595login:Penguin
04/03/25 13:06ID:Ylp1F6VHkitaの開発体制ってどうなってるの?
0596login:Penguin
04/03/25 13:15ID:gc7Gn1cQ0597login:Penguin
04/03/25 15:47ID:MTwWmGhh0598login:Penguin
04/03/25 15:53ID:DYvxYoVv機能単位で複数の小さなパッチに分割して送るべきってことでしょ。
Linusも同じこと言ってたりする。
0599login:Penguin
04/03/25 15:54ID:MTwWmGhhごめんごめんわかってるってw
0600kitaの中の人 ◆KITAulkOso
04/03/26 00:32ID:ng8rt+M5thanks. そのサイズならなんとかなります/します。
> 速度というかレスポンス重視で設計したのであまりこの辺は削りたくなかったりするのですが、
> まあ、逆に言えば特にこだわりも無いので好きに削って頂いても構いません。
とりあえずブランチを切ってmergeしてみましたが、かなりレンダリングは速いですね。
速度的にcriticalなところがあれば教えてください。そこは出来るだけ変更しないようにするので。
>>595
2人ですけど実質一人です。k2chの中の人は最近みないので…。
0601421
04/03/26 02:26ID:/RjQAN7A> 速度的にcriticalなところがあれば教えてください。
特にクリティカルなとこは無いです。というかソースを見れば分かると思いますが
結構力ずくな部分が多いですw
それでレンダリングを行っている class KitaDomTree の理解を助けるため、
ちょっとだけ付属ドキュメントの補足としてレンダリングの流れを説明してみます。
なお、以下の説明では
構文解析(パース) = (DOM)ノード作成
という用語を混合して使っていますが、構文解析とノード作成は同時に行っているので
これらを同一視しても問題ないです。
0602その1
04/03/26 02:29ID:/RjQAN7A(1) はじめに parseResInit で初期化します。ここで変数を
リセットしたり、ここまで読んだとかヘッダとかのノードを作成します。
(2) 次に setDat で2chのdat形式の生データをレスごとにコピーします。
QString line が構文解析前のデータで、int num がバッファ番号です。
この段階ではまだレスノードは作成されていません。
(3) 次に appendRes で指定したレスのノード作成とappend を行います。
実際には appendRes の一行目から checkIsNumValid が呼ばれ、さらに
checkIsNumValid の中から parseRes が呼ばれてデータの構文解析とレス
ノードの作成が行われます。ノードが出来たらそれをルートの
KitaHTMLPart::htmlDocument().body() ノードにappendします。
(4) その parseRes で名前やIDなどのタイトルノードと本文ノードを作成します。
ここで parseRes は public なので checkIsNumValid 経由ではなくて
外部から直接呼び出すこともできます。int num が(2)の setDat で指定した
バッファの番号、int resnum が実際に表示されるレスの番号で、
普通は num = resnumで良いんですが、別々の番号にすることも出来ます
(今回のパッチではありませんが、書き込み時のプレビューではこのトリックを
使っています)。
(5) appendFooter とか appendKokoyon を呼んでフッタとか
ここまで読んだノードをappendします。
(6) 最後に KitaThreadView::update_finish で
m_threadPart->htmlDocument().applyChanges();
m_threadPart->view()->layout();
により KHTMLView にレンダリングするように命令します。 (つづく)
0603その2
04/03/26 02:35ID:/RjQAN7Aさらに姑息なことをやっていまして・・・
(トリック 1) 全部のスレを一度には表示しない。
kitadomtree.h に
1 <-- show --> m_templateNum <-- not shown -->
m_topNum <-- shown ---> m_bottomNum <-- not shown --> m_maxNum
みたいな記述があると思いますが、日本語でわかりやすく書くと、
・1番 から m_templateNum 番のレスまでは表示
・m_templateNum+1 から m_topNum-1 番までは非表示
・m_topNum から m_bottomNum 番までは表示
・m_bottomNum+1 から m_maxNum 番までは非表示
という様に、初めてスレを表示するときは、先頭から m_templateNum 個のスレと、
ここまで読んだ周辺のm_bottomNum - m_topNum +1 個の
計 m_templateNum + m_bottomNum - m_topNum +1 レスしか表示しません。
これが KitaThreadView::update_rendering の
/* This thread is not shown */
以下で行っている内容です。例えば初めて update_rendering を呼んだときは、
bottom = m_domtree->getBottomResNumber() = -1
がセットされるので、順に
(a) bottom = QMAX(0,prevReadNum-m_preShowNum);
(bottom = ここまで呼んだの番号 - m_preShowNum がセットされる)
(b) m_domtree->appendTemplate();
(1から m_templateNum 番までレス表示) (つづく)
0604その3
04/03/26 02:38ID:/RjQAN7Am_domtree->appendRes(i,FALSE);
(ここまで読んだ - m_preShowNum 番から ここまで読んだの前までレス表示)
(d) m_domtree->setKokoyonNum(prevReadNum);
(ここまで読んだ を表示)
(e) for( int i = prevReadNum+1 ; i<= QMIN(prevReadNum+m_afterShowNum,maxres); i++)
m_domtree->appendRes(i,FALSE);
(ここまで読んだ +1 から QMIN(prevReadNum+m_afterShowNum,maxres) までレス表示)
(f) KitaThreadView::update_finish() の中でフッターや前100や次100などを追加して
m_threadPart->view()->layout(); でレンダリングを実行して終わり。
というように処理が進みます。よってこの段階では最大で
m_templateNum + m_bottomNum - m_topNum +1 個の
レスしか表示、つまり構文解析=ノード作成をしていないのですが・・・
(トリック 2) 表示後にバックグラウンドで残りのレスのノードを作成
要するに、表示していないレスはユーザーがスレを読んでいる間に裏でこっそり
構文解析しています(w 具体的には KitaThreadView::update_rendering の最後で
m_domtree->parseAllRes();
により KitaDomTree::parseAllRes を呼び、そこで QThread から派生させた
KitaRenderThread を start させます。KitaRenderThread::run の内容は単に
全てのスレに対して parseRes を呼んで構文解析しているだけです。
・・・とまあ、こんな風にレンダリングを行っている次第です。この説明が
少しでもお役に立てれば幸いです。
0605login:Penguin
04/03/27 21:51ID:89x9eFqmKita いいな、Linux用2chブラウザの中じゃ俺的最高ケテーイ
0606login:Penguin
04/03/29 11:43ID:JaqJGgKZkitaしばらく使ってたけど、やっぱ ochusha に戻ったよ。
0607login:Penguin
04/03/29 12:50ID:RVEtx9W10608login:Penguin
04/03/29 13:22ID:6oXts0oK0609login:Penguin
04/03/29 13:23ID:tZSpkpV60610kitaの中の人 ◆KITAulkOso
04/03/29 22:56ID:E8WbNre3とりあえず先に簡単そうなlibkita以下だけ見ました。2ヶ所だけ質問。
・キャッシュのヘッダは取り除いてるようですが、これは意図的なものですよね?
readCacheHeader()が呼ばれてないのでちょっと気になったのですが。
これはこれでいいですが、フォーマットが変わるならキャッシュの保存先を
変えた方がいいかなと思うので。~/.kde/share/cache/k2ch は既に使われてるし。
・Access::enter_loop() でなくてQApplicationのenter_loop()を呼んでいるようですが、
これによって何か挙動は変わります?
qApp->enter_loop()でもとりあえず問題なさそうですが。
自分もnetaccess.cppからコピーしただけだし。
0611login:Penguin
04/03/30 00:32ID:+VDg3SlAaccess.cpp で追加したところはほとんどオリジナルのソースに少し
手を加えただけのものになっています(writeCacheData2はちょっと変えたかな?)
Access::get()を見れば分かるように、getcache()でキャッシュから
データを読んで、getupdate()で差分をロードって感じですね。
で、getupdate()はオリジナルのget()をほとんどコピペしただけです。
> ・キャッシュのヘッダは取り除いてるようですが、これは意図的なものですよね?
> readCacheHeader()が呼ばれてないのでちょっと気になったのですが。
> これはこれでいいですが、フォーマットが変わるならキャッシュの保存先を
> 変えた方がいいかなと思うので。~/.kde/share/cache/k2ch は既に使われてるし。
ヘッダは別にいらないと思ったので省きました。ただ保存先の場所も含めて、その辺の
処理は>>567に書いたようにあくまで暫定的にそうしただけなので、その辺は都合に合わせて
適当に処理しておいてください。
> ・Access::enter_loop() でなくてQApplicationのenter_loop()を呼んでいるようですが、
> これによって何か挙動は変わります?
> qApp->enter_loop()でもとりあえず問題なさそうですが。
> 自分もnetaccess.cppからコピーしただけだし。
この辺は最初の頃いろいろ試してたときの名残なんですが(w、いまのところ直接 qApp->enter_loop()
を呼んでも問題ないようですが、ひょっとしたら何か問題あるかもしれないので、
Access::enter_loop() に戻しておいた方が無難かもしれませんね。
まあ、他にも何かあったら遠慮なく尋ねてください。
0612login:Penguin
04/04/01 12:51ID:mZ9FdjqCするのだが、互いにメールアドレスを知らせてないのかな?
意味がわからないなりにおもしろいけど・・・・w
0613login:Penguin
04/04/01 20:11ID:GTLs7w9jあと常用させて貰ってます。kita便利。ありがとう。
0614login:Penguin
04/04/01 21:03ID:F6DFgkXQ2ch的なプロジェクト運営もおもしろいかも . . .
0615kitaの中の人 ◆KITAulkOso
04/04/04 02:14ID:kpvPn0Pblibkita以下は他にはほとんどいじってないです。
あと、part以下の小さいメソッドをチェックしてるのですが、
filterReadCGIとかほとんど変わらないのは_org付けないでください…。
っていうかm_orgrenderはいらないです。
>>612-614
自分にとってはメールより2chの書き込みの方が楽なんでw
0616421
04/04/04 19:58ID:tWEfMCOG> filterReadCGIとかほとんど変わらないのは_org付けないでください…。
> っていうかm_orgrenderはいらないです。
その辺は互換性のため残していただけですので、必要なければ_orgがついて
る関数は削除しても支障はありませんので、適宜削除しておいて下さい。
>>612-614
個人的に、メールみたいなクローズなシステムよりもBBSやwikiみたいな
方が好きなもんで・・・
0617login:Penguin
04/04/08 17:16ID:o8rPRnqY見事です。素晴しいです。いやほんとに。
しかし、要望が二点程
1。スレにしても板にしても、「新しいタブで開く」をデフォルトにしてもらいたい。
2。書き込みに失敗した場合、書き込み内容を保全してもらいたい。
以上
いやしかし、ほんとに素晴しいです。kitaは。
0618login:Penguin
04/04/08 17:30ID:PbR+Uzp3KDEガイドラインに従って第3ボタンで新規タブで開くようにする
という議論が上でされていたと思います。
2
これは私も同意。
0619login:Penguin
04/04/08 18:33ID:o8rPRnqY1. すんません。過去ログきちんと読んでませんでした・・・
なるほどね。妥当ですな。また、KDEのアプリケーションとして
あるべき方法でしょうな。
ありがとうございました。
しかし、別に粘着するつもりではないのですが、新規タブで開くことを
デフォルト仕様にしなかったのでしょう?
苦情じゃないんですよ、ただ、ちょっとした好奇心です。
0620login:Penguin
04/04/08 19:48ID:PbR+Uzp3違和感を覚えます。
KonquerorやMozillaに限らずWin32アプリのSleipnirもそうですが、
意図的な指示がない限りは現在のビューで開く というのが一般的なソフトウェアデザインなのでは
ないかなと思います。
0621kitaの中の人 ◆KITAulkOso
04/04/08 22:33ID:z+APsf6x> 2。書き込みに失敗した場合、書き込み内容を保全してもらいたい。
書き込みにいく前に
~/.kde/share/apps/kita/log.txt
にログを書く仕様にしてるので、今はそれで何とかして下さい。
>>619
> しかし、別に粘着するつもりではないのですが、新規タブで開くことを
> デフォルト仕様にしなかったのでしょう?
Windowsで自分が使ってたA Boneがそういう仕様だったからです:)
要望が多いのでOptionalにはする予定ですが<予定ばかり溜まりすぎ
0622login:Penguin
04/04/08 23:11ID:o8rPRnqY>>619です。
直々のご回答ありがとう。
書き込み保全の件、りょーかいです。それでしのぎます。
> Windowsで自分が使ってたA Boneがそういう仕様だったからです:)
あはは。そういやそうですね。 A Boneは。
で、>>620氏のご指摘はその通りだとおもうのですが、
2chブラウザって、使用形態から考えて、新規タブ開けがニーズ多いと思うんですよね。そんなことないですかね。
> 要望が多いのでOptionalにはする予定ですが<予定ばかり溜まりすぎ
ぼちぼちゆるーい感じで頑張って下さい。応援してます。何もできませんが・・・
0623kitaの中の人 ◆KITAulkOso
04/04/10 01:27ID:9b20YO0Oアルゴリズムはほとんど変えてませんが、「今」必要ないものは徹底的に削っているので、
新規にパッチを作って下さい。>>421氏
今「新規タブで開く」オプションを付けているので、それが実装できたら次のバージョン出します。
まだ終了時にsegfaultすることがあるのですが、ちょっとリリース間隔空きすぎてるので。
砂時計が出てるのに操作は出来るので、
スレッド関連が怪しいかなぁと思ってますが調べてません…
# 今日は日本語がおかしいなぁ。
■ このスレッドは過去ログ倉庫に格納されています