diff --git a/src/qgisapp.cpp b/src/qgisapp.cpp index ff054cab4f3..7c752a34aa2 100644 --- a/src/qgisapp.cpp +++ b/src/qgisapp.cpp @@ -58,20 +58,21 @@ QgisApp::QgisApp(QWidget *parent, const char * name, WFlags fl ) : QgisAppBase(p QgisApp::~QgisApp(){ } void QgisApp::addLayer(){ - QStringList list = qApp->libraryPaths(); - QString msg; - QStringList::Iterator it = list.begin(); - while( it != list.end() ) { - msg += "\n" + *it; - ++it; - } - - // QMessageBox::information(this,"Search Paths",msg); - // show the postgis dialog QgsDbSourceSelect *dbs = new QgsDbSourceSelect(); if(dbs->exec()){ // add files to the map canvas + QStringList tables = dbs->selectedTables(); + QString connInfo = dbs->connInfo(); + // for each selected table, connect to the datbase, parse the WKT geometry, + // and build a cavnasitem for it + QStringList::Iterator it = tables.begin(); + while( it != tables.end() ) { + + + ++it; + } + } // show the file dialog /* diff --git a/src/qgsdatabaselayer.cpp b/src/qgsdatabaselayer.cpp index d4bf3e70c1c..38902f50fc8 100644 --- a/src/qgsdatabaselayer.cpp +++ b/src/qgsdatabaselayer.cpp @@ -1,6 +1,7 @@ #include "qgsdatabaselayer.h" QgsDatabaseLayer::QgsDatabaseLayer(){ + dataSource = "foo"; } QgsDatabaseLayer::~QgsDatabaseLayer(){ } diff --git a/src/qgsdatabaselayer.h b/src/qgsdatabaselayer.h index 35c2d16c987..d4c8f97d382 100644 --- a/src/qgsdatabaselayer.h +++ b/src/qgsdatabaselayer.h @@ -28,6 +28,13 @@ class QgsDatabaseLayer : public QgsMapLayer { public: QgsDatabaseLayer(); ~QgsDatabaseLayer(); + private: + + QString type; // maps to one of the OGIS Simple geometry types + QString database; + QString tableName; + QString geometryColumn; + }; #endif diff --git a/src/qgsdatasource.h b/src/qgsdatasource.h index 4ec5fc7fb82..60e0adb346e 100644 --- a/src/qgsdatasource.h +++ b/src/qgsdatasource.h @@ -27,7 +27,7 @@ class QgsDataSource { public: QgsDataSource(); ~QgsDataSource(); - private: + protected: //! Path or uri of the datasource QString dataSource; }; diff --git a/src/qgsdbsourceselect.cpp b/src/qgsdbsourceselect.cpp index ecd3c22d5ab..49714cdee9a 100644 --- a/src/qgsdbsourceselect.cpp +++ b/src/qgsdbsourceselect.cpp @@ -43,7 +43,13 @@ void QgsDbSourceSelect::editConnection(){ if(nc->exec()){ } } - +void QgsDbSourceSelect::addTables(){ + //store the table info + for(int idx=0; idx numRows(); idx++){ + if(lstTables->isSelected(idx)) + m_selectedTables += lstTables->text(idx); + } +} void QgsDbSourceSelect::dbConnect(){ // populate the table list QSettings settings; @@ -53,8 +59,8 @@ void QgsDbSourceSelect::dbConnect(){ QString database = "dbname="+settings.readEntry(key+"/database"); QString username = "user="+settings.readEntry(key+"/username"); QString password = "password="+settings.readEntry(key+"/password"); - QString conninfo = host +" " + database + " " + username + " " + password; - PgDatabase *pd = new PgDatabase((const char *)conninfo); + m_connInfo = host +" " + database + " " + username + " " + password; + PgDatabase *pd = new PgDatabase((const char *)m_connInfo); cout << pd->ErrorMessage(); if(pd->Status()==CONNECTION_OK){ // create the pixmaps for the layer types @@ -98,3 +104,9 @@ void QgsDbSourceSelect::dbConnect(){ qDebug( "Connection failed"); } } +QStringList QgsDbSourceSelect::selectedTables(){ + return m_selectedTables; +} +QString QgsDbSourceSelect::connInfo(){ + return m_connInfo; +} diff --git a/src/qgsdbsourceselect.h b/src/qgsdbsourceselect.h index a692d230e35..bffb124e7b0 100644 --- a/src/qgsdbsourceselect.h +++ b/src/qgsdbsourceselect.h @@ -9,7 +9,13 @@ class QgsDbSourceSelect : public QgsDbSourceSelectBase ~QgsDbSourceSelect(); void addNewConnection(); void editConnection(); + void addTables(); void dbConnect(); + QStringList selectedTables(); + QString connInfo(); + private: + QString m_connInfo; + QStringList m_selectedTables; };