From 278668b500164563e5da69dcc052dfd7901f77af Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 31 Aug 2012 14:51:58 +0300 Subject: [PATCH 1/4] Another fix for SANKORE-972. --- src/domain/UBGraphicsScene.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index a982a2d1..47547198 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1615,6 +1615,7 @@ void UBGraphicsScene::addItems(const QSet& items) void UBGraphicsScene::removeItem(QGraphicsItem* item) { setModified(true); + item->setSelected(false); UBCoreGraphicsScene::removeItem(item); UBApplication::boardController->freezeW3CWidget(item, true); @@ -2235,7 +2236,6 @@ void UBGraphicsScene::keyReleaseEvent(QKeyEvent * keyEvent) default: { - item->setSelected(false); UBGraphicsItem *ubgi = dynamic_cast(item); if (0 != ubgi) ubgi->remove(); From 5cec06a62a934a5108152b2140f69c467ab929bf Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 13:00:40 +0300 Subject: [PATCH 2/4] Duplication of Strokes was implemented. --- src/board/UBBoardController.cpp | 10 ++++------ src/domain/UBGraphicsPolygonItem.cpp | 20 +++++++++----------- src/domain/UBGraphicsStrokesGroup.cpp | 13 +++++++------ 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 3c56d617..66dbc026 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -557,11 +557,10 @@ void UBBoardController::duplicateItem(UBItem *item) UBMimeType::Enum itemMimeType; QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(item->sourceUrl().toLocalFile()); - if(NULL != qgraphicsitem_cast(commonItem)){ - itemMimeType = UBMimeType::Group; - }else{ - itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader); - } + if(NULL != qgraphicsitem_cast(commonItem)) + itemMimeType = UBMimeType::Group; + else + itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader); switch(static_cast(itemMimeType)) { @@ -633,7 +632,6 @@ void UBBoardController::duplicateItem(UBItem *item) QGraphicsItem *gitem = dynamic_cast(item->deepCopy()); if (gitem) { - qDebug() << "Adding a stroke: " << gitem; mActiveScene->addItem(gitem); gitem->setPos(itemPos); mLastCreatedItem = gitem; diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index b21f2760..e5dd4fd7 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -142,14 +142,14 @@ QColor UBGraphicsPolygonItem::color() const UBItem* UBGraphicsPolygonItem::deepCopy() const -{ - UBGraphicsPolygonItem* copy = new UBGraphicsPolygonItem(polygon(), parentItem()); +{ + UBGraphicsPolygonItem* copy = new UBGraphicsPolygonItem(polygon(), 0); + UBGraphicsStroke *stroke = new UBGraphicsStroke(); + copyItemParameters(copy); - copy->mOriginalLine = this->mOriginalLine; - copy->mOriginalWidth = this->mOriginalWidth; - copy->mIsNominalLine = this->mIsNominalLine; + copy->setStroke(stroke); return copy; } @@ -160,17 +160,15 @@ void UBGraphicsPolygonItem::copyItemParameters(UBItem *copy) const UBGraphicsPolygonItem *cp = dynamic_cast(copy); if (cp) { - cp->mOriginalLine = QLineF(); - cp->mOriginalWidth = -1; - cp->mIsNominalLine = false; + cp->mOriginalLine = this->mOriginalLine; + cp->mOriginalWidth = this->mOriginalWidth; + cp->mIsNominalLine = this->mIsNominalLine; - cp->setStroke(this->stroke()); - cp->setStrokesGroup(this->strokesGroup()); + cp->setTransform(transform()); cp->setBrush(this->brush()); cp->setPen(this->pen()); cp->mHasAlpha = this->mHasAlpha; - cp->setColorOnDarkBackground(this->colorOnDarkBackground()); cp->setColorOnLightBackground(this->colorOnLightBackground()); diff --git a/src/domain/UBGraphicsStrokesGroup.cpp b/src/domain/UBGraphicsStrokesGroup.cpp index a5320924..2f57360f 100644 --- a/src/domain/UBGraphicsStrokesGroup.cpp +++ b/src/domain/UBGraphicsStrokesGroup.cpp @@ -65,29 +65,30 @@ void UBGraphicsStrokesGroup::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) UBItem* UBGraphicsStrokesGroup::deepCopy() const { - UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup(); + UBGraphicsStrokesGroup* copy = new UBGraphicsStrokesGroup(); - - QList chl = childItems(); + QList chl = childItems(); foreach(QGraphicsItem *child, chl) { UBGraphicsPolygonItem *polygon = dynamic_cast(child); if (polygon) + { copy->addToGroup(dynamic_cast(polygon->deepCopy())); + polygon->setStrokesGroup(copy); + } } copyItemParameters(copy); - return copy; + return copy; } void UBGraphicsStrokesGroup::copyItemParameters(UBItem *copy) const { UBGraphicsStrokesGroup *cp = dynamic_cast(copy); { - cp->setPos(this->pos()); + cp->setTransform(transform()); - cp->setTransform(this->transform()); cp->setFlag(QGraphicsItem::ItemIsMovable, true); cp->setFlag(QGraphicsItem::ItemIsSelectable, true); cp->setData(UBGraphicsItemData::ItemLayerType, this->data(UBGraphicsItemData::ItemLayerType)); From 0b484e2a16cde31e7edfd3395ea63b4ecdc92dbc Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 14:45:41 +0300 Subject: [PATCH 3/4] Item deselected before duplication. --- src/board/UBBoardController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 66dbc026..c5627842 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -553,6 +553,7 @@ void UBBoardController::duplicateItem(UBItem *item) qreal shifting = UBSettings::settings()->objectFrameWidth; itemPos = commonItem->pos() + QPointF(shifting,shifting); itemSize = commonItem->boundingRect().size(); + commonItem->setSelected(false); } UBMimeType::Enum itemMimeType; From aa54bed95b2ec2cbd3ffa690285103d225e672cb Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 3 Sep 2012 14:59:03 +0300 Subject: [PATCH 4/4] Copied items with unknown type is selected. --- src/board/UBBoardController.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index c5627842..a9600ab6 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -636,6 +636,7 @@ void UBBoardController::duplicateItem(UBItem *item) mActiveScene->addItem(gitem); gitem->setPos(itemPos); mLastCreatedItem = gitem; + gitem->setSelected(true); } return; }break;