xref: /OK3568_Linux_fs/app/forlinx/flapp/src/plugins/4g/configurer.cpp (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun #include "configurer.h"
2*4882a593Smuzhiyun #include <QFile>
3*4882a593Smuzhiyun #include <QTextStream>
4*4882a593Smuzhiyun #include <systemmanager.h>
5*4882a593Smuzhiyun 
processName()6*4882a593Smuzhiyun QString  Configurer::processName()
7*4882a593Smuzhiyun {
8*4882a593Smuzhiyun     return "/usr/bin/fl_4g";
9*4882a593Smuzhiyun }
10*4882a593Smuzhiyun 
confName()11*4882a593Smuzhiyun QString  Configurer::confName()
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun     return "/etc/wiet/daemon_4g.conf";
14*4882a593Smuzhiyun }
15*4882a593Smuzhiyun 
changConf(const QString & key,const QString & value)16*4882a593Smuzhiyun void  Configurer::changConf(const QString &key, const QString &value)
17*4882a593Smuzhiyun {
18*4882a593Smuzhiyun     bool bFind =false;
19*4882a593Smuzhiyun     QList<QString> confInfo =readConf();
20*4882a593Smuzhiyun     QString data;
21*4882a593Smuzhiyun     foreach (QString row, confInfo)
22*4882a593Smuzhiyun     {
23*4882a593Smuzhiyun         QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
24*4882a593Smuzhiyun         if(list.contains(key) && list[0][0] !='#'){
25*4882a593Smuzhiyun             bFind = true;
26*4882a593Smuzhiyun             data += (key +" = "+value +newLineChars());
27*4882a593Smuzhiyun         }else{
28*4882a593Smuzhiyun             data += (row +newLineChars());
29*4882a593Smuzhiyun         }
30*4882a593Smuzhiyun     }
31*4882a593Smuzhiyun 
32*4882a593Smuzhiyun     if(!bFind)
33*4882a593Smuzhiyun     {
34*4882a593Smuzhiyun          data += (key +" = "+value +newLineChars());
35*4882a593Smuzhiyun     }
36*4882a593Smuzhiyun     writeConf(data);
37*4882a593Smuzhiyun }
38*4882a593Smuzhiyun 
changConf(const QMap<QString,QString> & maps)39*4882a593Smuzhiyun void  Configurer::changConf(const QMap<QString, QString> &maps)
40*4882a593Smuzhiyun {
41*4882a593Smuzhiyun     QList<QString> confInfo = readConf();
42*4882a593Smuzhiyun     QString data;
43*4882a593Smuzhiyun     QList<QString> keys= maps.keys();
44*4882a593Smuzhiyun     foreach (QString row, confInfo)
45*4882a593Smuzhiyun     {
46*4882a593Smuzhiyun         QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
47*4882a593Smuzhiyun         if(list.size() >0 && maps.contains(list[0])&& list[0][0] != '#')
48*4882a593Smuzhiyun         {
49*4882a593Smuzhiyun             data += (list[0] +" = "+maps.value(list[0]) +newLineChars());
50*4882a593Smuzhiyun             keys.removeOne(list[0]);
51*4882a593Smuzhiyun 
52*4882a593Smuzhiyun         }else{
53*4882a593Smuzhiyun              data += (row +newLineChars());
54*4882a593Smuzhiyun         }
55*4882a593Smuzhiyun     }
56*4882a593Smuzhiyun 
57*4882a593Smuzhiyun     for(int i=0; i<keys.size(); i++)
58*4882a593Smuzhiyun     {
59*4882a593Smuzhiyun         data += (keys[i] +" = "+maps.value(keys[i]) +newLineChars());
60*4882a593Smuzhiyun     }
61*4882a593Smuzhiyun 
62*4882a593Smuzhiyun     writeConf(data);
63*4882a593Smuzhiyun }
64*4882a593Smuzhiyun 
conf(const QString & key)65*4882a593Smuzhiyun QString  Configurer::conf(const QString &key)
66*4882a593Smuzhiyun {
67*4882a593Smuzhiyun     QList<QString> confInfo = readConf();
68*4882a593Smuzhiyun     QString results;
69*4882a593Smuzhiyun     foreach (QString row, confInfo)
70*4882a593Smuzhiyun     {
71*4882a593Smuzhiyun         QStringList list = SystemManager::instance()->getMatch(row, "[#a-zA-Z0-9_]+");
72*4882a593Smuzhiyun        if(list.size() >=1 && list.contains(key) && list[0][0] !='#'){
73*4882a593Smuzhiyun            if(list.size()>1)
74*4882a593Smuzhiyun            {
75*4882a593Smuzhiyun                results = list[1];
76*4882a593Smuzhiyun            }
77*4882a593Smuzhiyun            break;
78*4882a593Smuzhiyun        }
79*4882a593Smuzhiyun     }
80*4882a593Smuzhiyun     return results;
81*4882a593Smuzhiyun }
readConf()82*4882a593Smuzhiyun QList<QString> Configurer::readConf()
83*4882a593Smuzhiyun {
84*4882a593Smuzhiyun     QList<QString> list;
85*4882a593Smuzhiyun     QFile file(confName());
86*4882a593Smuzhiyun     if(file.open(QFile::ReadOnly| QFile::Text))
87*4882a593Smuzhiyun     {
88*4882a593Smuzhiyun         QTextStream stream(&file);
89*4882a593Smuzhiyun         QString line;
90*4882a593Smuzhiyun         while (stream.readLineInto(&line)) {
91*4882a593Smuzhiyun             list<< line;
92*4882a593Smuzhiyun         }
93*4882a593Smuzhiyun         file.close();
94*4882a593Smuzhiyun     }
95*4882a593Smuzhiyun 
96*4882a593Smuzhiyun     return list;
97*4882a593Smuzhiyun }
98*4882a593Smuzhiyun 
writeConf(const QString & data)99*4882a593Smuzhiyun void  Configurer::writeConf(const QString &data)
100*4882a593Smuzhiyun {
101*4882a593Smuzhiyun     QFile file(confName());
102*4882a593Smuzhiyun     if(file.open(QFile::ReadWrite| QFile::Text |QFile::Truncate))
103*4882a593Smuzhiyun     {
104*4882a593Smuzhiyun         file.write(data.toLocal8Bit());
105*4882a593Smuzhiyun         file.close();
106*4882a593Smuzhiyun     }
107*4882a593Smuzhiyun }
108*4882a593Smuzhiyun 
newLineChars()109*4882a593Smuzhiyun QString  Configurer::newLineChars()
110*4882a593Smuzhiyun {
111*4882a593Smuzhiyun     return "\n";
112*4882a593Smuzhiyun }
113