トップページ⇒linux
976コメント637KB

Kita - 2ch client for KDE part2

■ このスレッドは過去ログ倉庫に格納されています
0001kitaの中の人 ◆KITAulkOso 04/07/16 00:31ID:IZzU7SYf
KitaはKDE用2ちゃんねるブラウザです。
名前の由来はKDEの'K'に「板(board)」を加えたのと、キターー(゜∀゜)ーー!!から来てます。

Kitaのウェブサイト
http://kita.sourceforge.jp/
http://sourceforge.jp/projects/kita/

Kita Wiki
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi

前スレ
Kita - 2ch client for KDE
http://pc5.2ch.net/test/read.cgi/linux/1069738960/

前々スレ(DAT落ち)
おいお前ら! GTK+使ってLinux版かちゅーしゃ作れや
http://pc.2ch.net/test/read.cgi/linux/1022744633/
028127004/10/01 15:16:30ID:NGjbcaUM
おっと、アイコン職人続出ですね。
みんな巧いね。 個人的には中の人のより、279のが好き。
でも、「Kメニューとの一体感」ってことで、280の クリスタルSVG対応版に超期待。

って、偉そうにいってるけど、俺何様のつもりだよ。
0282login:Penguin04/10/01 17:10:25ID:R0dzGM+Y
>>280
キモ(・∀・)イイ!!
028327904/10/01 18:05:27ID:jZ1LaH6o
ちょっと位置が下すぎたので修正したのに差し替えました
0284login:Penguin04/10/01 19:55:47ID:cBwso+P2
>>274
うpうp
0285login:Penguin04/10/01 21:49:45ID:h8nDgMcS
漏れもアイコン作ってみましたー
ttp://fellows.freespace.jp/dock/img/114.zip
128*128推奨です。一番小さいやつとかかなり無理してますorz...
0286login:Penguin04/10/02 17:17:23ID:T8NdU/OK
アイコンの話をしているところに割り込んですみません。書き込みについての要望です。

名前のデフォルトがfusianasanな板(狼)に出入りしていまして、
幸いにもこれまでホスト名を晒してしまった事は無いですが、「あっ名前入れたっけ?」と
送信後ブラウズ画面が出てくるまで時折心配になります。そこで、

・名無しの場合、プレビュータブの名前欄に(default name)ではなく板のSETTING.TXTから
取得したBBS_NONAME_NAMEの文字列を表示する
・[OK]を押したあと、名無しあるいは入れた名前がfusianasanか山崎渉入りの文字列なら
注意喚起窓を出して本当に送信していいか確認を促す

この2点があると安心できるのですが、対応を検討していただけないでしょうか?
どちらも、特定の板に限らず2ちゃんねる全般で役立つものと思います。
トラップにかかって晒すのも2ちゃんの醍醐味(?)といわれればそうかもしれませんが...
028742104/10/03 23:37:06ID:LJabHuXo
>>286
私もSETTING.TXTから板看板のURLとか改行規制の行数とかデフォルト名無しの情報を取得したいなあ
と思っているのですが、今月はこれから忙しくなって既存のバグのデバッグと外部板への書き込み問題
くらいしか対応出来そうにないので中の人お願いしますorz まあKIO::downloadとQStringの機能を
使えば簡単に出来そうな気もしないでもないんですが。

で、パッチ。 cvsからの差分で、ソースルート/kita で patch -p0 < patch10-3.txt です。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch10-3.txt

・>>273の(1),(2)の修正

・KitaDomTreeクラスの整理

延び延びになってたKitaDomTreeを整理。だいぶすっきりしたかな。しかし前から気になってたけど
DOM::Node::appendChild()の動作が異様に重いのはなんとかならんかな。そこが完全にボトルネックになってるもんなあ・・・

・シグナルの整理少々

ThreadListView::showThreadRequested()とKitaBoardView::openBoardRequested()シグナルを廃止して
スレ一覧やスレッドをSignalCollection::openURLRequestExt()経由でKitaMainWindow::slotOpenURLRequestExt()
から開くことに。mimetypeで指定します。詳しくはKitaMainWindow::slotOpenURLRequestExt()を参照。

まあ、基本的に何かURLを開くときは必ずKitaMainWindow::slotOpenURLRequestExt()を
経由させるという方針で行こうかと。あと起動時に No such signal openBoardRequested 警告が出ますが
後で直すので気にしないでください。

ついでにKitaSubjectView::slotCloseButton()というスロットを作っておいたのでスレ一覧にも閉じるボタンが
欲しいなあとか言ってみる。
0288kitaの中の人 ◆KITAulkOso 04/10/04 00:08:06ID:jba359O5
>>アイコン
どうしようかな。とりあえず配布物には含めるつもりですが、
デフォルトをどうするかは悩みどころですね。

>>286
モ娘(狼)でしたっけ。とりあえず両方とも入れます。
SETTING.TXT対応はちょっと時間かかりそうなので、
暫定的にモ娘(狼)だけ警告を出すかもしれません。
0289login:Penguin04/10/04 22:55:32ID:r6XZdHjo
RedHat9使ってます。kitaは私にはとても使いやすくて気に入ってるんですが、
kita-0.150.0-1.i386以降のバージョンをインストールしようとすると、
libkwalletclient.so.1とlibselinux.so.1が足りないって言われます。
その2つを入れようとすると、更なる依存関係エラーによりキリがない状態です。
結局どのパッケージが入ってるとインストールできるのかがわかりません。
助けてアンパンマーン
0290login:Penguin04/10/05 00:22:31ID:lZXGotAJ
>>289
とりあえず依存を無視してブチ込む勇気を持て。
029128904/10/05 18:36:16ID:PWzjvPaq
>>290
わかったよ。僕もう泣いたりしないよ!
0292login:Penguin04/10/06 08:54:47ID:WxxfBe+4
お気に入りが増えすぎて困ってるんですが、お気に入りからはずすと
過去ログにアクセスしにくくてそれも困ります。いい方法ないでしょうか?
お気に入りが複数グループあったり、過去ログを自己管理できるフォル
ダがツリー上にあったりすると便利なんですが。
0293login:Penguin04/10/06 23:06:08ID:QjXVQBr+
@ITに紹介記事があったから使い始めた。
0294kitaの中の人 ◆KITAulkOso 04/10/07 00:56:21ID:yDbCgn24
indexの実装を考えてたのですが、悩み中…。

