@ -54,6 +54,8 @@
# include "domain/UBGraphicsGroupContainerItem.h"
# include "domain/UBGraphicsGroupContainerItem.h"
# include "domain/UBItem.h"
# include "domain/UBItem.h"
# include "board/UBFeaturesController.h"
# include "board/UBFeaturesController.h"
# include "domain/UBGraphicsStrokesGroup.h"
# include "gui/UBFeaturesWidget.h"
# include "gui/UBFeaturesWidget.h"
# include "tools/UBToolsManager.h"
# include "tools/UBToolsManager.h"
@ -536,6 +538,8 @@ void UBBoardController::duplicateItem(UBItem *item)
if ( ! item )
if ( ! item )
return ;
return ;
mLastCreatedItem = NULL ;
QUrl sourceUrl ;
QUrl sourceUrl ;
QByteArray pData ;
QByteArray pData ;
@ -612,9 +616,8 @@ void UBBoardController::duplicateItem(UBItem *item)
UBItem * pItem = dynamic_cast < UBItem * > ( pIt ) ;
UBItem * pItem = dynamic_cast < UBItem * > ( pIt ) ;
if ( NULL ! = pItem ) {
if ( NULL ! = pItem ) {
duplicateItem ( pItem ) ; // The duplication already copies the item parameters
duplicateItem ( pItem ) ; // The duplication already copies the item parameters
QGraphicsItem * pDuplicatedItem = dynamic_cast < QGraphicsItem * > ( ( mActiveScene - > children ( ) . last ( ) ) ) ;
if ( NULL ! = mLastCreatedItem ) {
if ( NULL ! = pDuplicatedItem ) {
mLastCreatedItem - > setSelected ( true ) ;
pDuplicatedItem - > setSelected ( true ) ;
}
}
}
}
}
}
@ -630,8 +633,10 @@ void UBBoardController::duplicateItem(UBItem *item)
QGraphicsItem * gitem = dynamic_cast < QGraphicsItem * > ( item - > deepCopy ( ) ) ;
QGraphicsItem * gitem = dynamic_cast < QGraphicsItem * > ( item - > deepCopy ( ) ) ;
if ( gitem )
if ( gitem )
{
{
qDebug ( ) < < " Adding a stroke: " < < gitem ;
mActiveScene - > addItem ( gitem ) ;
mActiveScene - > addItem ( gitem ) ;
gitem - > setPos ( itemPos ) ;
gitem - > setPos ( itemPos ) ;
mLastCreatedItem = gitem ;
}
}
return ;
return ;
} break ;
} break ;
@ -646,7 +651,8 @@ void UBBoardController::duplicateItem(UBItem *item)
QGraphicsItem * createdGitem = dynamic_cast < QGraphicsItem * > ( createdItem ) ;
QGraphicsItem * createdGitem = dynamic_cast < QGraphicsItem * > ( createdItem ) ;
if ( createdGitem )
if ( createdGitem )
createdGitem - > setPos ( itemPos ) ;
createdGitem - > setPos ( itemPos ) ;
}
mLastCreatedItem = dynamic_cast < QGraphicsItem * > ( createdItem ) ;
}
}
}
void UBBoardController : : deleteScene ( int nIndex )
void UBBoardController : : deleteScene ( int nIndex )