class SelectCrsDlg(QDialog):
    def __init__(self, title, parent=None):
        QDialog.__init__(self)
        self.setWindowTitle(title)

        layout = QVBoxLayout()
        self.selector = QgsProjectionSelectionDialog(self)
        buttonBox = QDialogButtonBox(QDialogButtonBox.Ok
                                     | QDialogButtonBox.Close)

        layout.addWidget(self.selector)
        layout.addWidget(buttonBox)
        self.setLayout(layout)

        self.connect(buttonBox, SIGNAL("accepted()"), self.accept)
        self.connect(buttonBox, SIGNAL("rejected()"), self.reject)

    def epsg(self):
        return str(self.selector.selectedAuthId())

    def proj4string(self):
        return str(self.selector.selectedProj4String())

    def getProjection(self):
        if self.selector.selectedAuthId():
            return self.epsg()

        if self.selector.selectedProj4String():
            return self.proj4string()

        return ""