28 #include "../../../srs/SpatialReferenceSystemManager.h"
30 #include <ui_SRSManagerDialogForm.h>
31 #include <QApplication>
32 #include <QMessageBox>
40 m_ui(new Ui::SRSManagerDialogForm)
47 m_ui->m_addSRSToolButton->setIcon(QIcon::fromTheme(
"list-add"));
48 m_ui->m_removeSRSToolButton->setIcon(QIcon::fromTheme(
"list-remove"));
49 m_ui->m_editSRSToolButton->setIcon(QIcon::fromTheme(
"preferences-system"));
59 m_ui->m_helpPushButton->setPageReference(
"widgets/srs/srs.html");
62 QSettings sett(QSettings::IniFormat, QSettings::UserScope, qApp->organizationName(), qApp->applicationName());
63 QString value = sett.value(
"SRSRecentlyUsed",
"").toString();
65 m_ui->m_SRSRecentTableWidget->clear();
72 QStringList::const_iterator it;
76 std::string auth(
"EPSG");
80 m_ui->m_SRSRecentTableWidget->setItem(aux, 1,
new QTableWidgetItem(QString::number(srid)));
81 m_ui->m_SRSRecentTableWidget->setItem(aux, 2,
new QTableWidgetItem(auth.c_str()));
87 hLabels <<
"Name" <<
"ID" <<
"Authority";
88 m_ui->m_SRSRecentTableWidget->setHorizontalHeaderLabels(hLabels);
90 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(0);
91 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(1);
92 m_ui->m_SRSRecentTableWidget->resizeColumnToContents(2);
96 QList<QTreeWidgetItem *> items;
98 items.append(
new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(
"Geoographic SRS"))));
99 items.append(
new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(
"Projected SRS"))));
100 items.append(
new QTreeWidgetItem((QTreeWidget*)0, QStringList(tr(
"User defined SRS"))));
101 m_ui->m_SRSTreeWidget->insertTopLevelItems(0, items);
106 while (its.first != its.second)
108 if (its.first->m_auth_name ==
"EPSG")
110 if (its.first->m_auth_id < 5000)
112 QTreeWidgetItem *geog =
new QTreeWidgetItem(items[0]);
113 geog->setText(0, its.first->m_name.c_str());
114 geog->setText(1, QString(
"%1").arg(its.first->m_auth_id));
115 geog->setText(2,
"EPSG");
119 QTreeWidgetItem *proj =
new QTreeWidgetItem(items[1]);
120 proj->setText(0, its.first->m_name.c_str());
121 proj->setText(1, QString(
"%1").arg(its.first->m_auth_id));
122 proj->setText(2,
"EPSG");
127 QTreeWidgetItem *userd =
new QTreeWidgetItem(items[2]);
128 userd->setText(0, its.first->m_name.c_str());
129 userd->setText(1, QString(
"%1").arg(its.first->m_auth_id));
130 userd->setText(2, its.first->m_auth_name.c_str());
135 unsigned int ntl =
m_ui->m_SRSTreeWidget->topLevelItemCount();
136 for(
unsigned int i = 0; i < ntl; ++i)
138 QTreeWidgetItem* item =
m_ui->m_SRSTreeWidget->topLevelItem(i);
139 item->setExpanded(
true);
142 m_ui->m_SRSTreeWidget->resizeColumnToContents(0);
143 m_ui->m_SRSTreeWidget->resizeColumnToContents(1);
144 m_ui->m_SRSTreeWidget->resizeColumnToContents(2);
147 m_ui->m_p4descPlainTextEdit->setLineWrapMode(QPlainTextEdit::WidgetWidth);
148 QFontMetrics m (
m_ui->m_p4descPlainTextEdit->font());
149 int RowHeight = m.lineSpacing() ;
150 m_ui->m_p4descPlainTextEdit->setFixedHeight(3*RowHeight);
170 dlg.setWindowTitle(title);
172 if(dlg.exec() == QDialog::Accepted)
180 QList<QTreeWidgetItem*> items = m_ui->m_SRSTreeWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive, 0);
181 items.append(m_ui->m_SRSTreeWidget->findItems(text, Qt::MatchContains | Qt::MatchRecursive, 1));
188 for(
int i = 0; i < m_ui->m_SRSTreeWidget->topLevelItemCount(); ++i)
190 QTreeWidgetItem* item = m_ui->m_SRSTreeWidget->topLevelItem(i);
192 for(
int j = 0; j < item->childCount(); ++j)
194 QTreeWidgetItem* srs = item->child(j);
195 bool hide = items.indexOf(srs) == -1;
196 srs->setHidden(hide);
205 if (!item || item->text(1).isEmpty())
208 m_selSrsId.second =
"";
209 m_ui->m_p4descPlainTextEdit->clear();
212 m_selSrsId.first = item->text(1).toUInt();
213 m_selSrsId.second = std::string(item->text(2).toLatin1());
221 QString val = m_ui->m_SRSRecentTableWidget->item(item->row(),1)->text();
222 QList<QTreeWidgetItem *> ilist = m_ui->m_SRSTreeWidget->findItems(val,Qt::MatchContains|Qt::MatchRecursive, 1);
225 m_ui->m_SRSTreeWidget->setCurrentItem(ilist[0]);
226 onSRSTreeWidgetItemClicked(ilist[0],0);
236 aux << QString::number(m_selSrsId.first);
237 for (
int i=0; (i<=3 && i<m_recentSRS.size()); ++i)
238 if (QString::number(m_selSrsId.first) != m_recentSRS[i])
239 aux << m_recentSRS[i];
241 QString value = aux.join(
",");
242 QSettings sett(QSettings::IniFormat, QSettings::UserScope, qApp->organizationName(), qApp->applicationName());
243 sett.setValue(
"SRSRecentlyUsed", value);
250 m_selSrsId.first = -1;
251 m_selSrsId.second =
"";
257 QMessageBox::critical(
this,
"", tr(
"Not implemented yet!"));
boost::multi_index::nth_index< srs_set, 0 >::type::iterator iterator
An iterator by SRS
static SpatialReferenceSystemManager & getInstance()
It returns a reference to the singleton instance.
#define TE_UNKNOWN_SRS
A numeric value to represent a unknown SRS identification in TerraLib.