* @brief Class for reading and writing parameter values in INI files.
* @author Enar Vaikene
*
- * Copyright (c) 2011 Enar Vaikene
+ * Copyright (c) 2011-2019 Enar Vaikene
*
* This file is part of the eVaf C++ cross-platform application development framework.
*
#include <QString>
#include <QVariant>
#include <QIODevice>
+#include <QScopedPointer>
namespace eVaf {
namespace Common {
* @code
* [main]
* # The full name of this parameter is 'main/name'
- * name = MyApplication
+ * name = "My Application"
+ *
+ * # 4-byte binary version number 1.0.7.10 with the name 'main/version'
+ * version = �

*
* [extensions/about]
* # The full name of this parameter is 'extensions/about/module'
* @li Int - only base 10 (decimal) is allowed;
* @li Time - 24h time string in the format HH:MM:SS
* @li UInt - base 16 (hex) if the string is prefixed with '0x'; base 8 if the string starts with '0'; otherwise
- * the value is expected to be base 10 (decimal).
+ * the value is expected to be base 10 (decimal);
+ * @li ByteArray - non-printable bytes and special characters are encoded as numeric character or character entity references;
+ * @li String - non-printable and special characters are encoded as numeric character or character entity references.
+ *
+ * Strings and Byte array values can be enclosed in single or double quotes. The IniFile class does this automatically when
+ * saving String or Byte array values with leading or trailing spaces. Quotes are removed from the parameter value prior
+ * returning the value to the application. Use character entity references """ and "'" if quotes should be part of
+ * the parameter value.
*/
class COMMON_EXPORT IniFile
{
private:
/// Pointer to the internal implementation of the class
- Internal::IniFileImpl * d;
+ QScopedPointer<Internal::IniFileImpl> d;
};