28 #include "../../../srs/SpatialReferenceSystemManager.h" 31 #include <ui_SRSManagerDialogForm.h> 32 #include <QApplication> 33 #include <QMessageBox> 41 m_ui(new
Ui::SRSManagerDialogForm)
48 m_ui->m_addSRSToolButton->setIcon(QIcon::fromTheme(
"list-add"));
49 m_ui->m_removeSRSToolButton->setIcon(QIcon::fromTheme(
"list-remove"));
50 m_ui->m_editSRSToolButton->setIcon(QIcon::fromTheme(
"preferences-system"));
63 m_ui->m_helpPushButton->setPageReference(
"widgets/srs/srs.html");
66 QSettings sett(QSettings::IniFormat, QSettings::UserScope, qApp->organizationName(), qApp->applicationName());
67 QString value = sett.value(
"SRSRecentlyUsed",
"").toString();
69 m_ui->m_SRSRecentTableWidget->clear();
76 QStringList::const_iterator it;
80 std::string auth(
"EPSG");
84 m_ui->m_SRSRecentTableWidget->setItem(aux, 1,
new QTableWidgetItem(QString::number(srid)));
85 m_ui->m_SRSRecentTableWidget->setItem(aux, 2,
new QTableWidgetItem(auth.c_str()));
91 hLabels <<
"Name" <<
"ID" <<
"Authority";
92 m_ui->m_SRSRecentTableWidget->setHorizontalHeaderLabels(hLabels);
94 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(0);
95 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(1);
96 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(2);
100 QList<QTreeWidgetItem *> items;
105 m_ui->m_SRSTreeWidget->insertTopLevelItems(0, items);
110 while (its.first != its.second)
112 if (its.first->m_auth_name ==
"EPSG")
114 if (its.first->m_auth_id < 5000)
117 geog->setText(0, its.first->m_name.c_str());
118 geog->setText(1, QString::number(its.first->m_auth_id));
119 geog->setText(2,
"EPSG");
124 proj->setText(0, its.first->m_name.c_str());
125 proj->setText(1, QString::number(its.first->m_auth_id));
126 proj->setText(2,
"EPSG");
132 userd->setText(0, its.first->m_name.c_str());
133 userd->setText(1, QString::number(its.first->m_auth_id));
134 userd->setText(2, its.first->m_auth_name.c_str());
139 unsigned int ntl =
m_ui->m_SRSTreeWidget->topLevelItemCount();
140 for(
unsigned int i = 0; i < ntl; ++i)
143 item->setExpanded(
true);
146 m_ui->m_SRSTreeWidget->resizeColumnToContents(0);
147 m_ui->m_SRSTreeWidget->resizeColumnToContents(1);
148 m_ui->m_SRSTreeWidget->resizeColumnToContents(2);
151 m_ui->m_p4descPlainTextEdit->setLineWrapMode(QPlainTextEdit::WidgetWidth);
152 QFontMetrics m (
m_ui->m_p4descPlainTextEdit->font());
153 int RowHeight = m.lineSpacing() ;
154 m_ui->m_p4descPlainTextEdit->setFixedHeight(3*RowHeight);
174 dlg.setWindowTitle(title);
176 if(dlg.exec() == QDialog::Accepted)
184 QList<QTreeWidgetItem*> items =
m_ui->m_SRSTreeWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive, 0);
185 items.append(
m_ui->m_SRSTreeWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive, 1));
192 for(
int i = 0; i <
m_ui->m_SRSTreeWidget->topLevelItemCount(); ++i)
196 for(
int j = 0; j < item->childCount(); ++j)
199 bool hide = items.indexOf(srs) == -1;
200 srs->setHidden(hide);
209 if (!item || item->text(1).isEmpty())
213 m_ui->m_p4descPlainTextEdit->clear();
217 m_selSrsId.second = std::string(item->text(2).toUtf8().data());
225 QString val =
m_ui->m_SRSRecentTableWidget->item(item->row(),1)->text();
226 QList<QTreeWidgetItem *> ilist =
m_ui->m_SRSTreeWidget->findItems(val,Qt::MatchContains|Qt::MatchRecursive, 1);
229 m_ui->m_SRSTreeWidget->setCurrentItem(ilist[0]);
235 if(
m_ui->m_SRSRecentTableWidget->selectedItems().size() == 0 &&
m_ui->m_SRSTreeWidget->selectedItems().size() == 0)
237 QMessageBox::warning(
this,
"SRSDialog", tr(
"No SRS selected."));
251 QString value = aux.join(
",");
252 QSettings sett(QSettings::IniFormat, QSettings::UserScope, qApp->organizationName(), qApp->applicationName());
253 sett.setValue(
"SRSRecentlyUsed", value);
267 QMessageBox::critical(
this,
"", tr(
"Not implemented yet!"));
275 int res = dlg.exec();
276 if (res == QDialog::Accepted)
282 QString srid = QString::number(dlg.
getSRID());
285 userd->setText(0,dlg.
getName().c_str());
286 userd->setText(1,srid);
287 userd->setText(2,
"USER");
288 m_ui->m_SRSTreeWidget->resizeColumnToContents(0);
289 m_ui->m_SRSTreeWidget->resizeColumnToContents(1);
290 m_ui->m_SRSTreeWidget->resizeColumnToContents(2);
292 QList<QTreeWidgetItem *> ilist =
m_ui->m_SRSTreeWidget->findItems(srid,Qt::MatchContains|Qt::MatchRecursive, 1);
295 m_ui->m_SRSTreeWidget->setCurrentItem(ilist[0]);
299 catch(
const std::exception& e)
301 QMessageBox::warning(
this,
"SRSDialog", e.what());
305 QMessageBox::warning(
this,
"SRSDialog",tr(
"Unknown error while trying to define a new SRS!"));
313 QMessageBox::warning(
this,
"SRSDialog",tr(
"Select a USER defined SRS to modify."));
319 QMessageBox::warning(
this,
"SRSDialog",tr(
"Only a USER defined SRS can be modified."));
327 int res = dlg.exec();
328 if (res == QDialog::Accepted)
336 QString srid = QString::number(
m_selSrsId.first);
337 QList<QTreeWidgetItem *> ilist =
m_ui->m_SRSTreeWidget->findItems(srid,Qt::MatchContains|Qt::MatchRecursive, 1);
340 ilist[0]->setText(0,dlg.
getName().c_str());
341 ilist[0]->setText(1,srid);
342 ilist[0]->setText(2,
"USER");
351 QMessageBox::warning(
this,
"SRSDialog",tr(
"Select a USER defined SRS to remove."));
357 QMessageBox::warning(
this,
"SRSDialog",tr(
"Only a USER defined SRS can be removed."));
365 QString srid = QString::number(
m_selSrsId.first);
366 QList<QTreeWidgetItem *> ilist =
m_ui->m_SRSTreeWidget->findItems(srid,Qt::MatchContains|Qt::MatchRecursive, 1);
370 parent->removeChild(ilist[0]);
374 QList<QTableWidgetItem *> rilist =
m_ui->m_SRSRecentTableWidget->findItems(srid, Qt::MatchContains|Qt::MatchRecursive);
377 m_ui->m_SRSRecentTableWidget->removeRow(
m_ui->m_SRSRecentTableWidget->row(rilist[0]));
384 QString value = aux.join(
",");
385 QSettings sett(QSettings::IniFormat, QSettings::UserScope, qApp->organizationName(), qApp->applicationName());
386 sett.setValue(
"SRSRecentlyUsed", value);
#define TE_UNKNOWN_SRS
A numeric value to represent a unknown SRS identification in TerraLib.
boost::multi_index::nth_index< srs_set, 0 >::type::iterator iterator
An iterator by SRS <id,authority>
static SpatialReferenceSystemManager & getInstance()
It returns a reference to the singleton instance.