@@ -758,6 +758,7 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
758
758
int zOrderOffset = mItemZList .size ();
759
759
760
760
QPointF pasteShiftPos;
761
+ QgsComposerItem* lastPastedItem = 0 ;
761
762
if ( pos )
762
763
{
763
764
// If we are placing items relative to a certain point, then calculate how much we need
@@ -767,6 +768,9 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
767
768
// next, calculate how much each item needs to be shifted from its original position
768
769
// so that it's placed at the correct relative position
769
770
pasteShiftPos = *pos - minItemPos;
771
+
772
+ // since we are pasting items, clear the existing selection
773
+ clearSelection ();
770
774
}
771
775
772
776
if ( pasteInPlace )
@@ -790,6 +794,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
790
794
{
791
795
newLabel->move ( pasteShiftPos.x (), pasteShiftPos.y () );
792
796
}
797
+ newLabel->setSelected ( true );
798
+ lastPastedItem = newLabel;
793
799
}
794
800
addComposerLabel ( newLabel );
795
801
newLabel->setZValue ( newLabel->zValue () + zOrderOffset );
@@ -825,6 +831,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
825
831
{
826
832
newMap->move ( pasteShiftPos.x (), pasteShiftPos.y () );
827
833
}
834
+ newMap->setSelected ( true );
835
+ lastPastedItem = newMap;
828
836
}
829
837
830
838
if ( addUndoCommands )
@@ -865,6 +873,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
865
873
{
866
874
newArrow->move ( pasteShiftPos.x (), pasteShiftPos.y () );
867
875
}
876
+ newArrow->setSelected ( true );
877
+ lastPastedItem = newArrow;
868
878
}
869
879
addComposerArrow ( newArrow );
870
880
newArrow->setZValue ( newArrow->zValue () + zOrderOffset );
@@ -891,6 +901,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
891
901
{
892
902
newScaleBar->move ( pasteShiftPos.x (), pasteShiftPos.y () );
893
903
}
904
+ newScaleBar->setSelected ( true );
905
+ lastPastedItem = newScaleBar;
894
906
}
895
907
addComposerScaleBar ( newScaleBar );
896
908
newScaleBar->setZValue ( newScaleBar->zValue () + zOrderOffset );
@@ -919,6 +931,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
919
931
{
920
932
newShape->move ( pasteShiftPos.x (), pasteShiftPos.y () );
921
933
}
934
+ newShape->setSelected ( true );
935
+ lastPastedItem = newShape;
922
936
}
923
937
addComposerShape ( newShape );
924
938
newShape->setZValue ( newShape->zValue () + zOrderOffset );
@@ -945,6 +959,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
945
959
{
946
960
newPicture->move ( pasteShiftPos.x (), pasteShiftPos.y () );
947
961
}
962
+ newPicture->setSelected ( true );
963
+ lastPastedItem = newPicture;
948
964
}
949
965
addComposerPicture ( newPicture );
950
966
newPicture->setZValue ( newPicture->zValue () + zOrderOffset );
@@ -971,6 +987,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
971
987
{
972
988
newLegend->move ( pasteShiftPos.x (), pasteShiftPos.y () );
973
989
}
990
+ newLegend->setSelected ( true );
991
+ lastPastedItem = newLegend;
974
992
}
975
993
addComposerLegend ( newLegend );
976
994
newLegend->setZValue ( newLegend->zValue () + zOrderOffset );
@@ -997,6 +1015,8 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
997
1015
{
998
1016
newTable->move ( pasteShiftPos.x (), pasteShiftPos.y () );
999
1017
}
1018
+ newTable->setSelected ( true );
1019
+ lastPastedItem = newTable;
1000
1020
}
1001
1021
addComposerTable ( newTable );
1002
1022
newTable->setZValue ( newTable->zValue () + zOrderOffset );
@@ -1042,6 +1062,11 @@ void QgsComposition::addItemsFromXML( const QDomElement& elem, const QDomDocumen
1042
1062
// Make sure z order list matches the actual order of items in the scene.
1043
1063
refreshZList ();
1044
1064
1065
+ if ( lastPastedItem )
1066
+ {
1067
+ emit selectedItemChanged ( lastPastedItem );
1068
+ }
1069
+
1045
1070
delete pasteInPlacePt;
1046
1071
pasteInPlacePt = 0 ;
1047
1072
@@ -1934,18 +1959,12 @@ void QgsComposition::addComposerArrow( QgsComposerArrow* arrow )
1934
1959
{
1935
1960
addItem ( arrow );
1936
1961
emit composerArrowAdded ( arrow );
1937
- clearSelection ();
1938
- arrow->setSelected ( true );
1939
- emit selectedItemChanged ( arrow );
1940
1962
}
1941
1963
1942
1964
void QgsComposition::addComposerLabel ( QgsComposerLabel* label )
1943
1965
{
1944
1966
addItem ( label );
1945
1967
emit composerLabelAdded ( label );
1946
- clearSelection ();
1947
- label->setSelected ( true );
1948
- emit selectedItemChanged ( label );
1949
1968
}
1950
1969
1951
1970
void QgsComposition::addComposerMap ( QgsComposerMap* map, bool setDefaultPreviewStyle )
@@ -1963,63 +1982,42 @@ void QgsComposition::addComposerMap( QgsComposerMap* map, bool setDefaultPreview
1963
1982
}
1964
1983
1965
1984
emit composerMapAdded ( map );
1966
- clearSelection ();
1967
- map->setSelected ( true );
1968
- emit selectedItemChanged ( map );
1969
1985
}
1970
1986
1971
1987
void QgsComposition::addComposerScaleBar ( QgsComposerScaleBar* scaleBar )
1972
1988
{
1973
1989
addItem ( scaleBar );
1974
1990
emit composerScaleBarAdded ( scaleBar );
1975
- clearSelection ();
1976
- scaleBar->setSelected ( true );
1977
- emit selectedItemChanged ( scaleBar );
1978
1991
}
1979
1992
1980
1993
void QgsComposition::addComposerLegend ( QgsComposerLegend* legend )
1981
1994
{
1982
1995
addItem ( legend );
1983
1996
emit composerLegendAdded ( legend );
1984
- clearSelection ();
1985
- legend->setSelected ( true );
1986
- emit selectedItemChanged ( legend );
1987
1997
}
1988
1998
1989
1999
void QgsComposition::addComposerPicture ( QgsComposerPicture* picture )
1990
2000
{
1991
2001
addItem ( picture );
1992
2002
emit composerPictureAdded ( picture );
1993
- clearSelection ();
1994
- picture->setSelected ( true );
1995
- emit selectedItemChanged ( picture );
1996
2003
}
1997
2004
1998
2005
void QgsComposition::addComposerShape ( QgsComposerShape* shape )
1999
2006
{
2000
2007
addItem ( shape );
2001
2008
emit composerShapeAdded ( shape );
2002
- clearSelection ();
2003
- shape->setSelected ( true );
2004
- emit selectedItemChanged ( shape );
2005
2009
}
2006
2010
2007
2011
void QgsComposition::addComposerTable ( QgsComposerAttributeTable* table )
2008
2012
{
2009
2013
addItem ( table );
2010
2014
emit composerTableAdded ( table );
2011
- clearSelection ();
2012
- table->setSelected ( true );
2013
- emit selectedItemChanged ( table );
2014
2015
}
2015
2016
2016
2017
void QgsComposition::addComposerHtmlFrame ( QgsComposerHtml* html, QgsComposerFrame* frame )
2017
2018
{
2018
2019
addItem ( frame );
2019
2020
emit composerHtmlFrameAdded ( html, frame );
2020
- clearSelection ();
2021
- frame->setSelected ( true );
2022
- emit selectedItemChanged ( frame );
2023
2021
}
2024
2022
2025
2023
void QgsComposition::removeComposerItem ( QgsComposerItem* item, bool createCommand )
0 commit comments