2007年9月 1日 (土)

文庫エディター ver.0.3です

遅くなりましたが、文庫エディターの ver.0.3です。

変更点はいっぱいありますので、詳しいことはまた後で。とりあえず、使ってみたい人は右クリックからダウンロードしてみてください。

「bunkoeditor_0.3_arm.ipk」をダウンロード

さて、現在、上の文から約16時間ほど経っております(^^;。というわけで、変更点についての解説です。仕様の変更としては、

・ファイル選択ダイアログの実装。対象となる拡張子は、「txt」「TXT」だけです。
・ビューワー画面の最下部にスクロールバーを表示。クリックすることで表示位置を変更できます。
・組字の対象に「??」と「?!」を追加しました。
・キーの先行入力を無効にしました。
・エディタ画面でキャンセルキーを押すと、終了せずにファイル選択ダイアログが開きますが、これは仕様です。終了するためには、さらにそこから2回、キャンセルキーを押してください。
※一般の動作と違いますが、これまでがこのパターンだったので、自分が馴染んでしまってるので・・・。
・画面の右上隅と右下隅をクリックすることで、行頭・行末のマージンを変更できます。Command
ちなみに画面クリックによる操作は右図のようになります。












うーん、気がついたら寝落ちしてました。で、ここからは、バグ修正関係。

・≪≫という感じで、ルビのカッコだけ有って中身がない場合に落ちるのを修正。
・「地から○字上げ」指定の時に、ルビが含まれていると位置がずれてしまうのを修正。
・半角数字が3文字以上続く場合に、最後の2文字が組字になってしまうのを修正。
・半角数字が組字になると、その行の文字数が減ってしまうのを修正。
・「!!!!!!」等が組字で表現されてしまうのを修正。
・ぶら下がり禁則対象文字の追加。
・縦書き時に回転させる文字の追加。
・改ページ直後に <img> タグがあると、画像が表示されずそのまま表示されてしまうのを修正。

てなところですが、すでにいくつかバグが見つかってるので、既知のバグも。

・字下げを指定するとルビがずれる。
・2行にわたるルビの表示がおかしくなることがある。
・行頭のマージンが保存されない。
・画像の上にスクロールバーが重なってしまう。
 ※画像(挿絵)を表示する際にはスクロールバーは表示しないようにするつもりです。
・ファイルの最後まで行くと、スクロールバーが表示されない。

試用してくださった方は、ご意見・ご感想・バグ報告など、コメントでいただけると助かります。

| | コメント (8) | トラックバック (1)

2007年5月29日 (火)

文庫エディター ver.0.1です

何とか予告通り、アップします(^^;。文庫エディター試作版です。

「bunkoeditor_0.1_arm.ipk」をダウンロード

※右クリックして、「名前を付けてリンク先を保存」とかで保存してください。

何のためのプログラムかと言いますと、青空文庫形式のファイルを閲覧しながら、おかしな所を見つけたら、即、エディタ画面で修正し、また読み進めるためのプログラムです。

実のところ、ScanSnap を持っていない人 or ザウルスで本なんか読まない、という人にはそれほど価値のあるプログラムではないでしょうねぇ・・・。

使用法ですが、まずはインストール。「アプリケーション」タブに「文庫エディター」のアイコンが追加されます。

1.クリックして起動すると、まずはファイル選択画面が開きます。そこで、青空文庫形式のファイルをクリックして選択します。

※注意※
ちなみに、S-JIS形式のみ対応してますので、それ以外のファイルを読み込むと文字化けします。その場合は、キャンセルキーで閉じてください。OKキーを押すと、最悪の場合、元ファイルが上書きされて破壊される可能性があります。

2.開くとまずはエディタ画面になります。こんな感じです。
Scrn010













2.この状態で、右上のニコちゃんマークをクリックすると、ビューワーが起動します。

Scrn009_1  パブリフォントの22ポイントを独自に生成してインストールしている場合は、こんな画面になります。














 特に何もフォントをインストールしていない、ごく普通の状態なら、こんな感じの画面になります。(ページが違っているのはご勘弁)Bunko_lc_24















この状態で、ジョグダイヤル、カーソルキー、画面のタップのいずれかでページを移動することができます。画面をタップする場合、画面を縦に4分割して、上から、1ページ戻る、半ページ戻る、半ページ進む、1ページ進む、となります。

4.読みながらおかしい部分を見つけたら、キャンセルキー(OKでも良し)を押してエディタ画面に戻ります。その場合、ビューワーの最上行に表示されていた文の文頭が、エディタ画面の先頭になります。おかしい部分を修正してください。
 ビュースタイルで使うことが多いと思うので、入力しにくい文字は「編集」メニューから入力できるようになっています。正規表現を使った置換も可能です。ただし、全体の一括置換のみサポートしています。
Scrn003 置換を行った場合、その内容がホームのzaurusフォルダの「replace_log.txt」にRubyスクリプトの形式で書き出されます。Rubyを使ってフィルタを作る際に利用できるかと思います。
 実際に使ってみると、そのページ内部でのコピペで終わってしまう部分も多いんですね、これが。




5.修正が終わったら、またビューワーに戻ってもいいんですが、保存しておくのもいいでしょう。右上の赤丸がセーブボタンです。保存には少々時間がかかるので、終了メッセージを出すようにしてあります。しばらくお待ちください。

 といった感じで使うものです。とりあえず、他にはない(?)メリットとしては、

 ・閲覧しながら、即、編集ができる。
 ・青空文庫の命令にある程度対応している。
  ※#改ページ、#地付き、#地から○字上げ、#ここから○字下げ、
  ※#ここで字下げ終わり
 ・<img>タグに対応。<img src="ファイル名">で挿絵を表示できる。ただし、対応する画像形式はpng形式のみ。Scrn007_1 Scrn006

 なぜjpeg形式に未対応かというと、libjpegを導入するのが面倒くさいから、です。

 ・ルビ中に”・”か”、”がある場合は通常のルビより大きく表示する。これにより傍点が表示できる。

というのがあげられます。





 まあ、しおり機能がなかったり、横書き専用だったり、ページを遡るとき、たまに行が1行ずれることがあったり、といった未完成部分も多いんですが(何と言っても、2月分に書いた実験すらしていないという体たらく・・・)、とりあえず実用にはなる、というレベルにはなってると思います。

 試用していただいた方は、ご意見・ご感想などいただけると、喜びます。それでは。

| | コメント (5) | トラックバック (0)

2006年12月 2日 (土)

QDialog にメニューをつける方法

ちょっとはまったので、記録。

QDialogを継承した自作スケジューラの予定編集ダイアログ。これをビュースタイルで使用するときはキーボードのショートカットが使えないので、ツールボタンをつけようとしたのがそもそもの始まり。

1.QToolBarをつけよう。
   ・・・QMainWindowを継承していないからつけられない。

2.じゃあ、QDialog の代わりにQMainWindowを継承してみよう。
   ・・・呼び出す際にexec() が使えないので、呼び出した後も呼び出し元の処理が進行してしまう。編集終了時にシグナルをとばし、呼び出し元の変数を変えてチェックするようにしてみたが、うまくいかない。

3.標準装備のメモ帳が編集画面でもツールボタンを表示していることを思い出して、QTopiaのソースを見る。
   ・・・ざっと見ただけだけど、QDialog は使わずに、QMainWindow 内部でWidgetStackに積んだ画面を切り替える、という方法のよう。

4.ツールボタンはあきらめてQDialog に QMenuBar を追加して、メニューをつけることにする。
   ・・・メニューバーの存在がQVBoxLayoutに伝わらないようで、本来の画面の一部がメニューバーの下に入り込んでしまう。

5.QVBoxLayout の位置をずらす方法を考えて、しばらくはまる。
   ・・・QVBoxLayout の位置をずらすんじゃなくて、QVBoxLayoutの先頭に、メニューバーのサイズの分だけ空白を追加すればいいことに気がつく。

6.addSpacing() で空白部分を追加して、完了。

うーん、書いてみると、実にしょうもない展開・・・。

| | コメント (0) | トラックバック (0)

2006年11月12日 (日)

Sambaの設定、とりあえず終了

あれこれ資料を見ながら Samba の設定をやったんだけど、XPのネットワークコンピュータから見にいっても、どうしてもユーザー認証画面が出ない。ネットで検索してみても、VMware Server上でVine Linux 2.6をインストールして、Sambaを動かしてる事例なんてヒットしないし・・・。
というわけで、ユーザー認証はあきらめて、不特定多数に公開する方向で設定したら、あっさり見えた。なんでやねん。

具体的には、/etc/smb.conf に以下を追加。

[public]
comment = %U's Share directory
path = /home/share
writeable = Yes
read only = no
guest ok = Yes
force group = public
force create mode = 0664
force directry mode = 0775

後は、/home/share を作成して、「chmod 777 /home/share」 を実行しておけばOKだった。最後に 「chkconfig smb on」 を実行して、自動的に起動するようにして終了。

とりあえず使えるようになったからいいんだけど、何でユーザー認証画面までたどり着けなかったんだろう・・・?

| | コメント (0) | トラックバック (0)

Vine Linux 2.6 導入中

現在は Cygwin 環境でザウルス用のソフト作成をやってるんですが、いかんせん、Cygwin環境は他のパソコンへの移行が面倒なので、VMware上に開発環境を構築することに決定。

インストール自体はあまり問題なく成功。問題といえば、画面の色数。16bppにすると、グラフィカルログイン画面が起動できずに、テキストベースになってしまうし、8bppだと、グラフィカルログイン画面は起動するものの、画面がほとんど黒になってしまって、文字が読めない。まあ、8bppならユーザ名とパスワードの入力はできるので、起動そのものは問題なし。起動してしまえばデスクトップは正常に表示される。

結果的に 24bpp で運用中。続いて、VMware Tools のインストール。以前買ってあった、I/O BOOKS の「はじめてのVMware」を参考にして導入。「Workstation5」用の記述だけれど、VMware Tools のファイル名のバージョン部分が変わっている部分を除けば、全く問題なし。

開発環境の構築も問題なく行きましたが、最後にファイル共有しようとしたところで、仮想マシンのオプションに「ファイル共有」に関する項目がなくなってることに気づいてびっくり。

てなわけで、sambaの設定をあれこれやってます。いままでsambaの設定なんて、全くやったことがなかったので、一から勉強中。とりあえずホストのXP側から仮想マシンは見つかるようになったんですが、まだファイル共有できない状態。もう一頑張りしましょうか。

| | コメント (0) | トラックバック (0)

2005年9月24日 (土)

Qtプログラミング支援用秀丸マクロ

現時点でできること。

QT_Complete.mac

現在入力中の文字列に対して、

1.Qtクラス名の補完
2.変数名からQtクラス名を求め、メンバ関数名を補完
3.Qtクラスを継承したクラスのメンバ関数及び継承元のQtクラスのメンバ関数名の補完
 (Qtクラスが直接の継承元であるもののみ。多重継承には対応しない。)
4.自作クラスのメンバ関数名の補完
5.Qtクラスの関数一覧から一致するものを選んで補完
6.単なる文字列とみなし、一致する文字列をファイル中から探して補完

以上の動作を、現在編集中のファイル及び、インクルードされているファイルを元にして行うことができる。

QT_Include.mac

現在編集中のファイル中で使用されているQtクラス名を調べ、必要な #include 文を自動的に生成する。
挿入する場所は、ファイルの先頭から初めて現れる空行の位置。

QT_Help.mac

現在カーソルがある文字列(メンバ関数名、変数名、Qtクラス名)からQtクラス名を得て、ローカルに保存済みの対応するQtリファレンスのファイルを通常使用するブラウザで開く。

| | コメント (0) | トラックバック (0)

2005年9月19日 (月)

メニューバーにツールボタンを表示したい

 と思ってあれこれやってみたんですが、どうにもうまくいきません。どうにも分からないので、人様のソースを参考にさせていただいたら...(・o・)。思わず目が点に。

 発想の転換というやつですね。メニューバーにツールボタンを表示するんではなくて、ツールバーにメニューを登録すればよかったんですね。結局以下のようにすることで解決しました。

1.QHBoxLayout を作成
2.ツールバーを作成し、メニューを登録
3.もう一本ツールバーを作成し、ツールボタンを登録
4.2本のツールバーを QHBoxLayout に登録

| | コメント (0) | トラックバック (0)

OKボタンのキーコード

 OKボタンのキーコードですが、シャープの資料では Qt::Key_Return から Qt::Key_F33 に変更されたということになっているんですが、うまく拾えなかったので調べてみたら Qt::Key_Return のままでOKでした。どうなってるんでしょう?

| | コメント (0) | トラックバック (0)

シグナルとスロット

 それにしても、シグナルとスロットという仕組み、実にいい加減(本来のいい意味で)で便利でいい感じです。ただ、これになれてしまったら、ふつうのC++には戻れないような気がして怖いですが・・・(^^;。

| | コメント (0) | トラックバック (0)

起動時の画面レイアウトに関して

 レイアウトマネージャーを利用してレイアウトしている場合、起動時だけ思い通りに表示されないことがあります。この場合、一度、インプットスタイルとビュースタイルを切り替えてやればうまく表示されるようになります。が、それでは意味がないので考えてみました。

 インプットスタイルとビュースタイルを切り替えてやれば正常になるということは、ResizeEventを強制的に発生させればいいわけです。通常 main()は、

int main( int argc, char* argv[] )
{
     QPEApplication myapp( argc, argv );

     myMainWindow w( 0 );
     myapp.showMainWidget( &w );

     return myapp.exec();
}

こんな感じですが、showMainWidget を呼び出した後を少し変えてやればうまくいきます。

int main( int argc, char* argv[] )
{
     QPEApplication myapp( argc, argv );

     myMainWindow w( 0 );
     myapp.showMainWidget( &w );

     QSize *sz = new QSize( 640, 480 );
     QApplication::sendEvent( &w, new QResizeEvent( *sz, w.size() ));

     return myapp.exec();
}

 実際のところ、指定するサイズは何であっても、内部で適当なサイズに変えてくれるようですので、( 640, 480 )でなくてもかまわなかったと思います。

| | コメント (0) | トラックバック (0)

その他のカテゴリー

N810 | Qt | Zaurus一般 | ゲーム | 日記・コラム・つぶやき | 移植