@@ -636,6 +636,36 @@ def testResize(self):
636
636
self .assertEqual (item2 .sizeWithUnits (), QgsLayoutSize (19 , 19 , QgsUnitTypes .LayoutMillimeters ))
637
637
self .assertEqual (item3 .sizeWithUnits (), QgsLayoutSize (1.8 , 1.8 , QgsUnitTypes .LayoutCentimeters ))
638
638
639
+ def testDeleteItems (self ):
640
+ p = QgsProject ()
641
+ l = QgsLayout (p )
642
+
643
+ # add some items
644
+ item1 = QgsLayoutItemLabel (l )
645
+ item1 .setText ('label 1' )
646
+ l .addLayoutItem (item1 )
647
+ item2 = QgsLayoutItemLabel (l )
648
+ item2 .setText ('label 2' )
649
+ l .addLayoutItem (item2 )
650
+ item3 = QgsLayoutItemLabel (l )
651
+ item3 .setText ('label 2' )
652
+ l .addLayoutItem (item3 )
653
+
654
+ view = QgsLayoutView ()
655
+ view .setCurrentLayout (l )
656
+ count_before = len (l .items ())
657
+ view .deleteSelectedItems ()
658
+ self .assertEqual (len (l .items ()), count_before )
659
+
660
+ item2 .setSelected (True )
661
+ view .deleteSelectedItems ()
662
+ self .assertEqual (len (l .items ()), count_before - 1 )
663
+ self .assertIn (item1 , l .items ())
664
+ self .assertIn (item3 , l .items ())
665
+ view .deleteItems ([item3 ])
666
+ self .assertEqual (len (l .items ()), count_before - 2 )
667
+ self .assertIn (item1 , l .items ())
668
+
639
669
def testCopyPaste (self ):
640
670
p = QgsProject ()
641
671
l = QgsLayout (p )
@@ -670,6 +700,16 @@ def testCopyPaste(self):
670
700
self .assertIn (sip .cast (pasted [0 ], QgsLayoutItemLabel ).text (), ('label 1' , 'label 2' ))
671
701
self .assertIn (sip .cast (pasted [1 ], QgsLayoutItemLabel ).text (), ('label 1' , 'label 2' ))
672
702
703
+ # copy specific item
704
+ view .copyItems ([item2 ], QgsLayoutView .ClipboardCopy )
705
+ l2 = QgsLayout (p )
706
+ view2 = QgsLayoutView ()
707
+ view2 .setCurrentLayout (l2 )
708
+ pasted = view2 .pasteItems (QgsLayoutView .PasteModeCursor )
709
+ self .assertEqual (len (pasted ), 1 )
710
+ self .assertIn (pasted [0 ], l2 .items ())
711
+ self .assertEqual (sip .cast (pasted [0 ], QgsLayoutItemLabel ).text (), 'label 2' )
712
+
673
713
def testCutPaste (self ):
674
714
p = QgsProject ()
675
715
l = QgsLayout (p )
0 commit comments