Skip to content

Commit 09ba339

Browse files
mbernasocchipka
authored andcommitted
working initial gui for elevation, needs code clean up
1 parent 85080d5 commit 09ba339

File tree

3 files changed

+258
-179
lines changed

3 files changed

+258
-179
lines changed

src/plugins/globe/globe_plugin_dialog.cpp

+51-30
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
#include <osg/DisplaySettings>
3939

40-
QList<DataSource> elevationsDataSources;
40+
QList<DataSource> elevationsDatasources;
4141

4242
//constructor
4343
QgsGlobePluginDialog::QgsGlobePluginDialog( QWidget* parent, Qt::WFlags fl )
@@ -48,7 +48,7 @@ QgsGlobePluginDialog::QgsGlobePluginDialog( QWidget* parent, Qt::WFlags fl )
4848
setStereoConfig(); //overwrite with values from QSettings
4949
updateStereoDialog(); //update the dialog gui
5050

51-
readElevationDataSourcesFromSettings();
51+
readElevationDatasourcesFromSettings();
5252
}
5353

5454
//destructor
@@ -143,37 +143,28 @@ void QgsGlobePluginDialog::on_buttonBox_accepted()
143143
restartGlobe();
144144
}
145145

146-
settings.beginGroup("Plugin-Globe");
147-
settings.beginWriteArray("ElevationsDataSources");
148-
for (int i = 0; i < elevationsDataSources.size(); ++i)
149-
{
150-
settings.setArrayIndex(i);
151-
settings.setValue("type", elevationsDataSources.at(i).type);
152-
settings.setValue("uri", elevationsDataSources.at(i).uri);
153-
}
154-
settings.endArray();
155-
settings.endGroup();
156-
146+
saveElevationDatasources();
157147
accept();
158148
}
159149

160-
void QgsGlobePluginDialog::on_showDataSources_clicked(){
161-
QString txt;
162-
foreach (DataSource source, elevationsDataSources)
163-
{
164-
txt += source.type + ":\t" + source.uri + "\n";
165-
}
166-
showMessageBox( txt );
167-
}
168-
169150
void QgsGlobePluginDialog::on_buttonBox_rejected()
170151
{
171152
loadStereoConfig();
172153
setStereoConfig();
173-
readElevationDataSourcesFromSettings();
154+
readElevationDatasourcesFromSettings();
174155
reject();
175156
}
176157

158+
159+
void QgsGlobePluginDialog::on_showDatasources_clicked(){
160+
QString txt;
161+
foreach (DataSource source, elevationsDatasources)
162+
{
163+
txt += source.type + ":\t" + source.uri + "\n";
164+
}
165+
showMessageBox( txt );
166+
}
167+
177168
//ELEVATION
178169
void QgsGlobePluginDialog::on_elevationCombo_currentIndexChanged(QString type)
179170
{
@@ -196,7 +187,6 @@ void QgsGlobePluginDialog::on_elevationBrowse_clicked()
196187
}
197188
}
198189

199-
200190
void QgsGlobePluginDialog::on_elevationAdd_clicked()
201191
{
202192
QString errorText;
@@ -214,31 +204,62 @@ void QgsGlobePluginDialog::on_elevationAdd_clicked()
214204
DataSource ds;
215205
ds.uri = elevationPath->text();
216206
ds.type = elevationCombo->currentText();
217-
elevationsDataSources.append(ds);
207+
elevationsDatasources.append(ds);
208+
209+
int i = elevationDatasourcesWidget->rowCount();
210+
QTableWidgetItem *type = new QTableWidgetItem(ds.type);
211+
QTableWidgetItem *uri = new QTableWidgetItem(ds.uri);
212+
elevationDatasourcesWidget->setRowCount(1+i);
213+
elevationDatasourcesWidget->setItem(i, 0, type);
214+
elevationDatasourcesWidget->setItem(i, 1, uri);
218215
}
219216
}
220217

221218
void QgsGlobePluginDialog::on_elevationRemove_clicked()
222219
{
223-
elevationDatasets->clear();
220+
QList< QTableWidgetItem* > si = elevationDatasourcesWidget->selectedItems();
221+
for(int i = 0; i < si.count(); i++)
222+
{
223+
elevationDatasourcesWidget->removeRow( elevationDatasourcesWidget->row(si.at(i)) );
224+
}
224225
}
225226

226-
void QgsGlobePluginDialog::readElevationDataSourcesFromSettings()
227+
void QgsGlobePluginDialog::readElevationDatasourcesFromSettings()
227228
{
228-
elevationsDataSources.clear();
229+
elevationsDatasources.clear();
229230
settings.beginGroup("Plugin-Globe");
230-
int size = settings.beginReadArray("ElevationsDataSources");
231+
int size = settings.beginReadArray("ElevationsDatasources");
231232
for (int i = 0; i < size; ++i) {
232233
settings.setArrayIndex(i);
233234
DataSource ds;
234235
ds.type = settings.value("type").toString();
235236
ds.uri = settings.value("uri").toString();
236-
elevationsDataSources.append(ds);
237+
elevationsDatasources.append(ds);
238+
239+
QTableWidgetItem *type = new QTableWidgetItem(ds.type);
240+
QTableWidgetItem *uri = new QTableWidgetItem(ds.uri);
241+
elevationDatasourcesWidget->setRowCount(1+i);
242+
elevationDatasourcesWidget->setItem(i, 0, type);
243+
elevationDatasourcesWidget->setItem(i, 1, uri);
237244
}
238245
settings.endArray();
239246
settings.endGroup();
240247
}
241248

249+
void QgsGlobePluginDialog::saveElevationDatasources()
250+
{
251+
settings.beginGroup("Plugin-Globe");
252+
settings.beginWriteArray("ElevationsDatasources");
253+
for (int i = 0; i < elevationsDatasources.size(); ++i)
254+
{
255+
settings.setArrayIndex(i);
256+
settings.setValue("type", elevationsDatasources.at(i).type);
257+
settings.setValue("uri", elevationsDatasources.at(i).uri);
258+
}
259+
settings.endArray();
260+
settings.endGroup();
261+
}
262+
//END ELEVATION
242263
void QgsGlobePluginDialog::on_resetStereoDefaults_clicked()
243264
{
244265
//http://www.openscenegraph.org/projects/osg/wiki/Support/UserGuides/StereoSettings

src/plugins/globe/globe_plugin_dialog.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ class QgsGlobePluginDialog:public QDialog, private Ui::QgsGlobePluginDialogGuiBa
3838
void restartGlobe();
3939
bool globeRunning();
4040
bool validateResource( QString type, QString uri, QString& error);
41-
void readElevationDataSourcesFromSettings();
41+
void readElevationDatasourcesFromSettings();
42+
void saveElevationDatasources();
4243
void showMessageBox( QString text);
4344
//! Set osg/DisplaySettings
4445
void setStereoConfig();
@@ -70,7 +71,8 @@ class QgsGlobePluginDialog:public QDialog, private Ui::QgsGlobePluginDialogGuiBa
7071
void on_elevationBrowse_clicked();
7172
void on_elevationAdd_clicked();
7273
void on_elevationRemove_clicked();
73-
void on_showDataSources_clicked();
74+
void on_showDatasources_clicked();
75+
7476
};
7577

7678
struct DataSource {

0 commit comments

Comments
 (0)