Skip to content

Commit

Permalink
Fix datum transform dialog sometimes does not correct respond
Browse files Browse the repository at this point in the history
to changes in the available transform table

Sponsored by ICSM
  • Loading branch information
nyalldawson committed Mar 19, 2019
1 parent eab08d0 commit f0f825a
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions src/gui/qgsdatumtransformdialog.cpp
Expand Up @@ -82,6 +82,7 @@ void QgsDatumTransformDialog::load( QPair<int, int> selectedDatumTransforms )
mDatumTransformTableWidget->setRowCount( 0 );

int row = 0;
int preferredInitialRow = -1;

for ( const QgsDatumTransform::TransformPair &transform : qgis::as_const( mDatumTransforms ) )
{
Expand Down Expand Up @@ -111,6 +112,12 @@ void QgsDatumTransformDialog::load( QPair<int, int> selectedDatumTransforms )
item->setForeground( QBrush( QColor( 255, 0, 0 ) ) );
}

if ( info.preferred && !info.deprecated && preferredInitialRow < 0 )
{
// try to select a "preferred" entry by default
preferredInitialRow = row;
}

QString toolTipString;
if ( gridShiftTransformation( item->text() ) )
{
Expand Down Expand Up @@ -158,9 +165,12 @@ void QgsDatumTransformDialog::load( QPair<int, int> selectedDatumTransforms )
row++;
}

if ( mDatumTransformTableWidget->currentRow() < 0 )
mDatumTransformTableWidget->selectRow( preferredInitialRow >= 0 ? preferredInitialRow : 0 );

mDatumTransformTableWidget->resizeColumnsToContents();

setOKButtonEnabled();
tableCurrentItemChanged( nullptr, nullptr );
}

void QgsDatumTransformDialog::setOKButtonEnabled()
Expand Down Expand Up @@ -269,12 +279,18 @@ void QgsDatumTransformDialog::tableCurrentItemChanged( QTableWidgetItem *, QTabl
{
int row = mDatumTransformTableWidget->currentRow();
if ( row < 0 )
return;
{
mLabelSrcDescription->clear();
mLabelDstDescription->clear();
}
else
{

QTableWidgetItem *srcItem = mDatumTransformTableWidget->item( row, 0 );
mLabelSrcDescription->setText( srcItem ? srcItem->toolTip() : QString() );
QTableWidgetItem *destItem = mDatumTransformTableWidget->item( row, 1 );
mLabelDstDescription->setText( destItem ? destItem->toolTip() : QString() );
QTableWidgetItem *srcItem = mDatumTransformTableWidget->item( row, 0 );
mLabelSrcDescription->setText( srcItem ? srcItem->toolTip() : QString() );
QTableWidgetItem *destItem = mDatumTransformTableWidget->item( row, 1 );
mLabelDstDescription->setText( destItem ? destItem->toolTip() : QString() );
}

setOKButtonEnabled();
}
Expand Down

0 comments on commit f0f825a

Please sign in to comment.