>>289-291
rebuildする方が確実かと。。。

>>292
お気に入りの整理は要望が多いので早く入れたいところですがまだ何もしてませんorz
過去ログは>>245かな。

>>293
今月はいつもよりダウンロード数が多い気がしますが、@ITの影響かなぁ。
0295login:Penguin04/10/07 14:39:35ID:iIhOBHTZ
SUSE Linux 9.1のFTP版(KDE使ってます)でkitaの0.171.0使ってるのですが、実行時に下記のwarnigが出ます。
起動はできるのですがなんだかすっきりしないのでwarningが出ない方法を教えてください。
kita: WARNING: KXMLGUIClient::setXMLFile: cannot find .rc file kitanaviui.rc

ちなみにsrpm版をrpmbuid --rebuild kitaxxxxxxしてrpm -ivh kitaxxxxxxでインストールしました。
.bashrcにもexport KDEDIRS=/usr:$KDEDIRを書いています。

またデバイスがビジーまたはリソース不足ですというメッセージも出るのでこちらの解決策もお願いします。
0296login:Penguin04/10/07 18:23:50ID:1SycpyQT
>>295
touch ~/.kde/share/apps/kita/kitanaviui.rc
0297login:Penguin04/10/07 18:53:30ID:noM0Cb15
$ rpmbuild --rebuild --define='_prefix /opt/kde3' kita-*.src.rpm

がSUSEのばやい一番すっきりするような気がする。
0298login:Penguin04/10/07 21:59:14ID:F8ZyNie3
今回もSUSEの変態ディレクトリ構成に
デフォルトで対応してないの?
対応するって話じゃなかったっけ?
0299kitaの中の人 ◆KITAulkOso 04/10/07 22:40:42ID:yDbCgn24
>>298
すっかり忘れておりましたorz
というわけでさくっと対応してみた。
http://kita.sourceforge.jp/snapshot/kita.spec

SuSEの場合%{_prefix}を/opt/kde3/
に固定、SuSE以外はそのままにしてます。試してみてください。(0.171.0で)
0300kitaの中の人 ◆KITAulkOso 04/10/07 22:49:53ID:yDbCgn24
*.idxの仕様いつの間にか突っ込み入ってた。
3ヶ月も放置してたなんて…orz
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi?%A5%A4%A5%F3%A5%C7%A5%C3%A5%AF%A5%B9%A5%D5%A5%A1%A5%A4%A5%EB%A4%CE%C0%DF%B7%D7

板単位で持つかスレ(dat)単位で持つかは多分どっちもどっちなので、
とりあえずある程度実装してから考えてみます。

あと忘れてましたが、>>287はマージ済みです。
030142104/10/08 02:01:39ID:r25O7ths
まあ音沙汰が無いのもなんなので進捗報告でも。

忙しいながらもチビチビと2ch互換外部板の書き込み対応の作業してるんですが、ついでに
スレ立て機能を実装したりしてたらコードがぐちゃぐちゃになったのでKitaWriteDialogを
作り直しているところです。とりあえず次にsnapshotが出た後にそれに合わせてパッチを作る予定。

> 板単位で持つかスレ(dat)単位で持つか

どっちの方式も一長一短ありますが、私はスレ単位方式に一票。findとか使って手作業でログ管理
をするのが楽だからというのと、ImgManagerでやってるみたいにKConfigで簡単にアクセスでき
るからってのが理由です。たしかにファイル数が2倍になるって問題もありますが。
0302login:Penguin04/10/08 14:08:19ID:SL9n1FtP
>>200
過去ログ嫁

といいつつ、俺もSuse9.1+KDE3.3での障害報告。確実に再現できてないんだけど、三回に一回ほどこうなる。
MacOS風に、メニューバーをスクリーン上部に配置しているとき、Kitaが起動しない。
念のためにターミナルから起動してみたけど、kitaとコマンドを入力したらなんのメッセージも吐かず
プロンプトが元にもどる。
なんでなんだろうな。
0303login:Penguin04/10/08 14:24:09ID:3136+KnW
ターミナル等からコマンド入力して起動させるバヤイは
Kitaが正常に動作する状態でもプロンプトに戻るのが
仕様みたいだけど。
0304login:Penguin04/10/08 15:18:19ID:rzUc4PlE
kpmとか他のKDEアプリも一緒だね。全部ではないけど。
0305kitaの中の人 ◆KITAulkOso 04/10/08 23:55:59ID:4gt6gcRM
>>301
とりあえずスレ単位で設定ファイルを作成する方式で作成するつもりです。
snapshotは早ければ明日、遅くとも連休中には出します。
一応10/20 feature freeze, 10/27 code freezeの予定です。今決めました。

>>302-304
> kitaとコマンドを入力したらなんのメッセージも吐かずプロンプトが元にもどる。
プロンプトに戻るのはKUniqueApplicationを使ってるためです。
すでにkitaが起動しているときには何もメッセージを出さないので、
プロセスが残ってる可能性あり。他の原因は今のところ思いつかないです。
0306login:Penguin04/10/09 19:08:29ID:OTtPvCu1
( ̄人 ̄)ナムナム
0307kitaの中の人 ◆KITAulkOso 04/10/10 14:46:06ID:XHCo2Yz2
snapshot.
http://kita.sourceforge.jp/snapshot/kita-20041010.tar.gz

外部的には>>287と、>>273の(3)の修正と、スレ一覧で右クリックすると
プロパティが見られるようになった程度(これもデバッグ用ですが)ですが、
内部はかなりいじってます。特にKita::Threadのインスタンスをほとんど排除しました。
今のところ不具合はないですが、設定ファイルのバックアップをおすすめします。

これでインデックスファイルの実装に心置きなく取りかかれるはず。
0308login:Penguin04/10/10 17:47:16ID:WsQja1Hv
アイコンで文句付けた、270です。

