Commit 4f7e1d74 authored by shibakaneki's avatar shibakaneki

Implemented group duplication

parent 83e6a263
...@@ -551,9 +551,13 @@ void UBBoardController::duplicateItem(UBItem *item) ...@@ -551,9 +551,13 @@ void UBBoardController::duplicateItem(UBItem *item)
itemSize = commonItem->boundingRect().size(); itemSize = commonItem->boundingRect().size();
} }
UBMimeType::Enum itemMimeType;
QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(item->sourceUrl().toLocalFile()); QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(item->sourceUrl().toLocalFile());
if(NULL != qgraphicsitem_cast<UBGraphicsGroupContainerItem*>(commonItem)){
UBMimeType::Enum itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader); itemMimeType = UBMimeType::Group;
}else{
itemMimeType = UBFileSystemUtils::mimeTypeFromString(contentTypeHeader);
}
switch(static_cast<int>(itemMimeType)) switch(static_cast<int>(itemMimeType))
{ {
...@@ -598,6 +602,29 @@ void UBBoardController::duplicateItem(UBItem *item) ...@@ -598,6 +602,29 @@ void UBBoardController::duplicateItem(UBItem *item)
pixitem->pixmap().save(&buffer, format.toLatin1()); pixitem->pixmap().save(&buffer, format.toLatin1());
} }
}break; }break;
case UBMimeType::Group:
{
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
if(groupItem){
QList<QGraphicsItem*> children = groupItem->childItems();
foreach(QGraphicsItem* pIt, children){
UBItem* pItem = dynamic_cast<UBItem*>(pIt);
if(NULL != pItem){
duplicateItem(pItem); // The duplication already copies the item parameters
QGraphicsItem* pDuplicatedItem = dynamic_cast<QGraphicsItem*>((mActiveScene->children().last()));
if(NULL != pDuplicatedItem){
pDuplicatedItem->setSelected(true);
}
}
}
groupItem->setSelected(false);
UBApplication::mainWindow->actionGroupItems->trigger();
}
return;
break;
}
case UBMimeType::UNKNOWN: case UBMimeType::UNKNOWN:
{ {
QGraphicsItem *gitem = dynamic_cast<QGraphicsItem*>(item->deepCopy()); QGraphicsItem *gitem = dynamic_cast<QGraphicsItem*>(item->deepCopy());
...@@ -1330,6 +1357,8 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri ...@@ -1330,6 +1357,8 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QStri
} }
} }
} }
}else if("group" == sourceUrl.toString()){
qDebug() << "accepting url " << sourceUrl.toString() << "as group content";
} }
else else
{ {
......
...@@ -33,6 +33,7 @@ struct UBMimeType ...@@ -33,6 +33,7 @@ struct UBMimeType
Flash, Flash,
PDF, PDF,
UniboardTool, UniboardTool,
Group,
UNKNOWN UNKNOWN
}; };
}; };
......
...@@ -19,6 +19,7 @@ UBGraphicsGroupContainerItemDelegate::UBGraphicsGroupContainerItemDelegate(QGrap ...@@ -19,6 +19,7 @@ UBGraphicsGroupContainerItemDelegate::UBGraphicsGroupContainerItemDelegate(QGrap
//Wrapper function. Use it to set correct data() to QGraphicsItem as well //Wrapper function. Use it to set correct data() to QGraphicsItem as well
setFlippable(false); setFlippable(false);
setRotatable(false); setRotatable(false);
setCanDuplicate(true);
} }
UBGraphicsGroupContainerItem *UBGraphicsGroupContainerItemDelegate::delegated() UBGraphicsGroupContainerItem *UBGraphicsGroupContainerItemDelegate::delegated()
......
...@@ -588,6 +588,9 @@ UBMimeType::Enum UBFileSystemUtils::mimeTypeFromString(const QString& typeString ...@@ -588,6 +588,9 @@ UBMimeType::Enum UBFileSystemUtils::mimeTypeFromString(const QString& typeString
{ {
type = UBMimeType::UniboardTool; type = UBMimeType::UniboardTool;
} }
else if (typeString.startsWith("group")){
type = UBMimeType::Group;
}
return type; return type;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment