So-net無料ブログ作成
検索選択

クラス構成の変更 [SD Tool]

前回、クラス構成に変更が必要かもと書きましたが、気にしていたのは、SDのフォルダのドロップの処理。ドロップされた時に独自の処理が必要になると思うのですが、signalでそんなのが出てくるのかなと確認したところ、出て来ないようです。

ドロップの処理としては、QWidget::dropEvent()に書く様な感じがします。と言うことで、QTextEditを直接使うのではなく、派生したクラスを作成し、そこに処理を追加することにします。と言うことで、クラス図はこんな感じ。

11030800.png
結局派生


で、当初はSdToolMainから直接QTextEditを操作する様な感じで考えていましたが、そう言うのはやめて、SdToolMainからはsignalを出すだけにすることにしました。それを受けて処理するのはMainWindowClassと言う感じの想定です。

これに伴って、Qt Creator上の修正もしときます。以前やった通りに修正して、オブジェクト名もsdtoolViewに変更。新規作成したクラスのコンストラクタもQTextEditに合わせる様に修正。で、実行。

11030801.png
見た目は何も変わりませんが・・


これで、一応、土台まで修正が完了しました。


つづく。







起動シーケンスとSdToolMainの仕様検討 [SD Tool]

前回の続きで、起動シーケンスを考えます。3つのクラス間でこんな感じのシーケンスになりますかね。

11030100.png
大雑把ですが・・


SdToolMainの「起動時チェック」は以前考えた、起動時のファイル待ちまでのシーケンスを実行して、SDの状態を保持することにします。SDの状態は、SdToolMainの中で、いくつかのデータを保持することにします。

QString sd_statusSDの状態。マウントされてる、されてない、FOMAのものかなどを文字列で表しましょう。
QString sd_pathSDのルートまでのフルパス。
QList<SdFolderInfo> folder_listフォルダ情報のリスト。「SdFolderInfo」の内容は別途定義。


sd_statusに格納されるSDの状態は下記の通りとしときます。

const QStringSD_STATUS_UNAVAILABLE"unavailable"。マウントされていないなど、使えない状態
const QStringSD_STATUS_NOTSUPPORT"not support"。利用できるが、サポート外の用途で利用されている状態
const QStringSD_STATUS_FOMA_SH"foma-sh"。FOMAのシャープ端末と判断した状態


SdFolderInfoは下記の通りの構造体とします。

struct SdFolderInfo
QString nameフォルダ名
QString pathSDカードのルートからのパス。


そして、SDカード状態の取得要求に対する関数が必要ですね。

getSdStatus()
引数なし
戻り値QString状態を示す文字列
処理 sd_statusの内容を返す。


とりあえずはこんな感じですかねぇ・・。

書きながら考えてたんですが、先日考えたクラス構成は、ちょっと修正が必要かもしれませんね。ドロップの処理のためにQTextから派生して何か独自クラスを作る必要があるかもしれません・・・。とふと思いました。今回の内容とは全然関係ありませんが・・。


つづく。




ioPLAZA【ロックチューブ】

FOMAのSDカードの中身 [SD Tool]

私の携帯はSH903iと言う古い機種なのですが、親にも同じメーカーの携帯(SH902iSL)を持ってもらってます。親が使い方が分からない時に電話で聞いて来るのですが、同じ操作感じゃないと私も教えられないですからね・・。と言う感じなのですが、先日、PC上の画像を待ち受けにしたいと言い出しました・・・。ファイルのコピーが結構難点なんですよねぇ・・。「フォルダ」の概念がいまいち分かっていない様なので・・。と言う事で、FOMAで使用しているSDカードに簡単にファイルをコピーできるツールでも作りたいなぁと思いました。また、脱線しますが・・・。

さて、取扱説明書を見ると、FOMA(SH902iSL、SH903i)のSDの中身は下記の様な感じの様です。

BOOKブックリーダーフォルダ
DCIMxxxSHARP撮影静止画用フォルダ
xxxSH_UFユーザ作成フォルダ
MISCDPOF設定ファイル用フォルダ
SD_AUDIO音楽データ用フォルダ
SD_PIMPIMデータ(電話帳、スケジュール、ToDo、メール、テキストメモ、ブックマーク)用フォルダ
SD_VIDEOPRLxxx撮影動画用フォルダ
PRIVATEDOCOMODOCUMENTPUDxxxPDF対応ビューアフォルダ(SH903i以降?)
MMFILEボイスメモ、iモーションフォルダ
RINGERメロディファイル用フォルダ
STILLその他画像ファイル用フォルダ
TORUCAトルカフォルダ
TABLE管理情報フォルダ
SHARPDOCUMENTドキュメントビューアフォルダ(SH903i以降?)
IMPORTインポートフォルダ
VOICEボイスメモフォルダ(SH902iS以前用?)
SD_BINDSVC00001動画(以降可能コンテンツ)フォルダ
SVC00002iアプリデータフォルダ
SVC00003着うたフル用フォルダ(SH903i以降?)


「xxxSHARP」、「xxxSH_UF」については、「xxx」は100~999の3桁の半角数字だとのこと。他の「xxx」は記載が見当たりません・・。

今回は、画像のインポートがやりたいので、とりあえずは、ドラッグ&ドロップで「/PRIVATE/SHARP/IMPORT/」にファイルをコピーすると言う感じにしましょうか。

起動からのファイル待ちまでのシーケンスは下記の様な感じですかね。

11020900.png
シャープ端末の判定も必要かも・・。


大まかには、下記の様な実装項目がありますかね・・。

ドラッグ&ドロップ関係するクラスがいくつかある様ですが、QDropEventから見始めればいいですかね。
SDカード検出ディレクトリのドラッグ&ドロップで検出でいいと思ってますが、できたら、SDカードが挿された瞬間に検出したいですね。QFileSystemWatcherが関係ありそうな気がしますが、Mac側の動作も知っとく必要があるかも。
FOMAのSDカード判定あまり、いい案が浮かびませんが、「/PRIVATE/DOCOMO」の存在で判定しますか。「/PRIVATE/SHARP/IMPORT」もチェックする必要がありますね。QDir::exists()が使えそうですが、これって、staticじゃないですね・・。


そう言えば、PCも私と同じMacを使ってもらってます・・。なので、Mac上で動かす事を前提に考えていきたいと思います。でも、作るのはQtなので、徐々に汎用に持っていければいいかなぁ・・と言う感じで。

ちなみに、「手書きメモ」「バックアップツール」「Androidのアプリ開発」を中断させながらたらたらやってます・・。一応、メモっておきましょう。


つづく。






ブログを作る(無料) powered by So-netブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。