スナップショットインスコしました。
なんか、動きがすっきりしたような気がするのは気のせいでしょうか。
なんせ、AMD K6 なんていう骨董品のようなCPUと256MBしかつんでないメモリの機械
でKITAを動かしてるもんですから、ちょっとした変化でも体感速度として伝わって来るんですよね。。。

>スレ一覧で右クリックすると
>プロパティが見られるようになった程度

って、このプロパティってなんだか楽しいですな。デバッグ用なんでしょうが
一般ユーザーとしてもちょいと使い道ありそう。

で、要望なんですが、「引用符 つきペースト」って書き込みのときあると便利だと思うのですが
実装むりですかね?
030942104/10/10 21:34:14ID:FYOyWE8D
なんかいつのまにかgeocitiesとyahooが統合したのね・・・・・
いきなりftpにつながらなくなってるし。移行手続きしたら後でパッチ上げます。

> 引用符つきペースト
多分そんなに難しくないと思うので私が見ときます。
031042104/10/10 22:02:30ID:FYOyWE8D
パッチ。snapshotからの差分でファイル構造の変更あり。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-10.tar.gz

・KitaWriteDialog -> KitaWriteView にクラス名変更
・2ch互換外部板書き込み対応
・スレ立て機能実装

GUI作ってないので、スレ立てウィンドウを出したいときは適当なスレを開いてから検索ボックスのコマンドで
「:new」と打つと出ます。内部的には KitaThreadView::slotSearchButtonの"new"のとこみたいに
emit createNewThread すると開きます。あとデバッグ用にqDebugいくつか入ってますが後で消すので
とりあえず放置しといて下さい。それとスレ一覧で外部板のスレ名が出なくなったのでインデックス方式に移行
するときにその辺も見ておいて下さい。

つづく
031142104/10/10 22:05:14ID:FYOyWE8D
つづき。とりあえずローカルの鯖でテストした分には問題は無かったんですが、2chでのスレ立ては特に立てる用も
無いのでまだテストしてません。まあ多分大丈夫じゃないかな。多分。あと●のテストとかもしてないのでこの辺りの
スレ立てのテストは新スレを立てる用があるときに誰か頼みます。そのときコンソールに表示されるデバッグ表示も
教えてくれると嬉しいなみたいな。で最終的にファイル構造の変更はこんな感じに。

廃止
part/kitawritedialog.{cpp,h}
part/kita2ch.{cpp,h}

追加
part/kitawriteview.{cpp,h}

更新
kitawritetabwidget.{cpp,h}
kitasubjectview.{cpp,h}
kitaboardview.cpp
part/kitathreadview.{cpp,h}
part/kitawritedialogbase.ui
libkita/kita-utf8.h
libkita/signalcollection.h
libkita/datmanager.{cpp,h}
031242104/10/11 13:16:09ID:aPDR1TW7
上のパッチからの差分。kitaディレクトリで patch -p0 < patch-10-11.txt

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-11.txt

・書き込み画面でクリップボードを>で引用

とりあえず書き込み画面でF2キーにショートカット割り当て。そろそろ適当に割り当ててきた
ショートカットキーの配置をきちんと考えないと駄目かな。

ちなみにマウスジェスチャの設定ファイル(kita.khotkeys)をぼちぼち書こうと
思っていたんですが、良く考えたらショートカットキーの配置を確定しないと2度
手間になるので配置の確定後にすることにします。

・その他書き込みまわりで細かい修正

あとSETTING.TXT対応までの暫定仕様としてデフォルトがfusianasanな板に書き込む
ときにURLをみて警告出そうと思ったのですが、モ娘(狼)って何処にあるんでしょうかw
板一覧の検索が欲しいなあとか言ってみる。
0313login:Penguin04/10/11 13:22:20ID:bK7NNCOb
板一覧でURLポップアップとか右クリックコピーとかはどうよ
031427904/10/11 16:51:19ID:Ew/Ntv32
SnapshotのSuSE用rpm作ったんですが、
需要ありますか?
0315login:Penguin04/10/11 17:50:53ID:IBxFM8/L
>>314
あると思うよ。
310ー312
のパッチ当ててたらなおあると思うよ
031627904/10/11 19:47:10ID:Ew/Ntv32
パッチは当て方がよくわからないのです。
何処に上げたらいいですかね
0317login:Penguin04/10/11 20:08:18ID:XtJTcO5H
>>312
雑談系2->モー娘(狼)
031842104/10/12 02:21:52ID:FoN1LTTz
超暫定的なfusianasan対策。>>312からの差分。kitaディレクトリで patch -p0 < patch-10-12.txt

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-12.txt

DatManager::getBBSDefaultName()って関数を追加して、そこから板のデフォルト名を取得することに。
現在はURLを見てモー娘(狼)だけ静的に名前をfusianasanにしていますが将来的にはSETTING.TXT
から取るということで。

なお静的に名前を与えているため、板が移転したときは当然fusianasanチェックは効かなくなるので過信は禁物。
0319login:Penguin04/10/13 22:05:21ID:nQgJShaD
スレッドタイトルの左にある青い板名部分([Linux]とか)を、
クリックしても、板が表示されなくなっています。
前スレ 808 で 691 さんが追加された機能だったと。
いつから動作しなくなったのか分かりませんが。
Kita は Momonga trunk の kita-0.171.0-0.20041010.1m
KDE 3.3.0 Qt 3.3.3 です。
0320login:Penguin04/10/13 22:14:21ID:nQgJShaD
> スレッドタイトルの左にある青い板名部分([Linux]とか)を、
> クリックしても、板が表示されなくなっています。
> いつから動作しなくなったのか分かりませんが。
> Kita は Momonga trunk の kita-0.171.0-0.20041010.1m

kita-0.171.0-2m(ほとんど素の Kita 0.171.0)に戻したら、
クリックで板が開きました。
正常に動作します。
つまり、この不具合は >>307 のsnapshotからです。
032142104/10/13 22:20:05ID:l/LrQRUB
>>319

