Skip to content

Commit

Permalink
[ui] Add save/load connections right click browser menu to a bunch of…
Browse files Browse the repository at this point in the history
… providers
  • Loading branch information
nirvn committed Aug 24, 2020
1 parent 4e0f64f commit e433ada
Show file tree
Hide file tree
Showing 19 changed files with 291 additions and 7 deletions.
4 changes: 2 additions & 2 deletions src/gui/vectortile/qgsvectortiledataitemguiprovider.cpp
Expand Up @@ -108,8 +108,8 @@ void QgsVectorTileDataItemGuiProvider::loadXyzTilesServers( QgsDataItem *item )
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::VectorTile, fileName );
dlg.exec();
item->refreshConnections();
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}

///@endcond
30 changes: 30 additions & 0 deletions src/providers/arcgisrest/qgsafsdataitemguiprovider.cpp
Expand Up @@ -16,10 +16,12 @@
#include "qgsafsdataitemguiprovider.h"
#include "qgsafsdataitems.h"
#include "qgsafssourceselect.h"
#include "qgsmanageconnectionsdialog.h"
#include "qgsnewhttpconnection.h"
#include "qgsowsconnection.h"

#include <QDesktopServices>
#include <QFileDialog>
#include <QMessageBox>


Expand All @@ -30,6 +32,14 @@ void QgsAfsDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
QAction *actionNew = new QAction( tr( "New Connection…" ), menu );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}
else if ( QgsAfsConnectionItem *connectionItem = qobject_cast< QgsAfsConnectionItem * >( item ) )
{
Expand Down Expand Up @@ -139,3 +149,23 @@ void QgsAfsDataItemGuiProvider::refreshConnection( QgsDataItem *item )
if ( item->parent() )
item->parent()->refreshConnections();
}

void QgsAfsDataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::ArcgisFeatureServer );
dlg.exec();
}

void QgsAfsDataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::ArcgisFeatureServer, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/arcgisrest/qgsafsdataitemguiprovider.h
Expand Up @@ -40,6 +40,8 @@ class QgsAfsDataItemGuiProvider : public QObject, public QgsDataItemGuiProvider
static void editConnection( QgsDataItem *item );
static void deleteConnection( QgsDataItem *item );
static void refreshConnection( QgsDataItem *item );
static void saveConnections();
static void loadConnections( QgsDataItem *item );
};


Expand Down
30 changes: 30 additions & 0 deletions src/providers/arcgisrest/qgsamsdataitemguiprovider.cpp
Expand Up @@ -15,10 +15,12 @@

#include "qgsamsdataitemguiprovider.h"
#include "qgsamsdataitems.h"
#include "qgsmanageconnectionsdialog.h"
#include "qgsnewhttpconnection.h"
#include "qgsowsconnection.h"

#include <QDesktopServices>
#include <QFileDialog>
#include <QMessageBox>


Expand All @@ -29,6 +31,14 @@ void QgsAmsDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
QAction *actionNew = new QAction( tr( "New Connection…" ), menu );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}
if ( QgsAmsConnectionItem *connectionItem = qobject_cast< QgsAmsConnectionItem * >( item ) )
{
Expand Down Expand Up @@ -126,3 +136,23 @@ void QgsAmsDataItemGuiProvider::refreshConnection( QgsDataItem *item )
if ( item->parent() )
item->parent()->refreshConnections();
}

void QgsAmsDataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::ArcgisMapServer );
dlg.exec();
}

void QgsAmsDataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::ArcgisMapServer, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/arcgisrest/qgsamsdataitemguiprovider.h
Expand Up @@ -40,6 +40,8 @@ class QgsAmsDataItemGuiProvider : public QObject, public QgsDataItemGuiProvider
static void editConnection( QgsDataItem *item );
static void deleteConnection( QgsDataItem *item );
static void refreshConnection( QgsDataItem *item );
static void saveConnections();
static void loadConnections( QgsDataItem *item );
};


Expand Down
31 changes: 30 additions & 1 deletion src/providers/db2/qgsdb2dataitemguiprovider.cpp
Expand Up @@ -17,9 +17,10 @@
#include "qgsdb2dataitems.h"
#include "qgsdb2newconnection.h"
#include "qgsdb2sourceselect.h"

#include "qgsmanageconnectionsdialog.h"
#include "qgssettings.h"

#include <QFileDialog>

void QgsDb2DataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *menu, const QList<QgsDataItem *> &, QgsDataItemGuiContext )
{
Expand All @@ -28,6 +29,14 @@ void QgsDb2DataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *m
QAction *actionNew = new QAction( tr( "New Connection…" ), menu );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}
else if ( QgsDb2ConnectionItem *connItem = qobject_cast< QgsDb2ConnectionItem * >( item ) )
{
Expand Down Expand Up @@ -113,3 +122,23 @@ void QgsDb2DataItemGuiProvider::refreshConnection( QgsDataItem *item )
{
item->refresh();
}

void QgsDb2DataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::DB2 );
dlg.exec();
}

void QgsDb2DataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::DB2, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/db2/qgsdb2dataitemguiprovider.h
Expand Up @@ -37,6 +37,8 @@ class QgsDb2DataItemGuiProvider : public QObject, public QgsDataItemGuiProvider
static void editConnection( QgsDataItem *item );
static void deleteConnection( QgsDataItem *item );
static void refreshConnection( QgsDataItem *item );
static void saveConnections();
static void loadConnections( QgsDataItem *item );
};

#endif // QGSDB2DATAITEMGUIPROVIDER_H
30 changes: 30 additions & 0 deletions src/providers/geonode/qgsgeonodedataitemguiprovider.cpp
Expand Up @@ -16,7 +16,9 @@
#include "qgsgeonodedataitemguiprovider.h"
#include "qgsgeonodedataitems.h"
#include "qgsgeonodenewconnection.h"
#include "qgsmanageconnectionsdialog.h"

#include <QFileDialog>
#include <QMessageBox>

void QgsGeoNodeDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu *menu, const QList<QgsDataItem *> &, QgsDataItemGuiContext )
Expand All @@ -26,6 +28,14 @@ void QgsGeoNodeDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMen
QAction *actionNew = new QAction( tr( "New Connection…" ), menu );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}
else if ( QgsGeoNodeConnectionItem *connItem = qobject_cast< QgsGeoNodeConnectionItem * >( item ) )
{
Expand Down Expand Up @@ -70,3 +80,23 @@ void QgsGeoNodeDataItemGuiProvider::deleteConnection( QgsDataItem *item )
QgsGeoNodeConnectionUtils::deleteConnection( item->name() );
item->parent()->refresh();
}

void QgsGeoNodeDataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::GeoNode );
dlg.exec();
}

void QgsGeoNodeDataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::GeoNode, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/geonode/qgsgeonodedataitemguiprovider.h
Expand Up @@ -32,6 +32,8 @@ class QgsGeoNodeDataItemGuiProvider : public QObject, public QgsDataItemGuiProvi
static void newConnection( QgsDataItem *item );
static void editConnection( QgsDataItem *item );
static void deleteConnection( QgsDataItem *item );
static void saveConnections();
static void loadConnections( QgsDataItem *item );
};

#endif // QGSGEONODEDATAITEMGUIPROVIDER_H
30 changes: 30 additions & 0 deletions src/providers/mssql/qgsmssqldataitemguiprovider.cpp
Expand Up @@ -13,12 +13,14 @@
* *
***************************************************************************/

#include "qgsmanageconnectionsdialog.h"
#include "qgsmssqlconnection.h"
#include "qgsmssqldataitemguiprovider.h"
#include "qgsmssqldataitems.h"
#include "qgsmssqlnewconnection.h"
#include "qgsmssqlsourceselect.h"

#include <QFileDialog>
#include <QInputDialog>
#include <QMessageBox>

Expand All @@ -30,6 +32,14 @@ void QgsMssqlDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMenu
QAction *actionNew = new QAction( tr( "New Connection…" ), menu );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}
else if ( QgsMssqlConnectionItem *connItem = qobject_cast< QgsMssqlConnectionItem * >( item ) )
{
Expand Down Expand Up @@ -217,3 +227,23 @@ void QgsMssqlDataItemGuiProvider::truncateTable( QgsMssqlLayerItem *layerItem )
QMessageBox::information( nullptr, tr( "Truncate Table" ), tr( "Table truncated successfully." ) );
}
}

void QgsMssqlDataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::MSSQL );
dlg.exec();
}

void QgsMssqlDataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::MSSQL, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/mssql/qgsmssqldataitemguiprovider.h
Expand Up @@ -42,6 +42,8 @@ class QgsMssqlDataItemGuiProvider : public QObject, public QgsDataItemGuiProvide
static void deleteConnection( QgsDataItem *item );
static void createSchema( QgsMssqlConnectionItem *connItem );
static void truncateTable( QgsMssqlLayerItem *layerItem );
static void saveConnections();
static void loadConnections( QgsDataItem *item );
};

#endif // QGSMSSQLDATAITEMGUIPROVIDER_H
30 changes: 30 additions & 0 deletions src/providers/postgres/qgspostgresdataitemguiprovider.cpp
Expand Up @@ -15,12 +15,14 @@

#include "qgspostgresdataitemguiprovider.h"

#include "qgsmanageconnectionsdialog.h"
#include "qgspostgresdataitems.h"
#include "qgspostgresprovider.h"
#include "qgspgnewconnection.h"
#include "qgsnewnamedialog.h"
#include "qgspgsourceselect.h"

#include <QFileDialog>
#include <QInputDialog>
#include <QMessageBox>

Expand All @@ -32,6 +34,14 @@ void QgsPostgresDataItemGuiProvider::populateContextMenu( QgsDataItem *item, QMe
QAction *actionNew = new QAction( tr( "New Connection…" ), this );
connect( actionNew, &QAction::triggered, this, [rootItem] { newConnection( rootItem ); } );
menu->addAction( actionNew );

QAction *actionSaveServers = new QAction( tr( "Save Connections…" ), this );
connect( actionSaveServers, &QAction::triggered, this, [] { saveConnections(); } );
menu->addAction( actionSaveServers );

QAction *actionLoadServers = new QAction( tr( "Load Connections…" ), this );
connect( actionLoadServers, &QAction::triggered, this, [rootItem] { loadConnections( rootItem ); } );
menu->addAction( actionLoadServers );
}

if ( QgsPGConnectionItem *connItem = qobject_cast< QgsPGConnectionItem * >( item ) )
Expand Down Expand Up @@ -488,3 +498,23 @@ void QgsPostgresDataItemGuiProvider::refreshMaterializedView( QgsPGLayerItem *la
conn->unref();
QMessageBox::information( nullptr, tr( "Refresh View" ), tr( "Materialized view refreshed successfully." ) );
}

void QgsPostgresDataItemGuiProvider::saveConnections()
{
QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Export, QgsManageConnectionsDialog::PostGIS );
dlg.exec();
}

void QgsPostgresDataItemGuiProvider::loadConnections( QgsDataItem *item )
{
QString fileName = QFileDialog::getOpenFileName( nullptr, tr( "Load Connections" ), QDir::homePath(),
tr( "XML files (*.xml *.XML)" ) );
if ( fileName.isEmpty() )
{
return;
}

QgsManageConnectionsDialog dlg( nullptr, QgsManageConnectionsDialog::Import, QgsManageConnectionsDialog::PostGIS, fileName );
if ( dlg.exec() == QDialog::Accepted )
item->refreshConnections();
}
2 changes: 2 additions & 0 deletions src/providers/postgres/qgspostgresdataitemguiprovider.h
Expand Up @@ -49,6 +49,8 @@ class QgsPostgresDataItemGuiProvider : public QObject, public QgsDataItemGuiProv
static void renameLayer( QgsPGLayerItem *layerItem );
static void truncateTable( QgsPGLayerItem *layerItem );
static void refreshMaterializedView( QgsPGLayerItem *layerItem );
static void saveConnections();
static void loadConnections( QgsDataItem *item );

};

Expand Down

0 comments on commit e433ada

Please sign in to comment.