#ifndef DIALOGEXPORTUSB_H
#define DIALOGEXPORTUSB_H

#include <QDialog>
#include <QTimer>

#include <QProcess>

namespace Ui {
class DialogExportUSB;
}

class DialogExportUSB : public QDialog
{
    Q_OBJECT

public:
    explicit DialogExportUSB(QWidget *parent = 0);
    ~DialogExportUSB();

    int m_nTypeExport;

    int m_nStorageSize;
    int m_nStorageFreeSize;

    int m_nSyncCheckCount;

    QTimer m_TimerSync;
    QTimer m_TimerDeferred;

    QProcess m_Process;

    void SetInfoString(QString strInfo);
    void SetExportEnable(bool bEnable);

    virtual void Mount();
    virtual void Umount();

    virtual void reject();

public slots:
    void SetProgressExportFile(int nProgress, int nTotal);
    void SetProgressExportPercent(quint64 nProgress, quint64 nTotal);
    void SetProgressSync(bool bSync);

    void SyncUpdate();

    void SetExportComplete();
    void SetExportInit();

    void OnDeferredInit();

    virtual void ProcessFinish(int nRet);
    virtual void ProcessReadyReadStandardOutput();
    virtual void ProcessReadyReadStandardError();

signals:
    void StartExport(int nType);
    void StopExport();

private slots:
    void on_pushButton_Cancel_clicked();

    void on_pushButton_Export_clicked();

private:
    Ui::DialogExportUSB *ui;
};

#endif // DIALOGEXPORTUSB_H
