« ログファイルとメッセージダイアログ出力 | トップページ | 間違えてました、Emacsさん »

2014年6月13日 (金)

ログファイルの機能を追加する オープンとクローズ

メッセージ・ダイアログの機能はQMessageBoxクラスを継承したので、おおよその目処はつきました。

あとはログファイルにメッセージを記録する仕組みの追加が必要です。

まず、ログファイルを書き込み用にオープンする/クローズする場所を決める必要がありますね。普通に考えるとコンストラクタでオープンして、デストラクタでクローズするのが良さそうですけど…。

LogMessageクラスインスタンスは、恐らくプログラム実行時に作成され、プログラム終了時に破棄されることになります。ですので、コンストラクタ/デストラクタに実装するとオープン/クローズするタイミングが限定されてしまいますね。

あと、設定ダイアログとかでログファイルを作る/作らないを切り替えた時に次回起動時以降にしかログ・ファイルが作成されないという仕様になってしまいます。それはあまりよろしくない気がします。

別にログファイルを作成開始(オープン)する関数とログファイルへのアクセス(書き込み)を終了する関数を設けたほうが良さそうです。

関数名はopenLogFile()/closeLogFile()でいいでしょうか。引数も検討しないと。

今はこんな感じでダイアログが出ます。内容は暫定ですが。

20140613_194005

呼び出し方はこんな感じです。


  // output message
  logMessage.criticalMessage(PHASE_BRYNHILDR,
                             tr("Password Error! Please check your password."),
                             LogMessage::Ok,
                             LogMessage::NoButton);

(*)お分かりだと思いますが、翻訳済みなので日本語で出てます。

openLogFile()/closeLogFile()の追加は後でやるとして、criticalなメッセージダイアログ出力の実装はもう可能になっています。

標準C++のfstreamを利用してほぼ書き上げたのですが、Qtの用意するQFileとQTextStreamを使ったほうがよいことに今更気づきました。今日はこれで終了します。

« ログファイルとメッセージダイアログ出力 | トップページ | 間違えてました、Emacsさん »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: ログファイルの機能を追加する オープンとクローズ:

« ログファイルとメッセージダイアログ出力 | トップページ | 間違えてました、Emacsさん »