@@ -152,6 +152,17 @@ void QgsPGConnectionItem::refreshConnection()
152
152
refresh ();
153
153
}
154
154
155
+ void QgsPGConnectionItem::refreshSchema ( const QString &schema )
156
+ {
157
+ Q_FOREACH ( QgsDataItem *child, mChildren )
158
+ {
159
+ if ( child->name () == schema || schema.isEmpty () )
160
+ {
161
+ child->refresh ();
162
+ }
163
+ }
164
+ }
165
+
155
166
void QgsPGConnectionItem::createSchema ()
156
167
{
157
168
QString schemaName = QInputDialog::getText ( nullptr , tr ( " Create Schema" ), tr ( " Schema name:" ) );
@@ -229,7 +240,7 @@ bool QgsPGConnectionItem::handleDrop( const QMimeData *data, const QString &toSc
229
240
{
230
241
// this is gross - TODO - find a way to get access to messageBar from data items
231
242
QMessageBox::information ( nullptr , tr ( " Import to PostGIS database" ), tr ( " Import was successful." ) );
232
- refresh ( );
243
+ refreshSchema ( toSchema );
233
244
} );
234
245
235
246
// when an error occurs:
@@ -242,7 +253,7 @@ bool QgsPGConnectionItem::handleDrop( const QMimeData *data, const QString &toSc
242
253
output->setMessage ( tr ( " Failed to import some layers!\n\n " ) + errorMessage, QgsMessageOutput::MessageText );
243
254
output->showMessage ();
244
255
}
245
- refresh ( );
256
+ refreshSchema ( toSchema );
246
257
} );
247
258
248
259
QgsApplication::taskManager ()->addTask ( exportTask.release () );
@@ -448,11 +459,11 @@ QgsPGSchemaItem::QgsPGSchemaItem( QgsDataItem *parent, const QString &connection
448
459
449
460
QVector<QgsDataItem *> QgsPGSchemaItem::createChildren ()
450
461
{
451
-
452
462
QVector<QgsDataItem *>items;
453
463
454
464
QgsDataSourceUri uri = QgsPostgresConn::connUri ( mConnectionName );
455
465
QgsPostgresConn *conn = QgsPostgresConnPool::instance ()->acquireConnection ( uri.connectionInfo ( false ) );
466
+
456
467
if ( !conn )
457
468
{
458
469
items.append ( new QgsErrorItem ( this , tr ( " Connection failed" ), mPath + " /error" ) );
0 commit comments