Skip to content

Commit ce3d644

Browse files
committedSep 8, 2017
Generic implementation of OGR file DB connection
1 parent 1a9fa28 commit ce3d644

File tree

2 files changed

+40
-36
lines changed

2 files changed

+40
-36
lines changed
 
Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/***************************************************************************
2-
qgsgeopackageconnection.cpp - selector for geopackage
2+
qgsogrdbconnection.cpp
33
-------------------
44
begin : August 2017
55
copyright : (C) 2017 by Alessandro Pasotti
@@ -18,72 +18,76 @@
1818
#include "qgis.h"
1919
#include "qgsdatasourceuri.h"
2020
#include "qgssettings.h"
21-
#include "qgsgeopackageconnection.h"
21+
#include "qgsogrdbconnection.h"
2222
#include "qgslogger.h"
2323
#include <QInputDialog>
2424
#include <QMessageBox>
2525

26-
const QString QgsGeoPackageConnection::SETTINGS_PREFIX = QStringLiteral( "providers/geopackage" );
2726

2827

29-
QgsGeoPackageConnection::QgsGeoPackageConnection( const QString &connName )
28+
QgsOgrDbConnection::QgsOgrDbConnection( const QString &connName, const QString &settingsKey )
3029
: mConnName( connName )
3130
{
31+
mSettingsKey = settingsKey ;
3232
QgsSettings settings;
33-
34-
QString key = QStringLiteral( "%1/%2/path" ).arg( connectionsPath( ), mConnName );
33+
QString key = QStringLiteral( "%1/%2/path" ).arg( connectionsPath( settingsKey ), mConnName );
3534
mPath = settings.value( key ).toString();
3635
}
3736

38-
QgsGeoPackageConnection::~QgsGeoPackageConnection()
37+
QgsOgrDbConnection::~QgsOgrDbConnection()
3938
{
4039

4140
}
4241

43-
QgsDataSourceUri QgsGeoPackageConnection::uri()
42+
QgsDataSourceUri QgsOgrDbConnection::uri()
4443
{
4544
QgsDataSourceUri uri;
4645
uri.setEncodedUri( mPath );
4746
return uri;
4847
}
4948

50-
void QgsGeoPackageConnection::setPath( const QString &path )
49+
void QgsOgrDbConnection::setPath( const QString &path )
5150
{
5251
mPath = path;
5352
}
5453

55-
void QgsGeoPackageConnection::save( )
54+
void QgsOgrDbConnection::save( )
5655
{
5756
QgsSettings settings;
58-
settings.setValue( QStringLiteral( "%1/%2/path" ).arg( connectionsPath( ), mConnName ), mPath );
57+
settings.setValue( QStringLiteral( "%1/%2/path" ).arg( connectionsPath( mSettingsKey ), mConnName ), mPath );
58+
}
59+
60+
QString QgsOgrDbConnection::fullKey( const QString &settingsKey )
61+
{
62+
return QStringLiteral( "providers/ogr/%1" ).arg( settingsKey );
5963
}
6064

61-
QString QgsGeoPackageConnection::connectionsPath()
65+
QString QgsOgrDbConnection::connectionsPath( const QString &settingsKey )
6266
{
63-
return QStringLiteral( "%1/connections" ).arg( SETTINGS_PREFIX );
67+
return QStringLiteral( "%1/connections" ).arg( fullKey( settingsKey ) );
6468
}
6569

66-
QStringList QgsGeoPackageConnection::connectionList()
70+
const QStringList QgsOgrDbConnection::connectionList( const QString &settingsKey )
6771
{
6872
QgsSettings settings;
69-
settings.beginGroup( connectionsPath( ) );
73+
settings.beginGroup( connectionsPath( settingsKey ) );
7074
return settings.childGroups();
7175
}
7276

73-
QString QgsGeoPackageConnection::selectedConnection()
77+
QString QgsOgrDbConnection::selectedConnection( const QString &settingsKey )
7478
{
7579
QgsSettings settings;
76-
return settings.value( QStringLiteral( "%1/selected" ).arg( SETTINGS_PREFIX ) ).toString();
80+
return settings.value( QStringLiteral( "%1/selected" ).arg( connectionsPath( settingsKey ) ) ).toString();
7781
}
7882

79-
void QgsGeoPackageConnection::setSelectedConnection( const QString &name )
83+
void QgsOgrDbConnection::setSelectedConnection( const QString &connName, const QString &settingsKey )
8084
{
8185
QgsSettings settings;
82-
settings.setValue( QStringLiteral( "%1/selected" ).arg( SETTINGS_PREFIX ), name );
86+
settings.setValue( QStringLiteral( "%1/selected" ).arg( connectionsPath( settingsKey ) ), connName );
8387
}
8488

85-
void QgsGeoPackageConnection::deleteConnection( const QString &name )
89+
void QgsOgrDbConnection::deleteConnection( const QString &connName, const QString &settingsKey )
8690
{
8791
QgsSettings settings;
88-
settings.remove( QStringLiteral( "%1/%2" ).arg( connectionsPath(), name ) );
92+
settings.remove( QStringLiteral( "%1/%2" ).arg( connectionsPath( settingsKey ), connName ) );
8993
}
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/***************************************************************************
2-
qgsgeopackageconnection.h - GeoPackage connection
2+
qgsogrdbconnection.h - QgsOgrDbConnection
33
-------------------
44
begin : August 2017
55
copyright : (C) 2017 by Alessandro Pasotti
@@ -15,30 +15,30 @@
1515
* *
1616
***************************************************************************/
1717