原因は>>287の

> あと起動時に No such signal openBoardRequested 警告が出ますが
> 後で直すので気にしないでください。

って部分なので>>310のパッチで直ってます。

ちなみに今週は忙しくて一行もコード書いてませんw
032231904/10/13 23:18:18ID:nQgJShaD
>>321
サンクス、です。
0323kitaの中の人 ◆KITAulkOso 04/10/14 00:56:51ID:g4G+Co6x
>>308
コードを整理したのでその分速くなってるかも。せいぜい数%程度だとは思いますが。

>>310>>312>>318
merged.
Kitaの接頭語は出来るだけ使わない(namespaceを使用予定)なので
新規クラスはKita::Fooみたいにしてくれるといいかも。結局そのままにしてますが。

板検索は欲しいですね…出来ればインクリメンタル検索で。スレ一覧も。

>>313
スレ一覧でコピーはあるので板一覧にも同じ機能を付けた方がいいかな。
URLのポップアップは面白いけど一般的ではなさそうなので保留かな。
気が向いたら実装するかもしれません。

>>316
今のところアップローダは用意してないので…他の板から適当に間借りしてください。
定常的にうpする需要があるならアップローダかsf.jpの権限を用意しますので言ってください。
032442104/10/14 22:19:51ID:agheFqJx
早く帰れたんで少しでも進めておこうとか思ったり・・・。cvsからの差分で
kitaディレクトリで patch -p0 < patch-10-14.txt

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-14.txt

内容は"subjectview_newthread"という新スレ立て用のアクションを
追加しただけなんですが、いかんせんまだ2chで実際にテストしていないので
このアクションをメニューに表示させるか悩んでたり・・・。とりあえず

・●なしでスレ立てられるか
・●有りでスレ立てられるか

の2つのテストが必要なんですが、テストでスレ立てする訳にも行かないしなあ・・・
他の2chブラウザの開発者はどうやってテストしたのかな。

まあ、このアクションをメニューに表示させるかどうかは中の人の判断に任せます。
kitasubjecttabwidgetui.rc の <Action name="subjectview_newthread" />
の行を削るだけなので。とりあえず表示しちゃってスレ立てが必要な人にテストしてもらう
って手もありますが。

> 新規クラスはKita::Fooみたいに

これはlibkita以外のフォルダでも今後は全部そうするってことでしょうか。
0325login:Penguin04/10/14 22:32:31ID:TU7AUona
実況系の板とか厨房板、なんでもあり板あたりなら適当にスレ立てても
さほど問題にはならないかと…
032627904/10/15 17:40:50ID:gHqRB4N/
http://rpmpoint.hp.infoseek.co.jp/

あげときました>Snapshot
0327login:Penguin04/10/16 15:47:39ID:KQkmWF+V
眼鯨立てがお仕事の人達が、
Kitaを眼の敵にするような事の内容におながいします。
0328login:Penguin04/10/16 18:57:28ID:Cw47+yW9
  ハハハ
  ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ^∀^)<  今晩はカレー
 ( つ ⊂ ) \_________
  .)  ) )
 (__)_)     (^∀^) < ♪

kitaの完成度が日々上がっていくのが楽しみなのですが、
個人的な要望がいくつかありますのであげておきます。
(既出もあるかと思いますが勘弁して)

・起動の度に板リストを外部から取ってくるのは困る。
・板リストのインデントをもう少し詰めたりできないかしら。
 補足すると、たとえば現在「PC等」カテゴリの下に「PCサロン」板が表示されてるけど
 その開始位置が「PC等」の”等”の位置からになっている。
 これをせめて「PC等」の”C”の位置からに出来ないかなーと。
0329kitaの中の人 ◆KITAulkOso 04/10/16 20:07:06ID:CXeNxfxX
何か気合いが入らない今日この頃。

>>324
とりあえずfeature freezeまではそのままにします。

> これはlibkita以外のフォルダでも今後は全部そうするってことでしょうか。
あー、それは考えてなかった。partはKitaPart::みたいにした方がいいかも。
とりあえずファイル名がkitaで始まると補完などで面倒なのが一番気になってるので、
ネームスペース使う場合でも接頭語としてKitaを使う場合でも
ファイル名はKitaを除いたものにしてください。

>>328
既出でもそれだけ要望が多いことが分かるのでOKです。

> ・板リストのインデントをもう少し詰めたりできないかしら。
パラメータ一個いじったら出来たので、とりあえずCVSに入れました。
http://kita.sourceforge.jp/screenshots/treestep10.png
こんな感じでどうでしょう。正直微妙な気もしますけど、慣れの問題かな…
033032804/10/16 22:58:56ID:wxexSb2A
>>329
> こんな感じでどうでしょう。

ありがとうございます。
望んでいたとおりになりました。
表示幅のシビアな環境で使っているものでして、非常に助かります。
0331kitaの中の人 ◆KITAulkOso 04/10/17 15:56:53ID:F2OSyDyU
何か突然気合いが入ったのでsnapshot。
http://kita.sourceforge.jp/snapshot/kita-20041017.tar.gz
以降の予定は>>305。

>>307以降の修正は、
・>>310>>312>>318>>324のマージ
・板リストのインデントを詰めた>>329
・スレ一覧にボタンを付けた>>287

・起動時に板リストを取得しないようにした>>328
メニューから手動で実行してください。あと初回起動時には自動的に取得されます。

・インデックスファイルの実装開始
現在のところスレ名だけです。キャッシュディレクトリに*.idxというファイルが出来ます。
今のところ他に何も影響はありません。あと理論上は遅くなるので(毎回ファイルを開いてるし)、
あまりに遅くなるようなら言ってください。

>>326
何かいろいろありますね。
後でリンクします。
0332rpmpointの中身04/10/17 17:46:27ID:6RY6+JjX
snapshot最新版に差し替えー
0333login:Penguin04/10/17 18:52:42ID:68PwqOt0
本日より新版(0.171.0)使わせていただいてますm(_ _)m
私の環境はTurbo10Fなのですが、TurboのHPから落とした旧版をインスコしていると[kita-0.171.0-1.i586.rpm]では更新できませんでした。
明らかに旧Verなのに最新版がインスコ済みって怒られましたw
033442104/10/17 21:04:04ID:bEon0xHY
簡単なパッチ。srcフォルダで patch -p0 っす。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-17.txt

