def testSameColumns(self):
        """ test hasSameColumns() check """

        config = QgsAttributeTableConfig()
        c1 = QgsAttributeTableConfig.ColumnConfig()
        c1.name = 'test'
        c1.hidden = False
        c1.width = 100
        c2 = QgsAttributeTableConfig.ColumnConfig()
        c2.name = 'test2'
        c2.hidden = False
        c2.width = 120
        config.setColumns([c1, c2])
        config2 = QgsAttributeTableConfig()

        config2.setColumns([c1, c2])
        self.assertTrue(config.hasSameColumns(config2))

        c1.width = 200
        config2.setColumns([c1, c2])
        self.assertTrue(config.hasSameColumns(config2))

        c1.hidden = True
        config2.setColumns([c1, c2])
        self.assertFalse(config.hasSameColumns(config2))

        config2.setColumns([c2, c1])
        self.assertFalse(config.hasSameColumns(config2))

        c2.name = 'test3'
        config2.setColumns([c1, c2])
        self.assertFalse(config.hasSameColumns(config2))
Exemplo n.º 2
0
    def testSameColumns(self):
        """ test hasSameColumns() check """

        config = QgsAttributeTableConfig()
        c1 = QgsAttributeTableConfig.ColumnConfig()
        c1.name = 'test'
        c1.hidden = False
        c1.width = 100
        c2 = QgsAttributeTableConfig.ColumnConfig()
        c2.name = 'test2'
        c2.hidden = False
        c2.width = 120
        config.setColumns([c1, c2])
        config2 = QgsAttributeTableConfig()

        config2.setColumns([c1, c2])
        self.assertTrue(config.hasSameColumns(config2))

        c1.width = 200
        config2.setColumns([c1, c2])
        self.assertTrue(config.hasSameColumns(config2))

        c1.hidden = True
        config2.setColumns([c1, c2])
        self.assertFalse(config.hasSameColumns(config2))

        config2.setColumns([c2, c1])
        self.assertFalse(config.hasSameColumns(config2))

        c2.name = 'test3'
        config2.setColumns([c1, c2])
        self.assertFalse(config.hasSameColumns(config2))
Exemplo n.º 3
0
def layer_has_custom_attribute_table(layer) -> bool:
    # Do not use the isEmpty() on the QgsVectorLayer. It's automatically populated if empty with the fields.
    config = QgsAttributeTableConfig()
    config.update(layer.fields())
    return not config.hasSameColumns(layer.attributeTableConfig())