camerauis/cameraxui/cxengine/inc/api/cxesettings.inl
author hgs
Fri, 06 Aug 2010 10:03:37 +0300
changeset 46 c826656d6714
permissions -rw-r--r--
201031
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
46
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
*
hgs
parents:
diff changeset
    14
* Description:
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
// specializations for getters
hgs
parents:
diff changeset
    20
// throwing versions
hgs
parents:
diff changeset
    21
template<>
hgs
parents:
diff changeset
    22
inline int CxeSettings::get<int>(const QString &key) const {
hgs
parents:
diff changeset
    23
   QVariant v;
hgs
parents:
diff changeset
    24
   getValue(key, v);
hgs
parents:
diff changeset
    25
   return v.value<int>();
hgs
parents:
diff changeset
    26
}
hgs
parents:
diff changeset
    27
hgs
parents:
diff changeset
    28
template<>
hgs
parents:
diff changeset
    29
inline bool CxeSettings::get<bool>(const QString &key) const {
hgs
parents:
diff changeset
    30
   QVariant v;
hgs
parents:
diff changeset
    31
   getValue(key, v);
hgs
parents:
diff changeset
    32
   return v.value<bool>();
hgs
parents:
diff changeset
    33
}
hgs
parents:
diff changeset
    34
hgs
parents:
diff changeset
    35
template<>
hgs
parents:
diff changeset
    36
inline qreal CxeSettings::get<qreal>(const QString &key) const {
hgs
parents:
diff changeset
    37
   QVariant v;
hgs
parents:
diff changeset
    38
   getValue(key, v);
hgs
parents:
diff changeset
    39
   return v.value<qreal>();
hgs
parents:
diff changeset
    40
}
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
template<>
hgs
parents:
diff changeset
    43
inline QString CxeSettings::get<QString>(const QString &key) const {
hgs
parents:
diff changeset
    44
   QVariant v;
hgs
parents:
diff changeset
    45
   getValue(key, v);
hgs
parents:
diff changeset
    46
   return v.value<QString>();
hgs
parents:
diff changeset
    47
}
hgs
parents:
diff changeset
    48
hgs
parents:
diff changeset
    49
template<>
hgs
parents:
diff changeset
    50
inline QVariantMap CxeSettings::get<QVariantMap>(const QString &key) const {
hgs
parents:
diff changeset
    51
   QVariant v;
hgs
parents:
diff changeset
    52
   getValue(key, v);
hgs
parents:
diff changeset
    53
   return v.value<QVariantMap>();
hgs
parents:
diff changeset
    54
}
hgs
parents:
diff changeset
    55
hgs
parents:
diff changeset
    56
// non-throwing versions
hgs
parents:
diff changeset
    57
template<>
hgs
parents:
diff changeset
    58
inline int CxeSettings::get<int>(const QString &key, const int &defaultValue) const {
hgs
parents:
diff changeset
    59
    try {
hgs
parents:
diff changeset
    60
        return get<int>(key);
hgs
parents:
diff changeset
    61
    } catch (CxeException &e) {
hgs
parents:
diff changeset
    62
        return defaultValue;
hgs
parents:
diff changeset
    63
    }
hgs
parents:
diff changeset
    64
}
hgs
parents:
diff changeset
    65
hgs
parents:
diff changeset
    66
template<>
hgs
parents:
diff changeset
    67
inline bool CxeSettings::get<bool>(const QString &key, const bool &defaultValue) const {
hgs
parents:
diff changeset
    68
    try {
hgs
parents:
diff changeset
    69
        return get<bool>(key);
hgs
parents:
diff changeset
    70
    } catch (CxeException &e) {
hgs
parents:
diff changeset
    71
        return defaultValue;
hgs
parents:
diff changeset
    72
    }
hgs
parents:
diff changeset
    73
}
hgs
parents:
diff changeset
    74
hgs
parents:
diff changeset
    75
template<>
hgs
parents:
diff changeset
    76
