/
ClientSettings.cpp
executable file
·80 lines (68 loc) · 2.06 KB
/
ClientSettings.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
#include "ClientSettings.h"
ClientSettings::ClientSettings() : port(60007), address(new QHostAddress("134.117.28.146")){
settings = new QSettings(QString("./settings.txt"), QSettings::NativeFormat);
loadSettings();
}
ClientSettings::~ClientSettings(){
delete address;
delete settings;
}
QHostAddress& ClientSettings::getDefaultAddress(){
return *address;
}
qint64 ClientSettings::getDefaultPort(){
return port;
}
QString ClientSettings::getDefaultAddressString(){
return address->toString();
}
QString ClientSettings::getDefaultPortString(){
return QString::number(port);
}
/*
Saves the clients settings to the local file system
*/
void ClientSettings::saveSettings(){
settings->setValue(QString("port"), QVariant(port));
settings->setValue(QString("address"), QVariant(QString(getDefaultAddressString())));
}
/*
Loads the clients settings from the local file system
*/
bool ClientSettings::loadSettings(){
QVariant portResult = settings->value(QString("port"), QVariant(60007));
port = portResult.toInt();
QVariant addressResult = settings->value(QString("address"),QVariant("134.117.28.146"));
QString addressString = addressResult.toString();
setDefaultAddressString(addressString);
}
// Setters
bool ClientSettings::setDefaultPortString(QString & portString){
int newPort = portString.toInt();
if(newPort != 0){
if(port!=newPort){
port = newPort;
saveSettings();
}else{
port = newPort;
}
return true;
}else{
return false;
}
}
bool ClientSettings::setDefaultAddressString(QString & addressString){
QHostAddress * newAddress = new QHostAddress();
if(newAddress->setAddress(addressString)){
if(QString::compare(address->toString() , newAddress->toString()) != 0){
delete address;
address = newAddress;
saveSettings();
}else{
delete newAddress;
}
return true;
}else{
return false;
}
}