#ifndef DATASETTING_H
#define DATASETTING_H

#include <QObject>

class DataSetting : public QObject
{
    Q_OBJECT
public:
    explicit DataSetting(QObject *parent = nullptr);
    DataSetting(DataSetting &other, QObject *parent);
    ~DataSetting();
public:
    void load();
public:
    int getSpeed() const { return m_iSpeed; }
    bool getClean() const { return m_bClean; }
    bool getCreateISO() const { return m_bCreateISO; }
    bool getCloseSession() const { return m_bCloseSession; }
    bool getVerficationData() const { return m_bVerficationData; }
    bool getOpen() const { return m_bOpen; }
    QString getPreparer() const { return m_oPreparer; }
    QString getPublisher() const { return m_oPublisher; }
    QString getVolumnID() const { return m_oVolumnID; }
    QString getCopyright() const { return m_oCopyright; }
    QString getTempPath() const { return m_oTemporaryPth; }
    QString getBurnFormat() const { return m_SBurnFormat; }
public slots:
    void updateSpeed(int speed) { m_iSpeed = speed; }
    void updateClean(bool b) { m_bClean = b; }
    void updateCreateISO(bool b) { m_bCreateISO = b; }
    void updateCloseSession(bool b) { m_bCloseSession = b; }
    void updateVerficationData(bool b) { m_bVerficationData = b;}
    void updateOpen(bool b) { m_bOpen = b; }
    void updatePreparer(QString s) { m_oPreparer = s; }
    void updatePublisher(QString s) { m_oPublisher = s; }
    void updateVolumnID(QString s) { m_oVolumnID = s; }
    void updateCopyright(QString s) { m_oCopyright = s; }
    void updateTempPath(QString s) { m_oTemporaryPth = s;}
    void updateBurnFormat(QString s) { m_SBurnFormat = s; }
private:
    int        m_iSpeed;
    bool       m_bClean;
    bool       m_bCreateISO;
    bool       m_bCloseSession;
    bool       m_bVerficationData;
    bool       m_bOpen;
    QString    m_oPreparer;
    QString    m_oPublisher;
    QString    m_oVolumnID;
    QString    m_oCopyright;
    QString    m_oTemporaryPth;
    QString    m_SBurnFormat;
signals:
    void speed(int);
    void clean(bool);
    void createISO(bool);
    void closeSession(bool);
    void verficationData(bool);
    void open(bool);
    void preparer(QString);
    void publisher(QString);
    void volumnID(QString);
    void copyright(QString);
    void tempPath(QString);
    void burnFormat(QString);
};

#endif // DATASETTING_H
