Changeset 51929 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Jul 8, 2014 12:50:15 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 94820
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/extradata
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.cpp
r51928 r51929 23 23 #include "UIExtraDataManager.h" 24 24 #include "UIMainEventListener.h" 25 #include "VBoxGlobalSettings.h" 25 26 #include "VBoxGlobal.h" 26 #include "VBoxGlobalSettings.h"27 27 #include "UIActionPool.h" 28 28 #include "UIConverter.h" … … 145 145 } 146 146 147 QString UIExtraDataManager::extraDataString(const QString &strKey, const QString &strID /* = GlobalID */) 148 { 149 /* Hot-load machine extra-data map if necessary: */ 150 if (strID != GlobalID && !m_data.contains(strID)) 151 hotloadMachineExtraDataMap(strID); 152 153 /* Read-only access corresponding map: */ 154 const ExtraDataMap data = m_data.value(strID); 155 156 /* QString() if value was not set: */ 157 if (!data.contains(strKey)) 158 return QString(); 159 160 /* Returns corresponding value: */ 161 return data[strKey]; 162 } 163 164 void UIExtraDataManager::setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID /* = GlobalID */) 165 { 166 /* Hot-load machine extra-data map if necessary: */ 167 if (strID != GlobalID && !m_data.contains(strID)) 168 hotloadMachineExtraDataMap(strID); 169 170 /* Access corresponding map: */ 171 ExtraDataMap &data = m_data[strID]; 172 173 /* [Re]cache passed value: */ 174 data[strKey] = strValue; 175 176 /* Global extra-data: */ 177 if (strID == GlobalID) 178 { 179 /* Get global object: */ 180 CVirtualBox vbox = vboxGlobal().virtualBox(); 181 /* Update global extra-data: */ 182 vbox.SetExtraData(strKey, strValue); 183 } 184 /* Machine extra-data: */ 185 else 186 { 187 /* Search for corresponding machine: */ 188 CVirtualBox vbox = vboxGlobal().virtualBox(); 189 CMachine machine = vbox.FindMachine(strID); 190 AssertReturnVoid(vbox.isOk() && !machine.isNull()); 191 /* Update machine extra-data: */ 192 machine.SetExtraData(strKey, strValue); 193 } 194 } 195 196 QStringList UIExtraDataManager::extraDataStringList(const QString &strKey, const QString &strID /* = GlobalID */) 197 { 198 /* Hot-load machine extra-data map if necessary: */ 199 if (strID != GlobalID && !m_data.contains(strID)) 200 hotloadMachineExtraDataMap(strID); 201 202 /* Read-only access corresponding map: */ 203 const ExtraDataMap data = m_data.value(strID); 204 205 /* QStringList() if machine value was not set: */ 206 if (!data.contains(strKey)) 207 return QStringList(); 208 209 /* Few old extra-data string-lists were separated with 'semicolon' symbol. 210 * All new separated by 'comma'. We have to take that into account. */ 211 return data[strKey].split(QRegExp("[;,]"), QString::SkipEmptyParts); 212 } 213 214 void UIExtraDataManager::setExtraDataStringList(const QString &strKey, const QStringList &strValue, const QString &strID /* = GlobalID */) 215 { 216 /* Hot-load machine extra-data map if necessary: */ 217 if (strID != GlobalID && !m_data.contains(strID)) 218 hotloadMachineExtraDataMap(strID); 219 220 /* Access corresponding map: */ 221 ExtraDataMap &data = m_data[strID]; 222 223 /* [Re]cache passed value: */ 224 data[strKey] = strValue.join(","); 225 226 /* Global extra-data: */ 227 if (strID == GlobalID) 228 { 229 /* Get global object: */ 230 CVirtualBox vbox = vboxGlobal().virtualBox(); 231 /* Update global extra-data: */ 232 vbox.SetExtraDataStringList(strKey, strValue); 233 } 234 /* Machine extra-data: */ 235 else 236 { 237 /* Search for corresponding machine: */ 238 CVirtualBox vbox = vboxGlobal().virtualBox(); 239 CMachine machine = vbox.FindMachine(strID); 240 AssertReturnVoid(vbox.isOk() && !machine.isNull()); 241 /* Update machine extra-data: */ 242 machine.SetExtraDataStringList(strKey, strValue); 243 } 244 } 245 147 246 UIExtraDataManager::UIExtraDataManager() 148 247 : m_pHandler(0) … … 1262 1361 } 1263 1362 1264 void UIExtraDataManager::cleanup()1265 {1266 /* Cleanup Main event-listener: */1267 cleanupMainEventListener();1268 }1269 1270 1363 void UIExtraDataManager::cleanupMainEventListener() 1271 1364 { … … 1273 1366 const CVirtualBox &vbox = vboxGlobal().virtualBox(); 1274 1367 vbox.GetEventSource().UnregisterListener(m_listener); 1368 } 1369 1370 void UIExtraDataManager::cleanup() 1371 { 1372 /* Cleanup Main event-listener: */ 1373 cleanupMainEventListener(); 1275 1374 } 1276 1375 … … 1352 1451 } 1353 1452 1354 QString UIExtraDataManager::extraDataString(const QString &strKey, const QString &strID /* = GlobalID */)1355 {1356 /* Hot-load machine extra-data map if necessary: */1357 if (strID != GlobalID && !m_data.contains(strID))1358 hotloadMachineExtraDataMap(strID);1359 1360 /* Access corresponding map: */1361 ExtraDataMap &data = m_data[strID];1362 1363 /* QString() if value was not set: */1364 if (!data.contains(strKey))1365 return QString();1366 1367 /* Returns corresponding value: */1368 return data[strKey];1369 }1370 1371 void UIExtraDataManager::setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID /* = GlobalID */)1372 {1373 /* Hot-load machine extra-data map if necessary: */1374 if (strID != GlobalID && !m_data.contains(strID))1375 hotloadMachineExtraDataMap(strID);1376 1377 /* Access corresponding map: */1378 ExtraDataMap &data = m_data[strID];1379 1380 /* [Re]cache passed value: */1381 data[strKey] = strValue;1382 1383 /* Global extra-data: */1384 if (strID == GlobalID)1385 {1386 /* Get global object: */1387 CVirtualBox vbox = vboxGlobal().virtualBox();1388 /* Update global extra-data: */1389 vbox.SetExtraData(strKey, strValue);1390 }1391 /* Machine extra-data: */1392 else1393 {1394 /* Search for corresponding machine: */1395 CVirtualBox vbox = vboxGlobal().virtualBox();1396 CMachine machine = vbox.FindMachine(strID);1397 AssertReturnVoid(vbox.isOk() && !machine.isNull());1398 /* Update machine extra-data: */1399 machine.SetExtraData(strKey, strValue);1400 }1401 }1402 1403 QStringList UIExtraDataManager::extraDataStringList(const QString &strKey, const QString &strID /* = GlobalID */)1404 {1405 /* Hot-load machine extra-data map if necessary: */1406 if (strID != GlobalID && !m_data.contains(strID))1407 hotloadMachineExtraDataMap(strID);1408 1409 /* Access corresponding map: */1410 ExtraDataMap &data = m_data[strID];1411 1412 /* QStringList() if machine value was not set: */1413 if (!data.contains(strKey))1414 return QStringList();1415 1416 /* Few old extra-data string-lists were separated with 'semicolon' symbol.1417 * All new separated by 'comma'. We have to take that into account. */1418 return data[strKey].split(QRegExp("[;,]"), QString::SkipEmptyParts);1419 }1420 1421 void UIExtraDataManager::setExtraDataStringList(const QString &strKey, const QStringList &strValue, const QString &strID /* = GlobalID */)1422 {1423 /* Hot-load machine extra-data map if necessary: */1424 if (strID != GlobalID && !m_data.contains(strID))1425 hotloadMachineExtraDataMap(strID);1426 1427 /* Access corresponding map: */1428 ExtraDataMap &data = m_data[strID];1429 1430 /* [Re]cache passed value: */1431 data[strKey] = strValue.join(",");1432 1433 /* Global extra-data: */1434 if (strID == GlobalID)1435 {1436 /* Get global object: */1437 CVirtualBox vbox = vboxGlobal().virtualBox();1438 /* Update global extra-data: */1439 vbox.SetExtraDataStringList(strKey, strValue);1440 }1441 /* Machine extra-data: */1442 else1443 {1444 /* Search for corresponding machine: */1445 CVirtualBox vbox = vboxGlobal().virtualBox();1446 CMachine machine = vbox.FindMachine(strID);1447 AssertReturnVoid(vbox.isOk() && !machine.isNull());1448 /* Update machine extra-data: */1449 machine.SetExtraDataStringList(strKey, strValue);1450 }1451 }1452 1453 1453 /* static */ 1454 1454 QString UIExtraDataManager::extraDataKeyPerScreen(const QString &strBase, ulong uScreenIndex, bool fSameRuleForPrimary /* = false */) -
trunk/src/VBox/Frontends/VirtualBox/src/extradata/UIExtraDataManager.h
r51928 r51929 75 75 /** Static Extra-data Manager destructor. */ 76 76 static void destroy(); 77 78 /** @name General 79 * @{ */ 80 /** Returns whether Extra-data Manager cached the map with passed @a strID. */ 81 bool contains(const QString &strID) const { return m_data.contains(strID); } 82 /** Returns read-only extra-data map for passed @a strID. */ 83 const ExtraDataMap map(const QString &strID) const { return m_data.value(strID); } 84 85 /** Returns extra-data value corresponding to passed @a strKey as QString. 86 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */ 87 QString extraDataString(const QString &strKey, const QString &strID = GlobalID); 88 /** Defines extra-data value corresponding to passed @a strKey as strValue. 89 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */ 90 void setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID = GlobalID); 91 92 /** Returns extra-data value corresponding to passed @a strKey as QStringList. 93 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */ 94 QStringList extraDataStringList(const QString &strKey, const QString &strID = GlobalID); 95 /** Defines extra-data value corresponding to passed @a strKey as strValue. 96 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */ 97 void setExtraDataStringList(const QString &strKey, const QStringList &strValue, const QString &strID = GlobalID); 98 /** @} */ 77 99 78 100 /** @name Messaging … … 397 419 void prepareMainEventListener(); 398 420 399 /** Cleanup Extra-data Manager. */400 void cleanup();401 421 /** Cleanup Main event-listener. */ 402 422 void cleanupMainEventListener(); … … 405 425 // /** Cleanup extra-data map. */ 406 426 // void cleanupExtraDataMap(); 427 /** Cleanup Extra-data Manager. */ 428 void cleanup(); 407 429 408 430 /** Hot-load machine extra-data map. */ … … 421 443 QString toFeatureRestricted(bool fRestricted); 422 444 423 /** Returns extra-data value corresponding to passed @a strKey as QString.424 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */425 QString extraDataString(const QString &strKey, const QString &strID = GlobalID);426 /** Defines extra-data value corresponding to passed @a strKey as strValue.427 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */428 void setExtraDataString(const QString &strKey, const QString &strValue, const QString &strID = GlobalID);429 430 /** Returns extra-data value corresponding to passed @a strKey as QStringList.431 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */432 QStringList extraDataStringList(const QString &strKey, const QString &strID = GlobalID);433 /** Defines extra-data value corresponding to passed @a strKey as strValue.434 * If valid @a strID is set => applies to machine extra-data, otherwise => to global one. */435 void setExtraDataStringList(const QString &strKey, const QStringList &strValue, const QString &strID = GlobalID);436 437 445 /** Returns string consisting of @a strBase appended with @a uScreenIndex for the *non-primary* screen-index. 438 446 * If @a fSameRuleForPrimary is 'true' same rule will be used for *primary* screen-index. Used for storing per-screen extra-data. */
Note:
See TracChangeset
for help on using the changeset viewer.