Skip to content

Commit 9da981b

Browse files
committed
add delete layer action to PG data items
1 parent 2e3db0c commit 9da981b

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/providers/postgres/qgspostgresdataitems.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
#include <QMessageBox>
1010

11+
QGISEXTERN bool deleteLayer( const QString& uri, QString& errCause );
12+
1113
// ---------------------------------------------------------------------------
1214
QgsPGConnectionItem::QgsPGConnectionItem( QgsDataItem* parent, QString name, QString path )
1315
: QgsDataCollectionItem( parent, name, path )
@@ -237,6 +239,32 @@ QgsPGLayerItem::~QgsPGLayerItem()
237239
{
238240
}
239241

242+
QList<QAction*> QgsPGLayerItem::actions()
243+
{
244+
QList<QAction*> lst;
245+
246+
QAction* actionDeleteLayer = new QAction( tr( "Delete layer" ), this );
247+
connect( actionDeleteLayer, SIGNAL( triggered() ), this, SLOT( deleteLayer() ) );
248+
lst.append( actionDeleteLayer );
249+
250+
return lst;
251+
}
252+
253+
void QgsPGLayerItem::deleteLayer()
254+
{
255+
QString errCause;
256+
bool res = ::deleteLayer( mUri, errCause );
257+
if ( !res )
258+
{
259+
QMessageBox::warning( 0, tr( "Delete layer" ), errCause );
260+
}
261+
else
262+
{
263+
QMessageBox::information( 0, tr( "Delete layer" ), tr( "Layer deleted successfully." ) );
264+
mParent->refresh();
265+
}
266+
}
267+
240268
QString QgsPGLayerItem::createUri()
241269
{
242270
QString pkColName = mLayerProperty.pkCols.size() > 0 ? mLayerProperty.pkCols.at( 0 ) : QString::null;

src/providers/postgres/qgspostgresdataitems.h

+5
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,11 @@ class QgsPGLayerItem : public QgsLayerItem
8383

8484
QString createUri();
8585

86+
virtual QList<QAction*> actions();
87+
88+
public slots:
89+
void deleteLayer();
90+
8691
private:
8792
QgsPostgresLayerProperty mLayerProperty;
8893
};

0 commit comments

Comments
 (0)