ソースを参照

reorder bug, wms order, unexportable layers hidden

Honza 5 年 前
コミット
008383bbe4
2 ファイル変更29 行追加19 行削除
  1. 29 19
      Atlas.py
  2. BIN
      __pycache__/Atlas.cpython-37.pyc

+ 29 - 19
Atlas.py

@@ -524,8 +524,9 @@ class Atlas:
                 layerType = 'vector layer'
             else:
                 layerType = 'raster layer'
-            item = QTreeWidgetItem([layer.name(), layerType])           
-            self.dlg.treeWidget.addTopLevelItem(item)
+            item = QTreeWidgetItem([layer.name(), layerType])    
+            if (layerType == 'vector layer'):
+                self.dlg.treeWidget.addTopLevelItem(item)
         self.dlg.setWindowModality(Qt.ApplicationModal)
 
         self.dlg.pushButton_close.setStyleSheet("#pushButton_close {color: #fff !important;text-transform: uppercase;  text-decoration: none;   background: #72c02c;   padding: 20px;  border-radius: 50px;    display: inline-block; border: none;transition: all 0.4s ease 0s;} #pushButton_close:hover{background: #66ab27 ;}")
@@ -876,20 +877,28 @@ class Atlas:
     def reorderLayers(self, pos, order, x):
         self.compositeList[x]['layers']
         i = 0
-        
-        for lay in self.compositeList[x]['layers']:
-            #print (lay)
-            if i == pos:
+        compositeLength = len(self.compositeList[x]['layers'])
+       
+        if (pos + order < 0):
+            QMessageBox.information(None, "Error", "Layer is already on the top level!")
+            
+        elif( pos + order == compositeLength):
+            QMessageBox.information(None, "Error", "Layer is already on the bottom level!")
+
+        else:
+            for lay in self.compositeList[x]['layers']:
+                #print (lay)
+                if i == pos:
 
-                pom = self.compositeList[x]['layers'][i]
-                self.compositeList[x]['layers'][i] = self.compositeList[x]['layers'][i + order]
-                self.compositeList[x]['layers'][i + order] = pom     
+                    pom = self.compositeList[x]['layers'][i]
+                    self.compositeList[x]['layers'][i] = self.compositeList[x]['layers'][i + order]
+                    self.compositeList[x]['layers'][i + order] = pom     
 
-            i = i + 1
-        print(self.compositeList[x]['layers'])
-        self.importMap(x, 'mod')
-        self.refreshLayerList()
-        self.dlg.listWidget_listLayers.setCurrentRow(pos + order)
+                i = i + 1
+            print(self.compositeList[x]['layers'])
+            self.importMap(x, 'mod')
+            self.refreshLayerList()
+            self.dlg.listWidget_listLayers.setCurrentRow(pos + order)
 
     def showThumbnail(self, it):
         try:
@@ -1976,10 +1985,10 @@ class Atlas:
                 self.loadWfs(repairUrl, layerName, groupName)
     def loadService(self, data, service, groupName = ''):     
         
-        print(len(data['layers']))
-        for x in range(0, len(data['layers'])):        
+        #print(len(data['layers']))
+        for x in range(len(data['layers'])- 1, -1, -1):       ## descending order 
             #repairUrl = self.convertUrlFromHex(data['layers'][x]['url'])  
-            repairUrl = "http://layman.lesprojekt.cz/geoserver/"+self.laymanUsername+"/ows"
+            repairUrl = self.URI+"/geoserver/"+self.laymanUsername+"/ows"
             layerName = data['layers'][x]['params']['LAYERS']
             format = data['layers'][x]['params']['FORMAT']
            #  epsg = str(data['groups']['projection']).upper()
@@ -1988,6 +1997,7 @@ class Atlas:
             wmsName = data['layers'][x]['params']['LAYERS']  
             if self.checkLayerOnLayman(layerName):
                 if service == 'WMS':         
+                    print("zzzzzzz" +layerName)
                     self.loadWms(repairUrl, layerName, format,epsg, groupName)
 
                 if service == 'WFS':          
@@ -2009,7 +2019,7 @@ class Atlas:
         epsg = 'EPSG:4326'        
         uri = "http://layman.lesprojekt.cz/geoserver/"+self.laymanUsername+"/ows?srsname="+epsg+"&typename="+self.laymanUsername+":"+layerName+"&restrictToRequestBBOX=1&pagingEnabled=True &version=auto&request=GetFeature&service=WFS"
         
-        print(uri)
+        print(uri)        
         vlayer = QgsVectorLayer(uri, layerName, "WFS")
         print(vlayer.isValid())  
         if (groupName != ''):
@@ -2023,7 +2033,7 @@ class Atlas:
             group = root.addGroup(groupName)  
             group = self.reorderToTop(groupName)
         QgsProject.instance().addMapLayer(layer,False)
-        group.insertChildNode(1,QgsLayerTreeLayer(layer))         
+        group.insertChildNode(0,QgsLayerTreeLayer(layer))         
     def reorderToTop(self, name):
         root = QgsProject.instance().layerTreeRoot()
         for ch in root.children():

BIN
__pycache__/Atlas.cpython-37.pyc