@@ -188,6 +188,47 @@ def testDistribute(self):
188188 self .assertEqual (item3 .positionWithUnits ().units (), QgsUnitTypes .LayoutCentimeters )
189189 self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.8 , 1.6 , QgsUnitTypes .LayoutCentimeters ))
190190
191+ def testResize (self ):
192+ p = QgsProject ()
193+ l = QgsLayout (p )
194+
195+ # add some items
196+ item1 = QgsLayoutItemMap (l )
197+ item1 .attemptMove (QgsLayoutPoint (4 , 8 , QgsUnitTypes .LayoutMillimeters ))
198+ item1 .attemptResize (QgsLayoutSize (18 , 12 , QgsUnitTypes .LayoutMillimeters ))
199+ l .addItem (item1 )
200+ item2 = QgsLayoutItemMap (l )
201+ item2 .attemptMove (QgsLayoutPoint (7 , 10 , QgsUnitTypes .LayoutMillimeters ))
202+ item2 .attemptResize (QgsLayoutSize (10 , 9 , QgsUnitTypes .LayoutMillimeters ))
203+ l .addItem (item2 )
204+ item3 = QgsLayoutItemMap (l )
205+ item3 .attemptMove (QgsLayoutPoint (0.8 , 1.2 , QgsUnitTypes .LayoutCentimeters ))
206+ item3 .attemptResize (QgsLayoutSize (1.8 , 1.6 , QgsUnitTypes .LayoutCentimeters ))
207+ l .addItem (item3 )
208+
209+ QgsLayoutAligner .resizeItems (l , [item1 , item2 , item3 ], QgsLayoutAligner .ResizeNarrowest )
210+ self .assertEqual (item1 .sizeWithUnits (), QgsLayoutSize (10 , 12 , QgsUnitTypes .LayoutMillimeters ))
211+ self .assertEqual (item2 .sizeWithUnits (), QgsLayoutSize (10 , 9 , QgsUnitTypes .LayoutMillimeters ))
212+ self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.0 , 1.6 , QgsUnitTypes .LayoutCentimeters ))
213+ l .undoStack ().stack ().undo ()
214+
215+ QgsLayoutAligner .resizeItems (l , [item1 , item2 , item3 ], QgsLayoutAligner .ResizeWidest )
216+ self .assertEqual (item1 .sizeWithUnits (), QgsLayoutSize (18 , 12 , QgsUnitTypes .LayoutMillimeters ))
217+ self .assertEqual (item2 .sizeWithUnits (), QgsLayoutSize (18 , 9 , QgsUnitTypes .LayoutMillimeters ))
218+ self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.8 , 1.6 , QgsUnitTypes .LayoutCentimeters ))
219+ l .undoStack ().stack ().undo ()
220+
221+ QgsLayoutAligner .resizeItems (l , [item1 , item2 , item3 ], QgsLayoutAligner .ResizeShortest )
222+ self .assertEqual (item1 .sizeWithUnits (), QgsLayoutSize (18 , 9 , QgsUnitTypes .LayoutMillimeters ))
223+ self .assertEqual (item2 .sizeWithUnits (), QgsLayoutSize (10 , 9 , QgsUnitTypes .LayoutMillimeters ))
224+ self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.8 , 0.9 , QgsUnitTypes .LayoutCentimeters ))
225+ l .undoStack ().stack ().undo ()
226+
227+ QgsLayoutAligner .resizeItems (l , [item1 , item2 , item3 ], QgsLayoutAligner .ResizeTallest )
228+ self .assertEqual (item1 .sizeWithUnits (), QgsLayoutSize (18 , 16 , QgsUnitTypes .LayoutMillimeters ))
229+ self .assertEqual (item2 .sizeWithUnits (), QgsLayoutSize (10 , 16 , QgsUnitTypes .LayoutMillimeters ))
230+ self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.8 , 1.6 , QgsUnitTypes .LayoutCentimeters ))
231+
191232
192233if __name__ == '__main__' :
193234 unittest .main ()
0 commit comments