Skip to content

Commit 14b718b

Browse files
committedJan 25, 2012
postgres selection: leave geometryless views enabled
1 parent 5ee9eba commit 14b718b

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed
 

‎src/providers/postgres/qgspgtablemodel.cpp

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty )
7676
QList<QStandardItem*> childItemList;
7777

7878
QStandardItem *schemaNameItem = new QStandardItem( layerProperty.schemaName );
79-
schemaNameItem->setFlags( Qt::ItemIsEnabled );
79+
schemaNameItem->setFlags( Qt::ItemIsEnabled | Qt::ItemIsSelectable );
8080

8181
QStandardItem *typeItem = new QStandardItem( iconForGeomType( geomType ),
8282
geomType == QGis::UnknownGeometry
@@ -121,13 +121,18 @@ void QgsPgTableModel::addTableEntry( QgsPostgresLayerProperty layerProperty )
121121
childItemList << selItem;
122122
childItemList << sqlItem;
123123

124-
if ( geomType == QGis::UnknownGeometry ||
125-
( geomType != QGis::NoGeometry && layerProperty.srid.isEmpty() ) ||
126-
pkText == tr( "Select..." ) )
124+
bool detailsFromThread = geomType == QGis::UnknownGeometry ||
125+
( geomType != QGis::NoGeometry && layerProperty.srid.isEmpty() );
126+
127+
if ( detailsFromThread || pkText == tr( "Select..." ) )
127128
{
129+
Qt::ItemFlags flags = Qt::ItemIsSelectable;
130+
if ( detailsFromThread )
131+
flags |= Qt::ItemIsEnabled;
132+
128133
foreach( QStandardItem *item, childItemList )
129134
{
130-
item->setFlags( item->flags() & ~( Qt::ItemIsEnabled | Qt::ItemIsSelectable ) );
135+
item->setFlags( item->flags() & ~flags );
131136
}
132137
}
133138

@@ -348,19 +353,25 @@ QString QgsPgTableModel::layerURI( const QModelIndex &index, QString connInfo, b
348353

349354
QString schemaName = index.sibling( index.row(), dbtmSchema ).data( Qt::DisplayRole ).toString();
350355
QString tableName = index.sibling( index.row(), dbtmTable ).data( Qt::DisplayRole ).toString();
351-
QString geomColumnName = index.sibling( index.row(), dbtmGeomCol ).data( Qt::DisplayRole ).toString();
352356

353-
QString srid = index.sibling( index.row(), dbtmSrid ).data( Qt::DisplayRole ).toString();
354-
bool ok;
355-
srid.toInt( &ok );
356-
if ( !ok )
357-
return QString::null;
357+
QString geomColumnName;
358+
QString srid;
359+
if ( geomType != QGis::NoGeometry )
360+
{
361+
geomColumnName = index.sibling( index.row(), dbtmGeomCol ).data( Qt::DisplayRole ).toString();
362+
363+
srid = index.sibling( index.row(), dbtmSrid ).data( Qt::DisplayRole ).toString();
364+
bool ok;
365+
srid.toInt( &ok );
366+
if ( !ok )
367+
return QString::null;
368+
}
358369

359370
bool selectAtId = itemFromIndex( index.sibling( index.row(), dbtmSelectAtId ) )->checkState() == Qt::Checked;
360371
QString sql = index.sibling( index.row(), dbtmSql ).data( Qt::DisplayRole ).toString();
361372

362373
QgsDataSourceURI uri( connInfo );
363-
uri.setDataSource( schemaName, tableName, geomType != QGis::NoGeometry ? geomColumnName : QString::null, sql, pkColumnName );
374+
uri.setDataSource( schemaName, tableName, geomColumnName, sql, pkColumnName );
364375
uri.setUseEstimatedMetadata( useEstimatedMetadata );
365376
uri.setGeometryType( geomType );
366377
uri.setSrid( srid );

0 commit comments

Comments
 (0)
Please sign in to comment.