DatManager::threadNameからスレッド名を取得するときに、DatInfo::getSubject
経由にすると必ずDatInfoを作らなくちゃならなくてオーバーヘッドがデカ杉なので、
Thread::getName経由でThreadIndex::getSubjectを呼ぶように改良。
まあDatManagerでindexファイルから情報を取れるときは極力indexファイルから
取るようにして、糞重いDatInfoを作らないようにしようという方針にしようかと。

これで>>245の既読スレ一覧表示が数十倍くらい高速化されますが、indexファイルが無いスレの
名前は?になります。

あとスレッド情報周りがちとややこしくなってるので頭の整理も兼ねてメモ

・indexファイルが最初に作られるタイミングはdatがサーバかキャッシュから読み込まれて
最初のレスがDatInfo::parseDatでパースされたとき。(ThreadIndex::setSubjectは
DatInfo::parseDatの中以外では呼ばれない)

・スレッド名を保持しているのはThreadクラス
・レス数を保持しているのはThreadInfoクラス
・ここまで読んだの番号を保持してるのはDatInfoクラス

ややこしいなあw
とりあえずここまで読んだもindexに保存して、管轄をThreadかThreadInfoに移した方が良い気が
033542104/10/17 21:41:59ID:bEon0xHY
もひとつ簡単なパッチ

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-17-2.txt

私は0chスクリプトを使って
http://localhost/~foo/cgi-bin/testbbs/
という掲示板をローカルで立てて書き込みとかスレ立てのテストしてるんですが、
その時にスレ名が表示されなかったバグを修正。

datURL.prettyURL()とdatURL.url()の違いで~が%7Eになるってのが原因で
とりあえずprettyURLで統一してみたり。
0336kitaの中の人 ◆KITAulkOso 04/10/17 23:14:19ID:F2OSyDyU
>>333
Turboの公式パッケージにはSerial:が入ってるのが原因です。
強制的にインストールしてください。

>>344
独断で申し訳ないですが、別の方法で実装しました。
Thread::getNameでなくてDatManager::threadNameでの対応になってます。
"?"でなく""になってますが。

> あとスレッド情報周りがちとややこしくなってるので頭の整理も兼ねてメモ
こんな感じで考えてます。
Thread: メモリ内に一時的に保存するスレ名(subject.txtを読み込んだ時とか。ポップアップなどで必要)
ThreadInfo: レス数、既読数はThreadIndexに移して廃止予定
DatInfo: datファイルを管理するクラス
ThreadIndex: dat.idxファイルを管理するクラス
DatManager: Thread, DatInfo, ThreadIndexを管理する窓口

ThreadやThreadInfoを直接使用しているクラスも
基本的にはDatManager経由でアクセスさせるようにするつもりです。
033742104/10/17 23:50:09ID:bEon0xHY
内部話が続いて済みませんw

cvsの方法だとthreadNameを呼ぶたびにidxをオープンするので、一度ロードしたら
Threadクラスに情報をコピーして2回目からはThreadクラスから情報を呼び出した方が
良いかなと思ったんですが・・・。階層図で書くとこんな感じ。

上位レベル( KitaThreadView とか )
レベル3: DatManager
レベル2: DatInfo | Thread
レベル1: ThreadIndex

つまりDatManagerからは直接ThreadIndexは呼ばない、みたいな感じで。

ただメモリの使用量のことを考えるとThreadIndexをDatManagerから直接呼ぶ(=その都度ファイルを
オープンして情報取得する)した方が良いので、まあその辺の実装はお任せします。

ThreadInfoの廃止は了解です。今後はThreadInfoになるべく手を入れないようにします。
0338kitaの中の人 ◆KITAulkOso 04/10/18 01:28:46ID:BWkf3Nbv
>>337
IOが気になるならこんな感じでどうでしょう(CVSからの差分)。
http://kita.sourceforge.jp/snapshot/datmanager-20041018.patch

自分はこんなイメージです。
上位レベル( KitaThreadView とか )
レベル2: DatManager
レベル1: DatInfo(ThreadIndex) | Thread

スレ名だとレベル1でどちらも同じ情報が入るのですが、
レス数だと異なる数が入る可能性があるので、flatな方がいいかなと。
でも正直自信がないので、実装を進めた方がいいかな。
033942104/10/18 02:06:08ID:d7p6pPtn
実は私も最初そういうコードを書いたんですが、3層構造にするため
Threadクラスの中でThreadIndexを呼ぶようにしたという経緯があったりしてw
実はこういう4層構造も考えたりもしたんですが。

     ┏━━━━━━━━┓
レベル4┃  DatManager  ┃
      ┣━━━┳━━━━┫
レベル3┃DatInfo┃      ┃
      ┣━━━┛      ┃
レベル2┃    Thread    ┃
      ┣━━━━━━━━┫
レベル1┃  ThreadIndex  ┃
     ┗━━━━━━━━┛

しかしまあ、この辺は2人がかりでやっても混乱するだけだと思うので
とりあえず実装しちゃってDatManager以下の構造は後で考えるってのが
いまの所は良いかもしれませんねえ。
0340rpmpointの中身04/10/18 23:42:28ID:91RI0XOM
Stable版RPMを追加しました
034142104/10/18 23:44:54ID:9qu6iM94
もうちょい頭の整理をするために現在のクラス構造を図示してみたり。

┏━━━━━━━━━━━━━━━━━┳━━━━━━┓
┃          KitaMainWindow      ┃         ┃
┣━━━━━━━┳━━━━━━━━━┫ DatManager ┃
┃ Kita*TabWidget┃KitaThreadTabWidget┃ ImgManager  ┃
┣━━━━━━━╋━━━━━━━━━┫ KitaConfig  ┃
┃   Kita*View  ┃   KitaThreadView ┃ Signal     ┃
┗━━━━━━━╋━━━━━━━━━┫  Collection  ┃
            ┃   KitaHTMLPart  ┃ (kita_misc)  ┃
            ┣━━━━━━━━━┫          ┃
            ┃   KitaDomTree  ┃          ┃
            ┗━━━━━━━━━┻━━━━━━┛
