#ifndef QGGRIFOBEAMUPPROPERTIES_H
#define QGGRIFOBEAMUPPROPERTIES_H

#include <QObject>

#include <QSettings>

class QgGrifoBeamupProperties : public QObject
{
    Q_OBJECT

    //Q_PROPERTY(int tftpFirstPort READ tftpFirstPort WRITE setTftpFirstPort)
    //Q_PROPERTY(int tftpLastPort READ tftpLastPort WRITE setTftpLastPort)

    Q_PROPERTY(QString watchedDirectory MEMBER m_watch STORED true)

    Q_PROPERTY(QString lastDirectory MEMBER m_lastDir STORED true)
    Q_PROPERTY(int tftpFirstPort MEMBER m_tftpFirstPort STORED true)
    Q_PROPERTY(int tftpLastPort MEMBER m_tftpLastPort STORED true)
    Q_PROPERTY(bool simulator MEMBER m_simulator STORED true)

    Q_PROPERTY(bool watchRemovable MEMBER m_watchRemovable STORED true)
    Q_PROPERTY(QString watchRemovablePath MEMBER m_watchRemovablePath STORED true)

public:
    static QgGrifoBeamupProperties& instance();
    //explicit QgGrifoBeamupProperties(QObject *parent = 0);


signals:

public slots:
    void saveSettings(const QString& fname);
    void saveSettings(QSettings&);

    void restoreSettings(const QString& fname);
    void restoreSettings(QSettings&);

public:
    QString m_watch;
    QString m_lastDir;

    int m_tftpFirstPort;
    int m_tftpLastPort;
    bool m_simulator;

    bool m_watchRemovable;
    QString m_watchRemovablePath;

private:
    explicit QgGrifoBeamupProperties(QObject *parent = 0);
};

#endif // QGGRIFOBEAMUPPROPERTIES_H
