00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef DIARYMOVER_H
00020 #define DIARYMOVER_H
00021
00022 #include <QThread>
00023 #include <QMutex>
00024 #include <QDialog>
00025 #include <QCloseEvent>
00026 #include <QDir>
00027 #include "../../ui_MovingDiaryNotice.h"
00028
00029 class DiaryMoverThread;
00030 class SavingAndDiskUsageSettings;
00031
00032 class DiaryMover : public QDialog
00033 {
00034 Q_OBJECT
00035 public:
00036 DiaryMover(SavingAndDiskUsageSettings *parent);
00037 virtual ~DiaryMover();
00038 Ui_MovingDiaryDialog ui;
00039 bool MoveDiary(const QString &sourcePath, const QString &targetPath);
00040 void HandleUiLanguageChange();
00041 private:
00042 bool iOkToCloseDialog;
00043 void closeEvent(QCloseEvent* event);
00044 DiaryMoverThread *iChildThread;
00045 public slots:
00046 void OkToCloseDialog(bool canBeClosed);
00047 };
00048
00049 class DiaryMoverThread : public QThread
00050 {
00051 Q_OBJECT
00052 public:
00053 DiaryMoverThread() : QThread(){};
00054 virtual ~DiaryMoverThread(){};
00055 QString iSourcePath;
00056 QString iTargetPath;
00057 protected:
00058 QMutex iCancelMovingMutex;
00059 virtual void run();
00060 bool recursiveFolderMover(const QDir &sourceFolder, const QDir &targetFolder);
00061 bool recursiveDirTreeSizeCalculator( qint64 &size, const QDir &folder);
00062 signals:
00063 void OkTocloseDialog(bool canBeClosed);
00064 void movingWasCancelled();
00065 void setDayLabelText( const QString &text );
00066 void setFromNameLabelText( const QString &text );
00067 void setToNameLabelText( const QString &text );
00068 void setTopLabelText( const QString &text );
00069 void setCancelability(bool enabled);
00070 public slots:
00071 void cancelClicked();
00072 };
00073 #endif