いきなりですがパッチ。cvsからの差分でkitaで-p0。

ttp://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()のところ。まあバイト数は目安ってことであまり
大きい数字にならないでねってことで。

つづく