/*
    *
    * This file is a part of Libcprime.
    * Library for bookmarking, saving recent activites, managing settings for CuboCore Application Suite
	* Copyright 2019 CuboCore Group
    *

    *
    * This program is free software; you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation; either version 3 of the License, or
    * (at your option) any later version.
    *

    *
    * This program is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    * GNU General Public License for more details.
    *

    *
    * You should have received a copy of the GNU General Public License
    * along with this program; if not, vsit http://www.gnu.org/licenses/.
    *
*/


#ifndef PROPERTIES_H
#define PROPERTIES_H

#include <QMap>

#include "libcprime_global.h"

class QVariant;

/**
 * @class Properties
 * @brief Read property files
 * @author Michal Rost
 * @date 26.1.2013
 */
class LIBCPRIMESHARED_EXPORT Properties {

public:
    explicit Properties(const QString &fileName = "", const QString &group = "");
    explicit Properties(const Properties &other);
    QVariant value(const QString &key, const QVariant &defaultValue = QVariant());
    bool load(const QString &fileName, const QString &group = "");
    bool save(const QString &fileName, const QString &group = "");
    void set(const QString &key, const QVariant &value);
    bool contains(const QString &key) const;
    QStringList getKeys() const;

protected:
    QMap<QString, QVariant> data;

};

#endif // PROPERTIES_H
