Example #1
0
 def __init__(self, explorer):                 
     QtGui.QWidget.__init__(self, None) 
     self.explorer = explorer
     self.projectItem = QgsProjectItem()                    
     verticalLayout = QtGui.QVBoxLayout()
     verticalLayout.setSpacing(2)
     verticalLayout.setMargin(0)         
     self.toptoolbar = QtGui.QToolBar()
     self.toptoolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)        
     verticalLayout.addWidget(self.toptoolbar)     
     self.tree = ExplorerTreeWidget(self.explorer)               
     verticalLayout.addWidget(self.tree)        
     actions = self.projectItem.contextMenuActions(self.tree, explorer)
     for action in actions:
         self.toptoolbar.addAction(action)        
     self.toolbar = QtGui.QToolBar()
     self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
     layersIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/layer.png")
     self.layersAction = QtGui.QAction(layersIcon, "Layers", explorer)
     self.layersAction.triggered.connect(self.showLayers)                
     stylesIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/style.png")
     self.stylesAction = QtGui.QAction(stylesIcon, "Styles", explorer)
     self.stylesAction.triggered.connect(self.showStyles)
     groupsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/group.gif")
     self.groupsAction = QtGui.QAction(groupsIcon, "Groups", explorer)
     self.groupsAction.triggered.connect(self.showGroups)                
     self.toolbar.addAction(self.layersAction)        
     self.toolbar.addAction(self.stylesAction)
     self.toolbar.addAction(self.groupsAction)        
     verticalLayout.addWidget(self.toolbar)
     self.setLayout(verticalLayout)
     self.lastAction = None
     self.layersAction.trigger()
 def fillData(self):        
     if self.singletab:                                     
         self.gsItem = GsCatalogsItem()                            
         self.pgItem = PgConnectionsItem()
         self.pgItem.populate()                                    
         self.qgsItem = QgsProjectItem()                
         self.qgsItem.populate()
         self.tree.addTopLevelItem(self.gsItem)                         
         self.tree.addTopLevelItem(self.pgItem)
         geogitActive = QSettings().value("/OpenGeo/Settings/GeoGit/Active", defaultValue=False,)
         geogitActive = str(geogitActive).lower() == 'true'
         if geogitActive:
             self.geogitItem = GeogitRepositoriesItem()
             self.tree.addTopLevelItem(self.geogitItem)                                      
         self.tree.addTopLevelItem(self.qgsItem) 
     else:                                
         gsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/geoserver.png")
         pgIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/pg.png")
         qgsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/qgis.png") 
         self.gsPanel = GsTreePanel(self.explorer) 
         self.qgsPanel = QgsTreePanel(self.explorer)
         self.pgPanel = PgTreePanel(self.explorer)
         self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
         self.tabbedPanel.addTab(self.pgPanel, pgIcon,'PostGIS')
         self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')
Example #3
0
 def __init__(self, explorer):                 
     QtGui.QWidget.__init__(self, None) 
     self.explorer = explorer
     self.projectItem = QgsProjectItem()                    
     verticalLayout = QtGui.QVBoxLayout()
     verticalLayout.setSpacing(2)
     verticalLayout.setMargin(0)         
     self.toptoolbar = QtGui.QToolBar()
     self.toptoolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)        
     verticalLayout.addWidget(self.toptoolbar)     
     self.tree = ExplorerTreeWidget(self.explorer)               
     verticalLayout.addWidget(self.tree)        
     actions = self.projectItem.contextMenuActions(self.tree, explorer)
     for action in actions:
         self.toptoolbar.addAction(action)        
     self.toolbar = QtGui.QToolBar()
     self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
     layersIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/layer.png")
     self.layersAction = QtGui.QAction(layersIcon, "Layers", explorer)
     self.layersAction.triggered.connect(self.showLayers)                
     stylesIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/style.png")
     self.stylesAction = QtGui.QAction(stylesIcon, "Styles", explorer)
     self.stylesAction.triggered.connect(self.showStyles)
     groupsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/group.gif")
     self.groupsAction = QtGui.QAction(groupsIcon, "Groups", explorer)
     self.groupsAction.triggered.connect(self.showGroups)                
     self.toolbar.addAction(self.layersAction)        
     self.toolbar.addAction(self.stylesAction)
     self.toolbar.addAction(self.groupsAction)        
     verticalLayout.addWidget(self.toolbar)
     self.setLayout(verticalLayout)
     self.lastAction = None
     self.layersAction.trigger()
