def testQgsLayoutGuideProxyModel(self): p = QgsProject() l = QgsLayout(p) l.initializeDefaults() # add a page page2 = QgsLayoutItemPage(l) page2.setPageSize('A3') l.pageCollection().addPage(page2) guides = l.guides() hoz_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 0) hoz_filter.setSourceModel(guides) hoz_page_1_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 1) hoz_page_1_filter.setSourceModel(guides) vert_filter = QgsLayoutGuideProxyModel(None, Qt.Vertical, 0) vert_filter.setSourceModel(guides) # no guides initially self.assertEqual(hoz_filter.rowCount(QModelIndex()), 0) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 0) self.assertEqual(vert_filter.rowCount(QModelIndex()), 0) # add some guides g1 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(5, QgsUnitTypes.LayoutCentimeters), l.pageCollection().page(0)) guides.addGuide(g1) g2 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(15), l.pageCollection().page(1)) guides.addGuide(g2) g3 = QgsLayoutGuide(Qt.Vertical, QgsLayoutMeasurement(35), l.pageCollection().page(0)) guides.addGuide(g3) self.assertEqual(hoz_filter.rowCount(QModelIndex()), 1) self.assertEqual(hoz_filter.data(hoz_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1) self.assertEqual(hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 15) self.assertEqual(vert_filter.rowCount(QModelIndex()), 1) self.assertEqual(vert_filter.data(vert_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 35) # change page hoz_page_1_filter.setPage(0) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1) self.assertEqual(hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5)
def testQgsLayoutGuideProxyModel(self): p = QgsProject() l = QgsLayout(p) l.initializeDefaults() # add a page page2 = QgsLayoutItemPage(l) page2.setPageSize('A3') l.pageCollection().addPage(page2) guides = l.guides() hoz_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 0) hoz_filter.setSourceModel(guides) hoz_page_1_filter = QgsLayoutGuideProxyModel(None, Qt.Horizontal, 1) hoz_page_1_filter.setSourceModel(guides) vert_filter = QgsLayoutGuideProxyModel(None, Qt.Vertical, 0) vert_filter.setSourceModel(guides) # no guides initially self.assertEqual(hoz_filter.rowCount(QModelIndex()), 0) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 0) self.assertEqual(vert_filter.rowCount(QModelIndex()), 0) # add some guides g1 = QgsLayoutGuide( Qt.Horizontal, QgsLayoutMeasurement(5, QgsUnitTypes.LayoutCentimeters), l.pageCollection().page(0)) guides.addGuide(g1) g2 = QgsLayoutGuide(Qt.Horizontal, QgsLayoutMeasurement(15), l.pageCollection().page(1)) guides.addGuide(g2) g3 = QgsLayoutGuide(Qt.Vertical, QgsLayoutMeasurement(35), l.pageCollection().page(0)) guides.addGuide(g3) self.assertEqual(hoz_filter.rowCount(QModelIndex()), 1) self.assertEqual( hoz_filter.data(hoz_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1) self.assertEqual( hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 15) self.assertEqual(vert_filter.rowCount(QModelIndex()), 1) self.assertEqual( vert_filter.data(vert_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 35) # change page hoz_page_1_filter.setPage(0) self.assertEqual(hoz_page_1_filter.rowCount(QModelIndex()), 1) self.assertEqual( hoz_page_1_filter.data(hoz_page_1_filter.index(0, 0), QgsLayoutGuideCollection.PositionRole), 5)