#ifndef SETTINGSMANAGER_H
#define SETTINGSMANAGER_H

#include <QString>


/*!
 * \brief The SettingsManager class.
 */
class SettingsManager
{
public:

    /*!
     * \brief SettingsManager constructor.
     */
    SettingsManager();

    /*!
     * \brief saveDefaultDir save default folder path.
     * \param dir folders path.
     * \return \c true if \a dir is correctly saved, false otherwise.
     */
    static bool saveDefaultDir(QString dir);

    /*!
     * \brief saveAlwaysAsk save always ask vale.
     * \param isAlwaysAsk whether the app has to ask the save folder.
     */
    static void saveAlwaysAsk(bool isAlwaysAsk);

    /*!
     * \brief saveLanguage save current app language.
     * \param language current \a language.
     */
    static void saveLanguage(QString language);

    /*!
     * \brief saveShowInitTips save init tips not show again option.
     * \param show whether init tips has to be shown.
     */
    static void saveShowInitTips(bool show);

    /*!
     * \brief clearValues reset settings value.
     */
    static void clearValues();

    /*!
     * \brief getCurrentLanguage obtains the current language.
     * \return the language acronym of the app.
     */
    static QString getCurrentLanguage();

    /*!
     * \brief getDefaultDir obtains the default save folder path.
     * \return default folder path.
     */
    static QString getDefaultDir();

    /*!
     * \brief getIsAlwaysAsk obtains if the app has to ask for the save folder.
     * \return \c true if the app has to ask for the save folder, \c false otherwise.
     */
    static bool getIsAlwaysAsk();

    /*!
     * \brief getShowInitTips obtains if the app has to show init tips.
     * \return \c true if the app has to show init tips, \c false otherwise.
     */
    static bool getShowInitTips();

private:

    /*!
     * \brief getSettingsPath obtains settings file path.
     * \return settings file path.
     */
    static QString getSettingsPath();

};

#endif // SETTINGSMANAGER_H