18-
#ifndef QGSGEOPACKAGECONNECTION_H
19-
#define QGSGEOPACKAGECONNECTION_H
18+
#ifndef QGSGOGRDBSCONNECTION_H
19+
#define QGSGOGRDBSCONNECTION_H
2020

2121
#include "qgsdatasourceuri.h"
2222

2323
#include <QStringList>
2424

2525
/*!
26-
* \brief Connections management
26+
* \brief Generic OGR DB Connections management
2727
*/
28-
class QgsGeoPackageConnection : public QObject
28+
class QgsOgrDbConnection : public QObject
2929
{
3030
Q_OBJECT
3131

3232
public:
3333
//! Constructor
34-
explicit QgsGeoPackageConnection( const QString &connName );
34+
explicit QgsOgrDbConnection( const QString &connName, const QString &settingsKey );
3535

36-
~QgsGeoPackageConnection();
36+
~QgsOgrDbConnection();
3737

38-
static QStringList connectionList();
39-
static void deleteConnection( const QString &name );
40-
static QString selectedConnection();
41-
static void setSelectedConnection( const QString &name );
38+
static const QStringList connectionList( const QString &settingsKey );
39+
static void deleteConnection( const QString &connName, const QString &settingsKey );
40+
static QString selectedConnection( const QString &settingsKey );
41+
static void setSelectedConnection( const QString &connName, const QString &settingsKey );
4242

4343
public:
4444
//! Return the uri
@@ -52,14 +52,14 @@ class QgsGeoPackageConnection : public QObject
5252
void setPath( const QString &path );
5353
//! Store the connection data in the settings
5454
void save();
55-
const static QString SETTINGS_PREFIX;
5655

5756
private:
58-
59-
static QString connectionsPath( );
57+
static QString fullKey( const QString &settingsKey );
58+
static QString connectionsPath( const QString &settingsKey );
6059
QString mConnName;
6160
QString mPath;
61+
QString mSettingsKey;
6262

6363
};
6464

65-
#endif // QGSGEOPACKAGECONNECTION_H
65+
#endif // QGSGOGRDBSCONNECTION_H

0 commit comments

Comments
 (0)
Please sign in to comment.