imported some fixes by hand from 2.10.b.04

preferencesAboutTextFull
Claudio Valerio 12 years ago
parent 43929f158d
commit 4ace295a28
  1. 29
      src/adaptors/UBSvgSubsetAdaptor.cpp
  2. 2
      src/board/UBBoardController.cpp
  3. 103
      src/board/UBBoardView.cpp
  4. 12
      src/board/UBDrawingController.cpp
  5. 120
      src/domain/UBGraphicsItemDelegate.cpp
  6. 15
      src/domain/UBGraphicsItemDelegate.h
  7. 5
      src/domain/UBGraphicsMediaItem.cpp
  8. 5
      src/domain/UBGraphicsMediaItemDelegate.cpp
  9. 43
      src/domain/UBGraphicsScene.cpp
  10. 2
      src/domain/UBGraphicsWidgetItem.cpp
  11. 10
      src/frameworks/UBCoreGraphicsScene.cpp
  12. 4
      src/gui/UBTeacherGuideWidget.cpp
  13. 41
      src/gui/UBTeacherGuideWidgetsTools.cpp
  14. 2
      src/gui/UBTeacherGuideWidgetsTools.h
  15. 8
      src/gui/UBThumbnailWidget.cpp

@ -597,12 +597,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QList<UBGraphicsPolygonItem*> polygonItems
= polygonItemsFromPolylineSvg(mScene->isDarkBackground() ? Qt::white : Qt::black);
QString newParentId = QUuid::createUuid().toString();
foreach(UBGraphicsPolygonItem* polygonItem, polygonItems)
{
if (annotationGroup)
{
polygonItem->setStroke(annotationGroup);
}
if(strokesGroup){
@ -614,6 +614,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic));
QString parentId = mXmlReader.attributes().value(mNamespaceUri, "parent").toString();
if(parentId.isEmpty())
parentId = newParentId;
Q_ASSERT(!parentId.isEmpty());
UBGraphicsStrokesGroup* group;
if(!mStrokesList.contains(parentId)){
@ -623,8 +627,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
else
group = mStrokesList.value(parentId);
group->addToGroup(polygonItem);
polygonItem->show();
}
}
else if (mXmlReader.name() == "image")
{
@ -984,10 +990,6 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
{
if (mXmlReader.name() == "g")
{
// if(strokesGroup && mScene){
// mScene->addItem(strokesGroup);
// }
if (annotationGroup)
{
if (!annotationGroup->polygons().empty())
@ -1010,12 +1012,12 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene()
QMapIterator<QString, UBGraphicsStrokesGroup*> iterator(mStrokesList);
while (iterator.hasNext()) {
iterator.next();
qDebug() << "Number of polygons : " << (int)(((UBGraphicsStrokesGroup*)iterator.value())->childItems().count());
mScene->addItem(iterator.value());
}
if (mScene) {
if (mScene)
mScene->setModified(false);
}
if (annotationGroup && annotationGroup->polygons().empty()){
delete annotationGroup;
@ -1557,17 +1559,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro
foreach (QGraphicsItem *item, groupItem->childItems()) {
QUuid tmpUuid = UBGraphicsScene::getPersonalUuid(item);
if (!tmpUuid.isNull()) {
if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count()) {
if (item->type() == UBGraphicsGroupContainerItem::Type && item->childItems().count())
persistGroupToDom(item, curParent, groupDomDocument);
}
// else if (item->type() == UBGraphicsStrokesGroup::Type) {
// foreach (QGraphicsItem *polygonItem, item->childItems()) {
// QDomElement curPolygonElement = groupDomDocument->createElement(tElement);
// curPolygonElement.setAttribute(aId, tmpUuid.toString()
// + UBGraphicsItem::getOwnUuid(polygonItem).toString());
// curGroupElement.appendChild(curPolygonElement);
// }
// }
else {
QDomElement curSubElement = groupDomDocument->createElement(tElement);

@ -357,9 +357,7 @@ void UBBoardController::setupToolbar()
void UBBoardController::setToolCursor(int tool)
{
if (mActiveScene)
{
mActiveScene->setToolCursor(tool);
}
mControlView->setToolCursor(tool);
}

@ -80,18 +80,18 @@
#include "core/memcheck.h"
UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool isControl, bool isDesktop)
: QGraphicsView (pParent)
, mController (pController)
, mIsCreatingTextZone (false)
, mIsCreatingSceneGrabZone (false)
, mOkOnWidget(false)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
, mRubberBandInPlayMode(false) //enables rubberband with play tool
: QGraphicsView (pParent)
, mController (pController)
, mIsCreatingTextZone (false)
, mIsCreatingSceneGrabZone (false)
, mOkOnWidget(false)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
, mRubberBandInPlayMode(false) //enables rubberband with play tool
{
init ();
@ -102,14 +102,14 @@ UBBoardView::UBBoardView (UBBoardController* pController, QWidget* pParent, bool
}
UBBoardView::UBBoardView (UBBoardController* pController, int pStartLayer, int pEndLayer, QWidget* pParent, bool isControl, bool isDesktop)
: QGraphicsView (pParent)
, mController (pController)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
: QGraphicsView (pParent)
, mController (pController)
, suspendedMousePressEvent(NULL)
, mLongPressInterval(1000)
, mIsDragInProgress(false)
, mMultipleSelectionIsEnabled(false)
, bIsControl(isControl)
, bIsDesktop(isDesktop)
{
init ();
@ -482,12 +482,12 @@ bool UBBoardView::isCppTool(QGraphicsItem *item)
void UBBoardView::handleItemsSelection(QGraphicsItem *item)
{
// we need to select new pressed itemOnBoard and deselect all other items.
// the trouble is in:
// some items can has parents (groupped items or strokes, or strokes in groups).
// some items is already selected and we don't need to reselect them
//
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
// we need to select new pressed itemOnBoard and deselect all other items.
// the trouble is in:
// some items can has parents (groupped items or strokes, or strokes in groups).
// some items is already selected and we don't need to reselect them
//
// item selection managed by QGraphicsView::mousePressEvent(). It should be called later.
if (item)
{
@ -530,7 +530,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
bool UBBoardView::itemShouldReceiveMousePressEvent(QGraphicsItem *item)
{
/*
/*
Some items should receive mouse press events averytime,
some items should receive that events when they are selected,
some items shouldn't receive mouse press events at mouse press, but should receive them at mouse release (suspended mouse press event)
@ -570,6 +570,8 @@ Here we determines cases when items should to get mouse press event at pressing
case UBGraphicsSvgItem::Type:
case UBGraphicsPixmapItem::Type:
case UBGraphicsTextItem::Type:
if (currentTool == UBStylusTool::Play)
return true;
if ((currentTool == UBStylusTool::Selector) && item->isSelected())
return true;
if ((currentTool == UBStylusTool::Selector) && item->parentItem() && item->parentItem()->isSelected())
@ -577,19 +579,19 @@ Here we determines cases when items should to get mouse press event at pressing
if (currentTool != UBStylusTool::Selector)
return false;
break;
// Groups shouldn't reacts on any presses and moves for Play tool.
case UBGraphicsItemType::StrokeItemType:
if (currentTool == UBStylusTool::Play)
return true;
break;
case UBGraphicsGroupContainerItem::Type:
// Groups shouldn't reacts on any presses and moves for Play tool.
if(currentTool == UBStylusTool::Play)
{
movingItem = NULL;
return true;
}
return false;
break;
//case UBToolWidget::Type:
// return true;
case QGraphicsWebView::Type:
return true;
@ -759,12 +761,10 @@ void UBBoardView::handleItemMousePress(QMouseEvent *event)
if (isMultipleSelectionEnabled())
return;
if (itemShouldReceiveMousePressEvent(movingItem))
{
if (itemShouldReceiveMousePressEvent(movingItem)) {
QGraphicsView::mousePressEvent (event);
}
else
{
else {
if (movingItem)
{
UBGraphicsItem *graphicsItem = dynamic_cast<UBGraphicsItem*>(movingItem);
@ -898,8 +898,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mIsDragInProgress = false;
if (isAbsurdPoint (event->pos ()))
{
if (isAbsurdPoint (event->pos ())) {
event->accept ();
return;
}
@ -935,8 +934,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mPreviousPoint = event->posF ();
event->accept ();
}
else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play)
{
else if (currentTool == UBStylusTool::Selector || currentTool == UBStylusTool::Play) {
if (bIsDesktop) {
event->ignore();
return;
@ -957,8 +955,7 @@ void UBBoardView::mousePressEvent (QMouseEvent *event)
mUBRubberBand->setGeometry (QRect (mMouseDownPos, QSize ()));
mUBRubberBand->show();
}
else
{
else {
if(mUBRubberBand)
mUBRubberBand->hide();
}
@ -1223,22 +1220,18 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
QGraphicsView::mouseReleaseEvent (event);
}
}
else if (currentTool == UBStylusTool::Play)
{
else if (currentTool == UBStylusTool::Play) {
if (bIsDesktop) {
event->ignore();
return;
}
if (mWidgetMoved)
{
if (mWidgetMoved) {
movingItem = NULL;
mWidgetMoved = false;
}
else
{
if (suspendedMousePressEvent)
{
else {
if (suspendedMousePressEvent) {
QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop
movingItem = NULL;
delete suspendedMousePressEvent;
@ -1247,13 +1240,11 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
}
QGraphicsView::mouseReleaseEvent (event);
}
else if (currentTool == UBStylusTool::Text)
{
else if (currentTool == UBStylusTool::Text) {
if (mRubberBand)
mRubberBand->hide ();
if (scene () && mRubberBand && mIsCreatingTextZone)
{
if (scene () && mRubberBand && mIsCreatingTextZone) {
QRect rubberRect = mRubberBand->geometry ();
UBGraphicsTextItem* textItem = scene()->addTextHtml ("", mapToScene (rubberRect.topLeft ()));
@ -1265,9 +1256,7 @@ UBBoardView::mouseReleaseEvent (QMouseEvent *event)
textItem->setFocus();
}
else
{
QGraphicsView::mouseReleaseEvent (event);
}
mIsCreatingTextZone = false;
}

@ -159,35 +159,23 @@ bool UBDrawingController::isDrawingTool()
int UBDrawingController::currentToolWidthIndex()
{
if (stylusTool() == UBStylusTool::Pen || stylusTool() == UBStylusTool::Line)
{
return UBSettings::settings()->penWidthIndex();
}
else if (stylusTool() == UBStylusTool::Marker)
{
return UBSettings::settings()->markerWidthIndex();
}
else
{
return -1;
}
}
qreal UBDrawingController::currentToolWidth()
{
if (stylusTool() == UBStylusTool::Pen || stylusTool() == UBStylusTool::Line)
{
return UBSettings::settings()->currentPenWidth();
}
else if (stylusTool() == UBStylusTool::Marker)
{
return UBSettings::settings()->currentMarkerWidth();
}
else
{
//failsafe
return UBSettings::settings()->currentPenWidth();
}
}

@ -236,9 +236,7 @@ UBGraphicsItemDelegate::~UBGraphicsItemDelegate()
QVariant UBGraphicsItemDelegate::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant &value)
{
if(change == QGraphicsItem::ItemChildAddedChange){
}else if (change == QGraphicsItem::ItemSelectedHasChanged) {
if (change == QGraphicsItem::ItemSelectedHasChanged) {
bool ok;
bool selected = value.toUInt(&ok);
if (ok) {
@ -286,6 +284,8 @@ bool UBGraphicsItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
mDragStartPosition = event->pos();
mMoved = false;
startUndoStep();
if (!delegated()->isSelected())
@ -315,6 +315,7 @@ bool UBGraphicsItemDelegate::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
}
mDrag->exec();
mDragPixmap = QPixmap();
mMoved = true;
return true;
}
return false;
@ -439,22 +440,9 @@ void UBGraphicsItemDelegate::setZOrderButtonsVisible(bool visible)
void UBGraphicsItemDelegate::remove(bool canUndo)
{
/*UBGraphicsScene* scene = dynamic_cast<UBGraphicsScene*>(mDelegated->scene());
if (scene && canUndo)
{
UBGraphicsItemUndoCommand *uc = new UBGraphicsItemUndoCommand(scene, mDelegated, 0);
UBApplication::undoStack->push(uc);
}
mDelegated->hide(); */
UBGraphicsScene* scene = dynamic_cast<UBGraphicsScene*>(mDelegated->scene());
if (scene)
{
// bool shownOnDisplay = mDelegated->data(UBGraphicsItemData::ItemLayerType).toInt() != UBItemLayerType::Control;
// showHide(shownOnDisplay);
// updateFrame();
// updateButtons();
if (mFrame && !mFrame->scene() && mDelegated->scene())
{
mDelegated->scene()->addItem(mFrame);
@ -734,7 +722,7 @@ void UBGraphicsItemDelegate::updateButtons(bool showUpdated)
mDelegated->scene()->addItem(mDeleteButton);
}
if (showUpdated /*&& mFrame->isResizing()*/)
if (showUpdated)
mDeleteButton->show();
int i = 1, j = 0, k = 0;
@ -785,7 +773,6 @@ UBGraphicsToolBarItem::UBGraphicsToolBarItem(QGraphicsItem * parent) :
rect.setWidth(parent->boundingRect().width());
this->setRect(rect);
// setBrush(QColor(UBSettings::paletteColor));
setPen(Qt::NoPen);
hide();
@ -826,25 +813,29 @@ MediaTimer::MediaTimer(QGraphicsItem * parent): QGraphicsRectItem(parent)
{
val = 0;
smallPoint = false;
setNumDigits(4);
setNumDigits(6);
}
MediaTimer::~MediaTimer()
{}
void MediaTimer::positionHandles()
{
digitSpace = smallPoint ? 2 : 1;
ySegLen = rect().height()*5/12;
xSegLen = ySegLen*2/3;
segLen = xSegLen;
xAdvance = segLen*(5 + digitSpace)/5;
xOffset = (rect().width() - ndigits*xAdvance + segLen/5)/2;
yOffset = rect().height() - ySegLen*2;
setRect(rect().x(), rect().y(), xOffset + xAdvance*ndigits, rect().height());
}
void MediaTimer::drawString(const QString &s, QPainter &p,
QBitArray *newPoints, bool newString)
{
QPoint pos;
int digitSpace = smallPoint ? 2 : 1;
int xSegLen = (rect().width()/1)*5/(ndigits*(5 + digitSpace) + digitSpace);
int ySegLen = rect().height()*5/12;
int segLen = ySegLen > xSegLen ? xSegLen : ySegLen;
int xAdvance = segLen*(5 + digitSpace)/5;
int xOffset = rect().x() + (rect().width()/1 - ndigits*xAdvance + segLen/5)/2;
int yOffset = (rect().height() - segLen*2)/2;
for (int i=0; i<ndigits; i++) {
pos = QPoint(xOffset + xAdvance*i, yOffset);
if (newString)
@ -1090,10 +1081,6 @@ void MediaTimer::paint(QPainter *p,
Q_UNUSED(option);
Q_UNUSED(widget);
QFont f = p->font();
f.setPointSizeF(f.pointSizeF());
p->setFont(f);
if (smallPoint)
drawString(digitStr, *p, &points, false);
else
@ -1178,7 +1165,7 @@ void MediaTimer::setNumDigits(int numDigits)
numDigits = 0;
}
if (digitStr.isNull()) { // from constructor
ndigits = numDigits;
ndigits = numDigits + numDigits/2 - 1;
digitStr.fill(QLatin1Char(' '), ndigits);
points.fill(0, ndigits);
digitStr[ndigits - 1] = QLatin1Char('0'); // "0" is the default number
@ -1208,6 +1195,7 @@ void MediaTimer::setNumDigits(int numDigits)
ndigits = numDigits;
update();
}
positionHandles();
}
DelegateMediaControl::DelegateMediaControl(UBGraphicsMediaItem* pDelegated, QGraphicsItem * parent)
@ -1238,13 +1226,6 @@ void DelegateMediaControl::paint(QPainter *painter,
QPainterPath path;
mLCDTimerArea.setHeight(rect().height());
mLCDTimerArea.setWidth(rect().height());
mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2);
mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight);
mSeecArea.setY(mSeecAreaBorderHeight);
path.addRoundedRect(mSeecArea, mSeecArea.height()/2, mSeecArea.height()/2);
painter->fillPath(path, brush());
@ -1274,28 +1255,59 @@ QPainterPath DelegateMediaControl::shape() const
void DelegateMediaControl::positionHandles()
{
mLCDTimerArea.setWidth(parentItem()->boundingRect().height());
QRectF selfRect = rect();
selfRect.setHeight(parentItem()->boundingRect().height());
setRect(selfRect);
QTime tTotal;
tTotal = tTotal.addMSecs(mTotalTimeInMs);
mLCDTimerArea.setHeight(parentItem()->boundingRect().height());
int digitsCount = 2;
int timerWidth = mLCDTimerArea.height();
mDisplayFormat = "ss";
if (tTotal.minute() > 0)
{
mDisplayFormat = "mm:" + mDisplayFormat;
digitsCount += 3;
timerWidth += mLCDTimerArea.height()*0.5;
}
if (tTotal.hour() > 0)
{
mDisplayFormat = "hh:" + mDisplayFormat;
digitsCount += 3;
timerWidth += mLCDTimerArea.height();
}
lcdTimer->setNumDigits(digitsCount);
mLCDTimerArea.setWidth(timerWidth);
lcdTimer->setRect(mLCDTimerArea);
lcdTimer->setPos(mSeecArea.width()-mLCDTimerArea.width(),0);
// not the best solution, but it works.
lcdTimer->positionHandles();
mLCDTimerArea = lcdTimer->rect();
// -------------------------------------
lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0);
mSeecAreaBorderHeight = rect().height()/20;
mSeecArea.setWidth(rect().width()-mLCDTimerArea.width()-2);
mSeecArea.setHeight(rect().height()-2*mSeecAreaBorderHeight);
mSeecArea.setY(mSeecAreaBorderHeight);
QRectF selfRect = rect();
selfRect.setHeight(parentItem()->boundingRect().height());
setRect(selfRect);
lcdTimer->setPos(rect().width() - mLCDTimerArea.width(), 0);
}
void DelegateMediaControl::update()
{
QTime t;
t = t.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs);
lcdTimer->display(t.toString("m:ss"));
QTime tCurrent;
tCurrent = tCurrent.addMSecs(mCurrentTimeInMs < 0 ? 0 : mCurrentTimeInMs);
lcdTimer->display(tCurrent.toString(mDisplayFormat));
QGraphicsRectItem::update();
}
@ -1309,8 +1321,12 @@ void DelegateMediaControl::updateTicker(qint64 time )
void DelegateMediaControl::totalTimeChanged(qint64 newTotalTime)
{
if (mTotalTimeInMs != newTotalTime)
{
mTotalTimeInMs = newTotalTime;
positionHandles();
update();
}
}
@ -1347,7 +1363,7 @@ void DelegateMediaControl::seekToMousePos(QPointF mousePos)
qreal frameWidth = rect().height() / 2;
minX = frameWidth;
length = mSeecArea.width() - lcdTimer->rect().width();
length = mSeecArea.width() - mSeecArea.height();
qreal mouseX = mousePos.x();
if (mouseX >= (mSeecArea.width() - mSeecArea.height()/2))

@ -104,10 +104,12 @@ public:
MediaTimer(QGraphicsItem * parent = 0);
~MediaTimer();
void positionHandles();
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
QWidget *widget);
void display(const QString &str);
void setNumDigits(int nDigits);
private:
@ -117,7 +119,6 @@ private:
void drawSegment(const QPoint &, char, QPainter &, int, bool = false);
void addPoint(QPolygon&, const QPoint&);
void internalSetString(const QString& s);
void setNumDigits(int nDigits);
static char segments [][8];
@ -128,6 +129,14 @@ private:
uint shadow : 1;
uint smallPoint : 1;
int digitSpace;
int xSegLen;
int ySegLen;
int segLen;
int xAdvance;
int xOffset;
int yOffset;
};
class DelegateMediaControl: public QObject, public QGraphicsRectItem
@ -178,6 +187,8 @@ class DelegateMediaControl: public QObject, public QGraphicsRectItem
QRectF mLCDTimerArea;
MediaTimer *lcdTimer;
QString mDisplayFormat;
};
class UBGraphicsToolBarItem : public QGraphicsRectItem, public QObject
@ -340,6 +351,8 @@ private:
bool mToolBarUsed;
bool mShowGoContentButton;
bool mMoved;
};

@ -102,8 +102,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
haveLinkedImage = true;
}
else
if (mediaPath.toLower().contains("audios"))
else if (mediaPath.toLower().contains("audios"))
{
mMediaType = mediaType_Audio;
mAudioOutput = new Phonon::AudioOutput(Phonon::MusicCategory, this);
@ -117,7 +116,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
borderSize = pAudioWidget->borderSize();
}
mAudioWidget->resize(320,26+3*borderSize);
mAudioWidget->resize(320,26+2*borderSize); //3*border size with enabled title
mAudioWidget->setMinimumSize(150,26+borderSize);
haveLinkedImage = false;

@ -255,6 +255,11 @@ void UBGraphicsMediaItemDelegate::mediaStateChanged ( Phonon::State newstate, Ph
{
Q_UNUSED(newstate);
Q_UNUSED(oldstate);
if (oldstate == Phonon::LoadingState)
{
mMediaControl->totalTimeChanged(delegated()->mediaObject()->totalTime());
}
updatePlayPauseState();
}

@ -335,8 +335,8 @@ void UBGraphicsScene::updateGroupButtonState()
{
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
if (UBStylusTool::Selector != currentTool)
UBDrawingController::drawingController()->setStylusTool(UBStylusTool::Selector);
if (UBStylusTool::Selector != currentTool && UBStylusTool::Play != currentTool)
return;
QAction *groupAction = UBApplication::mainWindow->actionGroupItems;
QList<QGraphicsItem*> selItems = selectedItems();
@ -362,24 +362,18 @@ void UBGraphicsScene::updateGroupButtonState()
bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pressure)
{
//mMesure1Ms = 0;
//mMesure2Ms = 0;
bool accepted = false;
if (mInputDeviceIsPressed)
{
if (mInputDeviceIsPressed) {
qWarning() << "scene received input device pressed, without input device release, muting event as input device move";
accepted = inputDeviceMove(scenePos, pressure);
}
else
{
else {
mInputDeviceIsPressed = true;
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
if (UBDrawingController::drawingController()->isDrawingTool())
{
if (UBDrawingController::drawingController()->isDrawingTool()) {
// -----------------------------------------------------------------
// We fall here if we are using the Pen, the Marker or the Line tool
// -----------------------------------------------------------------
@ -399,7 +393,8 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
if (currentTool != UBStylusTool::Line){
// Handle the pressure
width = UBDrawingController::drawingController()->currentToolWidth() * pressure;
}else{
}
else{
// Ignore pressure for the line tool
width = UBDrawingController::drawingController()->currentToolWidth();
}
@ -411,18 +406,14 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
mRemovedItems.clear();
if (UBDrawingController::drawingController()->mActiveRuler)
{
UBDrawingController::drawingController()->mActiveRuler->StartLine(scenePos, width);
}
else
{
else {
moveTo(scenePos);
drawLineTo(scenePos, width, UBDrawingController::drawingController()->stylusTool() == UBStylusTool::Line);
}
accepted = true;
}
else if (currentTool == UBStylusTool::Eraser)
{
else if (currentTool == UBStylusTool::Eraser) {
mAddedItems.clear();
mRemovedItems.clear();
moveTo(scenePos);
@ -436,8 +427,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
accepted = true;
}
else if (currentTool == UBStylusTool::Pointer)
{
else if (currentTool == UBStylusTool::Pointer) {
drawPointer(scenePos, true);
accepted = true;
}
@ -516,7 +506,8 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres
if(dc->mActiveRuler){
dc->mActiveRuler->DrawLine(position, width);
}else{
}
else{
drawLineTo(position, width, UBDrawingController::drawingController()->stylusTool() == UBStylusTool::Line);
}
}
@ -1487,15 +1478,14 @@ UBGraphicsTextItem* UBGraphicsScene::textForObjectName(const QString& pString, c
if(!textItem){
textItem = addTextWithFont(pString,QPointF(0,0) ,72,UBSettings::settings()->fontFamily(),true,false);
textItem->setObjectName(objectName);
QSizeF size = textItem->size();
textItem->setPos(QPointF(-size.width()/2.0,-size.height()/2.0));
textItem->setData(UBGraphicsItemData::ItemEditable,QVariant(false));
textItem->adjustSize();
textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
}
textItem->setPlainText(pString);
textItem->adjustSize();
textItem->clearFocus();
textItem->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard);
return textItem;
}
@ -2287,8 +2277,7 @@ void UBGraphicsScene::setToolCursor(int tool)
{
if (tool == (int)UBStylusTool::Selector ||
tool == (int)UBStylusTool::Text ||
tool == (int)UBStylusTool::Play)
{
tool == (int)UBStylusTool::Play) {
deselectAllItems();
}

@ -609,6 +609,8 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok)
{
mLoadIsErronous = !ok;
update(boundingRect());
if (mInitialLoadDone && scene() && scene()->renderingContext() == UBGraphicsScene::Screen)
takeSnapshot();
}

@ -40,16 +40,10 @@ UBCoreGraphicsScene::~UBCoreGraphicsScene()
{
//we must delete removed items that are no more in any scene
//at groups deleting some items can be added to mItemsToDelete, so we need to use iterators.
foreach(QGraphicsItem* item, mItemsToDelete)
{
if (item)
{
if (item->scene() == NULL || item->scene() == this)
{
foreach(QGraphicsItem* item, mItemsToDelete){
if (item && item->type() != UBGraphicsItemType::PolygonItemType && item->type() != QGraphicsItem::UserType && item->type() != UBGraphicsItemType::groupContainerType && (item->scene() == NULL || item->scene() == this))
delete item;
}
}
}
mItemsToDelete.clear();
}

@ -273,8 +273,8 @@ void UBTeacherGuideEditionWidget::onActiveSceneChanged()
void UBTeacherGuideEditionWidget::cleanData()
{
mpPageTitle->setText("");
mpComment->setText("");
mpPageTitle->resetText();
mpComment->resetText();
QList<QTreeWidgetItem*> children = mpAddAnActionItem->takeChildren();
children << mpAddAMediaItem->takeChildren();
children << mpAddALinkItem->takeChildren();

@ -224,6 +224,19 @@ void UBTGAdaptableText::setInitialText(const QString& text)
onTextChanged();
}
void UBTGAdaptableText::resetText()
{
if(mHasPlaceHolder && !mPlaceHolderText.isEmpty()){
setTextColor(QColor(Qt::lightGray));
setText(mPlaceHolderText);
}
else{
setText("");
setTextColor(QColor(Qt::black));
}
onTextChanged();
}
void UBTGAdaptableText::showText(const QString & text)
{
setText(text);
@ -252,15 +265,41 @@ void UBTGAdaptableText::focusOutEvent(QFocusEvent* e)
QTextEdit::focusOutEvent(e);
}
void UBTGAdaptableText::insertFromMimeData(const QMimeData *source)
{
QMimeData editedMimeData;
QTextDocument textDoc;
QString plainText;
if (source->hasHtml())
{
textDoc.setHtml(source->html());
plainText += textDoc.toPlainText();
}
if (source->hasText())
if (textDoc.toPlainText() != source->text())
plainText += source->text();
if (source->hasUrls())
{
foreach(QUrl url, source->urls())
{
plainText += url.toString();
}
}
editedMimeData.setText(plainText);
QTextEdit::insertFromMimeData(&editedMimeData);
}
void UBTGAdaptableText::managePlaceholder(bool focus)
{
if(focus){
if(toPlainText() == mPlaceHolderText){
setTextColor(QColor(Qt::black));
setPlainText("");
}
setCursorToTheEnd();
}
}
else{
if(toPlainText().isEmpty()){
setTextColor(QColor(Qt::lightGray));

@ -103,6 +103,7 @@ class UBTGAdaptableText : public QTextEdit
public:
explicit UBTGAdaptableText(QTreeWidgetItem* widget = 0, QWidget *parent = 0, const char* name = "UBTGAdaptableText");
void showText(const QString & text);
void resetText();
void bottomMargin(int newValue);
void setPlaceHolderText(QString text);
QString text();
@ -118,6 +119,7 @@ protected:
void showEvent(QShowEvent* e);
void focusInEvent(QFocusEvent* e);
void focusOutEvent(QFocusEvent* e);
virtual void insertFromMimeData(const QMimeData *source);
private:
void setCursorToTheEnd();

@ -87,6 +87,7 @@ void UBThumbnailWidget::setGraphicsItems(const QList<QGraphicsItem*>& pGraphicsI
, const QStringList pLabels
, const QString& pMimeType)
{
Q_ASSERT(pItemsPaths.count() == pLabels.count());
mGraphicItems = pGraphicsItems;
mItemsPaths = pItemsPaths;
mMimeType = pMimeType;
@ -224,13 +225,6 @@ void UBThumbnailWidget::mousePressEvent(QMouseEvent *event)
event->ignore();
return;
}
//if(sceneItem){
// int pageIndex = UBDocumentContainer::pageFromSceneIndex(sceneItem->sceneIndex());
// if(pageIndex == 0){
// event->ignore();
// return;
// }
//}
mMousePressScenePos = mapToScene(mMousePressPos);
QGraphicsItem* underlyingItem = itemAt(mMousePressPos);

Loading…
Cancel
Save