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