def testGenerateUniqueTitle(self): project = QgsProject() manager = QgsLayoutManager(project) self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.PrintLayout), 'Layout 1') self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1') layout = QgsPrintLayout(project) layout.setName(manager.generateUniqueTitle()) manager.addLayout(layout) self.assertEqual(manager.generateUniqueTitle(), 'Layout 2') self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1') layout2 = QgsPrintLayout(project) layout2.setName(manager.generateUniqueTitle()) manager.addLayout(layout2) self.assertEqual(manager.generateUniqueTitle(), 'Layout 3') report1 = QgsReport(project) report1.setName(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report)) manager.addLayout(report1) self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 2') manager.clear() self.assertEqual(manager.generateUniqueTitle(), 'Layout 1') self.assertEqual(manager.generateUniqueTitle(QgsMasterLayoutInterface.Report), 'Report 1')
def testGenerateUniqueTitle(self): project = QgsProject() manager = QgsLayoutManager(project) self.assertEqual(manager.generateUniqueTitle(), 'Composer 1') composition = QgsComposition(project) composition.setName(manager.generateUniqueTitle()) manager.addComposition(composition) self.assertEqual(manager.generateUniqueTitle(), 'Composer 2') composition2 = QgsComposition(project) composition2.setName(manager.generateUniqueTitle()) manager.addComposition(composition2) self.assertEqual(manager.generateUniqueTitle(), 'Composer 3') manager.clear() self.assertEqual(manager.generateUniqueTitle(), 'Composer 1')
def testGenerateUniqueTitle(self): project = QgsProject() manager = QgsLayoutManager(project) self.assertEqual(manager.generateUniqueTitle(), 'Layout 1') layout = QgsLayout(project) layout.setName(manager.generateUniqueTitle()) manager.addLayout(layout) self.assertEqual(manager.generateUniqueTitle(), 'Layout 2') layout2 = QgsLayout(project) layout2.setName(manager.generateUniqueTitle()) manager.addLayout(layout2) self.assertEqual(manager.generateUniqueTitle(), 'Layout 3') manager.clear() self.assertEqual(manager.generateUniqueTitle(), 'Layout 1')
def testClear(self): project = QgsProject() manager = QgsLayoutManager(project) # add a bunch of layouts layout = QgsPrintLayout(project) layout.setName('test layout') layout2 = QgsPrintLayout(project) layout2.setName('test layout2') layout3 = QgsPrintLayout(project) layout3.setName('test layout3') manager.addLayout(layout) manager.addLayout(layout2) manager.addLayout(layout3) layout_removed_spy = QSignalSpy(manager.layoutRemoved) layout_about_to_be_removed_spy = QSignalSpy(manager.layoutAboutToBeRemoved) manager.clear() self.assertEqual(len(manager.layouts()), 0) self.assertEqual(len(layout_removed_spy), 3) self.assertEqual(len(layout_about_to_be_removed_spy), 3)
def testClear(self): project = QgsProject() manager = QgsLayoutManager(project) # add a bunch of compositions composition = QgsComposition(project) composition.setName('test composition') composition2 = QgsComposition(project) composition2.setName('test composition2') composition3 = QgsComposition(project) composition3.setName('test composition3') manager.addComposition(composition) manager.addComposition(composition2) manager.addComposition(composition3) composition_removed_spy = QSignalSpy(manager.compositionRemoved) composition_about_to_be_removed_spy = QSignalSpy(manager.compositionAboutToBeRemoved) manager.clear() self.assertEqual(len(manager.compositions()), 0) self.assertEqual(len(composition_removed_spy), 3) self.assertEqual(len(composition_about_to_be_removed_spy), 3)
def testModel(self): project = QgsProject() manager = QgsLayoutManager(project) model = QgsLayoutManagerModel(manager) self.assertEqual(model.rowCount(QModelIndex()), 0) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual(model.indexFromLayout(None), QModelIndex()) layout = QgsPrintLayout(project) layout.setName('test layout') self.assertEqual(model.indexFromLayout(layout), QModelIndex()) self.assertTrue(manager.addLayout(layout)) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex())) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(1, 0, QModelIndex())), None) layout.setName('test Layout') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout') layout2 = QgsPrintLayout(project) layout2.setName('test layout2') self.assertTrue(manager.addLayout(layout2)) self.assertEqual(model.rowCount(QModelIndex()), 2) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex())) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual( model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout2) self.assertEqual(model.indexFromLayout(layout2), model.index(1, 0, QModelIndex())) manager.removeLayout(layout) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout2) self.assertEqual( model.layoutFromIndex(model.index(1, 0, QModelIndex())), None) self.assertEqual(model.indexFromLayout(layout2), model.index(0, 0, QModelIndex())) manager.clear() self.assertEqual(model.rowCount(QModelIndex()), 0) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) # with empty row model.setAllowEmptyLayout(True) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) layout = QgsPrintLayout(project) layout.setName('test layout') self.assertTrue(manager.addLayout(layout)) self.assertEqual(model.rowCount(QModelIndex()), 2) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual( model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual( model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex())) layout2 = QgsPrintLayout(project) layout2.setName('test layout2') self.assertTrue(manager.addLayout(layout2)) self.assertEqual(model.rowCount(QModelIndex()), 3) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual( model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual( model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual( model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual( model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout) self.assertEqual( model.layoutFromIndex(model.index(2, 0, QModelIndex())), layout2) self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex())) self.assertEqual(model.indexFromLayout(layout2), model.index(2, 0, QModelIndex())) manager.clear() self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual( model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual( model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)
def testModel(self): project = QgsProject() manager = QgsLayoutManager(project) model = QgsLayoutManagerModel(manager) self.assertEqual(model.rowCount(QModelIndex()), 0) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual(model.indexFromLayout(None), QModelIndex()) layout = QgsPrintLayout(project) layout.setName('test layout') self.assertEqual(model.indexFromLayout(layout), QModelIndex()) self.assertTrue(manager.addLayout(layout)) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex())) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), None) layout.setName('test Layout') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout') layout2 = QgsPrintLayout(project) layout2.setName('test layout2') self.assertTrue(manager.addLayout(layout2)) self.assertEqual(model.rowCount(QModelIndex()), 2) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test Layout') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(0, 0, QModelIndex())) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout2) self.assertEqual(model.indexFromLayout(layout2), model.index(1, 0, QModelIndex())) manager.removeLayout(layout) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), layout2) self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), None) self.assertEqual(model.indexFromLayout(layout2), model.index(0, 0, QModelIndex())) manager.clear() self.assertEqual(model.rowCount(QModelIndex()), 0) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) # with empty row model.setAllowEmptyLayout(True) self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) layout = QgsPrintLayout(project) layout.setName('test layout') self.assertTrue(manager.addLayout(layout)) self.assertEqual(model.rowCount(QModelIndex()), 2) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout) self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex())) layout2 = QgsPrintLayout(project) layout2.setName('test layout2') self.assertTrue(manager.addLayout(layout2)) self.assertEqual(model.rowCount(QModelIndex()), 3) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.data(model.index(1, 0, QModelIndex()), Qt.DisplayRole), 'test layout') self.assertEqual(model.data(model.index(1, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout) self.assertEqual(model.data(model.index(2, 0, QModelIndex()), Qt.DisplayRole), 'test layout2') self.assertEqual(model.data(model.index(2, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), layout2) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None) self.assertEqual(model.layoutFromIndex(model.index(1, 0, QModelIndex())), layout) self.assertEqual(model.layoutFromIndex(model.index(2, 0, QModelIndex())), layout2) self.assertEqual(model.indexFromLayout(layout), model.index(1, 0, QModelIndex())) self.assertEqual(model.indexFromLayout(layout2), model.index(2, 0, QModelIndex())) manager.clear() self.assertEqual(model.rowCount(QModelIndex()), 1) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), Qt.DisplayRole), None) self.assertEqual(model.data(model.index(0, 0, QModelIndex()), QgsLayoutManagerModel.LayoutRole), None) self.assertEqual(model.layoutFromIndex(model.index(0, 0, QModelIndex())), None)