ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
テキストエディタ
>
Vi/Vim
>
ViVi version 5.0 Free
>
Wiki
>
ビュー行管理
ViVi version 5.0 Free
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
FrontPageの表示
ページ一覧
最近の更新
コミュニケーション
フォーラム
フォーラム一覧
開発者 (1)
ヘルプ (1)
公開討議 (2)
メーリングリスト
MLの一覧
ニュース
編集
|
ページ一覧
|
最近の更新
|
最近の更新 (Recent Changes)
2011-06-06
スケジュール
2011-06-05
viコマンド
2011-05-16
exコマンド
2011-05-11
ビルド方法
FrontPage
2011-05-10
ユーザを魔法少女・魔法少年にする
最新リリース情報
vivi-5.0-win (5.0.028 Dev)
2011-06-07 13:06
Wikiガイド(Guide)
Wikiの文法
リンクの種類と文法
ブロックプロセッサ
拡張文法
サイドバー
プロジェクトWikiでの広告設定
サイドバー (Side Bar)
このサイドバーについて
このサイドバーの編集
■
背景
ドキュメントの行情報構築は O(N) (※ N は文章サイズ)時間を要する。
文書サイズが大きくなればそれなりの時間を要する。
ビュー行情報の構築も同じく O(N) であるが、QFontMetrics を行表示を計算して1行の文字数を決定しなくてはならず、
ドキュメント行情報構築よりはるかに処理時間を要する。
ブロック情報が必要なのは、画面表示時・垂直スクロールバー情報更新時である。
■
設計
ビュー行情報は一度に全部を更新せず、画面に表示するテキスト部分のみ優先的に更新し、残りは遅延評価を行うこととする。
ビューは評価済みブロック範囲情報を保持するものとする。
評価済み範囲情報としては、ビューブロックインデックス、テキスト位置に加え、ドキュメントブロックインデックスを保持する。
垂直スクロールバー情報更新時には評価済み範囲はそのブロック数、それ以外はドキュメントブロック数を参照するものとする。
話を単純化するために、ひとつの gap_vector<size_t> でビュー行情報を表すことにする。
gap_vector<size_t> の要素はレイアウトされたブロック長を表すものとする。
値が0の場合は未レイアウト状態であることを表す。
要素数が表示ブロック数となる。
レイアウト処理