Example #4
0
 def fillData(self):
     if self.singletab:
         self.gsItem = GsCatalogsItem()
         self.pgItem = PgConnectionsItem()
         self.pgItem.populate()
         self.qgsItem = QgsProjectItem()
         self.qgsItem.populate()
         self.tree.addTopLevelItem(self.gsItem)
         self.tree.addTopLevelItem(self.pgItem)
         self.tree.addTopLevelItem(self.qgsItem)
     else:
         gsIcon = QtGui.QIcon(
             os.path.dirname(__file__) + "/../images/geoserver.png")
         pgIcon = QtGui.QIcon(
             os.path.dirname(__file__) + "/../images/postgis.png")
         qgsIcon = QtGui.QIcon(
             os.path.dirname(__file__) + "/../images/qgis.png")
         self.gsPanel = GsTreePanel(self.explorer)
         self.qgsPanel = QgsTreePanel(self.explorer)
         self.pgPanel = PgTreePanel(self.explorer)
         self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
         self.tabbedPanel.addTab(self.pgPanel, pgIcon, 'PostGIS')
         self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')
 def fillData(self):        
     if self.singletab:                                     
         self.gsItem = GsCatalogsItem()                            
         self.pgItem = PgConnectionsItem()
         self.pgItem.populate()                                    
         self.qgsItem = QgsProjectItem()                
         self.qgsItem.populate()
         self.tree.addTopLevelItem(self.gsItem)                         
         self.tree.addTopLevelItem(self.pgItem)                                
         self.tree.addTopLevelItem(self.qgsItem) 
     else:                                
         gsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/geoserver.png")
         pgIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/postgis.png")
         qgsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/qgis.png") 
         self.gsPanel = GsTreePanel(self.explorer) 
         self.qgsPanel = QgsTreePanel(self.explorer)
         self.pgPanel = PgTreePanel(self.explorer)
         self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
         self.tabbedPanel.addTab(self.pgPanel, pgIcon,'PostGIS')
         self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')
