Kita - 2ch client for KDE part2
■ このスレッドは過去ログ倉庫に格納されています
0001kitaの中の人 ◆KITAulkOso
04/07/16 00:31ID:IZzU7SYf名前の由来は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/
0559552
04/11/18 12:00:42ID:Z8mpNkQ8CPPFLAGS=-L/usr/local/libを追加することでconfigureはできるようになりました
でも,結局コンパイルでもlibart_lgpl_2がないといわれるので,/usr/lib/に
リンクを作ることで解決しました
スマートな解決ではないですが,無事kitaから書き込むことができました
どうもでした
0560kitaの中の人 ◆KITAulkOso
04/11/18 23:25:48ID:aa1PkYlF作りました。何か気になる点があったら言ってください。
http://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi?%A5%E1%A5%E2+-+%A4%AA%B5%A4%A4%CB%C6%FE%A4%EA%A4%CE%B0%DC%B9%D4
・同じURLで2つ別の名前が付けられないが問題ないか
(名前については問題ないはずだけど他の属性で問題が出ないか)
・スレを識別するキーはdatファイルのURLでいい?
・互換性について(移行は当然サポートします)。
>>558
> >>381みたいにスレ一覧の項目の表示ON/OFFがあれば良いんでしょうけど・・・
んじゃそっちを先に対応します。お気に入り整理は今回は間に合いそうにないので
あきらめますたorz
0561421
04/11/19 00:55:35ID:JmaYCgMdとりあえず
datmanager.{cpp,h}
datinfo.{cpp,h}
あたりをメインに直しているので、2,3日はその辺をあまりいじらないでおいて下さい。
> > >>381みたいにスレ一覧の項目の表示ON/OFFがあれば良いんでしょうけど・・・
> んじゃそっちを先に対応します。
ではそちらはおながいします。
お気に入り整理の新ファイルフォーマット
> 同じURLで2つ別の名前が付けられないが問題ないか
エイリアス機能ってことですか?まあ、あればあったで良いけど無くても良いような。
> ・スレを識別するキーはdatファイルのURLでいい?
どうせ内部的にはKita::getDatURL()で違いが吸収される(dat形式になる)ので、
read.cgi形式でもdat形式でもどっちでも良いと思いますがdat形式が無難かと。
> 板名の情報は誰が管理?
これはBoardManager(とboard_list)が全部管理してるので、ここでは特に
考えなくても良いと思われ。
> スレ名、レス数は.idxから取得
レス数はidxから取るので必要ないと思いますが、スレ名は手動で編集するときに
便利なので、使わないとしてもラベルとして入れておいた方が良いかも。
0562kitaの中の人 ◆KITAulkOso
04/11/19 01:42:13ID:YJYSSRcW先に、カラムの順序、サイズの保存を実装する予定。
手動でリサイズ&移動すればOff状態とまああまり変わらないということでw
ちなみに、サイズと順序はKListView::saveLayout()で保存できるようですが、
複数ビューがあるので同期をどうやって取ろうかなと悩んでます。
>>561
> エイリアス機能ってことですか?まあ、あればあったで良いけど無くても良いような。
いや、とりあえず制限事項になるので挙げてみただけです。
逆に、1つ編集したら同じURLは全て一緒になるのでむしろこの方がよいかなと。
> これはBoardManager(とboard_list)が全部管理してるので、ここでは特に
> 考えなくても良いと思われ。
了解。まあ、板情報を入れるのは簡単なので実装してから考えます。
0563421
04/11/19 02:08:30ID:JmaYCgMd> スレ一覧の項目On/Off
GUIを作るのが面倒ならとりあえずKitaConfigかあるいは別の設定ファイルを
作ってそこで手動でOn/Offするようにしてみてはどうでしょうか。あとスレッド
ビューのツールバーのボタンの表示On/Offもあると良いなあとか言ってみるテスト。
同期はSignalCollection経由で他のサブジェクトビューに更新があったことを
知らせるのが常套手段だと思いますが、面倒なら次に開いたビューから変更って
タイプでも良いんじゃないですかね・・・
0564421
04/11/19 23:14:01ID:iR+YSKnS以後は肉の日までテストしながら細かいデバッグパッチを出していって、テストが終わ
った部分から順次qDebugを消して行く予定。
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1119.txt
・ここまで読んだの処理で変だったところを修正
・スレ一覧からのログ削除高速化
DatManager::deleteCache()のとこ。従来はいちいちDatInfoを作って
いたため削除が激重だったのを、DatInfoを作らないでログを消すように変更
・ついでにDatManager コード整理
主にDatManager::getDatInfo()のあたり。あといちいちmutexかけてたのをやめて
DatManager::boardURL()みたいなobsoleteな関数をいくつか削除。これでだいぶ
見やすくなったかな。
・ThreadIndex::loadIndex()、ThreadIndex::saveIndex()を高速化
項目毎にいちいちファイルをオープンしてたのをやめ
・BoardManager::getBoardData()とかKita::convertURL()をキャッシュ使って高速化
・その他細かいデバッグいろいろ
0565421
04/11/20 00:07:03ID:AKAy4KPd既に移転済みの板を開いて(もちろんスレ一覧は空白)から板の移転を行った後に再度板を開くと
既読のはずのスレが未読表示になるバグの修正。
最初に板を開いたときにBoardData::m_readIdxがTRUEにセットされたため、それを
リセットしないとidxの読み込みがおこなわれないというのが理由。
*** libkita-org/boardmanager.cpp 2004-11-19 23:01:23.000000000 +0900
--- libkita/boardmanager.cpp 2004-11-19 23:45:34.992309872 +0900
***************
*** 906,911 ****
--- 906,915 ----
keyHosts.prepend( newhost );
bdata->createKeys( keyHosts );
+ /* reset BoardData */
+ bdata->setReadIdx( FALSE );
+ bdata->setSettingLoaded( FALSE );
+
/*---------------------------*/
/* move cache dir */
0566421
04/11/21 00:08:04ID:WvvQKFPl無かったのでqDebugを消してコメント入れただけ。libkitaで pacth < patch-1120.txt
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1120.txt
0567kitaの中の人 ◆KITAulkOso
04/11/21 01:58:59ID:K8+Vt0l8>>564-566
merged.
> 同期はSignalCollection経由で他のサブジェクトビューに更新があったことを
> 知らせるのが常套手段だと思いますが、面倒なら次に開いたビューから変更って
> タイプでも良いんじゃないですかね・・・
とりあえずそれで実装しました。
リサイズ時にいちいち書き込みするので遅いかなぁと思ったんですが、
うちの環境だと問題なかったのでとりあえずそのまま。
しかし一番最後のCokumnだけhideColumnが効いてないみたい…。なぜだ…
0568login:Penguin
04/11/21 07:55:36ID:YtiHxrKyウインドウを最大化している状態でシェードし、元に戻すと強制的に最大化が
解除されてしまいます。
すごく使いにくいんですが、これは仕様でしょうか?
0569421
04/11/21 13:53:06ID:yZR+sU9http://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1121.txt
原因は KitaThreadView::setFocus() の if ( topWidget->isMinimized() ) topWidget->showNormal();
の一文です。最小化してる状態からスレッドビューにフォーカスが移るとウィンドウが通常状態に戻ります。
何故setFocus()に topWidget->showNormal() なんてコードが入っているかと言うとウィンドウの切替え処理を行うためです。
つづく。
0570421
04/11/21 13:54:26ID:yZR+sU9h(1) KitaTabWidgetBase::setupActions()で new KAction( i18n( "Switch to Thread" ), Key_3 )が定義
されてるので 3 を押すとsignalcollectionにswitchToThread()シグナルが飛ぶ
(2) signalcollection::switchToThread() は KitaThreadDock::setupAsMainView() と
KitaThreadDock::setupAsKitaNavi() で KitaDockWidgetBase::slotShowDock() にコネクトされているので
KitaDockWidgetBase::slotShowDock()が呼び出される。
(3) KitaDockWidgetBase::slotShowDock() で ShowDockEvent() イベントが作られる
(4) イベントループに戻った後、KitaDockWidgetBase::customEvent() が呼び出されて
KitaDockWidgetBase::showDock() が呼び出される
(5) そこの if ( w ) w->slotCurrentChanged( w->currentPage() ); から
KitaTabWidgetBase::slotCurrentChanged() が呼び出される
(6) w->setFocus(); より KitaThreadView::setFocus() が呼び出される。
という流れでKitaThreadView::setFocus()が呼び出されてスレッドビューにフォーカスが移ります。ここで
画像ビュワーみたいにメインウィンドウから切り離したウィンドウ上で「3」を押したときにメインウィンドウが
最小化されてるとウィンドウが切り替わらないので最小化されてるメインウィンドウを表示させるため
topWidget->showNormal()を呼んでいます。とまあ原因は分かっていたんですが、単にtopWidget->show()と
しただけでは最小化は解除されないため、解決方法が良く分からなかったので突っ込まれるまで見て見ぬふりしてましたw
で超アドホックな解決方法としてはKitaThreadDock::slotShowThreadDock()というスロットを作って
signalcollection::switchToThread()シグナルをそこにコネクトしてそこでtopWidget->showNormal();
することに。これで一応最小化状態からフォーカスが移ったときに最大化状態が外れることはなくなります。
最小化状態で他のウィンドウから「3」を押したときに最大化状態が外れる問題はそのうち直すってことで。
0571kitaの中の人 ◆KITAulkOso
04/11/21 14:59:19ID:K8+Vt0l8http://kita.sourceforge.jp/snapshot/kita-20041121.tar.gz
>>569まで入れてます。
あとスレ一覧でサイズを変更するとその位置が保存されるようにしてます。
お気に入りはその情報を利用してないですが…やっぱり対応した方がいいかな?
とりあえず致命的な問題はないはず。
お気に入り整理は次(以降)にしますorz
0572kitaの中の人 ◆KITAulkOso
04/11/21 19:47:05ID:K8+Vt0l8%filesセクションのkitapart/kita*ui.rcを削除してください。
0573421
04/11/21 22:14:01ID:yZR+sU9h一応バックアップを取ってから起動してください。
で、そのsnapshotですが、Qt3.1だとQListView::hideColumn()がエラーを出します。
マニュアルを見る限りだとsetColumnWidth( column, 0 )にすれば良いのかな。
あと cache と idx の互換性問題のテストをしたのでThreadIndexクラスを若干修正
しました。libkita で patch < patch-1121-2.txt
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1121-2.txt
テスト手順は、例の如くKNOPPIX3.6を使ってまっさらな状態から
(1) kita-0.172.0 をインストール
(2) 適当にスレを見る
(3) snapshot を make
(4) snapshot を起動してidxのViewPosからReadNumを作るかチェック
(5) idxを全部消してからsnapshotを起動してcacheからidxを作るかチェック
(6) 適当にスレを見る
(7) kita-0.172.0を起動してcacheが保存されてるかチェック
ってな感じ。明日はAccessクラスあたりを軽くテストする予定。
0574kitaの中の人 ◆KITAulkOso
04/11/22 02:01:43ID:BQLsuu/Nmerged.
気になったのが、ロードしてもスレ一覧の既読数が更新されないこと。
スレッドのタブを閉じたらその時にアップデートされるようですが。
ロード時に既読数が更新されるのも違和感があるので、
意図したものでなければ直さない方がいいかもしれません。
>>558
> マークなんですが、KitaSubjectView::updateListViewItem()を見れば分かると
> 思いますが、現在の仕様ではViewPosとResNumでは無くて、ReadNumとResNum
> の差を見て付けています。つまり鯖側にあるdatとキャッシュにあるdatが違って
> いると赤、同じなら緑という感じで。
やっぱりViewPosとResNumの差を取るようにしてください。
ユーザの観点からすると、
赤:まだ見てないレスがある
緑:もう見るレスがない
というのが分かりやすいので。
0575421
04/11/22 02:23:08ID:UnXhyNRq>>574
> 気になったのが、ロードしてもスレ一覧の既読数が更新されないこと。
これは正常動作です。今まではViewPosがReadNumも兼ねていたため、変則的に
ロード直後にViewPos=ResNumにしていたのですが、今回からViewPosとReadNumが
分離されたため、あくまでViewPosはここまで読んだの位置になります。つまり
スレッドのタブを閉じた時点でここまで読んだが最後に移動したということになる
ためその時点でアップデートされます。
> やっぱりViewPosとResNumの差を取るようにしてください。
しばらくはサブジェクトビュー周りはいじる予定は無いのでこの辺りは任せます。
あと明日はaccess.cppだけでなくてkita_misc.cppもちょっとだけいじるかも・・・
0576kitaの中の人 ◆KITAulkOso
04/11/22 03:30:36ID:BQLsuu/N>>575
> しばらくはサブジェクトビュー周りはいじる予定は無いのでこの辺りは任せます。
修正しました。
0577421
04/11/22 22:21:28ID:3vQSWaNYttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1122.txt
・Accessの方はm_orgDataを消してAccess::writeCacheData()で m_threadData
だけを追加保存するように変更。これによりメモリ消費量を減らして速度も向上。
まあ速いマシンではあまり変わらないと思いますが、ちょっと古くてHDDが遅いマシンなら
多少効果ありかと。
・kita_miscはHOST表示対応
削除依頼とかまちBBSとかHOST表示される板でHOST表示するようにしました。
Kita::parseDateId()とKita::parseTITLEdat()に数行追加しただけ。
でもホスト表示させると横幅が長すぎるかな・・・
あとは軽くテストしてqDebugを消したりとか。明日は休みなので、また
KNOPPINXを使って板の移転処理まわりの最終テストをする予定。
0578421
04/11/22 22:27:05ID:3vQSWaNY基本的に ViewPos <= ReadNum <= ResNum の関係が成り立ってるので取れる状態は
(0) ReadNum == 0, キャッシュ無し
(1) ViewPos <= ReadNum < ResNum、未読有り、新しい書き込み有り
(2) ViewPos < ReadNum = ResNum、未読有り、新しい書き込み無し
(3) ViewPos = ReadNum = ResNum、未読無し、新しい書き込み無し
の4つ。(0)はマーク無し(or New)、(1)を赤、(3)を緑にするのは問題ないけど、
(2)を赤、緑どっちに分類するかが問題。
(2)を緑の問題点: 未読があるのが分かりにくい
(2)を赤の問題点: スレを閉じない限り(緑にならないので)新しい書き込みがあっても分かりにくい
・解決案 1: マークを増やす。例えば
(1)赤○、(2)緑○、(3)緑□
みたいに。つまり新しい書き込み有り無しを色、未読有り無しを形で分別(逆でも可)。もしくは単に
(1)赤、(2)黄、(3)緑
みたいに色を変える。問題はユーザが新マークに馴れる必要があること。
・解決案 2: 内部パラメータを増やして従来通りの動作にする。
従来はDatInfo::m_kokoyonNumというパラメータを使って(2)をさらに
(2-1) ViewPos < ReadNum = ResNum、ロード直後でない
(2-2) ViewPos < ReadNum = ResNum、ロード直後
と分けて(1),(2-1)を赤、(2-2),(3)を緑にしてた。問題は内部コードがぐちゃぐちゃになること。
0579login:Penguin
04/11/22 23:41:46ID:CFYXtOSd終了時でしょうか? ウインドウを開いたままKDEを終了すると保存されていない
ようなのですが。
0580421
04/11/23 00:21:06ID:zOYbsGHe結構残ってますね・・・
>>579
既読情報は0.172.0以前は終了時、最新版は>>556のタイミング
お気に入りは終了時 (KitaMainWindow::~KitaMainWindow()の saveFavoriteBoards()
と saveFavorites()のとこ )
です。
0581kitaの中の人 ◆KITAulkOso
04/11/23 01:05:18ID:9ejod1vc(1)(2)を積極的に区別する必要性が分かりません。
少なくとも(2)(3)に比べたら区別する必要性は低いです。
なので、(1)赤○、(2)赤□、(3)緑□ なら反対しませんが。
あとむしろ問題なのは、スレを開いたときにスレ一覧(KitaSubjectView)の
色が更新されないことです。少なくとも赤のままはまずいです。
今まで通り緑にするか、新しく「開いているスレ=黄色」にするのがいいと思います。
種類を増やすのは危険ですが…。
>>579-580
今回断念したorzお気に入りの編集でまとめて直そうと思ってたのですが、
登録/削除のタイミングで保存するのなら簡単に出来ると思うので直しましょうか?
KitaMainWindow::bookmark()でsaveFavorites()を呼べばいいだけだと思うので。
0582421
04/11/23 03:11:32ID:zOYbsGHe>>581
> (1)(2)を積極的に区別する必要性が分かりません
区別しないことで生じる問題点は>>578の「(2)を赤の問題点」以下で述べて
ることで、要するに「少なくとも赤のままはまずい」ということです。で、
> (1)赤○、(2)赤□、(3)緑□
これが解決案1の「逆でも可」のところで
> 今まで通り緑にするか、
これが解決案2で
> 新しく「開いているスレ=黄色」
これが解決案1の「色で分ける」のとこですね。どの解決案を選ぶかは
一任しますが、個人的見解を言うとせっかくコードをきれいにしたので
解決案2は出来れば避けたいところ。
0583kitaの中の人 ◆KITAulkOso
04/11/23 11:59:39ID:9ejod1vc> 区別しないことで生じる問題点は>>578の「(2)を赤の問題点」以下で述べて
> ることで、要するに「少なくとも赤のままはまずい」ということです。で、
何か話がかみ合ってないようですが、421さんは内部仕様の話をして、
自分は外部仕様の話をしてるような気が…。
外部仕様が決まらないと内部仕様の話はありえないです。
外部仕様としては、多くても以下の4種類しかありえないです。
(A) 未読スレ
(B) 既読スレ、未読あり
(C) 既読スレ、未読なし
(D) 開いているスレ
(D)は今の仕様にはないもので、(C)と区別される必要はないですが、
(B)とは区別される必要があります。これを満たさない内部仕様は不許可です。
で、どの案を採用するかですが…これはまた後で書きます。
0584kitaの中の人 ◆KITAulkOso
04/11/23 12:44:11ID:9ejod1vchttp://kita.sourceforge.jp/cgi-bin/hiki/hiki.cgi?%A5%B9%A5%EC%A5%C3%A5%C9%B0%EC%CD%F7%A4%CE%A5%DE%A1%BC%A5%AF%A4%CE%BB%C5%CD%CD
0585421
04/11/23 13:24:48ID:qRM01ICu>>583,584
Hiki見ましたが、パターン1が従来パターン(解決案2)ですね。
でパターン2なんですが、上の方で懸念していた問題点は、鯖側で新しい書き込みがあっても
パターン2では分からないこと・・・だったんですが、良く考えたらReadNumの数字をスレ一覧に
表示しとけば分かるのか。
と言う訳で「(D)状態のマークを新設してパターン2+ReadNumの数字をスレ一覧に表示」案に一票。
ちなみにJaneViewはそのパターンみたいです。
0586kitaの中の人 ◆KITAulkOso
04/11/23 13:47:40ID:9ejod1vc> と言う訳で「(D)状態のマークを新設してパターン2+ReadNumの数字をスレ一覧に表示」案に一票。
パターン2はいいですが、>>547へループする危険性があるので注意してください。
未読のあるなしに比べたら数字の大小は大した問題ではないですが。
0587421
04/11/23 22:30:13ID:qRM01ICuまあどっちにしろ(D)の状態を判定する関数が必要なので、DatManagerとKitaHTMLPartに数行加えて
スレが開いているかどうかをチェックする関数を追加しました。cvsからの差分でkitaで-po
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1123.txt
bool DatManager::isMainThreadOpened( const KURL& url );
bool DatManager::isMainThreadOpenedFast( const KURL& datURL );
使いかたは url を入れて開いてればTRUE閉じてればFALSE。下の方はKita::getDatURL()を使わないで
高速化したバージョンなので、KitaSubjectView::updateListViewItem()で使うときは
isMainThreadOpenedFast()の方が良いと思います。ただしURLとして datURLを入れてください。
その他追加した関数に関しては
KitaHTMLPart::setup()でDatManager::addMainThreadToList()を呼んでURLを登録
KitaHTMLPart::clearPart()でKita::DatManager::removeMainThreadFromList()を呼んでURL抹消
って感じ。
0588421
04/11/23 22:38:45ID:qRM01ICu微調整して後でパッチ出します。boardmanagerとkitaboardviewあたりいじってます。
しかしKNOPPIXって開発環境があらかた揃っててCVS版でも余裕でmake出来るのでほんと
テスト用に最適ですなw テスト手順はこんな感じ
(1) KNOPPIXにkitaをインストール
(2) linux板を開いて適当なスレを開く。とりあえずこのスレ(1089905503.dat)とKNOPPIXのスレ(1094401227.dat)
(3) kitaを閉じる。
(4) pc.2ch.net から pc5.2ch.net に移転したという仮定の元でテストする。1094401227.dat を
擬似的に前々スレ( http://pc.2ch.net/test/read.cgi/linux/1022744633/ )とする。
cd /var/tmp/kdecache-knoppix/kita
mv pc5.2ch.net pc.2ch.net/
mv pc.2ch.net/linux/1094401227.dat pc.2ch.net/linux/1022744633.dat
mv pc.2ch.net/linux/1094401227.dat.idx pc.2ch.net/linux/1022744633.dat.idx
board_list を書き換えて pc5.2ch.net/linux から pc.2ch.net/linux に変更。
(5) kitaを再起動して linux 板を開いて開かないことを確認。
(6) 板一覧を更新
(7) Linux板をもう一度開いてキャッシュと既読情報が受け継がれてるか確認
(8) >>1の前々スレのリンクがポップアップするかチェック
(9) もう一度再起動して pc5.2ch.net/linux/BBSHISTORY がうまく読まれるかチェック
(10) BBSHISTORYとBBS_MOVEDの中身をチェック
0589421
04/11/23 23:46:48ID:qRM01ICu変更対象は boardmanager.{h,cpp}とkitaboardview.cpp
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1123-2.txt
・外部板の登録の仕方を若干変更
KitaBoardView::loadExtBoard()のあたり。まあ、相変わらず暫定仕様な訳ですが。
oooug.jpみたいな Flash CGI/mini thread 型の板の場合はextbrd.confで
OpenOffice.org<>http://oooug.jp/cgi-bin/bbs/users/<>3
みたいに最後に「<>3」を付けて下さい。するとこの板はFlash CGI/mini thread 型として登録されます。
その他の2ch互換板、したらばの場合は自動判定するので「<>数字」は必要ないです。ちなみにこの3って数字は
boardmanager.hの/* type of board */以下の数値だったりして。
・板リストの更新前に本当に更新するかメッセージボックスを出すようにした
KitaBoardView::downloadBoardList()のとこ。これで移転かなと思ったら気軽にメニューの板一覧更新で
移転があったか確認できます。あとついでに新板や移転した板の名前をクリップボードにコピーできるようにしたり。
ちなみに板移転ですが、従来どおりプリファレンスのデバッグのページで手動で移転することも可能ですが、
そっちでは板リストは更新されないのでなるべく手動で移転するのは避けてください(デバッグのページは
消しちゃった方が安全かも・・・)
・あとはこまかいバグの修正とかqDebug消したりとか。
明日はDatManagerのチェックをする予定。
0590login:Penguin
04/11/24 01:35:52ID:NIUn7ONT1行AA、適当に拾って来て足しときますた。
気に入らないのは削ってください。
#RPMPOINTの人はPC復活したんだろうか…?
0591kitaの中の人 ◆KITAulkOso
04/11/24 02:10:02ID:HeQ5hYMFあと>>574あたりから議論していた未読表示の対応を入れました。
とりあえず黄色にしましたがいまいちなのでたぶん変更しますw
ヘッダのOn/Offも入れましたがまだ微妙にバグが残ってます。
とりあえず明日snapshot出す予定なので、やばそうなら止めてくださいw
>>590
どもです。README.2chに入れました。
# hikiって履歴を辿っていけないのかなぁ。
0592421
04/11/24 22:13:14ID:Q57DaliPthread.{cpp,h}
datmanager.{cpp,h}
kitathreadview.cpp
kitahtmlpart.cpp
kita.cpp
を少しだけ修正してます。
ところでcvsですが、Qt3.1だと下のエラーが出ます。
kitasubjectview.cpp: In member function `virtual bool
KitaSubjectView::eventFilter(QObject*, QEvent*)':
kitasubjectview.cpp:498: error: `adjustColumn' undeclared (first use this
function)
kitasubjectview.cpp:498: error: (Each undeclared identifier is reported only
once for each function it appears in.)
kitasubjectview.cpp: In member function `void
KitaSubjectView::loadHeaderOnOff()':
kitasubjectview.cpp:537: error: `adjustColumn' undeclared (first use this
function)
0593421
04/11/24 23:39:48ID:Q57DaliPthread.{cpp,h} datmanager.{cpp,h} kitathreadview.cpp kitahtmlpart.cpp kita.cpp
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1124.txt
・>>587のDatManager::isMainThreadOpened()の仕様を若干変更して効率化
パラメータ Thread::m_isOpened で判定するようにしたので、KitaSubjectViewの
Kita::DatManager::isMainThreadOpenedFast( datURL ) の部分は
thread->isOpened() に変更しておいて下さい。
ちなみに他のクラスから開いているかどうか知りたい時は DatManager::isMainThreadOpened()
のままでOK。
・KitaHTMLPart::setup()あたりを若干整理
ついでにコメント増やしたりとか。
・登録されてる板上のスレッドのURLかどうかをチェックする DatManager::isThreadEnrolled( url )
という関数を新設
で、KitaMainWindow::slotOpenURLRequestExt()でURLをスレッドタブを開くかどうかを
その関数で判定するようにした。
・終了時にDatInfoをdeleteするようにした
~KitaMainWindow()のKita::DatManager::deleteAllDatInfo()のとこ。
まあ何もしなくてもOSが開放してくれますが一応明示的に。
・あとは細かい修正とかqDebug消したりとか。
明日はKitaWriteViewあたりをチェックする予定。
0594kitaの中の人 ◆KITAulkOso
04/11/25 01:45:31ID:D9N/zWPiつhttp://kita.sourceforge.jp/snapshot/kita-20041125.tar.gz
あとはUIの整理と翻訳くらいの予定
0596421
04/11/25 23:19:35ID:IULYOANR対象は threadindex.{h,cpp} datmanager.{cpp,h} boardmanager.{cpp,h}
kitawriteview.cpp kitawritetabwidget.cpp
多分いま中の人がいじってる最中のあたりとはバッティングしてないはず。
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1125.txt
・ViewPos = 0 の時に、スレッドプロパティなどから直接 ThreadIndex::getViewPos() を呼ぶと
ViewPosの数字がidxとキャッシュでずれるバグ修正
ThreadIndex::getViewPosPrivate()のところ。ViewPos=0のときに無条件で"cache"の情報
を利用していたのを止めた。
・あとは細かいバグ修正とqDebug外したくらい。
明日は全体的な微調整とレビューをおこなう予定。というかレビュー要員募集中。
ここの動作が変だとか言ってくれないとそのままリリースされる可能性が大なので。
0597421
04/11/26 00:10:14ID:98xYxq86aaaa aaa>>123
みたいに全角空白があって、その後にテキストノード、Aノードが続くと
Aノードの位置がずれることだと思います。それで、いま晩飯食いながら
なんとなくKDEのWebCVSでKHTMLのコードを眺めてた訳ですが、
とりあえず昔KDE3.1の時代に先頭の全角空白が詰まる問題のパッチでは
kdelibs/khtml/rendering/bidi.cppを直してたので、多分そこにまだ
問題が残ってるんだろうなと当たりを付けて眺めてみたら、
computeHorizontalPositionsForLine()というそれっぽい関数があって、
コメントとか見ながらその関数の中を眺めてたら
int x = leftOffset(m_height); という行と
int rightPos = lineBox->placeBoxesHorizontally(x); という
行があって、どうもノードの幅の計算をするときに、先頭の全角空白問題の時
みたいに全角空白を半角空白として認識して空白を詰めて計算してるため続く
Aノードの位置が左にずれてるらしい・・・という結論から言うと至極当り前な
推測に至ったのですが、良く考えるとKDEの開発MLにも参加してない自分が
バグの追求をしても仕方ないとふと我に帰ってやめましたw まあ30分位しか
調べてないので全然違う理由なのかもしれませんが・・・
と言う訳で、もしKDEの開発MLか何かに参加してる人がこれを読んでたら
開発者に直してと頼んでもらえるとありがたかったり。
0598kitaの中の人 ◆KITAulkOso
04/11/26 01:56:59ID:uJKFpkbeつhttp://kita.sourceforge.jp/snapshot/kita-20041126.tar.gz
全部パッチは入ってるはず。
あととりあえず翻訳終わりました。
今まで英語のままのところが多かったのは>>492のKitaThreadPart廃止による副作用でした。
あとプリファレンスから「デバッグ」を消しています。>>589
Qt 3.1の対応(>>592)も入れてますが面倒なので30pxに強制的に設定してますw
設定する機会も少ないと思うので影響は少ないと思いますが…。
直したいところは終わったので何事もなければリリースの準備にします。
0599login:Penguin
04/11/26 18:56:12ID:6s/ZOlZl乙彼です
板一覧の選択色がKDEのカラースキームの設定に関わらず群青色固定なのですが仕様でしょうか
あとkitaイメージビューワで表示したあとKonquerorに画像を渡すと文字で表示されてしまいます
(リロードすれば大丈夫)
0600421
04/11/26 23:15:51ID:akDpOYEt>>599
最初の方はバグです。listviewitem.cppのpaintCellを次に修正してください。
void ListViewItem::paintCell( QPainter *p, const QColorGroup &cg,
int column, int width, int align )
{
QColorGroup color = cg;
color.setColor( QColorGroup::Text, m_textColor );
color.setColor( QColorGroup::Base, m_baseColor );
KListViewItem::paintCell( p, color, column, width, align );
}
2つ目は実は結構難しい問題で、そもそも何故テキストが表示されるかと言うとkitaimgtabwidget.cppの
480行目あたりの openURLRequestExt( view->url(), KParts::URLArgs(), "text/html" );
の部分でMIMEタイプを"text/html"と指定して画像ファイルをKonquerorに送ってるのを、Konquerorが
ファイルのヘッダも調べずにテキスト形式ファイルと決めつけてファイルを開いているからで、じゃあ
"image/png"みたいにMIMEタイプを指定して送ればよいじゃんと思うかもしれませんが、そうすると今度は
KonquerorじゃなくてKViewやkuickshowで画像を開いてしまうという問題が。
結局、取れる対策は2つ
1、コントロールセンターのファイルの関係付け経由でなくて自前で外部ブラウザを設定する。
2、MozillaかFireFoxを使う。
0601421
04/11/26 23:21:22ID:akDpOYEtお気に入りまわりは次バージョンで整備するということなのでレビュー対象から除外しました。
テスト環境: KNOPPIX3.6、Qt3.2.3、KDE3.2.3、mona フォント
・そもそもユーザーマニュアルがないので詳しい使用方法が分からない
・プリファレンスの左側のツリービューの項目の文字が全部表示されない、枠を広げることができない
・板別に串の設定ができない
・キャッシュディレクトリが固定で任意の場所を指定出来ない
・板一覧やスレ一覧の背景色を設定できない
・キーボードショートカットのキー割り当てが適当
・いちいちコントロールセンターでマウスジェスチャーの設定をする必要がある
・他のブラウザからのログ移行が難しい
・外部板の登録の方法が良く分からない
・外部板の並び替え、カテゴリ別分類ができない
・板名検索機能が無い
・スレ一覧の更新のときにいちいちダウンロードダイアログが出るのがうざい
・スレ一覧の各行の幅が保存されないで勝手に調整される
・スレ一覧のIDの順序の行が消せない
・スレ一覧のViewPos、板の行に何も表示されない
・スレを開いていると更新があってもスレ一覧のマークが変わらないため更新があったことが分かりにくい
・スレ一覧でまとめてスレ削除ができない
・スレ別でのコテハン記憶、あぼーん機能が無い
・スレビューで全角空白があるとリンクの位置が左にずれる
・スレビューの検索単語をハイライトのボタンを押しても何も起きない
・スレビューでマークしたスレの番号が保存されない
・スレビューでレス抽出の仕方がいまいち分かりにくい
・スレビューでメアド欄非表示設定だと名前が数字でもレスポップアップしない
・スレビューのフォントサイズを変更するときにいちいちプリファレンスを開くのが面倒
・メインスレッドウィンドウとKitaNaviの見分けが付きにくい
・まちBBSに書き込み出来ない
・画像ビュワーの右クリックメニューのサイズのところで現在の画像サイズが分からない
・画像のプロパティみたいなものが無いためファイルサイズやフォーマットが分からない
・画像あぼーんが無い
0602kitaの中の人 ◆KITAulkOso
04/11/27 01:13:29ID:VYdYsESQcommitしました。
>>601
> ・スレ一覧のViewPos、板の行に何も表示されない
subjectviewの設定を保存するようにしたため、将来使いそうなのをあらかじめ入れたためです。
(「板」はFavoriteListViewのため)
> ・スレを開いていると更新があってもスレ一覧のマークが変わらないため更新があったことが分かりにくい
これはまずいですね…さすがに29日には間に合わないけど、
また仕様から考え直す必要がありますね。
0603421
04/11/27 02:18:55ID:bkTkhvpQ実は割合簡単な話で、hikiの書き方に合わせれば
5. スレを開いた状態でスレが更新されたなら
(D) => (B)
とするだけですね。具体的にはkitasubjectview.cppの
// no effect: m_unreadNum, m_readNum, m_newNum, markOrder
if ( thread->isOpened() ) { /* opened *
を
// no effect: m_unreadNum, m_readNum, m_newNum, markOrder
if ( thread->isOpened() && resNum == readNum ) { /* opened */
にするだけでok。 あと個人的には次バージョンでは
> ・キーボードショートカットのキー割り当てが適当
> ・いちいちコントロールセンターでマウスジェスチャーの設定をする必要がある
> ・他のブラウザからのログ移行が難しい
> ・スレビューでマークしたスレの番号が保存されない
> ・メインスレッドウィンドウとKitaNaviの見分けが付きにくい
> ・まちBBSに書き込み出来ない
あたりをなんとかしようと考え中。
0604kitaの中の人 ◆KITAulkOso
04/11/28 01:56:36ID:uKBX3WgK個人的にはマークの意味が曖昧になるのが気になりますが、
現状よりはよいということでcommitしますた。
寝て起きて覚えてたら最後のsnapshot出します。
0605421
04/11/28 02:44:08ID:oNq/H9eY・書き込みの時に現在のバイト数の計算が間違ってたバグ修正
diff part-org/kitawriteview.cpp part/kitawriteview.cpp
434c434
< int length = m_cp932Codec->fromUnicode( bodyText->text(), tmpln ).length();
---
> int length = m_cp932Codec->fromUnicode( bodyText->text().replace( "\n", " <br> " ), tmpln ).length();
バイト計算をするときは改行をbrタグにしてから計算しないと駄目みたいです。となると特殊文字なども
変換してから計算しなきゃいけないのか・・・。まあこの辺は次バージョンでもう少し調べてみます。
・あとqDebugの消し忘れ
diff libkita-org/favoritethreads.cpp libkita/favoritethreads.cpp
67d66
< qDebug("readFromXML");
0606login:Penguin
04/11/28 09:17:37ID:S1pxb2sA[環境] SUSE 9.1 Qt 3.3.3 KDE 3.3.3 kita-20041126
★スレを開いても閉じるかそのタブに別のスレを開かない限り未読数が消えない
#以前は開くと同時に未読の欄が消えていた。こっちの方が分かり易い
★上記に関連して、スレ一覧の「更新」ボタンの横の「未読スレ数」(赤字)表示も、
閉じるかそのタブに別スレを開くまで変わらない
★スレビューを更新しようとしたが「更新中」のまま反応がない時、メニューの「停止」を選択しても、
escapeを押しても変化がない。スレビューをクリックすると消える(ただし再現させるのが難しいので、
常にそうなるかどうかは不明)
★スレビューで検索し、一つもhitするものがなかった場合、「見つかりませんでした」というメッセージがほしい
今は何故か120から130番レス辺りに黙って飛んでしまうので、一瞬hitしたのかと思ってしまう
★あと、メール欄非表示の設定の時、ミョーな現象ハッケソ。>>606←これのPopupの名前欄
それと、イメージビューアに初めモザイクが掛かってるのはどういう理由からなんでしょうか?
見なきゃどんな画像か分からないからどの道外すことになるので意味ないような…
0607login:Penguin
04/11/28 09:29:20ID:S1pxb2sAってか、前は何でしたっけ?レス間の関係図みたいな奴でしたっけ?
0608login:Penguin
04/11/28 09:49:34ID:S1pxb2sA>>607は見なかったことに…
#機能を理解してなかっただけだったので…(TДT)
#ちゃんと機能してましたです
0609421
04/11/28 13:06:50ID:2307/MxE> ★スレを開いても閉じるかそのタブに別のスレを開かない限り未読数が消えない
> ★上記に関連して、スレ一覧の「更新」ボタンの横の「未読スレ数」(赤字)表示も、
> 閉じるかそのタブに別スレを開くまで変わらない
このスレの上の方で話が出てますが、今までは内部では「(鯖側の)レス数」、「ここまで読んだの位置」
の2つのパラメータを持っていたのをほにゃららして、「未読数」の列をスレを開いた直後は「新着数」として
扱って0にセットし、ここまで読んだを移動したら「未読数」として扱ってましたが、今回からは内部では
「(鯖側の)レス数」、「(キャッシュにある)取得レス数」、「ここまで読んだの位置」の3つのパラメータを
持つようになったので、「未読数」の列には厳密に「レス数 - ここまで読んだの位置」の数字が入るように
なりました。従って以前みたいに「新着数」を知りたいときは「新着数」という列を新設する必要があります。
まあスレ一覧の列のOn/Offが出来るようになったし、「新着数」と「取得レス数」の列を入れるとしたら
次バージョンでですかね。
> ★スレビューを更新しようとしたが「更新中」のまま反応がない時、メニューの「停止」を選択しても、
> escapeを押しても変化がない。
こっちでは確認出来てないので、ぼちぼち見ときます。
> ★スレビューで検索し、一つもhitするものがなかった場合、「見つかりませんでした」というメッセージがほしい
> 今は何故か120から130番レス辺りに黙って飛んでしまうので、一瞬hitしたのかと思ってしまう
このバグは認識してましたが、突っ込みが入るまで放置してましたw 次バージョンで直します。
つづく
0610421
04/11/28 13:11:18ID:2307/MxE> ★あと、メール欄非表示の設定の時、ミョーな現象ハッケソ。>>606←これのPopupの名前欄
これはバグですね。次みたいに修正しておいて下さい。
diff kita_misc.cpp.org kita_misc.cpp
841,842c841,842
< titletext += "<a href=\"" + linkurl;
< titletext += " title=\"" + addstr + "\">";
---
> titletext += "<a href=\"" + linkurl.replace( ">", "<" );
> titletext += " title=\"" + addstr.replace( ">", "<" ) + "\">";
> それと、イメージビューアに初めモザイクが掛かってるのはどういう理由からなんでしょうか?
グロ画像対策です。モザイクをoffにしたいときは .kde/share/config/kitarcで
「UseMosaic=false」として下さい。
> あとスレビューでレス番号を右クリックしても何も起こらなくなってる
参照がないときでも何か反応させた方が良いのかも・・・
ところで全体の設定ファイルが.kde/share/apps/kitaではなくて.kde/share/config
にあるのはKDEのアプリとしては正しいんですが、OS再インストールの時とかバックアップする
ときにバックアップし忘れそうな気がしますねえ、と今日の夜FC3をインストールするつもりで
いまバックアップしてる最中なのでそうオモタ。
0611kitaの中の人 ◆KITAulkOso
04/11/28 14:12:40ID:uKBX3WgK・文字列を選択すると標準出力に"XXX heuristicNameMatch hint = utf-8"が出続ける
という問題をfixしました。単にwarning削っただけですが…。
本来はQCp932Codec::heuristicContentMatch()を実装しないとダメですけどね…。
>>605
commitしますた。
> バイト計算をするときは改行をbrタグにしてから計算しないと駄目みたいです。となると特殊文字なども
> 変換してから計算しなきゃいけないのか・・・。まあこの辺は次バージョンでもう少し調べてみます。
たぶんdatファイルに格納するときのバイト数なので、
リンクについても同様に変換してから計算しないとまずいですね。
で、2chだとリンクするけど、まちBBSだとリンクしないということは…((((;゚Д゚)))ガクガクブルブル
>>606>>607>>609>>610
> 取得レス数
これは今の「既読」に相当しますよね。というかこれは「取得」のミスorz
あと、On/Offは出来るようになりましたが、あまり列を増やすと混乱するので別の方法を
使うことを検討したいです。数字の色を変えるとか。
> モザイク
On/Offの具体的な要望がなかったような気がするので今までUI付けてなかったり。
というわけで次(12/29?)に入れます。たぶん。
> メール欄のバグ
commitしますた。
> 参照がないときでも何か反応させた方が良いのかも・・・
に一票。
> 設定ファイル
これってKDEの設計の問題だよなぁと。configは廃止してもいい気が。
0612login:Penguin
04/11/28 15:11:33ID:IzXu5vFBところで前にスレ一覧のNo.とかTitleとかの欄の幅を変えられるようにしてホスィ
ってお願いしていて、最近のスナップショットで叶えられたと喜んでいたのですが、
せっせと設定したベストポジションが一度kitaを終了してしまうとリセットされてし
まってショボーンです。
kita終了しても欄幅覚えて再現してくれるようにキボンヌ。
0613kitaの中の人 ◆KITAulkOso
04/11/28 16:26:54ID:uKBX3WgKつhttp://kita.sourceforge.jp/snapshot/kita-20041128.tar.gz
>>612
ごめんなさい。入れたつもりだったのですがバグっててうまくいかないようですorz
すぐには直せそうにないので次でお願いします。
0615kitaの中の人 ◆KITAulkOso
04/11/28 17:09:57ID:uKBX3WgK「コピー」で得られるURLが間違ってるバグの修正。
まちBBSは直ってませんが、一行だと直らないっぽいので次に回します。
Index: kita/src/part/kitahtmlpart.cpp
===================================================================
RCS file: /cvsroot/kita/kita/kita/src/part/kitahtmlpart.cpp,v
retrieving revision 1.68
diff -u -r1.68 kitahtmlpart.cpp
--- kita/src/part/kitahtmlpart.cpp 25 Nov 2004 16:05:02 -0000 1.68
+++ kita/src/part/kitahtmlpart.cpp 28 Nov 2004 07:57:47 -0000
@@ -1566,7 +1566,7 @@
/* url */
if ( str != QString::null ) str += "\n";
- str += Kita::DatManager::threadURL( m_datURL ) + QString().setNum( resNum ) + "\n";
+ str += Kita::DatManager::threadURL( m_datURL ) + "/" + QString().setNum( resNum ) + "\n";
/* body */
if ( ret == WRITEMENU_COPY ) {
0616kitaの中の人 ◆KITAulkOso
04/11/28 17:33:45ID:uKBX3WgK(バグは除いてます)
>409>467>476>589
・鯖移転対応
>422>425
・環境変数KDEDIRSが設定されていないときも正しく動く
# ただし英語のままなのでKDEDIRSの設定自体は必要
>435>451
・したらば読み/書き/スレ立て対応
>446
・キャッシュに残ってるdat落ちしたログの表示(スレ一覧の右クリック)
>492
・書き込みウィンドウで行数、バイト数の表示
# これ分かりにくいので説明が必要ですね。
・板看板表示(スレ一覧タブの右クリック)
>530>532
・2ch以外のBBSの逐次表示
・Flash CGI/Mini Thread読み込み/書き込み/スレ立て対応
>577
・HOST表示対応
>591
・未読表示方法を変更
・スレ一覧の項目のOn/Off
0617login:Penguin
04/11/28 20:43:19ID:S1pxb2sA> このスレの上の方で話が出てますが、
スマソ。純粋に、お二人の会話についていけてませんでした orz
> ★スレビューを更新しようとしたが「更新中」のまま反応がない時、メニューの「停止」を選択しても
この件に関してですが、どうもVer. upしたときに、cacheにログがあるのに読み込めていない(スレ一覧の
「既読数」が空欄になってる)スレで発生するようです。ので、問題としては「停止やescapeが効かない」
というよりは、「Ver. up時にログを読み込めないスレがある」というものかと。
詳しく書くと、
1.) Ver. up後スレ一覧を開くとログがあるはずなのに既読数が空欄のスレがある
2.) そのスレを開こうとすると、statusbarに「更新中」とでたまま変わらない(「停止」やescapeを押しても変化なし)
3.) スレビュー(真っ白)を左クリックすると「更新中」の表示は消える
4.) スレビューを右クリックするとkitaがクラッシュする
こんな感じです。
> 「UseMosaic=false」として下さい。
早速。
>>611
>> モザイク
>というわけで次(12/29?)に入れます。たぶん。
お願いしまつ
0618421
04/11/28 22:19:52ID:2307/MxEそのバグ再現しました。例えば、kitaを閉じてから
rm 1089905503.dat (このスレのキャッシュ)
したあとkitaを起動してこのスレを開くとその症状がでます。ちなみに直すときは
スレ一覧でログを削除してからもう一回クリック。
で、これはキャッシュファイルが無いのにidxがあるとデータベースに不整合が起きて
生じるバグみたいで、多分DatManagerとBoardManagerを数行直せば直ると思うんで
すが、いかんせん現在OSを再インストール中でしょぼいサブノートから書いてる状況
なので、あと2,3時間ほど待ってください。
0619login:Penguin
04/11/28 22:58:09ID:S1pxb2sAあ、いやいや、こっちでもログ消して再取得で復旧済ですので、
急がなくて大丈夫です。
ありがとです
0620421
04/11/28 23:57:32ID:2307/MxEもうひとつ、「お気に入りスレに登録されてる」って条件が必要ですね。つまり、
FavoriteThreads::processThreadNode()のThreadIndex::loadIndex()で
キャッシュがあろうが無かろうがidxを読み込んでしまうためデータベースが壊れて、
キャッシュが無いのにReadNum > 0 になるため、KitaHTMLPart::setup()の
if( Kita::DatManager::getReadNum( m_datURL ) == 0 ) Kita::DatManager::createDatInfo( m_datURL );
のところでDatInfoを作らずにそのまま突き進んで、結局右クリックすると
KitaHTMLPart::showPopupMenu()の datInfo = Kita::DatManager::getDatInfoPointer()で
NULLが返って datInfo->getReadNum()でぬるぽで落ちるという感じ。
で、とりあえずこんな感じで回避。
diff kitahtmlpart.cpp.org kitahtmlpart.cpp
130c130
< if( Kita::DatManager::getReadNum( m_datURL ) == 0 ) Kita::DatManager::createDatInfo( m_datURL );
---
> Kita::DatManager::createDatInfo( m_datURL );
KitaHTMLPart::setup()でReadNum==0のチェックを外しただけ。するとDatInfoが
作られたときにDatInfo::initPrivate()の中でm_thread->setReadNum( 0 );
としてるのでレス数がリセットされます。DatManager::getDatInfo()を見れば
分かるように、別にReadNum==0のチェックを外しても害は無いです。というか、
むしろチェックすると上みたいな害がある訳ですがw
整合性が壊れる問題の根本的な解決は次バージョンでやります。
0621kitaの中の人 ◆KITAulkOso
04/11/29 00:29:46ID:xEs1DOao落ちなくなったことガッ確認できたのでcommitしました。
直接は関係ない話ですが、
.datがなくて.dat.idxがある状態って普通はないと思ってたんですが、
>>556にあるように
> a) キャッシュにあるスレを表示した直後(鯖からデータをロードする前)に
> DatInfo::initPrivate() からThreadIndex::saveIndex()を呼ぶ。
なので鯖が反応なくてロードを停止した場合に起き得るみたいですね。
0622kitaの中の人 ◆KITAulkOso
04/11/29 22:06:23ID:OfktG3qJ変更点(ほとんど421さん)
* 各種板対応
o 2chのサーバ移転に対応
o したらばの読み/書き/スレ立て対応
o Flash CGI/Mini Threadの読み/ 書き/スレ立て対応
* スレ一覧表示関連
o 未読数表示方法を変更
o 項目のOn/Off(ヘッダーで右クリック)
o 板看板の表示(タブで右クリック)
o キャッシュに残ったdat落ちしたログの表示(タブで右クリック)
* スレ表示/書き込み関連
o HOST表示対応(削除依頼、まちBBSなど)
o 2ch以外のスレの逐次表示
o 書き込みウィンドウで行数/バイト数を表示(右下に 「(現在の行数)/(最大行数) | (現在のバイト数)/(最大バイト数)」で表示されます。)
* その他UIの調整、バグ修正
今回は修正点が多いので、各種設定ファイルのバックアップを特におすすめします。
(.kde/share/config/kitarc, .kde/share/apps/kita/* 以下が設定ファイル、
.kde/share/cache/kita 以下がキャッシュ)
多分大丈夫だとは思いますが。
0623kitaの中の人 ◆KITAulkOso
04/11/29 22:12:28ID:OfktG3qJとりあえず次こそお気に入りの整理を入れる予定ですが、
仕事が忙しかったり何やら誘惑の多い時期なのでダメだったらごめんなさいと先に謝っておきます。
(#゚Д゚) ゴルァいわれない程度には頑張りますが。
0624login:Penguin
04/11/29 22:46:34ID:wxdUEsm/--- kita/src/part/kitawriteview.cpp.origSun Nov 28 13:22:18 2004
+++ kita/src/part/kitawriteview.cppMon Nov 29 22:38:31 2004
@@ -436,8 +436,8 @@
int maxLength = Kita::BoardManager::getBBSMsgCount( m_datURL );
QString str;
- str = QString().setNum( lines ) + "/" + ( maxLines != 0 ? QString().setNum( maxLines ) : "--" );
- str += " | " + QString().setNum( length ) + "/" + ( maxLength != 0 ? QString().setNum( maxLength ) : "--" );
+ str = QString().setNum( lines ) + "/" + ( maxLines != 0 ? QString().setNum( maxLines ) : QString( "--" ) );
+ str += " | " + QString().setNum( length ) + "/" + ( maxLength != 0 ? QString().setNum( maxLength ) : QString( "--" ) );
lengthLabel->setText( str );
if( maxLines != 0 && lines > maxLines ) return FALSE;
0625login:Penguin
04/11/29 23:42:34ID:Iq38my1Rダウンロードできない。
シクシク
0626625
04/11/30 00:54:11ID:wn41vUAvaudio/x-pn-realaudio-pluginと判断されてダウンロードできない。
Linux版のFirefox1.0とOpera7.6P3で試しました。
他の人は無問題?
0627login:Penguin
04/11/30 01:11:19ID:mDUrXQW00628kitaの中の人 ◆KITAulkOso
04/11/30 01:20:56ID:VERsZy1V他のところだと起きてない。何でだろう。
とりあえずこっちからダウンロードしてください。md5sum確認は忘れずに。
http://keihanna.dl.sourceforge.jp/kita/12389/
http://kyushu-u.dl.sourceforge.jp/kita/12389/
0629625
04/11/30 01:53:21ID:wn41vUAv無事にダウンロードできました。
どちらからでもOKでした。
ありがとうございます。
>>627
レスありがとうございます。
0630691
04/11/30 02:10:55ID:drmpea6j>>622
細かいけど
× .kde/share/cache/kita 以下がキャッシュ
○ $HOME/.kde/cache-<username>/kita 以下がキャッシュ
0631691
04/11/30 02:13:20ID:drmpea6j> × .kde/share/cache/kita 以下がキャッシュ
> ○ $HOME/.kde/cache-<username>/kita 以下がキャッシュ
KDE 3.1.xでは合ってるんだった オモイダシタヨ _| ̄|○
下は3.2以降の話だ
0632login:Penguin
04/11/30 02:19:16ID:p7K1faMQシェードでフォームサイズがかわるのがなくなったので使いやすいです。
が、機能が増えてきてそろそろ全部の機能を把握できなくなってきますた。
0633login:Penguin
04/11/30 12:35:01ID:JoaOPgCzThx.
0.173.0用、ありがたく使わせていただきますた。
#kita_0.173.0-1.dscで、kita_0.173.0.orig.tar.gzとしているのは
kita-0.173.0.orig.tar.gzに直したほうがWebの説明とマッチするのでは。。
0634691
04/11/30 14:12:59ID:drmpea6j> #kita_0.173.0-1.dscで、kita_0.173.0.orig.tar.gzとしているのは
> kita-0.173.0.orig.tar.gzに直したほうがWebの説明とマッチするのでは。。
ありゃ?ホントだ気づかんかった orz
× kita-0.173.0.orig.tar.gz
○ kita_0.173.0.orig.tar.gz
説明の方が間違ってます... _| ̄|○
直しときます
0635login:Penguin
04/11/30 22:13:19ID:RtS7XEhm#どうでもいいことですが、>>606は「KDE 3.3.3」→「KDE 3.3.1」ですた orz
0636421
04/12/01 00:06:53ID:a4/6ZSRmttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1130.txt
対象:
threadindex.{h,cpp} boardmanager.cpp datinfo.{cpp,h} kita_misc.cpp kitaconfig.{cpp,h} access.cpp
kitawriteview.cpp kitathreadview.cpp kitahtmlpart.cpp
主な内容は前バージョンでやりのこした問題の修正と高速化。
・スレ情報データベースの不整合の問題対応
そもそも根本的な問題としてdatがないのにidxを読むのが悪いので、ThreadIndex::loadIndex()の
引数にbool checkCachedというパラメータを増やしてcheckCached = TRUEのときにキャッシュが
無かったらidxをロードしないようにしました。
ちなみにBoardManager::readSubjectTxt()とかBoardManager::getCachedThreadList()で
ThreadIndex::loadIndex()を呼ぶときは既にキャッシュがあるかないかQDir::entryList()を使って
チェックしてるので checkCached = FALSE にしてます。
あとは何らかの影響でThreadクラスの情報が壊れても、スレを開くときにDatManager::enrollDatInfo()で
new DatInfo すると、DatInfo::initPrivate()でm_access->getcache()が呼ばれることによって
データベースとidxを作り直すので問題ないと思いますが、>>621の問題に対応するため
ThreadIndex::saveIndex()でReadNum == 0 だったらidxをdeleteするようにしました。
・>>611の、リンクについても同様に変換してから計算しないとまずいですねの問題
あまり厳密にやると速度が低下するので改行と>と<の時だけ計算することにしました。
KitaWriteView::slotBodyTextChanged()のところ。まあバイト数は目安ってことであまり
大きい数字にならないでねってことで。
つづく
0637421
04/12/01 00:10:15ID:a4/6ZSRm・パース回りのコードを簡略、高速化
struct RESDATを簡略化して、DatInfo::setAncList()も廃止して、Kita::parseResDat()の中で
生データを各セクションに分けるのと同時にアンカーリストを作成するように変更。
あとKita::parseDateId()で糞重いQRegExpを使うのをやめて高速化。
それとAccess::getcache()で2chの場合はemitDatLineList()を経由しないようにしてちょっと高速化。
・連鎖あぼーんをデフォルトoffに
今まではデフォルトOnでしたがやっぱ遅いので。bool KitaConfig::m_aboneChain という
パラメータを新設してそれで On/Off 切替え。kitarcで言えば
[Global]
AboneChain=false
のところ。
・>>606の検索の「見つかりません」メッセージ対応
KitaThreadView::slotSearchPrivate()のところ。
・>>610の参照がないときでも何か反応させた方が良いのかもの対応
KitaHTMLPart::slotOnURL()の/* id popup */ とか/* show reffered num */ のあたり
これで前バージョンでやりのこした事は大体潰したかな。で、とりあえず短期的な予定としては、
前バージョンで混入したバグを潰しつつBoardManagerとThreadクラスの再整理と、今度こそ
KitaThreadViewの整理をする予定。それが終わったら>>603で挙げた項目を消化するつもり。
もっとも、内部的にいじる所はあまり残ってないので、前バージョンに比べればパッチ量は
減ると思います。
それと>>597の問題はKDE3.3で直ってました。さすがにこんなでかいバグをいつまでもほっとかないかw
0638kitaの中の人 ◆KITAulkOso
04/12/01 19:43:51ID:GuUAFL4xcommitしました。一点だけ。
> あとKita::parseDateId()で糞重いQRegExpを使うのをやめて高速化。
これってQRegExpを再利用することでほぼ解決できませんかね?
メンテナンスに問題があるのでコード量が増えるのは避けたいので。
暇があったら自分で測定してみますが。
0639kitaの中の人 ◆KITAulkOso
04/12/01 20:35:19ID:GuUAFL4xを試しにテストしてみたんですが、全然効果ありませんでしたorz
正規表現の最適化も効きそうにないしあきらめるかぁ…
0640421
04/12/02 00:25:21ID:Fn9Hkyynこちらでも測定しながら作業してますがQRegExpの遅さは洒落になってないです。いやマジでw
まあQRegExpを使わない代わりに、いまkita_miscのパース関係のコードをガリガリ削りまく
って高速化しているところなのでそれでコード量を相殺するってことで勘弁してください。
ちなみにどんなテストをして測定してるかというと、速いマシンだと違いが分からないので、
CPU: MMX333, Qt: 3.1.2, KDE: 3.1.4 というしょぼいマシンで
cp 123456.dat hoge.dat
cat hoge.dat >> 123456.dat
cat hoge.dat >> 123456.dat
・・・
みたいな感じで擬似的に3000レス、500kのdatファイルを作成して、全レス表示されるまでの
時間を計測しています。結果はこんな感じ。
ノーマル0.173.0・・・平均 15秒
>>636当てたやつ・・・平均 12秒
作業中のやつ ・・・平均 10秒
目標は0.173.0の半分なのですがそろそろきつくなって来たかも・・・
0641login:Penguin
04/12/02 13:12:24ID:9m0ABKmakitaを愛用させて頂いてます。
ありがとうございます。
要望
ttp://hoge.hoge/
等のリンクをクリックした時の動作を、
現状: 「ウェブブラウザで開く」
変更: 「リンクの場所をコピー」との選択性
にして欲しいです。
理由: kde の場合、klipperを起動させておくと、クリップボードへコピーすることで、ブラウザを選んだり細かい設定ができる。
linux の場合、どうしてもデフォルトブラウザでは巧く表示できなかったりして、複数のブラウザを切替える必要があるので、いつも右クリックから使っていますが、めんどいです。
よろしくおねがいします。
0642kitaの中の人 ◆KITAulkOso
04/12/03 20:51:59ID:eHyg4RmX> 変更: 「リンクの場所をコピー」との選択性
1-clickでクリックボードへURLをコピーできるようにするということですよね?
ちょっとそのままの形で導入は難しいです。理由は、
・"minor"な設定のためにプリファレンスの項目が増える(とりあえず他のアプリで同様な設定は見たことない)
・1-clickでコピーされるので操作ミスが怖い(klipperを起動している環境だといいですが)
代わりのUIを考えてたのですがちょっといいのが思いつかなかったので逆質問。
> ブラウザを選んだり細かい設定ができる。
の「細かい設定」は具体的にどんな作業で、頻度はどれくらいだと思います?
ブラウザ選択以外の作業がほとんどないなら、ブラウザ選択のUIをつけることを考えてます。
クリックした時のブラウザが2つから選べるのは割とよくあると思うので。
あと今思いついたのは、FireFoxのようにクリックしたときにダイアログが出て、
そこでURLを渡すアプリを選べるようにするとか。
とりあえず思いついたのはこれくらい。
(641さんに限らず)何かよさそうな案があったら書いてください。
0643login:Penguin
04/12/03 21:52:55ID:Kh8u1cQiところで最近、キテガイが張り付けた画像を何回も踏んでしまって頭を抱えています。
Linuxデスクトップ画像のスレにもありました。
個人的な要望で流れを止めてスマソですが、
>>601 の最後に書かれている。
画像あぼーん機能 "優先" キボンヌです。
0644421
04/12/04 00:06:13ID:QtPpS60z> 画像あぼーん機能
モザイク機能があるので画像あぼーんの優先度は割と低めです。というのは
口実で、他に片付けなきゃいけない事が山積みなので、特に問題の無い画像
関係には単に時間を割けないってだけなんですが・・・
という訳で画像関係のメンテナ募集中w
関数とか変数の意味が分からないとかいった質問があったら教えますんで。
それとレンダリング高速化計画ですが、なんとか0.173.0の2倍(状況によっては
3,4倍)までは速く出来ました。まあ結局レンダリングまわりをほとんど書き直す
羽目になった訳ですがorz 完成は明日の夜あたりかな。
それでも(一方的にw)ライバル視してるOpenJaneと比べると同スペックのPCで
4倍位遅いんだよなあ・・・。ほんと、化け物ですかw>OpenJane
0645641ではないですが
04/12/04 00:21:18ID:lFcZHSka個人的には
・"アプリケーションで開く"
・"名前を付けて保存"
が欲しいです。(゚ ゚)
0646login:Penguin
04/12/04 00:46:54ID:Y5bXkGLi私に出来るかどうかはわかりませんが。
マターリと画像関係の調査からやってみます。
0647login:Penguin
04/12/04 00:59:27ID:Y5bXkGLi0648login:Penguin
04/12/04 03:05:48ID:yS3e6jTa0649641
04/12/04 09:00:20ID:4KUf6oSh641です。遅くなりました。
> 1-clickでクリックボードへURLをコピーできるようにするということですよね?
そうです。
> > ブラウザを選んだり細かい設定ができる。
> の「細かい設定」は具体的にどんな作業で、頻度はどれくらいだと思います?
具体的には、
* ブラウザの選択
* クリックしたURLをタブで開く
です。
klipperの 「設定」->「動作」->「^https?://.」 の中のmozilla用コマンド(確かdefaultで設定済)を見て頂くとわかりますが、
pgrep firefox && firefox -remote 'openURL(%s,new-tab)' || firefox %s (%sは、URLに置換)
のようになっていて、該当ブラウザが既に起動している時は、タブで開く設定になっています。
これによって、クリック毎に新規windowが開かなくするといった使い方をしますので、
頻度の答えとしては、「URLをクリックする度」となります。
0650421
04/12/04 23:21:50ID:rHUEAtjXdatinfo.{h,cpp} kita_misc.{h,cpp} parsemisc.h datmanager.{h,cpp} kitaconfig.cpp
kitawriteview.cpp kitahtmlpart.cpp kitadomtree.{h,cpp}
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1204.txt
(おおまかな説明) 一番大きな変更点はパースエンジンを書き直してDOM系のクラスを除いたこと。
いままではHTMLDocument::createElement()を使ってノードを作ってましたが、KHTMLが最適化
されたKDE3.2以降はHTMLを丸投げしてKHTMLにレンダリングしてもらった方が速いことが分かったので、
DatInfo以下のクラスではHTMLテキストだけを扱うことにして、HTMLElement::setInnerHTML()を
使ってレンダリングすることにしました。( KitaDomTree::createResElement() のところ)。
これによってパース関係の関数が見やすくなりました。またハース関係の関数を一ヶ所
(kita_miscの700行以下あたり)にまとめて、パースの流れが分かり易くなるように整理しました。
その他、必要ないコードを削除したりメモリ消費量を減らしたり等。
(もうちょっと詳しい説明) 心臓となる関数はKita::parseResDat()で、 datinfo.hで定義されている
ResDat構造体のnumにレス番号、linestrにレスの生データをセットしてKita::parseResDat()に送れば
ResDatの各項目に生データが入ります。例えばKita::DatToHtml()を見ると分かり易いかも。
実際にキャッシュの中にあるレスが表示されるまでの流れはこんな感じ。
(1) KitaHTMLPart::setup()のKita::DatManager::createDatInfo()でDatInfoクラスが
作られる際にDatInfo::initPrivate()の中のm_access->getcache()により、Accessクラスから各行の
生データ(unicodeにエンコード済み)がDatInfo::slotReceiveData()に送られて来て、行ごとに
DatInfo::copyOneLineToResDat()を呼んで、そこで resdat.num = num;、resdat.linestr = line;
とレスの番号と生データがResDat構造体にセットされる。
つづく
0651421
04/12/04 23:24:44ID:rHUEAtjX(2) その後 KitaHTMLPart::load()、KitaHTMLPart::showResponses() 経由でKitaHTMLPartクラスから
レスを表示するためKitaDomTree::appendRes()が呼ばれると、そこからレスのDOMエレメントを作るため
KitaDomTree::createResElement()が呼ばれ、さらにHTMLテキストを得るためにDatInfo::getHTML()が呼ばれる。
(3) DatInfo::getHTML()からResDat構造体をパースするためDatInfo::parseDat() が呼ばれ、そこから
さらに Kita::parseResDat()が呼ばれてResDat構造体にHTMLなどがパースされて入る。
(4) あとはKitaDomTree::createResElement()に戻って、setInnerHTML()でHTMLがレンダリングされ、
KitaDomTree::appendRes()でレスがappendされて表示される。
(5) リロードで鯖からデータが送られて来たときも同じ感じでパースされる。
(注意点) DIVの中にTABLEやDIVがあると致命的に速度が遅くなることが分かったのでレスのDOMツリー構造を
DIV
|-TABLE タイトル
|-DIV 本文
から
DIV タイトル
DIV 本文
に簡略化してます。ただし、スタイルシートを使用する場合は速度より見た目を重視するということで、
DIV-TABLE タイトル
DIV 本文
とタイトルノードでTABLEタグを使用してます。タイトルノードの詳しい構造については
Kita::createTitleHTML()を参照してください。デフォルトのスタイルシートも多少変更してます。
0652421
04/12/04 23:35:57ID:rHUEAtjXしばらくはコードの内部の方に引きこもってUIとかの外部仕様はいじる予定は無いです。
あと>>650で間違った記述があったので少し修正
> ResDat構造体のnumにレス番号、linestrにレスの生データをセットしてKita::parseResDat()に送れば
> ResDatの各項目に生データが入ります。
-> ResDatの各項目に生データがパースされてHTMLなどのデータが入ります。
0653421
04/12/05 00:30:55ID:7ft/edw3*** part/kitadomtree.cpp.org 2004-12-04 23:02:26.000000000 +0900
--- part/kitadomtree.cpp 2004-12-05 00:28:22.255368280 +0900
***************
*** 77,83 ****
else{
if ( m_bufLng == 0 ) m_bufLng = mrg;
! else while ( num >= m_bufLng ) m_bufLng += delta;
m_titleElm.resize( m_bufLng );
m_bodyElm.resize( m_bufLng );
--- 77,83 ----
else{
if ( m_bufLng == 0 ) m_bufLng = mrg;
! while ( num >= m_bufLng ) m_bufLng += delta;
m_titleElm.resize( m_bufLng );
m_bodyElm.resize( m_bufLng );
0654kitaの中の人 ◆KITAulkOso
04/12/05 00:58:47ID:cOV8aKgn・登録/削除のタイミングでお気に入りを保存(>>581)
・お気に入り周りのコード整理をちょっとだけ
DQ8という誘惑に負けてるのでコードあまり書いてませんorz
>>645
これは左クリックの話?右クリックメニューでいいのならそちらに入れたいです。
>>649
なるほど。それなら1-clickでコピー出来る方が便利ですね。
最悪configファイルを直接いじる形になるかもしれませんが、機能は入れます。
# たぶんKitaMainWindow::slotOpenURLRequestExt()をいじればいいので自分が担当かな。
>>650>>653
merged. めちゃくちゃ高速化されてますねぇ。とりあえず気になったのは
・「名前」の前にスペースが欲しい。
・検索したときの移動場所がおかしい(前にも同じ問題があったような)。
くらいです。
0656421
04/12/05 01:41:05ID:7ft/edw3作りかけだからなのでとりあえず気にしないでおいて下さい。
>>654
> 最悪configファイルを直接いじる形
結構イレギュラーな設定だと思うので、プリファレンスには項目を作らないに一票
> ・「名前」の前にスペースが欲しい。
> ・検索したときの移動場所がおかしい(前にも同じ問題があったような)。
あれ、うちの環境(KDE3.3)だと問題無いんですが、Turbo10Fって確かKDE3.1だから
それが悪さしてるのかなあ・・・。明日にでもKDE3.1のマシンで確認しときます。
0657421
04/12/05 23:38:22ID:4Ipjwlc1access.{cpp,h} datinfo.{cpp,h} kita_misc.cpp thread.{cpp,h} datmanager.cpp threadindex.{cpp,h}
kitadomtree.cpp
ttp://www.geocities.co.jp/SiliconValley-Bay/7435/patch-1205.txt
・KDE3.1対策
>>654は>>93の「KDE3.1のバグ」が原因だったので、 KDE3.1の場合はタイトルノードでデフォルトで
TABLEタグを使って、本文ノードはHTMLの前後に<div>タブを付けることに( Kita::parseBody()と
Kita::createTitleHTML()の先頭と最後の#ifのところ )
それとKDE3.1の場合はAAも崩れていたのですが、こっちの方は Kita::parseBody() で
<span style=\"color: white\"></span>みたいに空白のspanタブを行の先頭に追加しても
setInnerHTML()でレンダリングするとspanノードを作ってくれないらしいことが原因だったので、
<span style=\"color: white\">_</span>みたいに適当に空白ではない文字を入れて、
setInnerHTML()してから"_"を取り除くことに( KitaDomTree::createResElement() の#ifのとこ)。
当然ですが、上の処理をしているためKDE3.1で、かつAA表示設定にしているとレンダリング速度は
がくっと落ちます(というかノーマル0.173.0程度の速度に戻ります)。その他、
・datのサイズをAccessクラスから取るように( DatInfo::getDatSize() のとこ )
・レスのマーク情報の管轄をThreadクラスに移動( Thread::isMarked() のあたり )
・レスのマーク情報をidxに保存するように( ThreadIndexに関数追加 )
これでやっとマーク機能がまともに使えるようになったかな・・・。とりあえず全マーククリア
機能とマークしたレスを抽出して表示する機能は近々付ける予定。
次はThreadクラスの管轄をBoardManagerに移す作業に移ります。Threadクラスの検索速度の
向上とデータベースの一意性の確保が狙い。
0658421
04/12/06 00:41:37ID:Ywt3GBNw書かれてないので消して良いです。
それとソースのディレクトリ構造なんですが、libkitaとprefsは良いのですが、
KitaThreadPartが無くなった今partの意義が薄れている気がします。それに
Kita*tabwidget、Kita*viewがsrcとpartにちらばっているのもあまり綺麗じゃ無い
ので、ぼちぼちディレクトリ構成を再構成した方が良い様な希ガス。
0659kitaの中の人 ◆KITAulkOso
04/12/07 23:19:51ID:OFJ0xJoo>>657
merged.
あと>>624のパッチ入れるの忘れてたと思ったら>>636で入ってますね。
> ぼちぼちディレクトリ構成を再構成した方が良い様な希ガス。
これは自分も思ってたんですが、どういう風に構成した方がいいかなぁ。
Dock単位あたり?
■ このスレッドは過去ログ倉庫に格納されています