Merge branch 'aleksei_kanash_dev' into develop

preferencesAboutTextFull
Aleksei Kanash 12 years ago
commit b255afd269
  1. 32
      src/board/UBBoardController.cpp
  2. 3
      src/board/UBBoardController.h
  3. 5
      src/domain/UBGraphicsScene.h
  4. 2
      src/domain/UBItem.h
  5. 11
      src/gui/UBToolWidget.cpp

@ -533,10 +533,12 @@ void UBBoardController::duplicateScene()
duplicateScene(mActiveSceneIndex);
}
void UBBoardController::duplicateItem(UBItem *item)
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
{
if (!item)
return;
return NULL;
UBGraphicsItem *retItem = NULL;
mLastCreatedItem = NULL;
@ -610,6 +612,7 @@ void UBBoardController::duplicateItem(UBItem *item)
case UBMimeType::Group:
{
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
UBGraphicsGroupContainerItem* duplicatedGroup = NULL;
if(groupItem){
QTransform groupTransform = groupItem->transform();
groupItem->resetTransform();
@ -628,13 +631,13 @@ void UBBoardController::duplicateItem(UBItem *item)
if(!selItems.empty()){
// I don't like this solution but for now this is the only way I found.
// Normally, at this state, only the duplicated group should be selected
UBGraphicsGroupContainerItem* duplicatedGroup = dynamic_cast<UBGraphicsGroupContainerItem*>(selItems.at(0));
duplicatedGroup = dynamic_cast<UBGraphicsGroupContainerItem*>(selItems.at(0));
if(NULL != duplicatedGroup){
duplicatedGroup->setTransform(groupTransform);
}
}
}
return;
retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
break;
}
@ -648,10 +651,13 @@ void UBBoardController::duplicateItem(UBItem *item)
mLastCreatedItem = gitem;
gitem->setSelected(true);
}
return;
retItem = dynamic_cast<UBGraphicsItem *>(gitem);
}break;
}
if (retItem)
return retItem;
UBItem *createdItem = downloadFinished(true, sourceUrl, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
if (createdItem)
{
@ -663,7 +669,10 @@ void UBBoardController::duplicateItem(UBItem *item)
createdGitem->setPos(itemPos);
mLastCreatedItem = dynamic_cast<QGraphicsItem*>(createdItem);
mLastCreatedItem->setSelected(true);
retItem = dynamic_cast<UBGraphicsItem *>(createdItem);
}
return retItem;
}
void UBBoardController::deleteScene(int nIndex)
@ -2080,7 +2089,7 @@ UBGraphicsWidgetItem *UBBoardController::addW3cWidget(const QUrl &pUrl, const QP
QString snapshotPath = selectedDocument()->persistencePath() + "/" + UBPersistenceManager::widgetDirectory + "/" + struuid + ".png";
w3cWidgetItem->setSnapshotPath(QUrl::fromLocalFile(snapshotPath));
UBGraphicsWidgetItem *tmpItem = dynamic_cast<UBGraphicsWidgetItem*>(w3cWidgetItem);
if (tmpItem)
if (tmpItem && tmpItem->scene())
tmpItem->takeSnapshot().save(snapshotPath, "PNG");
}
@ -2293,17 +2302,24 @@ void UBBoardController::togglePodcast(bool checked)
UBPodcastController::instance()->toggleRecordingPalette(checked);
}
void UBBoardController::moveGraphicsWidgetToControlView(UBGraphicsWidgetItem* graphicsWidget)
{
graphicsWidget->remove();
UBToolWidget *toolWidget = new UBToolWidget(graphicsWidget);
mActiveScene->setURStackEnable(false);
UBGraphicsItem *toolW3C = duplicateItem(dynamic_cast<UBItem *>(graphicsWidget));
UBGraphicsWidgetItem *copyedGraphicsWidget = NULL;
if (UBGraphicsWidgetItem::Type == toolW3C->type())
copyedGraphicsWidget = static_cast<UBGraphicsWidgetItem *>(toolW3C);
UBToolWidget *toolWidget = new UBToolWidget(copyedGraphicsWidget);
mActiveScene->addItem(toolWidget);
qreal ssf = 1 / UBApplication::boardController->systemScaleFactor();
toolWidget->setScale(ssf);
toolWidget->setPos(graphicsWidget->scenePos());
mActiveScene->setURStackEnable(true);
}

@ -40,6 +40,7 @@ class UBGraphicsAudioItem;
class UBGraphicsWidgetItem;
class UBBoardPaletteManager;
class UBItem;
class UBGraphicsItem;
class UBBoardController : public UBDocumentContainer
@ -158,7 +159,7 @@ class UBBoardController : public UBDocumentContainer
void moveSceneToIndex(int source, int target);
void duplicateScene(int index);
void duplicateItem(UBItem *item);
UBGraphicsItem *duplicateItem(UBItem *item);
void deleteScene(int index);
bool cacheIsVisible() {return mCacheWidgetIsEnabled;}

@ -109,8 +109,9 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem
};
// tmp stub for divide addings scene objects from undo mechanism implementation
bool isURStackIsEnabled(){ return mUndoRedoStackEnabled;}
void enableUndoRedoStack(){mUndoRedoStackEnabled = true;}
void enableUndoRedoStack(){mUndoRedoStackEnabled = true;}
void setURStackEnable(bool enable){mUndoRedoStackEnabled = enable;}
bool isURStackIsEnabled(){return mUndoRedoStackEnabled;}
UBGraphicsScene(UBDocumentProxy *parent, bool enableUndoRedoStack = true);
virtual ~UBGraphicsScene();

@ -99,6 +99,8 @@ protected:
public:
virtual int type() const = 0;
inline UBGraphicsItemDelegate *Delegate() const { return mDelegate; }
static void assignZValue(QGraphicsItem*, qreal value);

@ -75,6 +75,15 @@ void UBToolWidget::initialize()
if(!sUnpinPixmap)
sUnpinPixmap = new QPixmap(":/images/unpin.svg");
UBGraphicsScene *wscene = dynamic_cast<UBGraphicsScene *>(mGraphicsWidgetItem->scene());
if (wscene)
{
wscene->removeItemFromDeletion(mGraphicsWidgetItem);
wscene->removeItem(mGraphicsWidgetItem);
}
mGraphicsWidgetItem->setParent(this);
QGraphicsLinearLayout *graphicsLayout = new QGraphicsLinearLayout(Qt::Vertical, this);
@ -83,7 +92,7 @@ void UBToolWidget::initialize()
graphicsLayout->setContentsMargins(mContentMargin, mContentMargin, mContentMargin, mContentMargin);
setPreferredSize(mGraphicsWidgetItem->preferredWidth() + mContentMargin * 2, mGraphicsWidgetItem->preferredHeight() + mContentMargin * 2);
mGraphicsWebView = new QGraphicsWebView();
mGraphicsWebView = new QGraphicsWebView(this);
connect(mGraphicsWebView->page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(javaScriptWindowObjectCleared()));
mGraphicsWebView->load(mGraphicsWidgetItem->mainHtml());
graphicsLayout->addItem(mGraphicsWebView);

Loading…
Cancel
Save