SSブログ

バックアップの処理クラスを考える [Qt]

先日、「mainwindow.ui」に以前追加したslotが残っている件を気にしていましたが、それを削除できないかと思っていたところ、できました。

Objectペインの「MainWindowClass」を右クリックし、「change signals/slots」を選択します。

10122800.png

こっちにはありました


「Slots」の欄に「addButtonClicked()」が残っていたので、これを選択して「-」ボタンを押して削除します。

10122801.png

ここに残ってます


結果を保存して、「mainwindow.ui」をテキストエディタで見たところ、該当の箇所の記述が消えていました。

10122802.png

消えた!


*

以上、すっきりしたところで、実装を進めようと思いますが、進める前にクラス構成を考えたいと思います。今まで、MainWindowクラスに色々貼り付けていましたが、ここは単なるUIとして、バックアップ制御を受け持つクラスを別に用意したいと思います。クラス図を書くとこんな感じでしょうか・・。

10122803.png

描くほどでもないですが・・


アプリケーション自体はMainWindowクラス主体で動くので、そのエンジンとなる「BackupControl」と言うクラスを作成します。ベースクラスは無しとします。

MainWindowクラスとこのクラス(BackupControl)の間でBackupControlクラス側に必要そうなメソッドは下記のような感じでしょうか。

addSourceDir()バックアップ元ディレクトリの追加
delSourceDir()バックアップ元ディレクトリの削除
backup()バックアップ開始
setDestinationDir()バックアップ先ディレクトリの設定
getSourceDirs()設定されているバックアップ元ディレクトリの取得
getDiestinationDir()設定されているバックアップ先ディレクトリの取得
stop()バックアップの停止


最後のメソッドで思いつきましたが、そう言えば、バックアップ動作の中止のボタンが必要ですね・・。

また、経過出力のためにsignalを出してもらう必要がありそうです。signalでいいんですかね・・。

startCopyFile()1ファイルコピー開始のsignal(コピー元)
finishCopyFile()1ファイルコピー終了のsignal(コピー元)
startCopy()コピー処理開始のsignal
finishCopy()コピー処理終了のsignal
stopCopy()コピー処理停止のsignal


ここまで書いて気付きましたが、これって、バックアップ処理は並列処理で行わないと途中で停止ができない気がしますね・・。Qtのスレッドの仕組みを見なければ・・。


つづく。




nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

ブログを作る(無料) powered by SSブログ

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