RememberValues.patch
| src/app/qgsattributedialog.cpp (working copy) | ||
|---|---|---|
| 43 | 43 |
#include <QLineEdit> |
| 44 | 44 | |
| 45 | 45 |
int QgsAttributeDialog::smFormCounter = 0; |
| 46 |
QCheckBox *cbxReuseValues; |
|
| 46 | 47 | |
| 47 | 48 |
QgsAttributeDialog::QgsAttributeDialog( QgsVectorLayer *vl, QgsFeature *thepFeature, bool featureOwner ) |
| 48 | 49 |
: mDialog( 0 ) |
| ... | ... | |
| 99 | 100 |
mFrame->setFrameShape( QFrame::StyledPanel ); |
| 100 | 101 |
mFrame->setFrameShadow( QFrame::Raised ); |
| 101 | 102 | |
| 102 |
gridLayout->addWidget( mFrame, 0, 0, 1, 1 );
|
|
| 103 |
gridLayout->addWidget( mFrame, 0, 0, 1, 2 );
|
|
| 103 | 104 | |
| 105 |
cbxReuseValues = new QCheckBox( "Save values for next time", mDialog ); |
|
| 106 |
cbxReuseValues->setEnabled( true ); |
|
| 107 | ||
| 108 |
QSettings settings; |
|
| 109 |
// read the digitizing settings |
|
| 110 |
bool reuseLastValues = settings.value( "/qgis/digitizing/reuseLastValues", false ).toBool(); |
|
| 111 |
if ( reuseLastValues) |
|
| 112 |
{
|
|
| 113 |
cbxReuseValues->setCheckState( Qt::Checked ); |
|
| 114 |
} |
|
| 115 |
else |
|
| 116 |
{
|
|
| 117 |
cbxReuseValues->setCheckState( Qt::Unchecked ); |
|
| 118 |
} |
|
| 119 | ||
| 120 |
mFrame->setObjectName( QString::fromUtf8( "cbxRememberLastValues" ) ); |
|
| 121 |
gridLayout->addWidget( cbxReuseValues, 2 , 0 , 1 , 1 ); |
|
| 122 | ||
| 104 | 123 |
buttonBox = new QDialogButtonBox( mDialog ); |
| 105 | 124 |
buttonBox->setObjectName( QString::fromUtf8( "buttonBox" ) ); |
| 106 |
gridLayout->addWidget( buttonBox, 2, 0, 1, 1 );
|
|
| 125 |
gridLayout->addWidget( buttonBox, 2, 1, 1, 1 );
|
|
| 107 | 126 | |
| 108 | 127 |
// |
| 109 | 128 |
//Set up dynamic inside a scroll box |
| ... | ... | |
| 279 | 298 |
if ( !mLayer->isEditable() || !mFeature ) |
| 280 | 299 |
return; |
| 281 | 300 | |
| 301 |
QSettings settings; |
|
| 302 |
settings.setValue( "/qgis/digitizing/reuseLastValues", cbxReuseValues->isChecked() ); |
|
| 303 |
#ifdef QGISDEBUG |
|
| 304 |
QgsDebugMsg( QString( "reuseLastValues bool: %1" ).arg( cbxReuseValues->isChecked() ) ); |
|
| 305 |
#endif |
|
| 306 | ||
| 282 | 307 |
//write the new values back to the feature |
| 283 | 308 |
QgsAttributeMap myAttributes = mFeature->attributeMap(); |
| 284 | 309 |
int myIndex = 0; |
| ... | ... | |
| 292 | 317 | |
| 293 | 318 |
++myIndex; |
| 294 | 319 |
} |
| 320 | ||
| 321 | ||
| 295 | 322 |
} |
| 296 | 323 | |
| 297 | 324 |
int QgsAttributeDialog::exec() |
| src/app/qgsfeatureaction.cpp (working copy) | ||
|---|---|---|
| 136 | 136 | |
| 137 | 137 |
QSettings settings; |
| 138 | 138 |
bool reuseLastValues = settings.value( "/qgis/digitizing/reuseLastValues", false ).toBool(); |
| 139 |
QgsDebugMsg( QString( "reuseLastValues: %1" ).arg( reuseLastValues ) ); |
|
| 140 | 139 | |
| 141 | 140 |
// add the fields to the QgsFeature |
| 142 | 141 |
const QgsFieldMap fields = mLayer->pendingFields(); |
| ... | ... | |
| 165 | 164 |
} |
| 166 | 165 |
else |
| 167 | 166 |
{
|
| 168 |
QgsAttributeMap origValues; |
|
| 169 |
if ( reuseLastValues ) |
|
| 170 |
origValues = mFeature.attributeMap(); |
|
| 171 | ||
| 172 | 167 |
QgsAttributeDialog *dialog = newDialog( false ); |
| 173 | 168 |
if ( dialog->exec() ) |
| 174 | 169 |
{
|
| 170 |
reuseLastValues = settings.value( "/qgis/digitizing/reuseLastValues", false ).toBool(); |
|
| 175 | 171 |
if ( reuseLastValues ) |
| 176 | 172 |
{
|
| 177 | 173 |
for ( QgsFieldMap::const_iterator it = fields.constBegin(); it != fields.constEnd(); ++it ) |
| 178 | 174 |
{
|
| 179 | 175 |
const QgsAttributeMap &newValues = mFeature.attributeMap(); |
| 180 |
if ( newValues.contains( it.key() ) |
|
| 181 |
&& origValues.contains( it.key() ) |
|
| 182 |
&& origValues[ it.key()] != newValues[ it.key()] ) |
|
| 183 |
{
|
|
| 184 |
QgsDebugMsg( QString( "saving %1 for %2" ).arg( mLastUsedValues[ mLayer ][ it.key()].toString() ).arg( it.key() ) ); |
|
| 185 |
mLastUsedValues[ mLayer ][ it.key()] = newValues[ it.key()]; |
|
| 186 |
} |
|
| 176 |
QgsDebugMsg( QString( "saving %1 for %2" ).arg( mLastUsedValues[ mLayer ][ it.key()].toString() ).arg( it.key() ) ); |
|
| 177 |
mLastUsedValues[ mLayer ][ it.key()] = newValues[ it.key()]; |
|
| 187 | 178 |
} |
| 188 | 179 |
} |
| 189 | 180 | |