Exemple #1
0
 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 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)        
Exemple #3
0
 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 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 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()
Exemple #7
0
    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)
Exemple #11
0
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")
Exemple #12
0
 def populate(self):
     styles = qgislayers.getAllLayers()
     for style in styles:
         styleItem = QgsStyleItem(style)
         self.addChild(styleItem)
Exemple #13
0
 def populate(self):
     layers = qgislayers.getAllLayers()
     for layer in layers:
         layerItem = QgsLayerItem(layer)
         self.addChild(layerItem)