mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-28 00:15:06 +00:00
46 lines
1.1 KiB
C++
46 lines
1.1 KiB
C++
#ifndef INISETTINGS_HPP
|
|
#define INISETTINGS_HPP
|
|
|
|
#include <QHash>
|
|
#include <QVariant>
|
|
|
|
#include <components/to_utf8/to_utf8.hpp>
|
|
|
|
namespace Wizard
|
|
{
|
|
|
|
typedef QHash<QString, QVariant> SettingsMap;
|
|
|
|
class IniSettings
|
|
{
|
|
public:
|
|
explicit IniSettings() = default;
|
|
|
|
inline QVariant value(const QString& key, const QVariant& defaultValue = QVariant()) const
|
|
{
|
|
return mSettings.value(key, defaultValue);
|
|
}
|
|
|
|
inline QList<QVariant> values() const { return mSettings.values(); }
|
|
|
|
inline void setValue(const QString& key, const QVariant& value) { mSettings.insert(key, value); }
|
|
|
|
inline void remove(const QString& key) { mSettings.remove(key); }
|
|
|
|
QStringList findKeys(const QString& text);
|
|
|
|
bool readFile(std::ifstream& stream, ToUTF8::FromType encoding);
|
|
bool writeFile(const QString& path, std::ifstream& stream, ToUTF8::FromType encoding);
|
|
|
|
bool parseInx(const QString& path);
|
|
|
|
private:
|
|
int getLastNewline(const QString& buffer, int from);
|
|
|
|
SettingsMap mSettings;
|
|
};
|
|
|
|
}
|
|
|
|
#endif // INISETTINGS_HPP
|