inline qreal CxeSettings::get<qreal>(const QString &key, const qreal &defaultValue) const {
hgs
parents:
diff changeset
    77
    try {
hgs
parents:
diff changeset
    78
        return get<qreal>(key);
hgs
parents:
diff changeset
    79
    } catch (CxeException &e) {
hgs
parents:
diff changeset
    80
        return defaultValue;
hgs
parents:
diff changeset
    81
    }
hgs
parents:
diff changeset
    82
}
hgs
parents:
diff changeset
    83
hgs
parents:
diff changeset
    84
template<>
hgs
parents:
diff changeset
    85
inline QString CxeSettings::get<QString>(const QString &key, const QString &defaultValue) const {
hgs
parents:
diff changeset
    86
    try {
hgs
parents:
diff changeset
    87
        return get<QString>(key);
hgs
parents:
diff changeset
    88
    } catch (CxeException &e) {
hgs
parents:
diff changeset
    89
        return defaultValue;
hgs
parents:
diff changeset
    90
    }
hgs
parents:
diff changeset
    91
}
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
template<>
hgs
parents:
diff changeset
    94
inline QVariantMap CxeSettings::get<QVariantMap>(const QString &key, const QVariantMap &defaultValue) const {
hgs
parents:
diff changeset
    95
    try {
hgs
parents:
diff changeset
    96
        return get<QVariantMap>(key);
hgs
parents:
diff changeset
    97
    } catch (CxeException &e) {
hgs
parents:
diff changeset
    98
        return defaultValue;
hgs
parents:
diff changeset
    99
    }
hgs
parents:
diff changeset
   100
}
hgs
parents:
diff changeset
   101
hgs
parents:
diff changeset
   102
// specializations for setters
hgs
parents:
diff changeset
   103
template<>
hgs
parents:
diff changeset
   104
inline void CxeSettings::set<int>(const QString &key, const int &value) {
hgs
parents:
diff changeset
   105
   QVariant v;
hgs
parents:
diff changeset
   106
   v.setValue(value);
hgs
parents:
diff changeset
   107
   setValue(key, v);
hgs
parents:
diff changeset
   108
}
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
template<>
hgs
parents:
diff changeset
   111
inline void CxeSettings::set<bool>(const QString &key, const bool &value) {
hgs
parents:
diff changeset
   112
   QVariant v;
hgs
parents:
diff changeset
   113
   v.setValue(value);
hgs
parents:
diff changeset
   114
   setValue(key, v);
hgs
parents:
diff changeset
   115
}
hgs
parents:
diff changeset
   116
hgs
parents:
diff changeset
   117
template<>
hgs
parents:
diff changeset
   118
inline void CxeSettings::set<qreal>(const QString &key, const qreal &value) {
hgs
parents:
diff changeset
   119
   QVariant v;
hgs
parents:
diff changeset
   120
   v.setValue(value);
hgs
parents:
diff changeset
   121
   setValue(key, v);
hgs
parents:
diff changeset
   122
}
hgs
parents:
diff changeset
   123
hgs
parents:
diff changeset
   124
template<>
hgs
parents:
diff changeset
   125
inline void CxeSettings::set<QString>(const QString &key, const QString &value) {
hgs
parents:
diff changeset
   126
   QVariant v;
hgs
parents:
diff changeset
   127
   v.setValue(value);
hgs
parents:
diff changeset
   128
   setValue(key, v);
hgs
parents:
diff changeset
   129
}
hgs
parents:
diff changeset
   130
hgs
parents:
diff changeset
   131
template<>
hgs
parents:
diff changeset
   132
inline void CxeSettings::set<QVariantMap>(const QString &key, const QVariantMap &value) {
hgs
parents:
diff changeset
   133
   QVariant v;
hgs
parents:
diff changeset
   134
   v.setValue(value);
hgs
parents:
diff changeset
   135
   setValue(key, v);
hgs
parents:
diff changeset
   136
}