def populate(self): icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/layer.png") layersItem = QgsTreeItem(None, icon, "QGIS Layers") layersItem.setIcon(0, icon) layers = qgislayers.getAllLayers() for layer in layers: layerItem = QgsLayerItem(layer) layersItem.addChild(layerItem) self.addChild(layersItem) icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/group.gif") groupsItem = QgsTreeItem(None, icon, "QGIS Groups") groups = qgislayers.getGroups() for group in groups: groupItem = QgsGroupItem(group) groupsItem.addChild(groupItem) groupItem.populate() self.addChild(groupsItem) icon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/style.png") stylesItem = QgsTreeItem(None, icon, "QGIS Styles") stylesItem.setIcon(0, icon) styles = qgislayers.getAllLayers() for style in styles: styleItem = QgsStyleItem(style) stylesItem.addChild(styleItem) self.addChild(stylesItem)
def publishProject(self, tree, explorer): layers = qgislayers.getAllLayers() dlg = PublishProjectDialog(explorer.catalogs()) dlg.exec_() catalog = dlg.catalog if catalog is None: return workspace = dlg.workspace groupName = dlg.groupName explorer.setProgressMaximum(len(layers), "Publish layers") progress = 0 ogcat = OGCatalog(catalog) for layer in layers: explorer.setProgress(progress) if not explorer.run(publishLayer, None, [], ogcat, layer, workspace, True): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() groups = qgislayers.getGroups() for group in groups: names = [layer.name() for layer in groups[group]] try: layergroup = catalog.create_layergroup(group, names, names) explorer.run(catalog.save, "Create layer group '" + group + "'", [], layergroup) except ConflictingDataError, e: explorer.setWarning(str(e))
def showLayers(self): if self.sender() == self.lastAction: return self.tree.clear() layers = qgislayers.getAllLayers() for layer in layers: layerItem = QgsLayerItem(layer) self.tree.addTopLevelItem(layerItem) self.lastAction = self.sender()
def initGui(self): verticalLayout = QtGui.QVBoxLayout() buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Close) self.setWindowTitle('Create style from layer') horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setSpacing(30) horizontalLayout.setMargin(0) layerLabel = QtGui.QLabel('Layer') layerLabel.setMinimumWidth(150) self.layerBox = QtGui.QComboBox() self.alllayers = [layer.name() for layer in layers.getAllLayers()] self.layerBox.addItems(self.alllayers) self.layerBox.setMinimumWidth(250) horizontalLayout.addWidget(layerLabel) horizontalLayout.addWidget(self.layerBox) verticalLayout.addLayout(horizontalLayout) horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setSpacing(30) horizontalLayout.setMargin(0) nameLabel = QtGui.QLabel('Name') nameLabel.setMinimumWidth(150) self.nameBox = QtGui.QLineEdit() self.nameBox.setText('') self.nameBox.setPlaceholderText("[Use layer name]") self.nameBox.setMinimumWidth(250) horizontalLayout.addWidget(nameLabel) horizontalLayout.addWidget(self.nameBox) verticalLayout.addLayout(horizontalLayout) self.groupBox = QtGui.QGroupBox() self.groupBox.setTitle("") self.groupBox.setLayout(verticalLayout) layout = QtGui.QVBoxLayout() layout.addWidget(self.groupBox) layout.addWidget(buttonBox) self.setLayout(layout) buttonBox.accepted.connect(self.okPressed) buttonBox.rejected.connect(self.cancelPressed) self.resize(400, 150)
def initGui(self): verticalLayout = QtGui.QVBoxLayout() buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Close) self.setWindowTitle('Create style from layer') horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setSpacing(30) horizontalLayout.setMargin(0) layerLabel = QtGui.QLabel('Layer') layerLabel.setMinimumWidth(150) self.layerBox = QtGui.QComboBox() self.alllayers = [layer.name() for layer in layers.getAllLayers()] self.layerBox.addItems(self.alllayers) self.layerBox.setMinimumWidth(250) horizontalLayout.addWidget(layerLabel) horizontalLayout.addWidget(self.layerBox) verticalLayout.addLayout(horizontalLayout) horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setSpacing(30) horizontalLayout.setMargin(0) nameLabel = QtGui.QLabel('Name') nameLabel.setMinimumWidth(150) self.nameBox = QtGui.QLineEdit() self.nameBox.setText('') self.nameBox.setPlaceholderText("[Use layer name]") self.nameBox.setMinimumWidth(250) horizontalLayout.addWidget(nameLabel) horizontalLayout.addWidget(self.nameBox) verticalLayout.addLayout(horizontalLayout) self.groupBox = QtGui.QGroupBox() self.groupBox.setTitle("") self.groupBox.setLayout(verticalLayout) layout = QtGui.QVBoxLayout() layout.addWidget(self.groupBox) layout.addWidget(buttonBox) self.setLayout(layout) buttonBox.accepted.connect(self.okPressed) buttonBox.rejected.connect(self.cancelPressed) self.resize(400,150)
def publishProject(self, tree, explorer): layers = qgislayers.getAllLayers() dlg = PublishProjectDialog(explorer.catalogs()) dlg.exec_() catalog = dlg.catalog if catalog is None: return workspace = dlg.workspace groupName = dlg.groupName explorer.setProgressMaximum(len(layers), "Publish layers") progress = 0 for layer in layers: explorer.setProgress(progress) ogcat = OGCatalog(catalog) if not explorer.run(ogcat.publishLayer, None, #"Publish layer '" + layer.name() + "'", [], layer, workspace, True): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() groups = qgislayers.getGroups() for group in groups: names = [layer.name() for layer in groups[group]] layergroup = catalog.create_layergroup(group, names, names) explorer.run(catalog.save, "Create layer group '" + group + "'", [], layergroup) if groupName is not None: names = [layer.name() for layer in layers] layergroup = catalog.create_layergroup(groupName, names, names) explorer.run(catalog.save, "Create global layer group", [], layergroup) tree.findAllItems(catalog)[0].refreshContent(explorer)
def initGui(self): verticalLayout = QtGui.QVBoxLayout() buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok | QtGui.QDialogButtonBox.Close) self.okButton = buttonBox.button(QtGui.QDialogButtonBox.Ok) self.cancelButton = buttonBox.button(QtGui.QDialogButtonBox.Close) self.setWindowTitle('Create style from layer') horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setMargin(0) layerLabel = QtGui.QLabel('Layer') layerLabel.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Fixed)) self.layerBox = QtGui.QComboBox() self.alllayers = [layer.name() for layer in layers.getAllLayers()] self.layerBox.addItems(self.alllayers) self.layerBox.setMinimumWidth(250) horizontalLayout.addWidget(layerLabel) horizontalLayout.addWidget(self.layerBox) verticalLayout.addLayout(horizontalLayout) horizontalLayout = QtGui.QHBoxLayout() horizontalLayout.setMargin(0) nameLabel = QtGui.QLabel('Name') nameLabel.setSizePolicy( QtGui.QSizePolicy(QtGui.QSizePolicy.Maximum, QtGui.QSizePolicy.Fixed)) defaultname = '' if len(self.alllayers) > 0: defaultname = xmlNameFixUp(self.alllayers[0]) self.nameBox = GSNameWidget( namemsg='', name=defaultname, nameregex=xmlNameRegex(), nameregexmsg=xmlNameRegexMsg(), names=self.styles, unique=False) self.nameBox.setMinimumWidth(250) horizontalLayout.addWidget(nameLabel) horizontalLayout.addWidget(self.nameBox) verticalLayout.addLayout(horizontalLayout) self.groupBox = QtGui.QGroupBox() self.groupBox.setTitle("") self.groupBox.setLayout(verticalLayout) layout = QtGui.QVBoxLayout() layout.addWidget(self.groupBox) layout.addWidget(buttonBox) self.setLayout(layout) buttonBox.accepted.connect(self.okPressed) buttonBox.rejected.connect(self.cancelPressed) self.layerBox.currentIndexChanged[str].connect(self.updateNameBox) self.nameBox.nameValidityChanged.connect(self.okButton.setEnabled) self.nameBox.overwritingChanged.connect(self.updateButtons) self.okButton.setEnabled(self.nameBox.isValid()) self.updateButtons(self.nameBox.overwritingName()) self.resize(400,150)
def publishProject(tree, explorer): layers = qgislayers.getAllLayers() if not layers: return dlg = PublishProjectDialog(explorer.catalogs()) dlg.exec_() catalog = dlg.catalog if catalog is None: return workspace = dlg.workspace groupName = dlg.groupName ogcat = OGCatalog(catalog) groups = qgislayers.getGroups() grouplyrs = [] for group in groups: grouplyrs.extend([layer for layer in groups[group]]) ungroupedlyrs = [layer for layer in layers if layer not in grouplyrs] publishedLyrs = [] if ungroupedlyrs: lyrsdlg = PublishLayersDialog( {0: catalog}, ungroupedlyrs, workspace=workspace, overwrite=False) lyrsdlg.exec_() toPublish = lyrsdlg.topublish if toPublish is None: return explorer.setProgressMaximum(len(toPublish), "Publish ungrouped layer") progress = 0 for layer, catalog, workspace, layername in toPublish: publishedLyrs.append(layername) explorer.setProgress(progress) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True, layername): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() for group in groups: grouplyrs = [layer for layer in groups[group]] if not grouplyrs: continue # don't publish empty groups, when publishing project dlg = PublishLayerGroupDialog(catalog, group, grouplyrs, workspace=workspace, overwritegroup=False, overwritelayers=False) dlg.exec_() grpName = dlg.definedname toPublish = dlg.topublish if grpName is None: # toPublish can be empty list return explorer.setProgressMaximum(len(toPublish), "Publish grouped layer") progress = 0 layernames = [] for layer, catalog, workspace, layername in toPublish: layernames.append(layername) publishedLyrs.append(layername) explorer.setProgress(progress) if not explorer.run(ogcat.publishLayer, None, [], layer, workspace, True, layername): explorer.setProgress(0) return progress += 1 explorer.setProgress(progress) explorer.resetActivity() names = reversed(layernames) layergroup = catalog.create_layergroup(grpName, names, names) if not explorer.run(catalog.save, "Create layer group from group '" + group + "'", [], layergroup): return if groupName is not None: names = reversed(publishedLyrs) layergroup = catalog.create_layergroup(groupName, names, names) if not explorer.run(catalog.save, "Create global layer group", [], layergroup): return tree.findAllItems(catalog)[0].refreshContent(explorer) explorer.setInfo("Project published")
def populate(self): styles = qgislayers.getAllLayers() for style in styles: styleItem = QgsStyleItem(style) self.addChild(styleItem)
def populate(self): layers = qgislayers.getAllLayers() for layer in layers: layerItem = QgsLayerItem(layer) self.addChild(layerItem)