#ifndef PQSTANDARDPATHS_H
#define PQSTANDARDPATHS_H

#include "pqobject.h"
#include <QStandardPaths>

class PQStandardPaths : public PQObject
{
    Q_OBJECT
    PQ_OBJECT_EX(QStandardPaths)

public:
    Q_INVOKABLE explicit PQStandardPaths();
    ~PQStandardPaths();

    Q_INVOKABLE QString writableLocation(int type);
    Q_INVOKABLE QStringList standardLocations(int type);

    Q_INVOKABLE QString locate(int type, const QString &fileName, int options = QStandardPaths::LocateFile);
    Q_INVOKABLE QStringList locateAll(int type, const QString &fileName, int options = QStandardPaths::LocateFile);
    Q_INVOKABLE QString displayName(int type);

    Q_INVOKABLE QString findExecutable(const QString &executableName, const QStringList &paths = QStringList());

    Q_INVOKABLE void setTestModeEnabled(bool testMode);
    Q_INVOKABLE bool isTestModeEnabled();

public slots:
    PQ_ON_SIGNAL_DECL_START {
        PQOBJECT_ON_SIGNALS();
    } PQ_ON_SIGNAL_DECL_END
};

#endif // PQSTANDARDPATHS_H
