Skip to content

Commit ae22d87

Browse files
committed
fixing TestRememberAttributesController
1 parent 4340297 commit ae22d87

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

app/attributes/rememberattributescontroller.cpp

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,21 +64,15 @@ void RememberAttributesController::storeFeature( const FeatureLayerPair &pair )
6464
const QgsFields &fields = layer->fields();
6565
for ( int fieldIndex = 0; fieldIndex < fields.count(); fieldIndex++ )
6666
{
67-
QString fieldEnabledKey = keyForField( "enabled", layer, fieldIndex );
68-
bool fieldEnabled = settings.value( fieldEnabledKey, false ).toBool();
69-
bool qgisReuseLastValue = layer->editFormConfig().reuseLastValue( ( fieldIndex ) );
70-
71-
if ( rememberValuesAllowed() ? fieldEnabled : qgisReuseLastValue ) //we want to keep QGIS's reuseLastValue independent when global switch off
72-
{
73-
QString fieldValueKey = keyForField( "value", layer, fieldIndex );
74-
QVariant value = feature.attribute( fieldIndex );
75-
settings.setValue( fieldValueKey, value );
76-
}
67+
QString fieldValueKey = keyForField( "value", layer, fieldIndex );
68+
QVariant value = feature.attribute( fieldIndex );
69+
settings.setValue( fieldValueKey, value );
7770
}
7871

7972
settings.endGroup();
8073
}
8174

75+
8276
bool RememberAttributesController::shouldRememberValue( const QgsVectorLayer *layer, int fieldIndex ) const
8377
{
8478
if ( !layer )

app/test/testrememberattributescontroller.cpp

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@
1515

1616
#include "qgsapplication.h"
1717
#include "qgsvectorlayer.h"
18-
1918
#include "featurelayerpair.h"
2019
#include "rememberattributescontroller.h"
20+
#include "appsettings.h"
21+
#include "activelayer.h"
22+
#include "localprojectsmanager.h"
23+
#include "activeproject.h"
2124

2225
void TestRememberAttributesController::init()
2326
{
27+
QSettings settings;
28+
settings.clear();
2429
}
2530

2631
void TestRememberAttributesController::cleanup()
@@ -46,6 +51,12 @@ void TestRememberAttributesController::noFeatureTest()
4651
void TestRememberAttributesController::storedFeatureTest()
4752
{
4853
RememberAttributesController controller;
54+
AppSettings appSettings;
55+
ActiveLayer activeLayer;
56+
LocalProjectsManager localProjectsManager( QDir::tempPath() );
57+
ActiveProject activeProject( appSettings, activeLayer, localProjectsManager, this );
58+
controller.setActiveProject( &activeProject );
59+
4960
controller.setRememberValuesAllowed( true );
5061

5162
std::unique_ptr<QgsVectorLayer> layer(
@@ -137,7 +148,13 @@ void TestRememberAttributesController::storedFeatureTest()
137148
QCOMPARE( val, 3 );
138149

139150
// ok now user switched to completely different project
140-
controller.reset();
151+
152+
// reset settings
153+
QSettings settings;
154+
settings.beginGroup( RememberAttributesController::CACHED_ATTRIBUTES_GROUP );
155+
settings.remove( "" );
156+
settings.endGroup();
157+
141158
QCOMPARE( controller.shouldRememberValue( layer.get(), 0 ), false );
142159
QCOMPARE( controller.rememberedValue( layer.get(), 0, val ), false );
143160
QCOMPARE( controller.shouldRememberValue( layer.get(), 1 ), false );

0 commit comments

Comments
 (0)