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))
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))
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())