Showing with 12 additions and 29 deletions.
  1. +5 −5 src/app/qgsidentifyresults.cpp
  2. +1 −1 src/providers/postgres/qgspgsourceselect.cpp
  3. +6 −23 src/providers/postgres/qgspgtablemodel.cpp
10 changes: 5 additions & 5 deletions src/app/qgsidentifyresults.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -743,7 +743,7 @@ void QgsIdentifyResults::featureDeleted( QgsFeatureId fid )
{
QTreeWidgetItem *featItem = layItem->child( i );

if ( featItem && featItem->data( 0, Qt::UserRole ).toString() == FID_TO_STRING( fid ) )
if ( featItem && STRING_TO_FID( featItem->data( 0, Qt::UserRole ) ) == fid )
{
delete mHighlights.take( featItem );
delete featItem;
Expand Down Expand Up @@ -774,7 +774,7 @@ void QgsIdentifyResults::attributeValueChanged( QgsFeatureId fid, int idx, const
{
QTreeWidgetItem *featItem = layItem->child( i );

if ( featItem && featItem->data( 0, Qt::UserRole ).toString() == FID_TO_STRING( fid ) )
if ( featItem && STRING_TO_FID( featItem->data( 0, Qt::UserRole ) ) == fid )
{
if ( featItem->data( 0, Qt::DisplayRole ).toString() == vlayer->displayField() )
featItem->setData( 1, Qt::DisplayRole, val );
Expand Down Expand Up @@ -808,7 +808,7 @@ void QgsIdentifyResults::highlightFeature( QTreeWidgetItem *item )
if ( mHighlights.contains( featItem ) )
return;

QgsFeatureId fid = featItem->data( 0, Qt::UserRole ).toInt();
QgsFeatureId fid = STRING_TO_FID( featItem->data( 0, Qt::UserRole ) );

QgsFeature feat;
if ( !layer->featureAtId( fid, feat, true, false ) )
Expand Down Expand Up @@ -843,7 +843,7 @@ void QgsIdentifyResults::zoomToFeature()
if ( !featItem )
return;

int fid = featItem->data( 0, Qt::UserRole ).toInt();
int fid = STRING_TO_FID( featItem->data( 0, Qt::UserRole ) );

QgsFeature feat;
if ( ! layer->featureAtId( fid, feat, true, false ) )
Expand Down Expand Up @@ -881,7 +881,7 @@ void QgsIdentifyResults::featureForm()
if ( !featItem )
return;

int fid = featItem->data( 0, Qt::UserRole ).toInt();
int fid = STRING_TO_FID( featItem->data( 0, Qt::UserRole ) );
int idx = featItem->data( 0, Qt::UserRole + 1 ).toInt();

QgsFeature f;
Expand Down
2 changes: 1 addition & 1 deletion src/providers/postgres/qgspgsourceselect.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -453,7 +453,7 @@ void QgsPgSourceSelect::on_btnConnect_clicked()
{
QString type = layer.type;
QString srid = layer.srid;
if ( !searchGeometryColumnsOnly && !layer.geometryColName.isNull() )
if ( !layer.geometryColName.isNull() )
{
if ( type == "GEOMETRY" || type.isNull() || srid.isEmpty() )
{
Expand Down
29 changes: 6 additions & 23 deletions src/providers/postgres/qgspgtablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -90,22 +90,13 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty )
QStandardItem *sridItem = new QStandardItem( layerProperty.srid );
sridItem->setEditable( false );

QString pkText, pkCol = "";
if ( layerProperty.pkCols.size() == 0 )
QString pkCol = "";
if ( layerProperty.pkCols.size() > 0 )
{
pkText = "";
}
else
{
if ( layerProperty.pkCols.size() > 1 )
{
pkText = tr( "Select..." );
}

pkCol = layerProperty.pkCols[0];
}

QStandardItem *pkItem = new QStandardItem( pkText );
QStandardItem *pkItem = new QStandardItem( pkCol );
if ( layerProperty.pkCols.size() > 1 )
pkItem->setFlags( pkItem->flags() | Qt::ItemIsEditable );
else
Expand Down Expand Up @@ -133,15 +124,11 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty )
bool detailsFromThread = wkbType == QGis::WKBUnknown ||
( wkbType != QGis::WKBNoGeometry && layerProperty.srid.isEmpty() );

if ( detailsFromThread || pkText == tr( "Select..." ) )
if ( detailsFromThread )
{
Qt::ItemFlags flags = Qt::ItemIsSelectable;
if ( detailsFromThread )
flags |= Qt::ItemIsEnabled;

foreach( QStandardItem *item, childItemList )
{
item->setFlags( item->flags() & ~flags );
item->setFlags( item->flags() & ~( Qt::ItemIsSelectable | Qt::ItemIsEnabled ) );
}
}

Expand Down Expand Up @@ -274,13 +261,9 @@ void QgsPgTableModel::setGeometryTypesForTable( QgsPostgresLayerProperty layerPr

row[ dbtmSrid ]->setText( sridList.at( 0 ) );

Qt::ItemFlags flags = Qt::ItemIsEnabled;
if ( layerProperty.pkCols.size() < 2 )
flags |= Qt::ItemIsSelectable;

foreach( QStandardItem *item, row )
{
item->setFlags( item->flags() | flags );
item->setFlags( item->flags() | Qt::ItemIsSelectable | Qt::ItemIsEnabled );
}

for ( int j = 1; j < typeList.size(); j++ )
Expand Down