Showing with 22 additions and 18 deletions.
  1. +11 −8 python/gui/qgsgenericprojectionselector.sip
  2. +11 −10 python/plugins/fTools/tools/doDefineProj.py
19 changes: 11 additions & 8 deletions python/gui/qgsgenericprojectionselector.sip
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

/**
* \class QgsGenericProjectionSelector
* \class QgsGenericProjectionSelector
* \brief A generic dialog to prompt the user for a Coordinate Reference System
*/
class QgsGenericProjectionSelector : QDialog //, private Ui::QgsGenericProjectionSelectorBase
Expand All @@ -13,7 +13,7 @@ class QgsGenericProjectionSelector : QDialog //, private Ui::QgsGenericProjectio
/**
* Constructor
*/
QgsGenericProjectionSelector(QWidget *parent = 0,
QgsGenericProjectionSelector(QWidget *parent = 0,
Qt::WFlags fl = QgisGui::ModalDialogFlags);

//! Destructor
Expand All @@ -24,13 +24,19 @@ class QgsGenericProjectionSelector : QDialog //, private Ui::QgsGenericProjectio
* 'define the CRS for this layer'.
*/
void setMessage(QString theMessage="");

QString selectedProj4String();
long selectedCrsId();
QString selectedAuthId();

// @deprecated
long selectedEpsg();
// @deprecated
QString selectedProj4String();

void setSelectedCrsName(QString theName);
void setSelectedCrsId(long theID);
void setSelectedAuthId( QString authId );

// @deprecated
void setSelectedEpsg(long theID);

/**
Expand All @@ -39,7 +45,7 @@ class QgsGenericProjectionSelector : QDialog //, private Ui::QgsGenericProjectio
* Sets this dialog to filter the available projections to those listed
* by the given Coordinate Reference Systems.
*
* \param crsFilter a list of OGC Coordinate Reference Systems to filter the
* \param crsFilter a list of OGC Coordinate Reference Systems to filter the
* list of projections by. This is useful in (e.g.) WMS situations
* where you just want to offer what the WMS server can support.
*
Expand All @@ -48,7 +54,4 @@ class QgsGenericProjectionSelector : QDialog //, private Ui::QgsGenericProjectio
* \warning This function's behaviour is undefined if it is called after the dialog is shown.
*/
void setOgcWmsCrsFilter(QSet<QString> crsFilter);


};

21 changes: 11 additions & 10 deletions python/plugins/fTools/tools/doDefineProj.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,14 +62,14 @@ def __init__(self, iface):
def updateProj1(self, layerName):
self.inRef.clear()
tempLayer = ftools_utils.getVectorLayerByName(layerName)
crs = tempLayer.dataProvider().crs().toProj4()
self.inRef.insert(unicode(crs))
crs = tempLayer.dataProvider().crs()
self.inRef.insert(crs.authid() + " - " + crs.description())

def updateProj2(self, layerName):
self.outRef.clear()
tempLayer = ftools_utils.getVectorLayerByName(layerName)
crs = tempLayer.dataProvider().crs().toProj4()
self.outRef.insert(unicode(crs))
crs = tempLayer.dataProvider().crs()
self.outRef.insert(crs.authid() + " - " + crs.description())

def accept(self):
self.buttonOk.setEnabled( False )
Expand Down Expand Up @@ -141,15 +141,16 @@ def outProjFile(self):
header = QString( "Define layer CRS:" )
sentence1 = self.tr( "Please select the projection system that defines the current layer." )
sentence2 = self.tr( "Layer CRS information will be updated to the selected CRS." )
self.projSelect = QgsGenericProjectionSelector(self, Qt.Widget)
self.projSelect.setMessage( format.arg( header ).arg( sentence1 ).arg( sentence2 ))
if self.projSelect.exec_():
projString = self.projSelect.selectedProj4String()
if projString == "":
projSelector = QgsGenericProjectionSelector(self)
projSelector.setMessage( format.arg( header ).arg( sentence1 ).arg( sentence2 ))
if projSelector.exec_():
crs = QgsCoordinateReferenceSystem()
crs.createFromOgcWmsCrs( projSelector.selectedAuthId() )
if projSelector.selectedAuthId().isEmpty():
QMessageBox.information(self, self.tr("Export to new projection"), self.tr("No Valid CRS selected"))
return
else:
self.txtProjection.clear()
self.txtProjection.insert(projString)
self.txtProjection.insert(crs.authid() + " - " + crs.description())
else:
return