Skip to content

Commit f30452d

Browse files
committedOct 12, 2014
Merge pull request #1623 from manisandro/initially_unsorted_attributes
Show attributes dialog with initially unsorted attributes
2 parents 25333c5 + 0ed701e commit f30452d

File tree

1 file changed

+45
-48
lines changed

1 file changed

+45
-48
lines changed
 

‎src/app/qgsidentifyresultsdialog.cpp

Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,7 @@ QgsIdentifyResultsDialog::QgsIdentifyResultsDialog( QgsMapCanvas *canvas, QWidge
276276
mExpandNewToolButton->setChecked( mySettings.value( "/Map/identifyExpand", false ).toBool() );
277277
mCopyToolButton->setEnabled( false );
278278
lstResults->setColumnCount( 2 );
279+
lstResults->sortByColumn( -1 );
279280
setColumnText( 0, tr( "Feature" ) );
280281
setColumnText( 1, tr( "Value" ) );
281282

@@ -396,49 +397,6 @@ void QgsIdentifyResultsDialog::addFeature( QgsVectorLayer *vlayer, const QgsFeat
396397
mFeatures << f;
397398
layItem->addChild( featItem );
398399

399-
const QgsFields &fields = vlayer->pendingFields();
400-
const QgsAttributes& attrs = f.attributes();
401-
bool featureLabeled = false;
402-
for ( int i = 0; i < attrs.count(); ++i )
403-
{
404-
if ( i >= fields.count() )
405-
continue;
406-
407-
QString value = fields[i].displayString( attrs[i] );
408-
QTreeWidgetItem *attrItem = new QTreeWidgetItem( QStringList() << QString::number( i ) << value );
409-
410-
attrItem->setData( 0, Qt::DisplayRole, vlayer->attributeDisplayName( i ) );
411-
attrItem->setData( 0, Qt::UserRole, fields[i].name() );
412-
attrItem->setData( 0, Qt::UserRole + 1, i );
413-
414-
attrItem->setData( 1, Qt::UserRole, value );
415-
416-
if ( vlayer->editorWidgetV2( i ) == "Hidden" )
417-
{
418-
delete attrItem;
419-
continue;
420-
}
421-
422-
value = representValue( vlayer, fields[i].name(), attrs[i] );
423-
424-
attrItem->setData( 1, Qt::DisplayRole, value );
425-
426-
if ( fields[i].name() == vlayer->displayField() )
427-
{
428-
featItem->setText( 0, attrItem->text( 0 ) );
429-
featItem->setText( 1, attrItem->text( 1 ) );
430-
featureLabeled = true;
431-
}
432-
433-
featItem->addChild( attrItem );
434-
}
435-
436-
if ( !featureLabeled )
437-
{
438-
featItem->setText( 0, tr( "feature id" ) );
439-
featItem->setText( 1, QString::number( f.id() ) );
440-
}
441-
442400
if ( derivedAttributes.size() >= 0 )
443401
{
444402
QTreeWidgetItem *derivedItem = new QTreeWidgetItem( QStringList() << tr( "(Derived)" ) );
@@ -496,6 +454,49 @@ void QgsIdentifyResultsDialog::addFeature( QgsVectorLayer *vlayer, const QgsFeat
496454
}
497455
}
498456

457+
const QgsFields &fields = vlayer->pendingFields();
458+
const QgsAttributes& attrs = f.attributes();
459+
bool featureLabeled = false;
460+
for ( int i = 0; i < attrs.count(); ++i )
461+
{
462+
if ( i >= fields.count() )
463+
continue;
464+
465+
QString value = fields[i].displayString( attrs[i] );
466+
QTreeWidgetItem *attrItem = new QTreeWidgetItem( QStringList() << QString::number( i ) << value );
467+
468+
attrItem->setData( 0, Qt::DisplayRole, vlayer->attributeDisplayName( i ) );
469+
attrItem->setData( 0, Qt::UserRole, fields[i].name() );
470+
attrItem->setData( 0, Qt::UserRole + 1, i );
471+
472+
attrItem->setData( 1, Qt::UserRole, value );
473+
474+
if ( vlayer->editorWidgetV2( i ) == "Hidden" )
475+
{
476+
delete attrItem;
477+
continue;
478+
}
479+
480+
value = representValue( vlayer, fields[i].name(), attrs[i] );
481+
482+
attrItem->setData( 1, Qt::DisplayRole, value );
483+
484+
if ( fields[i].name() == vlayer->displayField() )
485+
{
486+
featItem->setText( 0, attrItem->text( 0 ) );
487+
featItem->setText( 1, attrItem->text( 1 ) );
488+
featureLabeled = true;
489+
}
490+
491+
featItem->addChild( attrItem );
492+
}
493+
494+
if ( !featureLabeled )
495+
{
496+
featItem->setText( 0, tr( "feature id" ) );
497+
featItem->setText( 1, QString::number( f.id() ) );
498+
}
499+
499500
// table
500501
int j = tblResults->rowCount();
501502
for ( int i = 0; i < attrs.count(); ++i )
@@ -833,11 +834,6 @@ void QgsIdentifyResultsDialog::editingToggled()
833834
// Call to show the dialog box.
834835
void QgsIdentifyResultsDialog::show()
835836
{
836-
// Enforce a few things before showing the dialog box
837-
lstResults->sortItems( 0, Qt::AscendingOrder );
838-
// column width is now stored in settings
839-
//expandColumnsToFit();
840-
841837
bool showFeatureForm = false;
842838

843839
if ( lstResults->topLevelItemCount() > 0 )
@@ -1071,6 +1067,7 @@ void QgsIdentifyResultsDialog::clear()
10711067
}
10721068

10731069
lstResults->clear();
1070+
lstResults->sortByColumn( -1 );
10741071
clearHighlights();
10751072

10761073
tblResults->clearContents();

0 commit comments

Comments
 (0)
Please sign in to comment.