Skip to content

Commit 4620513

Browse files
etienneskyNathanW2
authored andcommitted
UI tweaks to identify results table view
1 parent f95f64e commit 4620513

File tree

1 file changed

+50
-3
lines changed

1 file changed

+50
-3
lines changed

src/app/qgsidentifyresultsdialog.cpp

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,11 @@ QgsIdentifyResultsDialog::QgsIdentifyResultsDialog( QgsMapCanvas *canvas, QWidge
275275
{
276276
lstResults->setColumnWidth( 0, width );
277277
}
278+
width = mySettings.value( "/Windows/Identify/columnWidthTable", "0" ).toInt();
279+
if ( width > 0 )
280+
{
281+
tblResults->setColumnWidth( 0, width );
282+
}
278283

279284
// retrieve mode before on_cmbIdentifyMode_currentIndexChanged resets it on addItem
280285
int identifyMode = mySettings.value( "/Map/identifyMode", 0 ).toInt();
@@ -469,6 +474,15 @@ void QgsIdentifyResultsDialog::addFeature( QgsVectorLayer *vlayer, const QgsFeat
469474

470475
// table
471476
int j = tblResults->rowCount();
477+
// insert empty row to separate layers
478+
if ( j > 0 && tblResults->item( j - 1, 0 ) &&
479+
tblResults->item( j - 1, 0 )->data( Qt::UserRole + 1 ).toString() != vlayer->id() )
480+
{
481+
tblResults->setRowCount( j + 1 );
482+
tblResults->setRowHeight( j, 2 );
483+
j++;
484+
}
485+
472486
for ( int i = 0; i < attrs.count(); ++i )
473487
{
474488
if ( i >= fields.count() )
@@ -501,6 +515,7 @@ void QgsIdentifyResultsDialog::addFeature( QgsVectorLayer *vlayer, const QgsFeat
501515

502516
QTableWidgetItem *item = new QTableWidgetItem( vlayer->name() );
503517
item->setData( Qt::UserRole, QVariant::fromValue( qobject_cast<QObject *>( vlayer ) ) );
518+
item->setData( Qt::UserRole + 1, vlayer->id() );
504519
tblResults->setItem( j, 0, item );
505520

506521
item = new QTableWidgetItem( FID_TO_STRING( f.id() ) );
@@ -522,6 +537,15 @@ void QgsIdentifyResultsDialog::addFeature( QgsVectorLayer *vlayer, const QgsFeat
522537
item->setData( Qt::DisplayRole, value2 );
523538
tblResults->setItem( j, 3, item );
524539

540+
// highlight first item
541+
// if ( i==0 )
542+
// {
543+
// QBrush b = tblResults->palette().brush( QPalette::AlternateBase );
544+
// for ( int k = 0; k <= 3; k++)
545+
// tblResults->item( j, k )->setBackground( b );
546+
// }
547+
548+
tblResults->resizeRowToContents( j );
525549
j++;
526550
}
527551
tblResults->resizeColumnToContents( 1 );
@@ -652,18 +676,31 @@ void QgsIdentifyResultsDialog::addFeature( QgsRasterLayer *layer,
652676
}
653677

654678
// table
679+
int i = 0;
655680
int j = tblResults->rowCount();
681+
// insert empty row to separate layers
682+
if ( j > 0 && tblResults->item( j - 1, 0 ) &&
683+
tblResults->item( j - 1, 0 )->data( Qt::UserRole + 1 ).toString() != layer->id() )
684+
{
685+
j++;
686+
tblResults->setRowCount( j + 1 );
687+
tblResults->setRowHeight( j - 1, 2 );
688+
}
656689
tblResults->setRowCount( j + attributes.count() );
657-
int i = 1;
690+
658691
for ( QMap<QString, QString>::const_iterator it = attributes.begin(); it != attributes.end(); ++it )
659692
{
660-
QgsDebugMsg( QString( "adding item #%1 / %1 / %2 / %3" ).arg( j ).arg( layer->name() ).arg( it.key() ).arg( it.value() ) );
693+
QgsDebugMsg( QString( "adding item #%1 / %2 / %3 / %4" ).arg( j ).arg( layer->name() ).arg( it.key() ).arg( it.value() ) );
661694
QTableWidgetItem *item = new QTableWidgetItem( layer->name() );
662695
item->setData( Qt::UserRole, QVariant::fromValue( qobject_cast<QObject *>( layer ) ) );
696+
item->setData( Qt::UserRole + 1, layer->id() );
663697
tblResults->setItem( j, 0, item );
664-
tblResults->setItem( j, 1, new QTableWidgetItem( QString::number( i ) ) );
698+
tblResults->setItem( j, 1, new QTableWidgetItem( QString::number( i + 1 ) ) );
665699
tblResults->setItem( j, 2, new QTableWidgetItem( it.key() ) );
666700
tblResults->setItem( j, 3, new QTableWidgetItem( it.value() ) );
701+
702+
tblResults->resizeRowToContents( j );
703+
667704
j++; i++;
668705
}
669706
tblResults->resizeColumnToContents( 1 );
@@ -896,6 +933,16 @@ void QgsIdentifyResultsDialog::contextMenuEvent( QContextMenuEvent* event )
896933
mActionPopup->popup( event->globalPos() );
897934
}
898935

936+
// Save the current window location (store in ~/.qt/qgisrc)
937+
void QgsIdentifyResultsDialog::saveWindowLocation()
938+
{
939+
QSettings settings;
940+
settings.setValue( "/Windows/Identify/geometry", saveGeometry() );
941+
// first column width
942+
settings.setValue( "/Windows/Identify/columnWidth", lstResults->columnWidth( 0 ) );
943+
settings.setValue( "/Windows/Identify/columnWidthTable", tblResults->columnWidth( 0 ) );
944+
}
945+
899946
void QgsIdentifyResultsDialog::setColumnText( int column, const QString & label )
900947
{
901948
QTreeWidgetItem* header = lstResults->headerItem();

0 commit comments

Comments
 (0)