@@ -1381,25 +1381,12 @@ QVariantMap QgsApplication::customVariables()
1381
1381
QVariantMap variables;
1382
1382
1383
1383
// check if settings contains any variables
1384
- if ( settings.contains ( QStringLiteral ( " /variables/values" ) ) )
1384
+ settings.beginGroup ( " variables" );
1385
+ QStringList childKeys = settings.childKeys ();
1386
+ for ( QStringList::const_iterator it = childKeys.constBegin (); it != childKeys.constEnd (); ++it )
1385
1387
{
1386
- QList< QVariant > customVariableVariants = settings.value ( QStringLiteral ( " variables/values" ) ).toList ();
1387
- QList< QVariant > customVariableNames = settings.value ( QStringLiteral ( " variables/names" ) ).toList ();
1388
- int variableIndex = 0 ;
1389
- for ( QList< QVariant >::const_iterator it = customVariableVariants.constBegin ();
1390
- it != customVariableVariants.constEnd (); ++it )
1391
- {
1392
- if ( variableIndex >= customVariableNames.length () )
1393
- {
1394
- break ;
1395
- }
1396
-
1397
- QVariant value = ( *it );
1398
- QString name = customVariableNames.at ( variableIndex ).toString ();
1399
-
1400
- variables.insert ( name, value );
1401
- variableIndex++;
1402
- }
1388
+ QString name = *it;
1389
+ variables.insert ( name, settings.value ( name ) );
1403
1390
}
1404
1391
1405
1392
return variables;
@@ -1409,19 +1396,14 @@ void QgsApplication::setCustomVariables( const QVariantMap &variables )
1409
1396
{
1410
1397
QgsSettings settings;
1411
1398
1412
- QList< QVariant > customVariableValues;
1413
- QList< QVariant > customVariableNames;
1414
-
1415
1399
QVariantMap::const_iterator it = variables.constBegin ();
1400
+ settings.beginGroup (" variables" );
1401
+ settings.remove (" " );
1416
1402
for ( ; it != variables.constEnd (); ++it )
1417
1403
{
1418
- customVariableNames << it.key ();
1419
- customVariableValues << it.value ();
1404
+ settings.setValue ( it.key (), it.value () );
1420
1405
}
1421
1406
1422
- settings.setValue ( QStringLiteral ( " variables/names" ), customVariableNames );
1423
- settings.setValue ( QStringLiteral ( " variables/values" ), customVariableValues );
1424
-
1425
1407
emit instance ()->customVariablesChanged ();
1426
1408
}
1427
1409
@@ -1430,14 +1412,7 @@ void QgsApplication::setCustomVariable( const QString &name, const QVariant &val
1430
1412
// save variable to settings
1431
1413
QgsSettings settings;
1432
1414
1433
- QList< QVariant > customVariableVariants = settings.value ( QStringLiteral ( " variables/values" ) ).toList ();
1434
- QList< QVariant > customVariableNames = settings.value ( QStringLiteral ( " variables/names" ) ).toList ();
1435
-
1436
- customVariableVariants << value;
1437
- customVariableNames << name;
1438
-
1439
- settings.setValue ( QStringLiteral ( " variables/names" ), customVariableNames );
1440
- settings.setValue ( QStringLiteral ( " variables/values" ), customVariableVariants );
1415
+ settings.setValue ( QStringLiteral ( " variables/" ) + name, value );
1441
1416
1442
1417
emit instance ()->customVariablesChanged ();
1443
1418
}
0 commit comments