KitaMainWindow: メインウィジット。タブウィジット全体の管理、全体のアクション定義
Kita*TabWidget: タブウィジット、タブウィジット別のアクション定義
Kita*View   : 個別のビューウィジット
KitaHTMLPart  : 拡張したKHTMLPart
KitaDomTree  : スレ別のDOM管理

DatManager   : スレッド情報管理
ImgManager   : 画像情報管理
KitaConfig   : ユーザ設定管理
SignalCollection : シグナル管理
(kita_misc)  : ユーティリティ関数群 ( kita_misc.{h,cpp}で定義 )

だいぶ整理されてきたかな・・・。つづく
034242104/10/18 23:48:27ID:9qu6iM94
つづき。だいぶ整理されたところで軽くレビューしてみますが

(1) SETTING.TXTを扱うことも考えて、板情報を一元に扱うBoardManagerみたいなクラスを新設して
DatManager::boardURL()みたいな板情報を返す関数はそっちに移した方が良いかも。
BoardManager::boardURL()とかBoardManager::boardName()みたいな感じで。

(2) datファイルのURLを取得するためにParseMisc::parseURL()とParseMisc::parseURLonly()を
使ってますが、これらはkita_miscに移した方がすっきりするかも。Kita::threadToDat()はもう使用
されてないので廃止して、getDatURL()みたいな関数名にして。

(3) ついでにParseMisc::qcpToUnicodeとかParseMisc::DatToHtmlもkita_miscに窓口を作って
ParseMiscクラスは上位クラスから直接呼ばないようにした方が良いかも。

(4) kita_miscの関数とURLをやりとりするのにQStringを使ってますが、KURLに統一した方が良いかも。
>>335みたいなKURL->QString変換時の混乱を避けるためにも。
0343kitaの中の人 ◆KITAulkOso 04/10/19 00:35:32ID:9ZIXKwUm
CVSの変更点。
・datを消すときにdat.idxも消すようにしました。
・レス数、「ここまで読んだ」の位置も.idxに保存するようにしました(書き込みだけで使用はまだ)

>>342
(1): DatManagerは肥大気味なのと"Dat"Managerが板情報を扱うのは良くないので賛成。

(2)(3): kita_miscへの移動はちょっと微妙。ParseMiscの位置づけが分かりにくいのが気になります。
コンビニエンス関数という位置づけなら移動でなくて統合の方がいいかと。

> ParseMiscクラスは上位クラスから直接呼ばないように
するのは階層が増える割にメリットがないような気がします。

(4): 賛成。実は最初KURLを使ってたのですが、一時期気の迷いでQStringにしたので、
今のような中途半端な状態になってます。
034442104/10/19 01:21:36ID:Wjk1NCP/
なんか延々と開発者会議が続くので質問とか要望とかしにくいと感じてる人が
いるかもしれませんが気にせずして下さいw

>>343
(1) ではSETTING.TXTの件は次バージョンで私がやっとくので、BoardManager
の新設はおながいします。

(4) これもついでにおながいします。

(2)(3) ParseMiscは元々DatInfoでメインで使うけど他のクラスからも使われる
関数を集めたクラスなんですが、指摘の通りいまいち位置付けが良く分からない
のが玉に傷ですねえ。kita_miscに統合する方向で見直してみます。

あとついでになんかここ変じゃない?って部分があれば直す(もしくは言い訳するw)
ので言ってください。
034528004/10/19 03:06:49ID:wiwrw4nT
アイコンまだできてません。
壺に "(゜∀゜)" を25日までに作る予定でつ。ピョンピョン跳ねまつ。
0346login:Penguin04/10/19 22:05:30ID:xt+fxOQU
スナップショットが反映された SUSE用RPMを、RPMPOINTさんからDLして使わせてもらってますが
まちBSS 読めません。 これって、仕様?
0347kitaの中の人 ◆KITAulkOso 04/10/19 22:25:11ID:9ZIXKwUm
縦読み対策に、一時的に等幅フォントにする設定があるといいかなぁと思った。

>>346
確認しました。読み込みはサポートしてるのでバグです。
どこかでエンバグしたのかな。見ておきます。
0348kitaの中の人 ◆KITAulkOso 04/10/20 01:06:10ID:Yjeekm/Y
まちBBSが読めない件は一応直しました。
でも差分が取れなかったりログが消せなかったりしますorz
次のバージョンまでには直したいかな…。

>>344
BoardManagerを作りました。とりあえず中身は空で。(4)は了解。
あと気になったのは名前の統一性かな…。
ThreadIndexという名前もDatInfoとの関連が薄いので失敗だったかもしれない。
とりあえずガイドライン作ってみます。

>>345
期待して待ってます。
アニメーションだと使いどころが難しいかも?
0349login:Penguin04/10/20 11:04:28ID:IicQIrBA
RPMPOINT版の0.171.0を使わせて頂いてます。

Ctrl+CでもCtrl+Insertでもコピーができぬ。
ショートカットキーを設定し直してもダメでした。
「他のアプリに」ということではなく、kita内でも効きません。
仕方ないので右クリックから「コピー」を選んでますが、不便・・・・
他のショートカットキーはちゃんと効くんですが・・・・
0350login:Penguin04/10/20 13:55:25ID:qw5yWH6F
>>348
対応ありがとうございます。
ところで、フィックスされたものって、どこにうpされました?
0351kitaの中の人 ◆KITAulkOso 04/10/20 19:05:54ID:Yjeekm/Y
>>351
まだCVSのみです。次のsnapshot(今日か明日予定)で直る予定です。
0352kitaの中の人 ◆KITAulkOso 04/10/20 19:53:11ID:Yjeekm/Y
>>349
すまんす。コピーは脳内あぼーんしてたorz
0353login:Penguin04/10/20 19:59:43ID:IicQIrBA
>>352
了解。よろしくです。
035442104/10/20 20:16:14ID:Gg9nUwtA
>>352
今日は早く帰ってきたので私がやっときますか?>コピー

