Example #1
0
    def downloadOsmData(self):
        """Function shows up the "Download OSM data" dialog.

        After closing it, function calls the appropriate actions
        according to dialog's return code.
        """

        if 'osm' not in QgsProviderRegistry.instance().providerList():
            QMessageBox.critical(
                None, QCoreApplication.translate("OsmPlugin", "Sorry"),
                QCoreApplication.translate(
                    "OsmPlugin", "You don't have OSM provider installed!"))
            return

        self.dlgDownload = OsmDownloadDlg(self)
        self.dlgDownload.exec_()
        if not self.dlgDownload.httpSuccess:
            return

        if not self.dlgDownload.autoLoadCheckBox.isChecked():
            return

        # create loading dialog, submit it
        self.dlgLoad = OsmLoadDlg(self)
        self.dlgLoad.setModal(True)
        self.dlgLoad.show()
        self.dlgLoad.close()
        self.dlgLoad.OSMFileEdit.setText(
            self.dlgDownload.destdirLineEdit.text())
        self.dlgLoad.styleCombo.setCurrentIndex(
            self.dlgDownload.styleCombo.currentIndex())

        if self.dlgDownload.chkCustomRenderer.isChecked():
            self.dlgLoad.chkCustomRenderer.setChecked(True)
        else:
            self.dlgLoad.chkCustomRenderer.setChecked(False)

        for row in xrange(self.dlgLoad.lstTags.count()):
            self.dlgLoad.lstTags.item(row).setCheckState(Qt.Checked)

        if self.dlgDownload.chkReplaceData.isChecked():
            self.dlgLoad.chkReplaceData.setChecked(True)
        else:
            self.dlgLoad.chkReplaceData.setChecked(False)

        self.dlgLoad.onOK()

        self.fname = self.dlgLoad.OSMFileEdit.text()
        self.dbFileName = self.fname + ".db"
        self.dbm.addDatabase(self.dbFileName, self.dlgLoad.pointLayer,
                             self.dlgLoad.lineLayer, self.dlgLoad.polygonLayer)