Showing with 16 additions and 13 deletions.
  1. +1 −1 src/plugins/heatmap/heatmap.cpp
  2. +11 −7 src/providers/postgres/qgspgtablemodel.cpp
  3. +4 −5 src/providers/postgres/qgspostgresprovider.cpp
2 changes: 1 addition & 1 deletion src/plugins/heatmap/heatmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ void Heatmap::run()
void Heatmap::unload()
{
// remove the GUI
mQGisIface->removePluginRasterMenu( "&Heatmap", mQActionPointer );
mQGisIface->removePluginRasterMenu( tr( "&Heatmap" ), mQActionPointer );
mQGisIface->removeRasterToolBarIcon( mQActionPointer );
delete mQActionPointer;
}
Expand Down
18 changes: 11 additions & 7 deletions src/providers/postgres/qgspgtablemodel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,16 +91,20 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty )
sridItem->setEditable( false );

QString pkText, pkCol = "";
switch ( layerProperty.pkCols.size() )
if ( layerProperty.pkCols.size() == 0 )
{
case 0: pkText = ""; break;
case 1: pkText = layerProperty.pkCols[0]; pkCol = pkText; break;
default: pkText = tr( "Select..." ); break;
pkText = "";
}
else
{
pkCol = pkText = layerProperty.pkCols[0];
}

QStandardItem *pkItem = new QStandardItem( pkText );
if ( pkText == tr( "Select..." ) )
if ( layerProperty.pkCols.size() > 1 )
pkItem->setFlags( pkItem->flags() | Qt::ItemIsEditable );
else
pkItem->setFlags( pkItem->flags() & ~Qt::ItemIsEditable );

pkItem->setData( layerProperty.pkCols, Qt::UserRole + 1 );
pkItem->setData( pkCol, Qt::UserRole + 2 );
Expand Down Expand Up @@ -313,11 +317,11 @@ bool QgsPgTableModel::setData( const QModelIndex &idx, const QVariant &value, in

bool ok = geomType != QGis::UnknownGeometry;

if ( geomType != QGis::NoGeometry )
if ( ok && geomType != QGis::NoGeometry )
idx.sibling( idx.row(), dbtmSrid ).data().toInt( &ok );

QStringList pkCols = idx.sibling( idx.row(), dbtmPkCol ).data( Qt::UserRole + 1 ).toStringList();
if ( pkCols.size() > 0 )
if ( ok && pkCols.size() > 0 )
ok = pkCols.contains( idx.sibling( idx.row(), dbtmPkCol ).data().toString() );

for ( int i = 0; i < dbtmColumns; i++ )
Expand Down
9 changes: 4 additions & 5 deletions src/providers/postgres/qgspostgresprovider.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1056,16 +1056,15 @@ bool QgsPostgresProvider::loadFields()
fieldSize = -1;
fieldPrec = 0;
}
else if ( fieldTypeName.startsWith( "int" ) ||
fieldTypeName == "serial" )
else if ( fieldTypeName == "int2" || fieldTypeName == "int4" ||
fieldTypeName == "oid" || fieldTypeName == "serial" )
{
fieldType = QVariant::Int;
fieldSize = -1;
fieldPrec = 0;
}
else if ( fieldTypeName == "real" ||
fieldTypeName == "double precision" ||
fieldTypeName.startsWith( "float" ) )
else if ( fieldTypeName == "real" || fieldTypeName == "double precision" ||
fieldTypeName == "float4" || fieldTypeName == "float8" )
{
fieldType = QVariant::Double;
fieldSize = -1;
Expand Down