|
30 | 30 |
|
31 | 31 | from qgis.testing import start_app, unittest |
32 | 32 |
|
| 33 | +import sip |
| 34 | + |
33 | 35 | start_app() |
34 | 36 |
|
35 | 37 |
|
@@ -249,6 +251,48 @@ def testClear(self): |
249 | 251 | guides.clear() |
250 | 252 | self.assertEqual(guides.guides(QgsLayoutGuide.Horizontal), []) |
251 | 253 |
|
| 254 | + def testApplyToOtherPages(self): |
| 255 | + p = QgsProject() |
| 256 | + l = QgsLayout(p) |
| 257 | + l.initializeDefaults() |
| 258 | + page2 = QgsLayoutItemPage(l) |
| 259 | + page2.setPageSize('A6') |
| 260 | + l.pageCollection().addPage(page2) |
| 261 | + guides = l.guides() |
| 262 | + |
| 263 | + # add some guides |
| 264 | + g1 = QgsLayoutGuide(QgsLayoutGuide.Horizontal, QgsLayoutMeasurement(5)) |
| 265 | + guides.addGuide(g1) |
| 266 | + g2 = QgsLayoutGuide(QgsLayoutGuide.Vertical, QgsLayoutMeasurement(6)) |
| 267 | + guides.addGuide(g2) |
| 268 | + g3 = QgsLayoutGuide(QgsLayoutGuide.Horizontal, QgsLayoutMeasurement(190)) |
| 269 | + guides.addGuide(g3) |
| 270 | + g4 = QgsLayoutGuide(QgsLayoutGuide.Horizontal, QgsLayoutMeasurement(1)) |
| 271 | + g4.setPage(1) |
| 272 | + guides.addGuide(g4) |
| 273 | + |
| 274 | + # apply guides from page 0 - should delete g4 |
| 275 | + guides.applyGuidesToAllOtherPages(0) |
| 276 | + self.assertEqual(guides.guides(QgsLayoutGuide.Horizontal, 0), [g1, g3]) |
| 277 | + self.assertEqual(guides.guides(QgsLayoutGuide.Vertical, 0), [g2]) |
| 278 | + self.assertTrue(sip.isdeleted(g4)) |
| 279 | + |
| 280 | + # g3 is outside of page 2 bounds - should not be copied |
| 281 | + self.assertEqual(len(guides.guides(QgsLayoutGuide.Horizontal, 1)), 1) |
| 282 | + self.assertEqual(guides.guides(QgsLayoutGuide.Horizontal, 1)[0].position().length(), 5) |
| 283 | + self.assertEqual(len(guides.guides(QgsLayoutGuide.Vertical, 1)), 1) |
| 284 | + self.assertEqual(guides.guides(QgsLayoutGuide.Vertical, 1)[0].position().length(), 6) |
| 285 | + |
| 286 | + # apply guides from page 1 to 0 |
| 287 | + guides.applyGuidesToAllOtherPages(1) |
| 288 | + self.assertTrue(sip.isdeleted(g1)) |
| 289 | + self.assertTrue(sip.isdeleted(g2)) |
| 290 | + self.assertTrue(sip.isdeleted(g3)) |
| 291 | + self.assertEqual(len(guides.guides(QgsLayoutGuide.Horizontal, 0)), 1) |
| 292 | + self.assertEqual(guides.guides(QgsLayoutGuide.Horizontal, 0)[0].position().length(), 5) |
| 293 | + self.assertEqual(len(guides.guides(QgsLayoutGuide.Vertical, 0)), 1) |
| 294 | + self.assertEqual(guides.guides(QgsLayoutGuide.Vertical, 0)[0].position().length(), 6) |
| 295 | + |
252 | 296 |
|
253 | 297 | if __name__ == '__main__': |
254 | 298 | unittest.main() |
0 commit comments