Esempio n. 1
0
    def populateTableView(self):
        serverUrl = unicode(self.txtServerUrl.text())
        username = unicode(self.txtUsername.text())
        password = unicode(self.txtPassword.text())

        qgs_cat = QGSCatalog(serverUrl, username=username, password=password)
        # QtCore.pyqtRemoveInputHook()
        # import pdb; pdb.set_trace()
        QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))
        progress = QtGui.QProgressDialog("Loading the layer list", "Cancel", 0, 0, self.tableView)
        progress.setWindowModality(QtCore.Qt.WindowModal)
        progress.resize(400, 110)
        progress.setWindowTitle("Loading")
        progress.show()

        self.all_layers = qgs_cat.get_layers_from_capabilities()

        QtGui.QApplication.restoreOverrideCursor()
        progress.hide()

        self.model = QGSLayerModel(self.all_layers)

        self.tableView.setModel(self.model)
        self.tableView.setSortingEnabled(True)
        self.resizeColumns()
    def populateTableView(self):
        serverUrl = unicode(self.txtServerUrl.text())
        username = unicode(self.txtUsername.text())
        password = unicode(self.txtPassword.text())

        qgs_cat = QGSCatalog(serverUrl, username=username, password=password)
        # QtCore.pyqtRemoveInputHook()
        # import pdb; pdb.set_trace()
        QtGui.QApplication.setOverrideCursor(
            QtGui.QCursor(QtCore.Qt.WaitCursor))
        progress = QtGui.QProgressDialog("Loading the layer list", "Cancel", 0,
                                         0, self.tableView)
        progress.setWindowModality(QtCore.Qt.WindowModal)
        progress.resize(400, 110)
        progress.setWindowTitle("Loading")
        progress.show()

        self.all_layers = qgs_cat.get_layers_from_capabilities()

        QtGui.QApplication.restoreOverrideCursor()
        progress.hide()

        self.model = QGSLayerModel(self.all_layers)

        self.tableView.setModel(self.model)
        self.tableView.setSortingEnabled(True)
        self.resizeColumns()
Esempio n. 3
0
 def createWorkspaceCombobox(self):
     # Retrieve existing workspaces and fill a combox to give option to the users
     qgs_cat = QGSCatalog("http://localhost:8080/geoserver/rest", username="******", password="******")
     all_workspaces = qgs_cat.get_workspaces()
     all_workspaces = [workspace.name for workspace in all_workspaces]
     # Retrieve default workspace name
     req = requests.get(qgs_cat.get_default_workspace().href, auth=('admin', 'geoserver'))
     doc = etree.fromstring(req.content)
     default_name = doc.find('name')
     default_name = default_name.text if not None else None
     # Create and fill ComboBox
     combobox = QtGui.QComboBox()
     selected_index = -1
     for workspace in all_workspaces:
         if workspace == default_name and workspace is not None:
             combobox.addItem(workspace + " [default]")
             selected_index = combobox.findText(workspace + " [default]")
         else:
             combobox.addItem(workspace)
     if selected_index != -1:
         combobox.setCurrentIndex(selected_index)
     return combobox
Esempio n. 4
0
    def uploadSelectedLayer(self):
        uploaded_layers = []
        qgs_cat = QGSCatalog("http://localhost:8080/geoserver/rest", username="******", password="******")

        selected_indexes = self.tableWidget.selectionModel().selectedRows()

        for row_index in selected_indexes:
            # from PyQt4.QtCore import pyqtRemoveInputHook; pyqtRemoveInputHook()
            # import pdb; pdb.set_trace()
 
            selected_layer_name = self.tableWidget.item(row_index.row(), 0).text()
            #Shouldn't require a loop but I didn't find a way to access directly a layer by id or by name
            for lyr in self.iface.mapCanvas().layers():
                if str(lyr.name()) == selected_layer_name:
                    file_path = QtCore.QFileInfo(lyr.dataProvider().dataSourceUri().section('|', 0, 0))

            workspace = self.tableWidget.cellWidget(row_index.row(), 4).currentText()
            if '[default]' in workspace:
                workspace = 'default'
            #TODO: support other sources of data (PostGIS...)
            upload_layer_to_gs(qgs_cat, str(selected_layer_name), str(file_path.absoluteFilePath()), workspace=str(workspace))
        return uploaded_layers