-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsm3_settings.cpp
123 lines (97 loc) · 2.63 KB
/
sm3_settings.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#include "sysmon3.h"
#include "sm3_settings.h"
SM_Settings::SM_Settings( const QString& server ) : settings( server )
{
}
QString SM_Settings::value( const QString& key ) const
{
QString s = settings.value( key ).toString();
if ( s.isEmpty() )
s = defaults.value( key , "" );
return s;
}
void SM_Settings::setValue( const QString& key, const QString& value )
{
if ( value == defaults.value( key ) )
settings.remove( key );
else
settings.setValue( key, value );
}
void SM_Settings::setBoolValue( const QString& key, const bool value )
{
QString boolValue;
if ( value ) boolValue = "true";
else boolValue = "false";
setValue( key, boolValue );
}
bool SM_Settings::contains( const QString& key ) const
{
return settings.contains( key );
}
QStringList SM_Settings::readArray( const QString& key )
{
QStringList sl;
int size = settings.beginReadArray( key );
if ( size > 0 )
{
for ( int i = 0; i < size; i++ )
{
settings.setArrayIndex( i );
QString s = settings.value( key ).toString();
sl.append( s );
}
}
settings.endArray();
return sl;
}
void SM_Settings::writeArray( const QString& key, const QStringList& values )
{
settings.remove( key );
settings.beginWriteArray( key );
for ( int i = 0; i < values.size(); i++ )
{
settings.setArrayIndex(i);
settings.setValue( key, values.at( i ) );
}
settings.endArray();
}
// Groups are used to define the temperature interface and sensors for a server
// In the following methods 'group', for now, is always 'temperatures'
void SM_Settings::removeGroup( const QString& group )
{
settings.beginGroup( group );
settings.remove( "" );
settings.endGroup();
}
// This is only used in one place - temperature config
void SM_Settings::addGroup( const QString& group, const QStringList& values )
{
settings.beginGroup( group );
for ( int i = 0; i < values.size(); i++ )
{
QString entry = values.at( i );
QStringList items = entry.split( ';' );
QString key = items.at( 0 );
QString value = items.at( 1 );
settings.setValue( key, value );
}
settings.endGroup();
}
QStringList SM_Settings::readGroup( const QString& group )
{
QStringList config;
settings.beginGroup( group );
QStringList keys = settings.childKeys();
foreach (const QString &key, keys)
config << settings.value( key ).toString();
settings.endGroup();
return config;
}
QString SM_Settings::getDefault( const QString& key )
{
return defaults.value( key , "" );
}
void SM_Settings::sync( void )
{
settings.sync();
}