fix__2735_selection_within_subset.diff

Fix Random selection within subsets - Giuseppe Sucameli, 2010-07-03 05:40 PM

Download (1.74 KB)

View differences:

python/plugins/fTools/tools/doSubsetSelect.py (working copy)
82 82
        self.buttonOk.setEnabled( True )
83 83

  
84 84
    def compute(self, inVect, inField, value, perc, progressBar):
85
        mlayer = ftools_utils.getMapLayerByName(inVect)
86
        mlayer.removeSelection(True)
85 87
        vlayer = ftools_utils.getVectorLayerByName(inVect)
86 88
        vprovider = vlayer.dataProvider()
87
        mlayer = ftools_utils.getMapLayerByName(inVect)
88 89
        allAttrs = vprovider.attributeIndexes()
89 90
        vprovider.select(allAttrs)
90 91
        index = vprovider.fieldNameIndex(inField)
......
93 94
        unique = ftools_utils.getUniqueValues(vprovider, int(index))
94 95
        inFeat = QgsFeature()
95 96
        selran = []
96
        mlayer.removeSelection(True)
97 97
        nFeat = vprovider.featureCount() * len(unique)
98 98
        nElement = 0
99 99
        self.progressBar.setValue(0)
......
111 111
                    self.progressBar.setValue(nElement)
112 112
                if perc: selVal = int(round((value / 100.0000) * len(FIDs), 0))
113 113
                else: selVal = value
114
                if selVal >= len(FIDs): selran = FIDs
115
                else: selran = random.sample(FIDs, selVal)
116
                selran.extend(mlayer.selectedFeaturesIds())
117
                mlayer.setSelectedFeatures(selran)
114
                if selVal >= len(FIDs): selFeat = FIDs
115
                else: selFeat = random.sample(FIDs, selVal)
116
                selran.extend(selFeat)
117
            mlayer.setSelectedFeatures(selran)
118 118
        else:
119 119
            mlayer.setSelectedFeatures(range(0, mlayer.featureCount()))