1 /* |
1 /* |
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
3 * All rights reserved. |
3 * All rights reserved. |
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
4 * |
9 * Initial Contributors: |
5 * This program is free software: you can redistribute it and/or modify |
10 * Nokia Corporation - initial contribution. |
6 * it under the terms of the GNU Lesser General Public License as published by |
|
7 * the Free Software Foundation, version 2.1 of the License. |
|
8 * |
|
9 * This program 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 Lesser General Public License for more details. |
11 * |
13 * |
12 * Contributors: |
14 * You should have received a copy of the GNU Lesser General Public License |
|
15 * along with this program. If not, |
|
16 * see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". |
13 * |
17 * |
14 * Description: |
18 * Description: |
15 * |
19 * |
16 */ |
20 */ |
17 |
|
18 |
21 |
19 #include <QDebug> |
22 #include <QDebug> |
20 #include <QDir> |
23 #include <QDir> |
21 #include <QCoreApplication> |
24 #include <QCoreApplication> |
22 #include <QDesktopServices> |
25 #include <QDesktopServices> |
23 #include <QtCore/QStringList> |
|
24 #include <QtGui/QMessageBox> |
|
25 #include <qwebsettings.h> |
|
26 #include <QProcessEnvironment> |
26 #include <QProcessEnvironment> |
27 //#include "qtnresources.h" |
27 #include <QWebSettings> |
28 //#include "qtnstrings.h" |
|
29 //#include "wrtversions.h" |
|
30 #include "bedrockprovisioning.h" |
28 #include "bedrockprovisioning.h" |
31 |
29 |
32 #ifdef Q_OS_SYMBIAN |
|
33 #include "f32file.h" |
|
34 #endif |
|
35 |
|
36 #define VALUEDELIM ";" |
|
37 #define RANGEDELIM ":" |
|
38 |
|
39 namespace BEDROCK_PROVISIONING { |
30 namespace BEDROCK_PROVISIONING { |
40 |
31 |
41 BedrockProvisioningEnum::BedrockProvisioningEnum(const QString &key): |
|
42 m_key(key) |
|
43 , m_type(StringType) |
|
44 , m_flags(0) |
|
45 , m_enum(-1) |
|
46 , m_category(0) |
|
47 |
|
48 { |
|
49 } |
|
50 |
|
51 QString BedrockProvisioningEnum::displayValue() |
|
52 { |
|
53 // convert actual value to a string name from the list |
|
54 if (m_type == ListType && m_valuesList.count() == m_validList.count()){ |
|
55 for (int i=0; i < m_validList.count(); i++) |
|
56 if (m_value.toString() == m_valuesList[i]) |
|
57 return m_validList[i]; |
|
58 } |
|
59 // don't display any value for commands |
|
60 else if (m_type == CommandType || m_type == NodeType) |
|
61 return QString(); |
|
62 |
|
63 return m_value.toString(); |
|
64 } |
|
65 |
|
66 QVariant BedrockProvisioningEnum::value() |
|
67 { |
|
68 return m_value; |
|
69 } |
|
70 |
|
71 void BedrockProvisioningEnum::setValid(const QString &valid) |
|
72 { |
|
73 if (valid.contains(VALUEDELIM)) |
|
74 m_validList = valid.split(VALUEDELIM); |
|
75 else if (valid.contains(RANGEDELIM)) |
|
76 m_validList = valid.split(RANGEDELIM); |
|
77 } |
|
78 void BedrockProvisioningEnum::setValues(const QString &values) |
|
79 { |
|
80 m_valuesList = values.split(VALUEDELIM); |
|
81 } |
|
82 //////////////////////////////////////////////////// |
|
83 |
|
84 |
|
85 BedrockProvisioning* BedrockProvisioning::m_BedrockProvisioning = 0; |
32 BedrockProvisioning* BedrockProvisioning::m_BedrockProvisioning = 0; |
86 |
33 |
87 BedrockProvisioning* BedrockProvisioning::createBedrockProvisioning() |
34 BedrockProvisioning* BedrockProvisioning::createBedrockProvisioning() |
88 { |
35 { |
89 if (m_BedrockProvisioning == 0) |
36 if (m_BedrockProvisioning == 0) |
90 m_BedrockProvisioning = new BedrockProvisioning(); |
37 m_BedrockProvisioning = new BedrockProvisioning(); |
91 return m_BedrockProvisioning; |
38 return m_BedrockProvisioning; |
92 } |
39 } |
93 |
40 |
94 void BedrockProvisioning::resync() // DIMA |
|
95 { |
|
96 QStringList list = allKeys(); |
|
97 SettingsMap map; |
|
98 foreach (QString key, list) |
|
99 map.insert(key, value(key)); |
|
100 |
|
101 sync(); |
|
102 |
|
103 list = allKeys(); |
|
104 foreach (QString key, list) |
|
105 if (value(key) != map.value(key)) |
|
106 emit settingChanged(key); |
|
107 } |
|
108 |
|
109 BedrockProvisioning::BedrockProvisioning( QObject* parent, QString uid ) : |
41 BedrockProvisioning::BedrockProvisioning( QObject* parent, QString uid ) : |
110 QSettings(IniFormat, UserScope, BEDROCK_ORGANIZATION_NAME, uid, parent) |
42 QSettings(IniFormat, UserScope, BEDROCK_ORGANIZATION_NAME, uid, parent) |
111 { |
43 { |
112 setObjectName(QString::fromUtf8("BedrockProvisioning")); |
44 setObjectName(QString::fromUtf8("BedrockProvisioning")); |
113 m_appuid = uid; |
45 m_appuid = uid; |
114 init(); |
46 init(); |
115 } |
47 } |
116 |
48 |
117 // Why the heck isn't this in a global .h file somewhere? |
49 void BedrockProvisioning::init() |
118 #define BEDROCK_APPLICATION_NAME "Bedrock" |
50 { |
119 |
|
120 void BedrockProvisioning::init(bool clear) |
|
121 { |
|
122 qDebug() << "brp::init IN"; |
|
123 // Unfortunately, this is getting called before WebPageController::initUASettingsAndData() which sets these |
|
124 QCoreApplication::setApplicationName(BEDROCK_APPLICATION_NAME); |
|
125 QCoreApplication::setOrganizationName(BEDROCK_ORGANIZATION_NAME); |
|
126 if (clear) |
|
127 QSettings::clear(); |
|
128 |
|
129 QString key; |
51 QString key; |
130 beginGroup(m_appuid); |
52 beginGroup(m_appuid); |
131 { |
53 { |
132 QSettings::setValue("Version", "BedrockInternal"); //Add more values separated by ';' here |
|
133 if (!QSettings::contains("BedrockVersion")) |
54 if (!QSettings::contains("BedrockVersion")) |
134 QSettings::setValue("BedrockVersion", QString("BetaRelease")); |
55 QSettings::setValue("BedrockVersion", QString(BEDROCK_VERSION_DEFAULT)); |
135 |
56 |
136 if (!QSettings::contains("ZoomTextOnly")) |
57 if (!QSettings::contains("ZoomTextOnly")) |
137 QSettings::setValue("ZoomTextOnly", "0"); |
58 QSettings::setValue("ZoomTextOnly", "0"); |
138 //QSettings::setValue("ZoomTextOnly/descl", qtn_wrtsetting_zoomtextonly); |
59 |
139 QSettings::setValue("ZoomTextOnly/type", BedrockProvisioningEnum::ListType); |
|
140 QSettings::setValue("ZoomTextOnly/valid", "Yes;No"); |
|
141 QSettings::setValue("ZoomTextOnly/values", "1;0"); |
|
142 QSettings::setValue("ZoomTextOnly/flags", BedrockProvisioningEnum::WebAttribute); |
|
143 QSettings::setValue("ZoomTextOnly/enum", QWebSettings::ZoomTextOnly); |
|
144 QSettings::setValue("ZoomTextOnly/cat", BedrockProvisioningEnum::Category1); |
|
145 |
|
146 if (!QSettings::contains("PopupBlocking")) |
60 if (!QSettings::contains("PopupBlocking")) |
147 QSettings::setValue("PopupBlocking", "0"); |
61 QSettings::setValue("PopupBlocking", "1"); |
148 //QSettings::setValue("PopupBlocking/descl", qtn_wrtsetting_popupblocking); |
62 |
149 QSettings::setValue("PopupBlocking/type", BedrockProvisioningEnum::ListType); |
63 // Base directory for ROM files (if the browser isn't in ROM this will be the same as DataBaseDirectory) |
150 QSettings::setValue("PopupBlocking/valid", "On;Off"); |
64 if (!QSettings::contains("ROMBaseDirectory")) { |
151 QSettings::setValue("PopupBlocking/values", "1;0"); |
65 #if defined Q_OS_SYMBIAN |
152 QSettings::setValue("PopupBlocking/cat", BedrockProvisioningEnum::Category2); |
66 #ifndef QT_NO_DESKTOPSERVICES |
153 |
67 QString baseDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); |
154 if (!QSettings::contains("JavaScriptConsoleLog")) |
68 if (baseDir.length() > 2 && baseDir.at(1) == ':') |
155 QSettings::setValue("JavaScriptConsoleLog", "0"); |
69 baseDir = baseDir.mid(2); |
156 //QSettings::setValue("JavaScriptConsoleLog/descl", qtn_wrtsetting_jsconsolelog); |
70 #else /* QT_NO_DESKTOPSERVICES */ |
157 QSettings::setValue("JavaScriptConsoleLog/type", BedrockProvisioningEnum::ListType); |
71 QString baseDir = QDir::homePath(); // Not sure if this is valid |
158 QSettings::setValue("JavaScriptConsoleLog/valid", "Logging Off;Log to file;Show pop-up notes;Log to file and show pop-up notes"); |
72 #endif /* QT_NO_DESKTOPSERVICES */ |
159 QSettings::setValue("JavaScriptConsoleLog/values", "0;1;2;3"); |
73 #elif defined Q_WS_MAEMO_5 |
160 QSettings::setValue("JavaScriptConsoleLog/cat", BedrockProvisioningEnum::Category4); |
74 QString baseDir = "/opt/browser"; |
161 |
75 #else /* Win or Linux */ |
162 if (!QSettings::contains("JavaScriptConsoleLogFilePath")) |
76 QString baseDir = "."; /* Should this also be homePath()? */ |
163 QSettings::setValue("JavaScriptConsoleLogFilePath", "jsLog_web.log"); |
77 #endif |
164 //QSettings::setValue("JavaScriptConsoleLogFilePath/descl", qtn_wrtsetting_jsconsolelogfilepath); |
78 QSettings::setValue("ROMBaseDirectory", baseDir + "/"); |
165 QSettings::setValue("JavaScriptConsoleLogFilePath/cat", BedrockProvisioningEnum::Category4); |
79 } |
166 |
80 |
|
81 // Base directory for writeable data files, not database directory |
|
82 if (!QSettings::contains("DataBaseDirectory")) { |
|
83 #if defined Q_OS_SYMBIAN |
|
84 #ifndef QT_NO_DESKTOPSERVICES |
|
85 QString baseDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); |
|
86 #else /* QT_NO_DESKTOPSERVICES */ |
|
87 QString baseDir = QDir::homePath(); |
|
88 #endif /* QT_NO_DESKTOPSERVICES */ |
|
89 #elif defined Q_WS_MAEMO_5 |
|
90 QString baseDir = QDir::homePath(); |
|
91 #else /* Win or Linux */ |
|
92 QString baseDir = "."; /* Should this also be homePath()? */ |
|
93 #endif |
|
94 QSettings::setValue("DataBaseDirectory", baseDir + "/"); |
|
95 } |
|
96 |
167 if (!QSettings::contains("ChromeBaseDirectory")) { |
97 if (!QSettings::contains("ChromeBaseDirectory")) { |
168 #if defined Q_OS_SYMBIAN |
98 QString chromeBaseDir = ":/chrome/"; |
169 static const QString defaultChromeBaseDir = "/data/Others/chrome/"; |
99 #ifndef Q_OS_SYMBIAN |
170 #elif defined Q_WS_MAEMO_5 |
100 // Maemo, Linux, Windows can override using an env var |
171 static const QString envChromeBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_CHROME"); // allow env var overriding for dev |
101 static const QString envChromeBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_CHROME"); // allow env var overriding for dev |
172 static const QString defaultChromeBaseDir = (envChromeBaseDir != "") ? envChromeBaseDir : "/opt/browser/chrome/"; |
102 if (envChromeBaseDir != "") |
173 #else /* Win or Linux */ |
103 chromeBaseDir = envChromeBaseDir; |
174 static const QString envChromeBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_CHROME"); // allow env var overriding for dev |
104 #endif |
175 static const QString defaultChromeBaseDir = (envChromeBaseDir != "") ? envChromeBaseDir : "chrome/"; |
105 QSettings::setValue("ChromeBaseDirectory", chromeBaseDir); |
176 #endif |
|
177 |
|
178 QSettings::setValue("ChromeBaseDirectory", defaultChromeBaseDir); |
|
179 } |
106 } |
180 // This is for Ginebra2 but will go away once Ginebra1 is gone. |
107 |
181 if (!QSettings::contains("ChromeBaseDirectory2")) { |
108 if (!QSettings::contains("LocalPagesBaseDirectory")) { |
182 #if defined Q_OS_SYMBIAN |
109 #ifdef Q_OS_SYMBIAN |
183 static const QString defaultChromeBaseDir = "/data/Others/ginebra2/chrome/"; |
110 QString localpagesBaseDir = QSettings::value("ROMBaseDirectory").toString() + "localpages/"; |
184 #elif defined Q_WS_MAEMO_5 |
111 #else |
185 static const QString envChromeBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_CHROME"); // allow env var overriding for dev |
112 QString localpagesBaseDir = QSettings::value("ChromeBaseDirectory").toString() + "localpages/"; |
186 static const QString defaultChromeBaseDir = (envChromeBaseDir != "") ? envChromeBaseDir : "/opt/browser/chrome/"; |
113 // Maemo, Linux, Windows can override using an env var |
187 #else /* Win or Linux */ |
114 static const QString envBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_LOCALPAGES"); // allow env var overriding for dev |
188 static const QString envChromeBaseDir = QProcessEnvironment::systemEnvironment().value("BROWSER_CHROME"); // allow env var overriding for dev |
115 if (envBaseDir != "") |
189 static const QString defaultChromeBaseDir = (envChromeBaseDir != "") ? envChromeBaseDir : "chrome/"; |
116 localpagesBaseDir = envBaseDir; |
190 #endif |
117 #endif |
191 |
118 QSettings::setValue("LocalPagesBaseDirectory", localpagesBaseDir); |
192 QSettings::setValue("ChromeBaseDirectory2", defaultChromeBaseDir); |
119 } |
193 } |
120 |
194 if (!QSettings::contains("StartUpChrome")) { |
121 if (!QSettings::contains("StartUpChrome")) { |
195 QSettings::setValue("StartUpChrome", "bedrockchrome/chrome.html"); |
122 QSettings::setValue("StartUpChrome", "bedrockchrome/chrome.html"); |
196 } |
123 } |
197 |
124 |
198 if (!QSettings::contains("SplashImage")) { |
125 if (!QSettings::contains("SplashImage")) { |
199 QSettings::setValue("SplashImage", "localpages/bedrock_splash.png"); |
126 QSettings::setValue("SplashImage", "localpages/bedrock_splash.png"); |
200 } |
127 } |
201 |
128 |
202 if (!QSettings::contains("NetworkProxy")) { |
129 if (!QSettings::contains("NetworkProxy")) { |
203 // For s60 arm and maemo arm (i.e. not x86 emulator build) we need to set no proxy |
130 // For s60 arm and maemo arm (i.e. not x86 emulator build) we need to set no proxy |
204 #if (defined(Q_OS_SYMBIAN) && !defined(Q_CC_NOKIAX86)) || (defined(Q_WS_MAEMO_5) && !defined(QT_ARCH_I386)) |
131 #if (defined(Q_OS_SYMBIAN) && !defined(Q_CC_NOKIAX86)) || (defined(Q_WS_MAEMO_5) && !defined(QT_ARCH_I386)) |
205 // empty proxy only for ARMV5 Symbian targets |
132 // empty proxy only for ARMV5 Symbian targets |
206 QSettings::setValue("NetworkProxy", QString()); |
133 QSettings::setValue("NetworkProxy", QString()); |
207 // everything else, linux, win, s60 emulator, maemo emulator needs proxy |
134 // everything else, linux, win, s60 emulator, maemo emulator needs proxy |
208 #else |
135 #else |
209 QSettings::setValue("NetworkProxy", "bswebproxy01.americas.nokia.com"); |
136 QSettings::setValue("NetworkProxy", "bswebproxy01.americas.nokia.com"); |
210 #endif |
137 #endif |
211 } |
138 } |
212 //QSettings::setValue("NetworkProxy/descl", qtn_wrtsetting_networkproxy); |
139 |
213 QSettings::setValue("NetworkProxy/cat", BedrockProvisioningEnum::Category3); |
140 if (!QSettings::contains("NetworkPort")) { |
214 |
141 // For s60 arm and maemo arm (i.e. not x86 emulator build) we need to set no proxy |
215 if (!QSettings::contains("DeveloperExtras")) |
142 #if (defined(Q_OS_SYMBIAN) && !defined(Q_CC_NOKIAX86)) || (defined(Q_WS_MAEMO_5) && !defined(QT_ARCH_I386)) |
216 QSettings::setValue("DeveloperExtras", "0"); |
143 // empty proxy only for ARMV5 Symbian targets |
217 //QSettings::setValue("DeveloperExtras/descl", qtn_wrtsetting_developerextrasenabled); |
144 QSettings::setValue("NetworkPort", QString()); |
218 QSettings::setValue("DeveloperExtras/type", BedrockProvisioningEnum::ListType); |
145 // everything else, linux, win, s60 emulator, maemo emulator needs proxy |
219 QSettings::setValue("DeveloperExtras/valid", "Enabled;Disabled"); |
146 #else |
220 QSettings::setValue("DeveloperExtras/values", "1;0"); |
147 QSettings::setValue("NetworkPort", "8080"); |
221 QSettings::setValue("DeveloperExtras/flags", BedrockProvisioningEnum::WebAttribute); |
148 #endif |
222 QSettings::setValue("DeveloperExtras/enum", QWebSettings::DeveloperExtrasEnabled); |
149 } |
223 QSettings::setValue("DeveloperExtras/cat", BedrockProvisioningEnum::Category4); |
|
224 |
|
225 if (!QSettings::contains("DiskCacheEnabled")) |
150 if (!QSettings::contains("DiskCacheEnabled")) |
226 QSettings::setValue("DiskCacheEnabled", "1"); |
151 QSettings::setValue("DiskCacheEnabled", "1"); |
227 |
152 |
228 if (!QSettings::contains("DiskCacheMaxSize")) |
153 if (!QSettings::contains("DiskCacheMaxSize")) |
229 QSettings::setValue("DiskCacheMaxSize", "4194304"); |
154 QSettings::setValue("DiskCacheMaxSize", "4194304"); |
230 |
155 |
|
156 if (!QSettings::contains("MaxPagesInCache")) |
|
157 QSettings::setValue("MaxPagesInCache", "3"); |
|
158 |
|
159 if (!QSettings::contains("DnsPrefetchEnabled")) |
|
160 QSettings::setValue("DnsPrefetchEnabled", "0"); |
|
161 |
231 #ifdef Q_OS_SYMBIAN |
162 #ifdef Q_OS_SYMBIAN |
232 const QString diskCacheBaseDir = "d:/system/"; |
163 const QString diskCacheBaseDir = "d:/system/"; |
233 #else |
164 #else |
234 #ifndef QT_NO_DESKTOPSERVICES |
165 const QString diskCacheBaseDir = QSettings::value("DataBaseDirectory").toString(); |
235 const QString diskCacheBaseDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); |
|
236 qDebug() << "dt diskCacheBaseDir = " << diskCacheBaseDir; |
|
237 #else |
|
238 const QString diskCacheBaseDir = QDir::homePath(); |
|
239 qDebug() << "hd diskCacheBaseDir = " << diskCacheBaseDir; |
|
240 #endif |
|
241 #endif |
166 #endif |
242 |
167 |
243 if (!QSettings::contains("DiskCacheDirectoryPath")) { |
168 if (!QSettings::contains("DiskCacheDirectoryPath")) { |
244 qDebug() << "setting diskcachedirpath to " << diskCacheBaseDir + "brCache"; |
|
245 QSettings::setValue("DiskCacheDirectoryPath", diskCacheBaseDir + "brCache"); |
169 QSettings::setValue("DiskCacheDirectoryPath", diskCacheBaseDir + "brCache"); |
246 } |
170 } |
247 |
171 |
248 if (!QSettings::contains("Cookies")) |
172 if (!QSettings::contains("Cookies")) |
249 QSettings::setValue("Cookies", "1"); |
173 QSettings::setValue("Cookies", "1"); |
250 //QSettings::setValue("Cookies/descl", qtn_wrtsetting_cookiesenabled); |
|
251 QSettings::setValue("Cookies/type", BedrockProvisioningEnum::ListType); |
|
252 QSettings::setValue("Cookies/valid", "Enabled;Disabled"); |
|
253 QSettings::setValue("Cookies/values", "1;0"); |
|
254 QSettings::setValue("Cookies/cat", BedrockProvisioningEnum::Category1); |
|
255 |
174 |
256 if (!QSettings::contains("StartPage")) |
175 if (!QSettings::contains("StartPage")) |
|
176 { |
257 #ifdef PLAT_101 |
177 #ifdef PLAT_101 |
258 QSettings::setValue("StartPage", "localpages/startpage_101.html"); |
178 QSettings::setValue("StartPage", "startpage_101.html"); |
259 #else |
179 #else |
260 QSettings::setValue("StartPage", "localpages/startpage.html"); |
180 QSettings::setValue("StartPage", "startpage.html"); |
261 #endif |
181 #endif |
262 QSettings::setValue("StartPage/cat", BedrockProvisioningEnum::Category1); |
182 } |
263 |
183 |
264 if (!QSettings::contains("SaveSession")) |
184 if (!QSettings::contains("SaveSession")) |
265 QSettings::setValue("SaveSession", "1"); |
185 QSettings::setValue("SaveSession", "1"); |
266 QSettings::setValue("SaveSession/type", BedrockProvisioningEnum::ListType); |
186 |
267 QSettings::setValue("SaveSession/valid", "Enabled;Disabled"); |
187 if (!QSettings::contains("SaveHistory")) |
268 QSettings::setValue("SaveSession/values", "1;0"); |
188 QSettings::setValue("SaveHistory", "1"); |
269 QSettings::setValue("SaveSession/cat", BedrockProvisioningEnum::Category1); |
189 |
270 |
190 if (!QSettings::contains("BrowserEncoding")) |
271 qDebug() << "in group brp cwrtCache = " << this->valueAsString("DiskCacheDirectoryPath"); |
191 QSettings::setValue("BrowserEncoding", QString("iso-8859-1")); |
272 qDebug() << "brp::init endGroup " << m_appuid; |
192 |
|
193 if (!QSettings::contains("Html5LocalStorage")) { |
|
194 QSettings::setValue("Html5LocalStorage", "1"); |
|
195 } |
|
196 |
|
197 if (!QSettings::contains("Html5DatabaseStorage")) { |
|
198 QSettings::setValue("Html5DatabaseStorage", "1"); |
|
199 } |
|
200 |
|
201 if (!QSettings::contains("Html5DatabaseStorageMaxSize")) { |
|
202 // This quota applies to each individual persistent |
|
203 // store (local storage, database storage) database. |
|
204 // There is a separate instance for each security origin |
|
205 // that uses the feature. See QWebSecurityOrigin. |
|
206 // |
|
207 // Limit: 5MB per origin |
|
208 QString maxSize = QString::number(5 * 1024 * 1024); // 5MB per origin |
|
209 QSettings::setValue("Html5DatabaseStorageMaxSize", maxSize); |
|
210 } |
|
211 |
|
212 if (!QSettings::contains("Html5ApplicationCache")) { |
|
213 QSettings::setValue("Html5ApplicationCache", "1"); |
|
214 } |
|
215 |
|
216 if (!QSettings::contains("Html5ApplicationCacheMaxSize")) { |
|
217 // This quota applies to the single database instance |
|
218 // used to store ALL application cache data. It should |
|
219 // be fairly large, as the application cache is used to |
|
220 // store entire files -- html/css/javascript text, image |
|
221 // files, etc. |
|
222 // |
|
223 // Limit: 200MB = 5MB per origin * 40 origins |
|
224 QString maxSize = QString::number(200 * 1024 * 1024); |
|
225 QSettings::setValue("Html5ApplicationCacheMaxSize", maxSize); |
|
226 } |
|
227 |
|
228 // reserved entries for local bookmarks |
|
229 if (!QSettings::contains("Bookmark0Title")) { |
|
230 QSettings::setValue("Bookmark0Title", "Browser Welcome Page"); |
|
231 } |
|
232 |
|
233 if (!QSettings::contains("Bookmark0Url")) { |
|
234 #ifdef PLAT_101 |
|
235 QSettings::setValue("Bookmark0Url", "startpage_101.html"); |
|
236 #else |
|
237 QSettings::setValue("Bookmark0Url", "startpage.html"); |
|
238 #endif |
|
239 } |
|
240 |
|
241 if (!QSettings::contains("Bookmark1Title")) { |
|
242 QSettings::setValue("Bookmark1Title", ""); |
|
243 } |
|
244 |
|
245 if (!QSettings::contains("Bookmark1Url")) { |
|
246 QSettings::setValue("Bookmark1Url", ""); |
|
247 } |
|
248 |
|
249 if (!QSettings::contains("Bookmark2Title")) { |
|
250 QSettings::setValue("Bookmark2Title", ""); |
|
251 } |
|
252 |
|
253 if (!QSettings::contains("Bookmark2Url")) { |
|
254 QSettings::setValue("Bookmark2Url", ""); |
|
255 } |
273 } |
256 } |
|
257 |
|
258 // userAgentStringSetup, default empty. |
|
259 if (!QSettings::contains("UserAgentString")) |
|
260 { |
|
261 QSettings::setValue("UserAgentString", QString()); |
|
262 } |
274 endGroup(); // m_appuid |
263 endGroup(); // m_appuid |
275 sync(); |
264 sync(); |
276 qDebug() << "m_appuid = " << m_appuid; |
265 } |
277 qDebug() << "orgname = " << this->organizationName(); |
266 |
278 qDebug() << "appname = " << this->applicationName(); |
|
279 qDebug() << "filename = " << this->fileName(); |
|
280 qDebug() << "brp cwrtCache = " << this->valueAsString("DiskCacheDirectoryPath"); |
|
281 qDebug() << "settings: " << this->allKeys().join("::"); |
|
282 qDebug() << "brp::init OUT"; |
|
283 } |
|
284 |
|
285 BedrockProvisioningEnum BedrockProvisioning::setting(const QString &key) |
|
286 { |
|
287 BedrockProvisioningEnum setting(key); |
|
288 |
|
289 bool appMissing( QSettings::group().isEmpty() && !key.startsWith(m_appuid)); |
|
290 if (appMissing) |
|
291 beginGroup(m_appuid); |
|
292 setting.m_value = QSettings::value(key); |
|
293 QSettings::beginGroup(key); |
|
294 QStringList childkeys = QSettings::allKeys(); |
|
295 setting.m_group = QSettings::group(); |
|
296 for (int i=0; i < childkeys.count(); i++){ |
|
297 if (childkeys[i] == "type") |
|
298 setting.m_type = QSettings::value(childkeys[i]).toInt(); |
|
299 else if (childkeys[i] == "desc") |
|
300 setting.m_desc = QSettings::value(childkeys[i]).toString(); |
|
301 //else if (childkeys[i] == "descl")// localized |
|
302 //setting.m_desc = tr(setting_strings[QSettings::value(childkeys[i]).toInt()]); |
|
303 else if (childkeys[i] == "valid") |
|
304 setting.setValid(QSettings::value(childkeys[i]).toString()); |
|
305 else if (childkeys[i] == "values") |
|
306 setting.setValues(QSettings::value(childkeys[i]).toString()); |
|
307 else if (childkeys[i] == "flags") |
|
308 setting.setFlags(QSettings::value(childkeys[i]).toInt()); |
|
309 else if (childkeys[i] == "enum") |
|
310 setting.m_enum = QSettings::value(childkeys[i]).toInt(); |
|
311 else if (childkeys[i] == "cat") |
|
312 setting.m_category = QSettings::value(childkeys[i]).toInt(); |
|
313 } |
|
314 endGroup(); |
|
315 if (appMissing) |
|
316 endGroup(); |
|
317 |
|
318 |
|
319 return setting; |
|
320 } |
|
321 |
267 |
322 QString BedrockProvisioning::valueAsString(const QString &key, const QVariant &defaultValue) |
268 QString BedrockProvisioning::valueAsString(const QString &key, const QVariant &defaultValue) |
323 { |
269 { |
324 return value(key, defaultValue).toString(); |
270 return value(key, defaultValue).toString(); |
325 } |
271 } |
326 |
272 |
327 int BedrockProvisioning::valueAsInt(const QString &key, const QVariant &defaultValue) |
273 int BedrockProvisioning::valueAsInt(const QString &key, const QVariant &defaultValue) |
328 { |
274 { |
329 return value(key, defaultValue).toInt(); |
275 return value(key, defaultValue).toInt(); |
|
276 } |
|
277 |
|
278 qint64 BedrockProvisioning::valueAsInt64(const QString &key, const QVariant &defaultValue) |
|
279 { |
|
280 return value(key, defaultValue).toLongLong(); |
330 } |
281 } |
331 |
282 |
332 double BedrockProvisioning::valueAsDouble(const QString &key, const QVariant &defaultValue) |
283 double BedrockProvisioning::valueAsDouble(const QString &key, const QVariant &defaultValue) |
333 { |
284 { |
334 return value(key, defaultValue).toDouble(); |
285 return value(key, defaultValue).toDouble(); |