class ExplorerWidget(QtGui.QWidget):
    def __init__(self, explorer, singletab = False):         
        self.explorer = explorer
        self.singletab = singletab
        QtGui.QWidget.__init__(self, None)         
        self.qgsItem = None
        verticalLayout = QtGui.QVBoxLayout()
        verticalLayout.setSpacing(2)
        verticalLayout.setMargin(0)
        if singletab:
            self.tree = ExplorerTreeWidget(explorer)
            verticalLayout.addWidget(self.tree)
        else:
            self.tabbedPanel = QtGui.QTabWidget()                                                               
            self.tabbedPanel.setVisible(True)
            verticalLayout.addWidget(self.tabbedPanel)  
            #self.toolbar = QtGui.QToolBar()
            #self.toolbar.setToolButtonStyle(Qt.ToolButtonIconOnly)                      
        self.setLayout(verticalLayout)
        self.fillData()
        
    def fillData(self):        
        if self.singletab:                                     
            self.gsItem = GsCatalogsItem()                            
            self.pgItem = PgConnectionsItem()
            self.pgItem.populate()                                    
            self.qgsItem = QgsProjectItem()                
            self.qgsItem.populate()
            self.tree.addTopLevelItem(self.gsItem)                         
            self.tree.addTopLevelItem(self.pgItem)
            geogitActive = QSettings().value("/OpenGeo/Settings/GeoGit/Active", defaultValue=False,)
            geogitActive = str(geogitActive).lower() == 'true'
            if geogitActive:
                self.geogitItem = GeogitRepositoriesItem()
                self.tree.addTopLevelItem(self.geogitItem)                                      
            self.tree.addTopLevelItem(self.qgsItem) 
        else:                                
            gsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/geoserver.png")
            pgIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/pg.png")
            qgsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/qgis.png") 
            self.gsPanel = GsTreePanel(self.explorer) 
            self.qgsPanel = QgsTreePanel(self.explorer)
            self.pgPanel = PgTreePanel(self.explorer)
            self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
            self.tabbedPanel.addTab(self.pgPanel, pgIcon,'PostGIS')
            self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')
            
            
    def catalogs(self):
        if self.singletab:
            return self.gsItem._catalogs            
        else:
            return self.gsPanel.catalogs     
        
    def geogitRepositories(self):
        if self.singletab:
            return self.geogitItem.repos
        else:
            return self.geogitPanel.repos
        
    def pgDatabases(self):
        if self.singletab:
            return self.pgItem.databases
        else:
            return self.pgPanel.databases()    
        
    def currentTreeWidget(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget()
        
    def currentTree(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget().tree       

    def updateQgisContent(self):        
        if self.singletab:
            self.qgsItem.refreshContent(self.explorer)
        else:
            self.qgsPanel.refreshContent()
            
        
    def refreshContent(self):
        tree = self.currentTreeWidget()
        if tree is not None:
            tree.refreshContent()
Example #7
0
class QgsTreePanel(QtGui.QWidget):    
    
    def __init__(self, explorer):                 
        QtGui.QWidget.__init__(self, None) 
        self.explorer = explorer
        self.projectItem = QgsProjectItem()                    
        verticalLayout = QtGui.QVBoxLayout()
        verticalLayout.setSpacing(2)
        verticalLayout.setMargin(0)         
        self.toptoolbar = QtGui.QToolBar()
        self.toptoolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)        
        verticalLayout.addWidget(self.toptoolbar)     
        self.tree = ExplorerTreeWidget(self.explorer)               
        verticalLayout.addWidget(self.tree)        
        actions = self.projectItem.contextMenuActions(self.tree, explorer)
        for action in actions:
            self.toptoolbar.addAction(action)        
        self.toolbar = QtGui.QToolBar()
        self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        layersIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/layer.png")
        self.layersAction = QtGui.QAction(layersIcon, "Layers", explorer)
        self.layersAction.triggered.connect(self.showLayers)                
        stylesIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/style.png")
        self.stylesAction = QtGui.QAction(stylesIcon, "Styles", explorer)
        self.stylesAction.triggered.connect(self.showStyles)
        groupsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/group.gif")
        self.groupsAction = QtGui.QAction(groupsIcon, "Groups", explorer)
        self.groupsAction.triggered.connect(self.showGroups)                
        self.toolbar.addAction(self.layersAction)        
        self.toolbar.addAction(self.stylesAction)
        self.toolbar.addAction(self.groupsAction)        
        verticalLayout.addWidget(self.toolbar)
        self.setLayout(verticalLayout)
        self.lastAction = None
        self.layersAction.trigger()
                
    def currentItem(self):
        self.tree.currentItem()
    
    def showGroups(self):  
        if self.sender() == self.lastAction:
            return      
        self.tree.clear()     
        groups = qgislayers.getGroups()
        for group in groups:
            groupItem = QgsGroupItem(group)                                
            groupItem.populate()
            self.tree.addTopLevelItem(groupItem)          
        self.lastAction = self.sender()
            
    def showStyles(self):
        if self.sender() == self.lastAction:
            return
        self.tree.clear()
        styles = qgislayers.getVectorLayers()
        for style in styles:
            styleItem = QgsStyleItem(style)               
            self.tree.addTopLevelItem(styleItem)
        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()                                   
            
    def refreshContent(self):
        self.toptoolbar.clear()
        actions = self.projectItem.contextMenuActions(self.tree, self.explorer)
        for action in actions:
            self.toptoolbar.addAction(action)
        action = self.lastAction
        self.lastAction = None
        if action is not None:
            action.trigger()  
class ExplorerWidget(QtGui.QWidget):
    def __init__(self, explorer, singletab = False):         
        self.explorer = explorer
        self.singletab = singletab
        QtGui.QWidget.__init__(self, None)         
        self.qgsItem = None
        verticalLayout = QtGui.QVBoxLayout()
        verticalLayout.setSpacing(2)
        verticalLayout.setMargin(0)
        if singletab:
            self.tree = ExplorerTreeWidget(explorer)
            verticalLayout.addWidget(self.tree)
        else:
            self.tabbedPanel = QtGui.QTabWidget()                                                               
            self.tabbedPanel.setVisible(True)
            verticalLayout.addWidget(self.tabbedPanel)                    
        self.setLayout(verticalLayout)
        self.fillData()
        
    def fillData(self):        
        if self.singletab:                                     
            self.gsItem = GsCatalogsItem()                            
            self.pgItem = PgConnectionsItem()
            self.pgItem.populate()                                    
            self.qgsItem = QgsProjectItem()                
            self.qgsItem.populate()
            self.tree.addTopLevelItem(self.gsItem)                         
            self.tree.addTopLevelItem(self.pgItem)                                
            self.tree.addTopLevelItem(self.qgsItem) 
        else:                                
            gsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/geoserver.png")
            pgIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/postgis.png")
            qgsIcon = QtGui.QIcon(os.path.dirname(__file__) + "/../images/qgis.png") 
            self.gsPanel = GsTreePanel(self.explorer) 
            self.qgsPanel = QgsTreePanel(self.explorer)
            self.pgPanel = PgTreePanel(self.explorer)
            self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
            self.tabbedPanel.addTab(self.pgPanel, pgIcon,'PostGIS')
            self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')
            
            
    def catalogs(self):
        if self.singletab:
            return self.gsItem._catalogs            
        else:
            return self.gsPanel.catalogs     
        
    def pgDatabases(self):
        if self.singletab:
            return self.pgItem.databases
        else:
            return self.pgPanel.databases()    
        
    def currentTreeWidget(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget()
        
    def currentTree(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget().tree       

    def updateQgisContent(self):        
        if self.singletab:
            self.qgsItem.refreshContent(self.explorer)
        else:
            self.qgsPanel.refreshContent()
            
        
    def refreshContent(self):
        tree = self.currentTreeWidget()
        if tree is not None:
            tree.refreshContent()
Example #9
0
class ExplorerWidget(QtGui.QWidget):
    def __init__(self, explorer, singletab=False):
        self.explorer = explorer
        self.singletab = singletab
        QtGui.QWidget.__init__(self, None)
        self.qgsItem = None
        verticalLayout = QtGui.QVBoxLayout()
        verticalLayout.setSpacing(2)
        verticalLayout.setMargin(0)
        if singletab:
            self.tree = ExplorerTreeWidget(explorer)
            verticalLayout.addWidget(self.tree)
        else:
            self.tabbedPanel = QtGui.QTabWidget()
            self.tabbedPanel.setVisible(True)
            verticalLayout.addWidget(self.tabbedPanel)
        self.setLayout(verticalLayout)
        self.fillData()

    def fillData(self):
        if self.singletab:
            self.gsItem = GsCatalogsItem()
            self.pgItem = PgConnectionsItem()
            self.pgItem.populate()
            self.qgsItem = QgsProjectItem()
            self.qgsItem.populate()
            self.tree.addTopLevelItem(self.gsItem)
            self.tree.addTopLevelItem(self.pgItem)
            self.tree.addTopLevelItem(self.qgsItem)
        else:
            gsIcon = QtGui.QIcon(
                os.path.dirname(__file__) + "/../images/geoserver.png")
            pgIcon = QtGui.QIcon(
                os.path.dirname(__file__) + "/../images/postgis.png")
            qgsIcon = QtGui.QIcon(
                os.path.dirname(__file__) + "/../images/qgis.png")
            self.gsPanel = GsTreePanel(self.explorer)
            self.qgsPanel = QgsTreePanel(self.explorer)
            self.pgPanel = PgTreePanel(self.explorer)
            self.tabbedPanel.addTab(self.gsPanel, gsIcon, 'GeoServer')
            self.tabbedPanel.addTab(self.pgPanel, pgIcon, 'PostGIS')
            self.tabbedPanel.addTab(self.qgsPanel, qgsIcon, 'QGIS')

    def catalogs(self):
        if self.singletab:
            return self.gsItem._catalogs
        else:
            return self.gsPanel.catalogs

    def pgDatabases(self):
        if self.singletab:
            return self.pgItem.databases
        else:
            return self.pgPanel.databases()

    def currentTreeWidget(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget()

    def currentTree(self):
        if self.singletab:
            return self.tree
        else:
            return self.tabbedPanel.currentWidget().tree

    def updateQgisContent(self):
        if self.singletab:
            self.qgsItem.refreshContent(self.explorer)
        else:
            self.qgsPanel.refreshContent()

    def refreshContent(self):
        tree = self.currentTreeWidget()
        if tree is not None:
            tree.refreshContent()
class QgsTreePanel(QtGui.QWidget):
    def __init__(self, explorer):
        QtGui.QWidget.__init__(self, None)
        self.explorer = explorer
        self.projectItem = QgsProjectItem()
        verticalLayout = QtGui.QVBoxLayout()
        verticalLayout.setSpacing(2)
        verticalLayout.setMargin(0)
        self.toptoolbar = QtGui.QToolBar()
        self.toptoolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        verticalLayout.addWidget(self.toptoolbar)
        self.tree = ExplorerTreeWidget(self.explorer)
        verticalLayout.addWidget(self.tree)
        actions = self.projectItem.contextMenuActions(self.tree, explorer)
        for action in actions:
            self.toptoolbar.addAction(action)
        self.toolbar = QtGui.QToolBar()
        self.toolbar.setToolButtonStyle(QtCore.Qt.ToolButtonIconOnly)
        layersIcon = QtGui.QIcon(
            os.path.dirname(__file__) + "/../images/layer.png")
        self.layersAction = QtGui.QAction(layersIcon, "Layers", explorer)
        self.layersAction.triggered.connect(self.showLayers)
        stylesIcon = QtGui.QIcon(
            os.path.dirname(__file__) + "/../images/style.png")
        self.stylesAction = QtGui.QAction(stylesIcon, "Styles", explorer)
        self.stylesAction.triggered.connect(self.showStyles)
        groupsIcon = QtGui.QIcon(
            os.path.dirname(__file__) + "/../images/group.gif")
        self.groupsAction = QtGui.QAction(groupsIcon, "Groups", explorer)
        self.groupsAction.triggered.connect(self.showGroups)
        self.toolbar.addAction(self.layersAction)
        self.toolbar.addAction(self.stylesAction)
        self.toolbar.addAction(self.groupsAction)
        verticalLayout.addWidget(self.toolbar)
        self.setLayout(verticalLayout)
        self.lastAction = None
        self.layersAction.trigger()

    def currentItem(self):
        self.tree.currentItem()

    def showGroups(self):
        if self.sender() == self.lastAction:
            return
        self.tree.clear()
        groups = qgislayers.getGroups()
        for group in groups:
            groupItem = QgsGroupItem(group)
            groupItem.populate()
            self.tree.addTopLevelItem(groupItem)
        self.lastAction = self.sender()

    def showStyles(self):
        if self.sender() == self.lastAction:
            return
        self.tree.clear()
        styles = qgislayers.getVectorLayers()
        for style in styles:
            styleItem = QgsStyleItem(style)
            self.tree.addTopLevelItem(styleItem)
        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()

    def refreshContent(self):
        self.toptoolbar.clear()
        actions = self.projectItem.contextMenuActions(self.tree, self.explorer)
        for action in actions:
            self.toptoolbar.addAction(action)
        action = self.lastAction
        self.lastAction = None
        if action is not None:
            action.trigger()