Index: sources/model/settings/MSettings.h =================================================================== diff -u -r35db01154f90ebfdb6174033a66f5c20af82e14d -r2ef03b2ce51b4dc507f66e9671953a8e0824bde9 --- sources/model/settings/MSettings.h (.../MSettings.h) (revision 35db01154f90ebfdb6174033a66f5c20af82e14d) +++ sources/model/settings/MSettings.h (.../MSettings.h) (revision 2ef03b2ce51b4dc507f66e9671953a8e0824bde9) @@ -1,13 +1,13 @@ /*! * - * Copyright (c) 2021-2022 Diality Inc. - All Rights Reserved. + * Copyright (c) 2021-2024 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file MSettings.h * \author (last) Behrouz NematiPour - * \date (last) 05-Apr-2022 + * \date (last) 13-Sep-2023 * \author (original) Behrouz NematiPour * \date (original) 29-Mar-2021 * @@ -35,41 +35,63 @@ { Q_OBJECT -public: - struct KeyValue { - QString category; - QString location; - QList keys; - QList values; - }; -private: - QMap _settings; + typedef QString TCategory ; + typedef QString TGroup ; + typedef QString TKey ; + typedef QVariant TVal ; - QMap _category; + class KeyValue { + TKey _key ; + TVal _val ; + + public: + KeyValue(const TKey &vKey, const TVal &vVal) : _key(vKey), _val(vVal) {} + TKey key() const { return _key.trimmed(); } + TVal val() const { return _val ; } + + void operator = (const TKey &vKey) { _key = vKey.trimmed(); } + void operator = (const TVal &vVal) { _val = vVal ; } + // void operator = (const KeyValue &vKeyValue) { + // _key = vKeyValue.key(); + // _val = vKeyValue.val(); + // } + + bool operator == (const KeyValue &vKeyValue) const { + return key() == vKeyValue.key(); + } + }; + typedef KeyValue TKeyValue ; + typedef QList < TKeyValue > TKeyValues; + typedef QMap < TGroup , TKeyValues > TData ; + typedef QMap < TCategory , TData > TSettings ; + + TSettings _settings ; + QMutex _mutex; // Singleton SINGLETON(MSettings) public: QStringList categorys(); - QStringList groups (); QStringList groups (const QString &vCategory); - QStringList keys (const QString &vGroup ); - QString key (const QString &vGroup , uint vIndex); - QVariantList values (const QString &vGroup ); - QVariant value (const QString &vGroup , const QString &vKey); - QString location (const QString &vGroup ); + QStringList keys (const QString &vCategory, const QString &vGroup ); + QString key (const QString &vCategory, const QString &vGroup , uint vIndex); + QVariantList values (const QString &vCategory, const QString &vGroup ); + QVariant value (const QString &vCategory, const QString &vGroup , const QString &vKey); - void add (const QString &vGroup, const QString &vKey, const QVariant &vValue, const QString &vLocation, const QString &vCategory, bool vEnableDuplicateKeys); + void add (const QString &vCategory, const QString &vGroup, const QString &vKey, const QVariant &vValue, bool vEnableDuplicateKeys); // the utility static functions private : QString _datetimeFormat = "MM/dd/yyyy HH:mm:ss"; +private : QString _dateFormat = "MM/dd/yyyy"; +private : QString _timeFormat = "HH:mm:ss"; public : void datetimeFormat(); -public : QString getDatetimeFormat() { return _datetimeFormat; } - +public : QString getDatetimeFormat() { return _datetimeFormat;} +public : QString timeFormat() { return _timeFormat;} +public : QString dateFormat() { return _dateFormat;} }; }