ちなみにコピーの件は私も気づいてたんですが、中クリック
で代用できるので言われるまで放置してたりしてw
0355kitaの中の人 ◆KITAulkOso 04/10/20 20:19:27ID:Yjeekm/Y
>>354
お願いします。
035634904/10/20 20:23:50ID:OwlcCCKd
>>354
ナニー!
思いつかなかった・・・・orz
ハズカシイ・・・・。逝ってきます
035742104/10/20 20:26:13ID:Gg9nUwtA
>>355
じゃあやっときます。多分kitathreadwidgetとpart以下のファイル以外
はいじらないと思います。飯食いながらなんで出来るの11時くらいかなあw
035842104/10/20 21:38:17ID:Gg9nUwtA
って訳でパッチ。kitaフォルダでpatch -p0。

ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-10-20.txt

ついでなので画像ビューの右クリックメニューにサイズ指定つけときました。
0359rpmpointの中身04/10/20 22:32:00ID:M6UBzYgW
Snapshotに421氏が>>358に上げられたパッチを適用した物に差し替えました。
036034904/10/20 22:46:52ID:nmoWIOiW
素早い・・・・

>>358 >>359皆様ご苦労さまですm(_ _)m
有難く使わせて頂きます
0361kitaの中の人 ◆KITAulkOso 04/10/21 00:49:47ID:IeUlcVKM
snapshot.
http://kita.sourceforge.jp/snapshot/kita-20041021.tar.gz
>>331以降の修正は、

・>>334>>335>>358のパッチをマージ
・>>343の「CVSの変更点」
・まちBBSの読み込みが出来なかった問題の修正

20日になったのでfeature freeze。以降は大きな機能追加はしない予定です。
まちBBSのバグも大体取れたはずなのでリリースに支障があるような大きなバグはないはず。
# まちBBSのバグ対応でかなりコードが滅茶苦茶になってますがorz

code freezeは10/27、releaseはやっぱり肉の日の予定。
0362rpmpointの中身04/10/21 07:50:22ID:pyI493PA
Kita Snapshotを20041021に差し替えました。
0363login:Penguin04/10/21 23:07:27ID:k6L3RULK
suse9.1用RPMをRPMPOINTさんからDL
再インストール

今度は、まちBBS、読めないどころか スレッド一覧さえでないよ。。。。
0364kitaの中の人 ◆KITAulkOso 04/10/21 23:29:01ID:IeUlcVKM
まちBBS自体が不安定だからでは。北海道とか東北はみれるよ。
テストの時も大変だったorz
0365rpmpointの中身04/10/22 00:36:03ID:/EBHKtYZ
焦った…。こっちのRPMのミスかと思いました。
なにぶん自分のマシン以外でテストができていないので、不安なのです。
エラーなく使えていますでしょうか?
0366login:Penguin04/10/22 05:55:57ID:n423Onqk
>>364 >>365

すんません。再度確認したところ、OKでした。
御迷惑かけました。

おっしゃるように、まちBBSが不安定なためか、
スレ一覧 及び スレ本体ともに、手動で再読み込み
をして、表示されない問題を回避しております。
0367login:Penguin04/10/23 13:04:48ID:0l3W6Q0c
いつも使わせていただいております。
redhat9/kde3.1-13で、kita0.140.1を使っているのですが、
IDが表示されません。
設定で表示させる/させない等切り替えができるのでしょうか?
初心者な質問で申し訳ありませんが。
0368kitaの中の人 ◆KITAulkOso 04/10/23 13:22:21ID:+zBJuHCk
0.140.1というバージョンはないはずですが…kita-0.140.0-1のことかな。
とりあえず最新は0.171.0なので、それに入れ替えてもらえますか?
0369login:Penguin04/10/23 13:28:50ID:0l3W6Q0c
>>368
>0.140.1というバージョンはないはずですが…kita-0.140.0-1のことかな。
すみません。間違えていました。それです。

>とりあえず最新は0.171.0なので、それに入れ替えてもらえますか?
やってみます。ありがとうございます。
0370login:Penguin04/10/24 11:28:02ID:T+fYP/1X
rpmpointのSuSE9.1用ステイブル版を入れたのですが、
起動しようとすると以下のようなエラーが出ます。
tarボールを自前で入れていた時は正常に動いていたのですが・・。

kita: error while loading shared libraries: /opt/kde3/lib/kita.so:
undefined symbol: _ZN13KListViewItem10insertItemEP13QListViewItem
0371rpmpointの中身04/10/24 12:33:33ID:lCDAjLYc
こっちの環境ではちゃんと動いてます。
何が悪いんだろ…。
0372kitaの中の人 ◆KITAulkOso 04/10/24 16:41:32ID:JJoVPe/Y
tarballで入れたライブラリを参照してしまってるのかも。
make uninstallでtarballで入れた方を削除してみてください。
037336704/10/24 19:04:47ID:KFIuYCB+
依存関係に苦労しましたが、やっと0.171.0を入れることができました。
IDも無事表示されるようになりました。ありがとうございました。
037442104/10/25 00:54:51ID:WhJSJrLU
進捗報告でも。

現バージョンに関しては既にコードフリーズしちゃって次バージョンのコード書いてます。
特にバグが無ければ現バージョンのパッチを出す事は無いです。て言うか、何かバグが
あったら潰すんでネタ下さいw

まあそんな訳で KitaWriteView の qDebug は適当にコメントアウトしておいて下さい > 中の人

ちなみに今は SETTING.TXT の読み込み部分を書いてるんですが、imgmanager.cpp
にあった FileLoader を独立させて DownloadManager というファイルの汎用の
ダウンロード管理クラスを新設してそれで画像とかSETTING.TXTをロードするようにしてます。
0375kitaの中の人 ◆KITAulkOso 04/10/25 01:07:31ID:U0sK4F5v
こっちもほとんどいじってなかったりします。

