src/bmsapp.cpp

changeset 2
a1e435907f3a
child 3
4b95e33ee476
equal deleted inserted replaced
1:d38df7b58026 2:a1e435907f3a
1 /**
2 * bmsapp.cpp is part of bmsapp.
3 *
4 * bmsapp is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * bmsapp is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17 #include "bmsapp.h"
18 #include "config.h"
19
20
21
22 bool Bmsapp::ensureDirectoriesExist()
23 {
24 QDir resourceDir = Bmsapp::getResourceDir();
25 bool resourceDirSuccess = resourceDir.exists();
26 if (!resourceDirSuccess) {
27 QString errMsg{
28 QObject::tr("Resource directory \"%1\" is missing. Some features will be unavailable.").arg(resourceDir.path())
29 };
30 qCritical() << Q_FUNC_INFO << errMsg;
31 }
32
33 return resourceDirSuccess;
34 // return resourceDirSuccess && createDir(PersistentSettings::getUserDir());
35 }
36
37
38 QDir Bmsapp::getResourceDir()
39 {
40 QString dir = qApp->applicationDirPath();
41
42 dir = QString(CONFIGDATADIR);
43
44 qDebug() << "Resource dir" << dir;
45 return dir;
46 }
47
48
49
50 bool Bmsapp::initialize()
51 {
52 ensureDirectoriesExist();
53 readsettings();
54
55 qDebug() << "Loading Database...";
56 return true;
57 }
58
59
60
61 void Bmsapp::cleanup()
62 {
63 qDebug() << "BMSapp is cleaning up.";
64 writesettings();
65 }
66
67
68
69 void Bmsapp::readsettings()
70 {
71 QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp");
72
73 settings.beginGroup("dbprod");
74 dbProd.host = settings.value("host").toString();
75 if (dbProd.host.isEmpty()) {
76 dbProd.host = "localhost";
77 dbProd.port = "3306";
78 dbProd.name = "bms_prod";
79 dbProd.user = "nobody";
80 dbProd.pass = "secret";
81 dbProd.charset = "utf8";
82 settings.setValue("host", dbProd.host);
83 settings.setValue("port", dbProd.port);
84 settings.setValue("name", dbProd.name);
85 settings.setValue("user", dbProd.user);
86 settings.setValue("pass", dbProd.pass);
87 settings.setValue("charset", dbProd.charset);
88 } else {
89 dbProd.port = settings.value("port").toString();
90 dbProd.name = settings.value("name").toString();
91 dbProd.user = settings.value("user").toString();
92 dbProd.pass = settings.value("pass").toString();
93 dbProd.charset = settings.value("charset").toString();
94 }
95 settings.endGroup();
96 qDebug() << dbProd.host << dbProd.port << dbProd.name << dbProd.pass;
97
98 settings.beginGroup("dbdev");
99 dbDev.host = settings.value("host").toString();
100 if (dbDev.host.isEmpty()) {
101 dbDev.host = "localhost";
102 dbDev.port = "3306";
103 dbDev.name = "bms_dev";
104 dbDev.user = "nobody";
105 dbDev.pass = "secret";
106 dbDev.charset = "utf8";
107 settings.setValue("host", dbDev.host);
108 settings.setValue("port", dbDev.port);
109 settings.setValue("name", dbDev.name);
110 settings.setValue("user", dbDev.user);
111 settings.setValue("pass", dbDev.pass);
112 settings.setValue("charset", dbDev.charset);
113 } else {
114 dbDev.port = settings.value("port").toString();
115 dbDev.name = settings.value("name").toString();
116 dbDev.user = settings.value("user").toString();
117 dbDev.pass = settings.value("pass").toString();
118 dbDev.charset = settings.value("charset").toString();
119 }
120 settings.endGroup();
121 qDebug() << dbDev.host << dbDev.port << dbDev.name << dbDev.pass;
122 }
123
124
125
126 void Bmsapp::writesettings()
127 {
128 QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp");
129
130 settings.beginGroup("dbprod");
131 settings.setValue("host", dbProd.host);
132 settings.setValue("port", dbProd.port);
133 settings.setValue("name", dbProd.name);
134 settings.setValue("user", dbProd.user);
135 settings.setValue("pass", dbProd.pass);
136 settings.setValue("charset", dbProd.charset);
137 settings.endGroup();
138
139 settings.beginGroup("dbdev");
140 settings.setValue("host", dbDev.host);
141 settings.setValue("port", dbDev.port);
142 settings.setValue("name", dbDev.name);
143 settings.setValue("user", dbDev.user);
144 settings.setValue("pass", dbDev.pass);
145 settings.setValue("charset", dbDev.charset);
146 settings.endGroup();
147 qDebug() << "writesettings() done.";
148 }
149
150
151
152 int Bmsapp::run() {
153
154 int rc = 0;
155
156 if (! initialize()) {
157 cleanup();
158 return 1;
159 }
160
161 rc = qApp->exec();
162
163 cleanup();
164
165 qDebug() << Q_FUNC_INFO << "Cleaned up. Returning " << rc;
166 return rc;
167 }
168
169
170

mercurial