CVSでの変更はこれくらい。
・書き込みウィンドウが縦幅取り杉なのを対応(>>66)
・スレッド一覧の右クリックで「URLをコピー」を追加
あと入れる予定なのは板一覧での右クリックメニューくらい。

それと今までに挙がってる要望を更新しました。
漏れがあったら言ってください。
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi?%CD%D7%CB%BE

次のバージョンのコードはまだ書いてないですが、やっぱりお気に入りの整理かなぁ。
0376login:Penguin04/10/25 13:33:13ID:T56b+RlQ
こんにちは。0.171.0 + patch-10-20で使用中です。

さて外部板の話。
したらばの板を追加できんかとあれこれ見てたんですが、
ディレクトリ構成が違うせいか巧くいかないようです。
で、kitaboardview.cppあたりを眺めてたんですが
おいらの阿呆な頭では早々わかりそうもない罠
参った。

もしかしておいら、何か盛大に勘違いしてますか?(;´Д`)
0377rpmpointの中身04/10/25 22:36:36ID:m8yeYpcv
要望です。
OpenJane系の用に、
Kitaを終了して次回起動時に板ツリーをオープンのまま起動できるようにならないでしょうk?
037842104/10/25 22:49:13ID:SHSFV1+R
>>377
こっちの返事は中の人にお任せ

>>376
結論から言うと現段階では無理です。理由は

(1)そもそもライブドアしたらばのrawmode.cgiにkitaが対応していない。

まあこっちはそれほど問題ではないのですが、一番やっかいなのが、

(2)変則URLのため板のURL関係を扱う関数をほぼ書き直す必要がある。

ってことだったりして。2chその他の互換板のURLは「(root)/test/read.cgi/板名/スレッドID」なのに
対して、したらばのURLは「(root)/bbs/read.cgi/板名/板ID/スレッドID 」と板IDが間に入ってるため、
ざっと見ただけでも boardRoot(), parseURL(), cachePath(), datToThread()、etc.
は書き直す必要があります。

つづく
037942104/10/25 22:53:23ID:SHSFV1+R
以下延々と内部設計の話なので興味無い人は無視して良いです。書くのに30分位かかっちゃいましたがw

上の(2)の続き。要するに、いまの実装ではURLのうち、どこまでがルートで、どこからが板で
どこからがスレッドIDなのか分からないのが問題なので、URLを(root),(delimiter),(bbs),(thread)
の4つのパスに分けて管理すれば良いのかな。で、.kde/share/apps/kita/extbrd.confに外部板を
登録するときは「スレ名<>(root)<>(delimiter)<>(bbs)」という形式にすると。例えば

(1) 2ch形式で http://pc5.2ch.net/test/read.cgi/linux/1089905503/ だったら
(root)= http://pc5.2ch.net, (delimiter)= test/read.cgi, (bbs)= linux, (thread)= 1089905503

(2) したらば形式で http://jbbs.livedoor.jp/bbs/read.cgi/computer/11111/222222 だったら
(root)= http://jbbs.livedoor.jp, (delimiter)= bbs/read.cgi, (bbs)= computer/11111, (thread)= 222222
extbrd.confには「したらばのスレ<>http://jbbs.livedoor.jp<;>/bbs/read.cgi/<>/computer/11111/」と登録

(3) ローカルに立てた http://localhost/~foo/cgi-bin/test/read.cgi/testbbs/111111 みたいなURLだったら
(root) = http://localhost/~foo/cgi-bin, (delimiter)= test/cgi-bin, (bbs)= testbbs, (thread)= 11111
extbrd.confには「ローカルのスレ<>http://localhost/~foo/cgi-bin<>test/cgi-bin<>/testbbs/」と登録

で、(root),(delimiter),(bbs)のパスを返す getRootPath(url),getDelimiterPath(url),
getBBSPath(url) みたいな関数を作るれば良いのかな。例えば
getBBSPath( "http://jbbs.livedoor.jp/bbs/read.cgi/computer/11111/222222" ) = "computer/11111"
すると次みたいにして簡単にURLが得られます。

subject.txt のURLは getRootPath(url) + getBBSPath(url) + "subject.txt"
read.cgi形式のURLは getRootPath(url) + getDelimiterPath(url) + getBBSPath(url) + (thread)
2chのdatファイルのURLは getRootPath(url) + getBBSPath(url) + "/dat" + (thread).dat
したらばのrawmode.cgiのURLは getRootPath(url) +"/bbs/rawmode.cgi" + getBBSPath(url) + (thread)

なんか見づらいなあ・・・ つづく
038042104/10/25 22:55:27ID:SHSFV1+R
いずれにしろ、2chの板も含めて登録されてる板の情報を扱うクラスなり構造体なりを作る必要がありますね。例えば

struct BBSDATA{
QString root;
QString delimiter;
QString bbb;
};

みたいな構造体で登録されてる板情報を管理する事にすると、上のgetBBSPath()は大雑把に書くと
こんな感じになりますかね。

QString getBBSPath( const KURL& url){

for( int i = 0; i < bbsmax; i++ ){

if( url.prettyURL().contains( bbsdata[i].root + bbsdata[i].delimiter + bbsdata[i].bbs )
|| url.prettyURL().contains( bbsdata[i].root + bbsdaat[i].bbs ) )
return bbsdata[i].bbs;

}

return QString::null;
}

まあ次バージョンでしたらばをサポートするかどうかは置いといて、やるとしたらこんな風に実装すれば良いのかな・・・
0381login:Penguin04/10/25 23:03:02ID:2hUqZBw6
よーし、漏れも便乗してお願いしちゃうぞ。

・スレ一覧で項目の表示オン/オフ出来るようにほしい。
(Thread's speedを表示させずにそのぶんTitleの表示幅を広くとりたい、とか)
・スレ一覧で項目の幅を調整した時にその状態を記憶しておいてほしい。
(せっかく調整しても次回起動時にはリセットされるので毎度調整し直してます)

kitaが日に日に洗練されていくのは使う側としてもうれしいです。開発者さま乙。
■ このスレッドは過去ログ倉庫に格納されています