diff --git a/Sankore_3.1.pro b/Sankore_3.1.pro index a295e6fc..08702f67 100644 --- a/Sankore_3.1.pro +++ b/Sankore_3.1.pro @@ -9,7 +9,7 @@ CONFIG += debug_and_release \ VERSION_MAJ = 1 VERSION_MIN = 40 VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error -VERSION_PATCH = 00 +VERSION_PATCH = 01 VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}" VERSION = $$replace(VERSION, "\\.r", "") diff --git a/resources/library/interactive/BlackYellow.wgt/config.xml b/resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/config.xml rename to resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml diff --git a/resources/library/interactive/BlackYellow.wgt/css/basic.css b/resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/css/basic.css rename to resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css diff --git a/resources/library/interactive/BlackYellow.wgt/icon.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/icon.png rename to resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png diff --git a/resources/library/interactive/BlackYellow.wgt/images/greySquare.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/images/greySquare.png rename to resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare.png diff --git a/resources/library/interactive/BlackYellow.wgt/images/greySquare2.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/images/greySquare2.png rename to resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png diff --git a/resources/library/interactive/BlackYellow.wgt/images/icon-close.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/images/icon-close.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/images/icon-close.png rename to resources/library/sankoreInteractivities/BlackYellow.wgt/images/icon-close.png diff --git a/resources/library/interactive/BlackYellow.wgt/images/popupBack.png b/resources/library/sankoreInteractivities/BlackYellow.wgt/images/popupBack.png similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/images/popupBack.png rename to resources/library/sankoreInteractivities/BlackYellow.wgt/images/popupBack.png diff --git a/resources/library/interactive/BlackYellow.wgt/index.html b/resources/library/sankoreInteractivities/BlackYellow.wgt/index.html similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/index.html rename to resources/library/sankoreInteractivities/BlackYellow.wgt/index.html diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/scripts/blackYellow.js rename to resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/jquery-1.6.2.min.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/scripts/jquery-1.6.2.min.js rename to resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/scripts/jquery.disable.text.select.js rename to resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js diff --git a/resources/library/interactive/BlackYellow.wgt/scripts/languages.js b/resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js similarity index 100% rename from resources/library/interactive/BlackYellow.wgt/scripts/languages.js rename to resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js diff --git a/resources/library/interactive/Choisir.wgt/config.xml b/resources/library/sankoreInteractivities/Choisir.wgt/config.xml similarity index 100% rename from resources/library/interactive/Choisir.wgt/config.xml rename to resources/library/sankoreInteractivities/Choisir.wgt/config.xml diff --git a/resources/library/interactive/Choisir.wgt/css/basic.css b/resources/library/sankoreInteractivities/Choisir.wgt/css/basic.css similarity index 100% rename from resources/library/interactive/Choisir.wgt/css/basic.css rename to resources/library/sankoreInteractivities/Choisir.wgt/css/basic.css diff --git a/resources/library/interactive/Choisir.wgt/icon.png b/resources/library/sankoreInteractivities/Choisir.wgt/icon.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/icon.png rename to resources/library/sankoreInteractivities/Choisir.wgt/icon.png diff --git a/resources/library/interactive/Choisir.wgt/images/1thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/1thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/1thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/1thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/2thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/2thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/2thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/2thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/3thOption.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/3thOption.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/3thOption.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/3thOption.png diff --git a/resources/library/interactive/Choisir.wgt/images/addSomething.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/addSomething.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/addSomething.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/addSomething.png diff --git a/resources/library/interactive/Choisir.wgt/images/bigBlackClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/bigBlackClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/bigBlackClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/bigBlackClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/blueClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/blueClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/blueClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/blueClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldBlackClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldBlackClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldBlackClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldBlackClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/boldGreyClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/boldGreyClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/boldGreyClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/boldGreyClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/bottomLeftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/bottomLeftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/bottomLeftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/bottomLeftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/complete.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/complete.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/complete.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/complete.png diff --git a/resources/library/interactive/Choisir.wgt/images/grayClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/grayClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/grayClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/grayClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/greySquare.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/greySquare.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/greySquare.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/greySquare.png diff --git a/resources/library/interactive/Choisir.wgt/images/greySquareArrow.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/greySquareArrow.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/greySquareArrow.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/greySquareArrow.png diff --git a/resources/library/interactive/Choisir.wgt/images/horSep.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/horSep.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/horSep.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/horSep.png diff --git a/resources/library/interactive/Choisir.wgt/images/leftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/leftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/leftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/leftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/lessBottomBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lessBottomBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lessBottomBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lessBottomBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lessTopBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lessTopBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lessTopBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lessTopBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/lowerBorder2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/lowerBorder2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder2.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack2.png diff --git a/resources/library/interactive/Choisir.wgt/images/niceBack3.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack3.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/niceBack3.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack3.png diff --git a/resources/library/interactive/Choisir.wgt/images/pencil.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/pencil.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/pencil.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/pencil.png diff --git a/resources/library/interactive/Choisir.wgt/images/point.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/point.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/point.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/point.png diff --git a/resources/library/interactive/Choisir.wgt/images/redBoldClose.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/redBoldClose.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/redBoldClose.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/redBoldClose.png diff --git a/resources/library/interactive/Choisir.wgt/images/reload.jpg b/resources/library/sankoreInteractivities/Choisir.wgt/images/reload.jpg similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/reload.jpg rename to resources/library/sankoreInteractivities/Choisir.wgt/images/reload.jpg diff --git a/resources/library/interactive/Choisir.wgt/images/reload2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/reload2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/reload2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/reload2.png diff --git a/resources/library/interactive/Choisir.wgt/images/rightThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/rightThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/rightThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/rightThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/separator.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/separator.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/separator.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/separator.png diff --git a/resources/library/interactive/Choisir.wgt/images/separator2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/separator2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/separator2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/separator2.png diff --git a/resources/library/interactive/Choisir.wgt/images/settings.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/settings.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/settings.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/settings.png diff --git a/resources/library/interactive/Choisir.wgt/images/sidePoints.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/sidePoints.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/sidePoints.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/sidePoints.png diff --git a/resources/library/interactive/Choisir.wgt/images/spanner.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/spanner.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/spanner.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/spanner.png diff --git a/resources/library/interactive/Choisir.wgt/images/star.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/star.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/star.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/star.png diff --git a/resources/library/interactive/Choisir.wgt/images/stop.jpg b/resources/library/sankoreInteractivities/Choisir.wgt/images/stop.jpg similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/stop.jpg rename to resources/library/sankoreInteractivities/Choisir.wgt/images/stop.jpg diff --git a/resources/library/interactive/Choisir.wgt/images/tool.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/tool.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/tool.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/tool.png diff --git a/resources/library/interactive/Choisir.wgt/images/topLeftThing.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/topLeftThing.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/topLeftThing.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/topLeftThing.png diff --git a/resources/library/interactive/Choisir.wgt/images/transparentBack.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/transparentBack.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/transparentBack.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/transparentBack.png diff --git a/resources/library/interactive/Choisir.wgt/images/upperBorder.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/upperBorder.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder.png diff --git a/resources/library/interactive/Choisir.wgt/images/upperBorder2.png b/resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder2.png similarity index 100% rename from resources/library/interactive/Choisir.wgt/images/upperBorder2.png rename to resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder2.png diff --git a/resources/library/interactive/Choisir.wgt/index.html b/resources/library/sankoreInteractivities/Choisir.wgt/index.html similarity index 100% rename from resources/library/interactive/Choisir.wgt/index.html rename to resources/library/sankoreInteractivities/Choisir.wgt/index.html diff --git a/resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/jquery-1.6.2.min.js similarity index 100% rename from resources/library/interactive/Choisir.wgt/scripts/jquery-1.6.2.min.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/jquery-1.6.2.min.js diff --git a/resources/library/interactive/Choisir.wgt/scripts/languages.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/languages.js similarity index 100% rename from resources/library/interactive/Choisir.wgt/scripts/languages.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/languages.js diff --git a/resources/library/interactive/Choisir.wgt/scripts/selQuestionApp.js b/resources/library/sankoreInteractivities/Choisir.wgt/scripts/selQuestionApp.js similarity index 100% rename from resources/library/interactive/Choisir.wgt/scripts/selQuestionApp.js rename to resources/library/sankoreInteractivities/Choisir.wgt/scripts/selQuestionApp.js diff --git a/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js b/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js index 7e6e14a9..bacfa21d 100644 --- a/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js +++ b/resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js @@ -208,7 +208,7 @@ function modeEdit() // if no sankore api, insert ok button if( !isSankore ) { - $( "#mp_setup" ).empty().append( '' ); + $( "#mp_setup" ).empty().append( '' ); $( "#mp_setup input:button" ).click( function(){ modeView(); }); diff --git a/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js b/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js index bb06994c..5c40bb64 100644 --- a/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js +++ b/resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js @@ -236,7 +236,7 @@ function modeEdit() // if no sankore api, insert ok button if( !isSankore ) { - $( "#mp_setup" ).empty().append( '' ); + $( "#mp_setup" ).empty().append( '' ); $( "#mp_setup input:button" ).click( function(){ modeView(); }); @@ -249,9 +249,11 @@ $(window).mouseout(function(){ if(window.sankore){ var str = ""; $( "#mp_word .letter" ).each( function(){ - str += $(this).text(); + str += $(this).text() + "*"; }); - + + str = str.substr(0, str.length - 1); + sankore.setPreference("currentOrdWords", str); sankore.setPreference("rightOrdWords", word); } diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 9f7b608f..981d4ff2 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -999,6 +999,7 @@ void UBCFFSubsetAdaptor::UBCFFSubsetReader::repositionSvgItem(QGraphicsItem *ite bool UBCFFSubsetAdaptor::UBCFFSubsetReader::createNewScene() { mCurrentScene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mProxy, mProxy->pageCount()); + mCurrentScene->setURStackEnable(false); mCurrentSceneRect = mCurrentScene->normalizedSceneRect(); mVBTransFactor = qMin(mCurrentSceneRect.width() / mViewPort.width(), mCurrentSceneRect.height() / mViewPort.height()); @@ -1035,7 +1036,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistScenes() UBThumbnailAdaptor::persistScene(mProxy->persistencePath(), tmpScene, i); delete tmpScene; - mCurrentScene->setModified(false); } diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index cdaea1e2..6533e06a 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -29,6 +29,7 @@ #include "domain/UBGraphicsTextItem.h" #include "domain/UBAbstractWidget.h" #include "domain/UBGraphicsStroke.h" +#include "domain/UBItem.h" #include "tools/UBGraphicsRuler.h" #include "tools/UBGraphicsCompass.h" @@ -106,7 +107,8 @@ QMatrix UBSvgSubsetAdaptor::fromSvgTransform(const QString& transform) static bool itemZIndexComp(const QGraphicsItem* item1, const QGraphicsItem* item2) { - return item1->zValue() < item2->zValue(); +// return item1->zValue() < item2->zValue(); + return item1->data(UBGraphicsItemData::ItemOwnZValue).toReal() < item2->data(UBGraphicsItemData::ItemOwnZValue).toReal(); } @@ -1337,11 +1339,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol if (!ubZValue.isNull()) { - polygonItem->setZValue(ubZValue.toString().toFloat()); +// polygonItem->setZValue (ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); } else { - polygonItem->setZValue(mGroupZIndex); +// polygonItem->setZValue(mGroupZIndex); + UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); } QStringRef ubFillOnDarkBackground = mXmlReader.attributes().value(mNamespaceUri, "fill-on-dark-background"); @@ -1444,11 +1448,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromLin if (!ubZValue.isNull()) { - polygonItem->setZValue(ubZValue.toString().toFloat()); +// polygonItem->setZValue(ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat()); } else { - polygonItem->setZValue(mGroupZIndex); +// polygonItem->setZValue(mGroupZIndex); + UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex); } @@ -1587,7 +1593,8 @@ QList UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItem { UBGraphicsPolygonItem* polygonItem = new UBGraphicsPolygonItem(QLineF(points.at(i), points.at(i + 1)), lineWidth); polygonItem->setColor(brushColor); - polygonItem->setZValue(zValue); +// polygonItem->setZValue(zValue); + UBGraphicsItem::assignZValue(polygonItem, zValue); polygonItem->setColorOnDarkBackground(colorOnDarkBackground); polygonItem->setColorOnLightBackground(colorOnLightBackground); @@ -1931,7 +1938,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g if (!ubZValue.isNull()) { - gItem->setZValue(ubZValue.toString().toFloat()); +// gItem->setZValue(ubZValue.toString().toFloat()); + UBGraphicsItem::assignZValue(gItem, ubZValue.toString().toFloat()); } UBItem* ubItem = dynamic_cast(gItem); @@ -2484,7 +2492,8 @@ UBGraphicsRuler* UBSvgSubsetAdaptor::UBSvgSubsetReader::rulerFromSvg() graphicsItemFromSvg(ruler); - ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); +// ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); + UBGraphicsItem::assignZValue(ruler, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler); ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); QStringRef svgWidth = mXmlReader.attributes().value("width"); @@ -2542,7 +2551,8 @@ UBGraphicsCompass* UBSvgSubsetAdaptor::UBSvgSubsetReader::compassFromSvg() graphicsItemFromSvg(compass); - compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); + //compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); + UBGraphicsItem::assignZValue(compass, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass); compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); QStringRef svgX = mXmlReader.attributes().value("x"); @@ -2606,7 +2616,8 @@ UBGraphicsProtractor* UBSvgSubsetAdaptor::UBSvgSubsetReader::protractorFromSvg() { UBGraphicsProtractor* protractor = new UBGraphicsProtractor(); - protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); +// protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); + UBGraphicsItem::assignZValue(protractor, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor); protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(protractor); @@ -2676,7 +2687,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() { UBGraphicsTriangle* triangle = new UBGraphicsTriangle(); - triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); +// triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); + UBGraphicsItem::assignZValue(triangle, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle); triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(triangle); @@ -2695,7 +2707,6 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation); } - triangle->setVisible(true); return triangle; } @@ -2703,7 +2714,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg() UBGraphicsCache* UBSvgSubsetAdaptor::UBSvgSubsetReader::cacheFromSvg() { UBGraphicsCache* pCache = new UBGraphicsCache(); - //pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); + pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); +// UBGraphicsItem::assignZValue(pCache, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache); pCache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); graphicsItemFromSvg(pCache); diff --git a/src/board/UBBoardController.cpp b/src/board/UBBoardController.cpp index 829c07ef..2ca0fe6d 100644 --- a/src/board/UBBoardController.cpp +++ b/src/board/UBBoardController.cpp @@ -66,6 +66,7 @@ #include "UBBoardPaletteManager.h" #include "core/memcheck.h" +//#include UBBoardController::UBBoardController(UBMainWindow* mainWindow) : QObject(mainWindow->centralWidget()) @@ -776,6 +777,12 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString { QString mimeType = pContentTypeHeader; + // In some cases "image/jpeg;charset=" is retourned by the drag-n-drop. That is + // why we will check if an ; exists and take the first part (the standard allows this kind of mimetype) + int position=mimeType.indexOf(";"); + if(position != -1) + mimeType=mimeType.left(position); + if (!pSuccess) { UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString())); @@ -1132,7 +1139,7 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, if(sceneChange) emit activeSceneWillChange(); - UBApplication::undoStack->clear(); + ClearUndoStack(); mActiveScene = targetScene; mActiveDocument = pDocumentProxy; @@ -1173,6 +1180,57 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, } } +void UBBoardController::ClearUndoStack() +{ + QSet uniqueItems; + // go through all stack command + int count = UBApplication::undoStack->count(); + for(int i = 0; i < UBApplication::undoStack->count(); i++) + { + + UBAbstractUndoCommand *abstractCmd = (UBAbstractUndoCommand*)UBApplication::undoStack->command(i); + if(abstractCmd->getType() != UBAbstractUndoCommand::undotype_GRAPHICITEM) + continue; + + UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)UBApplication::undoStack->command(i); + + // go through all added and removed objects, for create list of unique objects + QSetIterator itAdded(cmd->GetAddedList()); + while (itAdded.hasNext()) + { + QGraphicsItem* item = itAdded.next(); + if( !uniqueItems.contains(item) ) + uniqueItems.insert(item); + } + + QSetIterator itRemoved(cmd->GetRemovedList()); + while (itRemoved.hasNext()) + { + QGraphicsItem* item = itRemoved.next(); + if( !uniqueItems.contains(item) ) + uniqueItems.insert(item); + } + } + + // clear stack, and command list + UBApplication::undoStack->clear(); + count = UBApplication::undoStack->count(); + + // go through all unique items, and check, ot on scene, or not. + // if not on scene, than item can be deleted + + QSetIterator itUniq(uniqueItems); + while (itUniq.hasNext()) + { + QGraphicsItem* item = itUniq.next(); + UBGraphicsScene *scene = (UBGraphicsScene*)item->scene(); + if(!scene) + { + bool retCode = mActiveScene->deleteItem(item); + } + } + +} void UBBoardController::adjustDisplayViews() { @@ -1842,7 +1900,8 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint if (gi) { - gi->setZValue(mActiveScene->getNextObjectZIndex()); +// gi->setZValue(mActiveScene->getNextObjectZIndex()); + UBGraphicsItem::assignZValue(gi, mActiveScene->getNextObjectZIndex()); mActiveScene->addItem(gi); gi->setPos(gi->pos() + QPointF(50, 50)); } diff --git a/src/board/UBBoardController.h b/src/board/UBBoardController.h index 218130ab..2b17670b 100644 --- a/src/board/UBBoardController.h +++ b/src/board/UBBoardController.h @@ -150,6 +150,9 @@ class UBBoardController : public QObject void notifyPageChanged(); void displayMetaData(QMap metadatas); + void ClearUndoStack(); + + public slots: void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0); void showDocumentsDialog(); diff --git a/src/core/UB.h b/src/core/UB.h index fbe7dd77..83a4b456 100644 --- a/src/core/UB.h +++ b/src/core/UB.h @@ -78,6 +78,7 @@ struct UBGraphicsItemData ItemLayerType , ItemLocked , ItemEditable//for text only + , ItemOwnZValue }; }; diff --git a/src/core/UBApplicationController.cpp b/src/core/UBApplicationController.cpp index efece366..6550c56a 100644 --- a/src/core/UBApplicationController.cpp +++ b/src/core/UBApplicationController.cpp @@ -368,7 +368,7 @@ void UBApplicationController::showInternet() if (UBSettings::settings()->webUseExternalBrowser->get().toBool()) { showDesktop(true); - UBApplication::webController->show(UBWebController::WebBrowser); + UBApplication::webController->show(UBWebController::WebBrowser); // really no have emit mainModeChanged here ? potential problem with virtual keyboard ? } else @@ -460,6 +460,7 @@ void UBApplicationController::showTutorial() UBApplication::boardController->hide(); } + // it's needed not to duplicate webbrowser search in web mode. If I've breaked smbd's code let Ivan know UBApplication::webController->show(UBWebController::Tutorial); mMainWindow->webToolBar->hide(); @@ -488,7 +489,8 @@ void UBApplicationController::showSankoreEditor() UBApplication::boardController->hide(); } - UBApplication::webController->show(UBWebController::Paraschool); +// it's needed not to duplicate webbrowser search in web mode. If I've breaked smbd's code let Ivan know + UBApplication::webController->show(UBWebController::Paraschool); mMainWindow->webToolBar->hide(); mMainWindow->boardToolBar->hide(); diff --git a/src/domain/UBAbstractUndoCommand.cpp b/src/domain/UBAbstractUndoCommand.cpp new file mode 100644 index 00000000..fe623acc --- /dev/null +++ b/src/domain/UBAbstractUndoCommand.cpp @@ -0,0 +1,40 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "UBAbstractUndoCommand.h" + +UBAbstractUndoCommand::UBAbstractUndoCommand() +{ + // NOOP +} + +UBAbstractUndoCommand::~UBAbstractUndoCommand() +{ + // NOOP +} + + +void UBAbstractUndoCommand::undo() +{ + // NOOP +} + +void UBAbstractUndoCommand::redo() +{ + // NOOP +} + +//void UBAbstractUndoCommand::UndoType getType(UndoType type); + diff --git a/src/domain/UBAbstractUndoCommand.h b/src/domain/UBAbstractUndoCommand.h new file mode 100644 index 00000000..3276284a --- /dev/null +++ b/src/domain/UBAbstractUndoCommand.h @@ -0,0 +1,46 @@ +/* + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef UBABSTRACTUNDOCOMMAND_H_ +#define UBABSTRACTUNDOCOMMAND_H_ + +#include + +class UBAbstractUndoCommand : public QUndoCommand +{ + public: + + UBAbstractUndoCommand(); + ~UBAbstractUndoCommand(); + + enum UndoType + { + undotype_UNKNOWN = 0, + undotype_DOCUMENT = 1, + undotype_GRAPHICITEMTRANSFORM = 2, + undotype_GRAPHICITEM = 3, + undotype_GRAPHICTEXTITEM = 4, + undotype_PAGESIZE = 5 + }; + + virtual UndoType getType() { return undotype_UNKNOWN; } + + protected: + virtual void undo(); + virtual void redo(); + +}; + +#endif /* UBABSTRACTUNDOCOMMAND_H_ */ diff --git a/src/domain/UBDocumentUndoCommand.h b/src/domain/UBDocumentUndoCommand.h index a5f61d9a..b6b1785a 100644 --- a/src/domain/UBDocumentUndoCommand.h +++ b/src/domain/UBDocumentUndoCommand.h @@ -17,18 +17,20 @@ #define UBDOCUMENTUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" class UBDocumentProxy; class UBGraphicsScene; - -class UBDocumentUndoCommand: public QUndoCommand +class UBDocumentUndoCommand: public UBAbstractUndoCommand { public: UBDocumentUndoCommand(UBDocumentProxy* pDocument, const QList& pOldScenes, const QList& pNewScenes, const int& pActiveSceneIndex); virtual ~UBDocumentUndoCommand(); + virtual UndoType getType() { return undotype_DOCUMENT; }; + protected: virtual void undo(); diff --git a/src/domain/UBGraphicsAudioItem.cpp b/src/domain/UBGraphicsAudioItem.cpp index 12a2eae6..d38e27b7 100644 --- a/src/domain/UBGraphicsAudioItem.cpp +++ b/src/domain/UBGraphicsAudioItem.cpp @@ -95,7 +95,8 @@ UBItem* UBGraphicsAudioItem::deepCopy() const UBGraphicsAudioItem *copy = new UBGraphicsAudioItem(audioUrl, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsDelegateFrame.cpp b/src/domain/UBGraphicsDelegateFrame.cpp index a6f17114..393353d1 100644 --- a/src/domain/UBGraphicsDelegateFrame.cpp +++ b/src/domain/UBGraphicsDelegateFrame.cpp @@ -531,6 +531,9 @@ void UBGraphicsDelegateFrame::positionHandles() { setBrush(QBrush(UBSettings::paletteColor)); } + + //make frame interact like delegated item when selected. Maybe should be deleted if selection logic will change + setZValue(delegated()->zValue()); } diff --git a/src/domain/UBGraphicsItemDelegate.cpp b/src/domain/UBGraphicsItemDelegate.cpp index 7cc8fa96..86b93b68 100644 --- a/src/domain/UBGraphicsItemDelegate.cpp +++ b/src/domain/UBGraphicsItemDelegate.cpp @@ -72,7 +72,8 @@ void UBGraphicsItemDelegate::init() { mFrame = new UBGraphicsDelegateFrame(this, QRectF(0, 0, 0, 0), mFrameWidth, mRespectRatio); mFrame->hide(); - mFrame->setZValue(UBGraphicsScene::toolLayerStart + 1); +// mFrame->setZValue(UBGraphicsScene::toolLayerStart + 1); + UBGraphicsItem::assignZValue(mFrame, UBGraphicsScene::toolLayerStart + 1); mFrame->setFlag(QGraphicsItem::ItemIsSelectable, true); mDeleteButton = new DelegateButton(":/images/close.svg", mDelegated, mFrame); @@ -92,7 +93,8 @@ void UBGraphicsItemDelegate::init() foreach(DelegateButton* button, mButtons) { button->hide(); - button->setZValue(UBGraphicsScene::toolLayerStart + 2); +// button->setZValue(UBGraphicsScene::toolLayerStart + 2); + UBGraphicsItem::assignZValue(button, UBGraphicsScene::toolLayerStart + 2); button->setFlag(QGraphicsItem::ItemIsSelectable, true); } } @@ -282,8 +284,8 @@ void UBGraphicsItemDelegate::positionHandles() void UBGraphicsItemDelegate::remove(bool canUndo) { - QGraphicsScene* scene = mDelegated->scene(); - +// QGraphicsScene* scene = mDelegated->scene(); + UBGraphicsScene* scene = (UBGraphicsScene*)(mDelegated->scene()); if (scene) { foreach(DelegateButton* button, mButtons) @@ -321,12 +323,10 @@ void UBGraphicsItemDelegate::lock(bool locked) if (locked) { mDelegated->setData(UBGraphicsItemData::ItemLocked, QVariant(true)); - qDebug() << "item's data is called for locked" << mDelegated->data(UBGraphicsItemData::ItemLocked); } else { mDelegated->setData(UBGraphicsItemData::ItemLocked, QVariant(false)); - qDebug() << "item's data is called for unlocked" << mDelegated->data(UBGraphicsItemData::ItemLocked); } mDelegated->update(); diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.cpp b/src/domain/UBGraphicsItemTransformUndoCommand.cpp index 0d799f0a..f21355bd 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.cpp +++ b/src/domain/UBGraphicsItemTransformUndoCommand.cpp @@ -15,6 +15,7 @@ #include "UBGraphicsItemTransformUndoCommand.h" #include "UBResizableGraphicsItem.h" +#include "domain/UBItem.h" #include "core/memcheck.h" @@ -49,6 +50,7 @@ void UBGraphicsItemTransformUndoCommand::undo() mItem->setPos(mPreviousPosition); mItem->setTransform(mPreviousTransform); mItem->setZValue(mPreviousZValue); +// UBGraphicsItem::assignZValue(mItem, mPreviousZValue); UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); @@ -62,6 +64,8 @@ void UBGraphicsItemTransformUndoCommand::redo() mItem->setTransform(mCurrentTransform); mItem->setZValue(mCurrentZValue); +// UBGraphicsItem::assignZValue(mItem, /*mCurrentZValue*/mItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); + UBResizableGraphicsItem* resizableItem = dynamic_cast(mItem); if (resizableItem) diff --git a/src/domain/UBGraphicsItemTransformUndoCommand.h b/src/domain/UBGraphicsItemTransformUndoCommand.h index 67b57dd1..2f4538d7 100644 --- a/src/domain/UBGraphicsItemTransformUndoCommand.h +++ b/src/domain/UBGraphicsItemTransformUndoCommand.h @@ -19,9 +19,10 @@ #include #include "UBResizableGraphicsItem.h" +#include "UBAbstractUndoCommand.h" -class UBGraphicsItemTransformUndoCommand : public QUndoCommand +class UBGraphicsItemTransformUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsItemTransformUndoCommand(QGraphicsItem* pItem, @@ -31,6 +32,8 @@ class UBGraphicsItemTransformUndoCommand : public QUndoCommand const QSizeF& prevSize = QSizeF()); virtual ~UBGraphicsItemTransformUndoCommand(); + virtual UndoType getType() { return undotype_GRAPHICITEMTRANSFORM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBGraphicsItemUndoCommand.h b/src/domain/UBGraphicsItemUndoCommand.h index 4d513915..d3230893 100644 --- a/src/domain/UBGraphicsItemUndoCommand.h +++ b/src/domain/UBGraphicsItemUndoCommand.h @@ -17,11 +17,13 @@ #define UBGRAPHICSITEMUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" + class UBGraphicsScene; -class UBGraphicsItemUndoCommand : public QUndoCommand +class UBGraphicsItemUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsItemUndoCommand(UBGraphicsScene* pScene, const QSet& pRemovedItems, @@ -32,6 +34,11 @@ class UBGraphicsItemUndoCommand : public QUndoCommand virtual ~UBGraphicsItemUndoCommand(); + QSet GetAddedList() { return mAddedItems; }; + QSet GetRemovedList() { return mRemovedItems; }; + + virtual UndoType getType() { return undotype_GRAPHICITEM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBGraphicsPDFItem.cpp b/src/domain/UBGraphicsPDFItem.cpp index 7838358f..704ba676 100644 --- a/src/domain/UBGraphicsPDFItem.cpp +++ b/src/domain/UBGraphicsPDFItem.cpp @@ -84,7 +84,8 @@ UBItem* UBGraphicsPDFItem::deepCopy() const UBGraphicsPDFItem *copy = new UBGraphicsPDFItem(mRenderer, mPageNumber, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -134,7 +135,8 @@ UBGraphicsPixmapItem* UBGraphicsPDFItem::toPixmapItem() const pixmapItem->setPixmap(pixmap); pixmapItem->setPos(this->pos()); - pixmapItem->setZValue(this->zValue()); +// pixmapItem->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(pixmapItem, this->zValue()); pixmapItem->setTransform(this->transform()); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsPixmapItem.cpp b/src/domain/UBGraphicsPixmapItem.cpp index edffb90d..ceb4fd28 100644 --- a/src/domain/UBGraphicsPixmapItem.cpp +++ b/src/domain/UBGraphicsPixmapItem.cpp @@ -98,7 +98,8 @@ UBItem* UBGraphicsPixmapItem::deepCopy() const copy->setPixmap(this->pixmap()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index c8153ca4..d2e96e25 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -153,7 +153,9 @@ UBGraphicsPolygonItem* UBGraphicsPolygonItem::deepCopy(const QPolygonF& pol) con copy->setPen(this->pen()); copy->mHasAlpha = this->mHasAlpha; - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); + copy->setColorOnDarkBackground(this->colorOnDarkBackground()); copy->setColorOnLightBackground(this->colorOnLightBackground()); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 4698cc48..cbbbe593 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -75,6 +75,8 @@ qreal UBGraphicsScene::toolOffsetEraser = 200; qreal UBGraphicsScene::toolOffsetCurtain = 1000; qreal UBGraphicsScene::toolOffsetPointer = 1100; +qreal UBGraphicsScene::toolOffsetCache = 1000;//Didier please define offset you want + UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) : UBCoreGraphicsScene(parent) , mEraser(0) @@ -91,8 +93,10 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) , mCurrentStroke(0) , mShouldUseOMP(true) , mItemCount(0) + , enableUndoRedoStack(true) , magniferControlViewWidget(0) , magniferDisplayViewWidget(0) + { #ifdef __ppc__ @@ -137,6 +141,8 @@ UBGraphicsScene::UBGraphicsScene(UBDocumentProxy* parent) } connect(this, SIGNAL(selectionChanged()), this, SLOT(selectionChangedProcessing())); + + } UBGraphicsScene::~UBGraphicsScene() @@ -150,32 +156,28 @@ UBGraphicsScene::~UBGraphicsScene() void UBGraphicsScene::selectionChangedProcessing() { - -// if (selectedItems().count()) -// UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); + if (selectedItems().count()) + UBApplication::showMessage("ZValue is " + QString::number(selectedItems().first()->zValue(), 'f')); QList allItemsList = items(); - for( int i = 0; i < allItemsList.size(); i++ ) - { + qreal maxZ = 0.; + for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); //Temporary stub. Due to ugly z-order implementation I need to do this (sankore 360) //z-order behavior should be reimplemented and this stub should be deleted if (nextItem == mBackgroundObject) continue; //Temporary stub end (sankore 360) -// qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); -// qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); + if (nextItem->zValue() > maxZ) + maxZ = nextItem->zValue(); + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); +// nextItem->setZValue(qreal(1)); } - QList selItemsList = selectedItems(); - for( int i = 0; i < selItemsList.size(); i++ ) - { + for( int i = 0; i < selItemsList.size(); i++ ) { QGraphicsItem *nextItem = selItemsList.at(i); -// qreal zValue = nextItem->zValue(); - nextItem->setZValue(2); -// qDebug() << QString(" >>> %1 <<< ").arg(i) << QString(" >>> %1 <<< ").arg(zValue); + nextItem->setZValue(maxZ + 0.0001); } } @@ -373,10 +375,13 @@ bool UBGraphicsScene::inputDeviceRelease() if (mRemovedItems.size() > 0 || mAddedItems.size() > 0) { - UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack - if(UBApplication::undoStack) - UBApplication::undoStack->push(udcmd); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* udcmd = new UBGraphicsItemUndoCommand(this, mRemovedItems, mAddedItems); //deleted by the undoStack + + if(UBApplication::undoStack) + UBApplication::undoStack->push(udcmd); + } mRemovedItems.clear(); mAddedItems.clear(); @@ -407,23 +412,23 @@ void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool isFirstDraw) if(isFirstDraw) { + qreal maxZ = 0.; QList allItemsList = items(); for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); - qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); + if (zValue > maxZ) + maxZ = zValue; + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); } - mEraser->setZValue(2); + mEraser->setZValue(maxZ + 0.0001); mEraser->show(); } - } } - void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) { qreal pointerDiameter = UBSettings::pointerDiameter / UBApplication::boardController->currentZoom(); @@ -439,19 +444,20 @@ void UBGraphicsScene::drawPointer(const QPointF &pPoint, bool isFirstDraw) if(isFirstDraw) { + qreal maxZ = 0.; QList allItemsList = items(); for( int i = 0; i < allItemsList.size(); i++ ) { QGraphicsItem *nextItem = allItemsList.at(i); qreal zValue = nextItem->zValue(); - nextItem->setZValue(qreal(1)); - qDebug() << QString(" %1 ").arg(i) << QString(" %1 ").arg(zValue); + if (zValue > maxZ) + maxZ = zValue; + nextItem->setZValue(nextItem->data(UBGraphicsItemData::ItemOwnZValue).toReal()); } - mPointer->setZValue(2); + mPointer->setZValue(maxZ + 0.0001); mPointer->show(); } - } } @@ -824,8 +830,8 @@ void UBGraphicsScene::initPolygonItem(UBGraphicsPolygonItem* polygonItem) polygonItem->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Graphic)); - polygonItem->setZValue(getNextDrawingZIndex()); - +// polygonItem->setZValue(getNextDrawingZIndex()); + UBGraphicsItem::assignZValue(polygonItem, getNextDrawingZIndex()); } @@ -962,8 +968,11 @@ void UBGraphicsScene::clearItemsAndAnnotations() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -996,8 +1005,12 @@ void UBGraphicsScene::clearItems() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -1023,8 +1036,12 @@ void UBGraphicsScene::clearAnnotations() // force refresh, QT is a bit lazy and take a lot of time (nb item ^2 ?) to trigger repaint update(sceneRect()); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); - UBApplication::undoStack->push(uc); + + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, removedItems, emptyList); + UBApplication::undoStack->push(uc); + } + setDocumentUpdated(); } @@ -1035,7 +1052,8 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - pixmapItem->setZValue(getNextObjectZIndex()); +// pixmapItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(pixmapItem, getNextObjectZIndex()); pixmapItem->setPixmap(pPixmap); @@ -1044,8 +1062,10 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q addItem(pixmapItem); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, pixmapItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, pixmapItem); + UBApplication::undoStack->push(uc); + } pixmapItem->scale(pScaleFactor, pScaleFactor); @@ -1070,8 +1090,10 @@ UBGraphicsPixmapItem* UBGraphicsScene::addPixmap(const QPixmap& pPixmap, const Q void UBGraphicsScene::textUndoCommandAdded(UBGraphicsTextItem *textItem) { - UBGraphicsTextItemUndoCommand* uc = new UBGraphicsTextItemUndoCommand(textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsTextItemUndoCommand* uc = new UBGraphicsTextItemUndoCommand(textItem); + UBApplication::undoStack->push(uc); + } } @@ -1083,14 +1105,17 @@ UBGraphicsVideoItem* UBGraphicsScene::addVideo(const QUrl& pVideoFileUrl, bool s videoItem->setFlag(QGraphicsItem::ItemIsMovable, true); videoItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - videoItem->setZValue(getNextObjectZIndex()); +// videoItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(videoItem, getNextObjectZIndex()); addItem(videoItem); videoItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, videoItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, videoItem); + UBApplication::undoStack->push(uc); + } videoItem->mediaObject()->play(); @@ -1113,14 +1138,17 @@ UBGraphicsAudioItem* UBGraphicsScene::addAudio(const QUrl& pAudioFileUrl, bool s audioItem->setFlag(QGraphicsItem::ItemIsMovable, true); audioItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - audioItem->setZValue(getNextObjectZIndex()); +// audioItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(audioItem, getNextObjectZIndex()); addItem(audioItem); audioItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, audioItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, audioItem); + UBApplication::undoStack->push(uc); + } audioItem->mediaObject()->play(); @@ -1178,7 +1206,8 @@ UBGraphicsW3CWidgetItem* UBGraphicsScene::addW3CWidget(const QUrl& pWidgetUrl, c void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, const QPointF& pPos) { graphicsWidget->setFlag(QGraphicsItem::ItemIsSelectable, true); - graphicsWidget->setZValue(getNextObjectZIndex()); +// graphicsWidget->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(graphicsWidget, getNextObjectZIndex()); addItem(graphicsWidget); @@ -1194,8 +1223,10 @@ void UBGraphicsScene::addGraphicsWidget(UBGraphicsWidgetItem* graphicsWidget, co // graphicsWidget->widgetWebView()->loadMainHtml(); graphicsWidget->setSelected(true); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, graphicsWidget); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, graphicsWidget); + UBApplication::undoStack->push(uc); + } setDocumentUpdated(); } @@ -1238,7 +1269,8 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint svgItem->setFlag(QGraphicsItem::ItemIsMovable, true); svgItem->setFlag(QGraphicsItem::ItemIsSelectable, true); - svgItem->setZValue(getNextObjectZIndex()); +// svgItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(svgItem, getNextObjectZIndex()); qreal sscale = 1 / UBApplication::boardController->systemScaleFactor(); svgItem->scale(sscale, sscale); @@ -1249,8 +1281,10 @@ UBGraphicsSvgItem* UBGraphicsScene::addSvg(const QUrl& pSvgFileUrl, const QPoint addItem(svgItem); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, svgItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, svgItem); + UBApplication::undoStack->push(uc); + } setDocumentUpdated(); @@ -1271,7 +1305,8 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con { UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); textItem->setPlainText(pString); - textItem->setZValue(getNextObjectZIndex()); +// textItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); QFont font = textItem->font(); @@ -1309,8 +1344,10 @@ UBGraphicsTextItem* UBGraphicsScene::addTextWithFont(const QString& pString, con textItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); + UBApplication::undoStack->push(uc); + } connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); @@ -1326,18 +1363,20 @@ UBGraphicsTextItem *UBGraphicsScene::addTextHtml(const QString &pString, const Q UBGraphicsTextItem *textItem = new UBGraphicsTextItem(); textItem->setPlainText(""); textItem->setHtml(pString); - textItem->setZValue(getNextObjectZIndex()); +// textItem->setZValue(getNextObjectZIndex()); + UBGraphicsItem::assignZValue(textItem, getNextObjectZIndex()); addItem(textItem); textItem->show(); - UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); - UBApplication::undoStack->push(uc); + if (enableUndoRedoStack) { //should be deleted after scene own undo stack implemented + UBGraphicsItemUndoCommand* uc = new UBGraphicsItemUndoCommand(this, 0, textItem); + UBApplication::undoStack->push(uc); + } connect(textItem, SIGNAL(textUndoCommandAdded(UBGraphicsTextItem *)), this, SLOT(textUndoCommandAdded(UBGraphicsTextItem *))); -// textItem->setSelected(true); textItem->setFocus(); setDocumentUpdated(); @@ -1425,7 +1464,8 @@ QGraphicsItem* UBGraphicsScene::setAsBackgroundObject(QGraphicsItem* item, bool item->setAcceptedMouseButtons(Qt::NoButton); item->setData(UBGraphicsItemData::ItemLayerType, UBItemLayerType::FixedBackground); - item->setZValue(backgroundLayerStart); +// item->setZValue(backgroundLayerStart); + UBGraphicsItem::assignZValue(item, backgroundLayerStart); if (pAdaptTransformation) { @@ -1529,7 +1569,9 @@ void UBGraphicsScene::addRuler(QPointF center) QRectF rect = ruler->rect(); ruler->setRect(center.x() - rect.width()/2, center.y() - rect.height()/2, rect.width(), rect.height()); - ruler->setZValue(toolLayerStart + toolOffsetRuler); +// ruler->setZValue(toolLayerStart + toolOffsetRuler); + UBGraphicsItem::assignZValue(ruler, toolLayerStart + toolOffsetRuler); + ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(ruler); @@ -1546,7 +1588,9 @@ void UBGraphicsScene::addProtractor(QPointF center) UBGraphicsProtractor* protractor = new UBGraphicsProtractor(); // mem : owned and destroyed by the scene mTools << protractor; - protractor->setZValue(toolLayerStart + toolOffsetProtractor); +// protractor->setZValue(toolLayerStart + toolOffsetProtractor); + UBGraphicsItem::assignZValue(protractor, toolLayerStart + toolOffsetProtractor); + protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(protractor); @@ -1565,7 +1609,9 @@ void UBGraphicsScene::addTriangle(QPointF center) UBGraphicsTriangle* triangle = new UBGraphicsTriangle(); // mem : owned and destroyed by the scene mTools << triangle; - triangle->setZValue(toolLayerStart + toolOffsetProtractor); +// triangle->setZValue(toolLayerStart + toolOffsetProtractor); + UBGraphicsItem::assignZValue(triangle, toolLayerStart + toolOffsetTriangle); + triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); addItem(triangle); @@ -1696,7 +1742,9 @@ void UBGraphicsScene::addCompass(QPointF center) QRectF rect = compass->rect(); compass->setRect(center.x() - rect.width() / 2, center.y() - rect.height() / 2, rect.width(), rect.height()); - compass->setZValue(toolLayerStart + toolOffsetCompass); +// compass->setZValue(toolLayerStart + toolOffsetCompass); + UBGraphicsItem::assignZValue(compass, toolLayerStart + toolOffsetCompass); + compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool)); compass->setVisible(true); @@ -1727,7 +1775,10 @@ void UBGraphicsScene::addMask() view = (QGraphicsView*)UBApplication::boardController->controlView(); QPolygonF polygon = view->mapToScene(view->rect()); - curtain->setZValue(toolLayerStart + toolOffsetCurtain); + +// curtain->setZValue(toolLayerStart + toolOffsetCurtain); + UBGraphicsItem::assignZValue(curtain, toolLayerStart + toolOffsetCurtain); + QRectF rect = polygon.boundingRect(); qreal xScale = view->matrix().m11(); qreal yScale = view->matrix().m22(); diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index f4364e34..416c2344 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -55,6 +55,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem Q_OBJECT public: + // tmp stub for divide addings scene objects from undo mechanism implementation + void setURStackEnable(bool set = true) {enableUndoRedoStack = set;} UBGraphicsScene(UBDocumentProxy *parent); virtual ~UBGraphicsScene(); @@ -363,8 +365,13 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem //int mMesure1Ms, mMesure2Ms; bool mHasCache; + // tmp stub for divide addings scene objects from undo mechanism implementation + bool enableUndoRedoStack; + UBMagnifier *magniferControlViewWidget; UBMagnifier *magniferDisplayViewWidget; + + }; #endif /* UBGRAPHICSSCENE_H_ */ diff --git a/src/domain/UBGraphicsSvgItem.cpp b/src/domain/UBGraphicsSvgItem.cpp index cfd3509a..9d8798ec 100644 --- a/src/domain/UBGraphicsSvgItem.cpp +++ b/src/domain/UBGraphicsSvgItem.cpp @@ -132,7 +132,8 @@ UBItem* UBGraphicsSvgItem::deepCopy() const UBGraphicsSvgItem* copy = new UBGraphicsSvgItem(this->fileData()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); @@ -186,7 +187,8 @@ UBGraphicsPixmapItem* UBGraphicsSvgItem::toPixmapItem() const pixmapItem->setPixmap(QPixmap::fromImage(image)); pixmapItem->setPos(this->pos()); - pixmapItem->setZValue(this->zValue()); +// pixmapItem->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(pixmapItem, this->zValue()); pixmapItem->setTransform(this->transform()); pixmapItem->setFlag(QGraphicsItem::ItemIsMovable, true); pixmapItem->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsTextItem.cpp b/src/domain/UBGraphicsTextItem.cpp index 8770a435..0d01527a 100644 --- a/src/domain/UBGraphicsTextItem.cpp +++ b/src/domain/UBGraphicsTextItem.cpp @@ -205,7 +205,8 @@ UBItem* UBGraphicsTextItem::deepCopy() const copy->setHtml(toHtml()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsTextItemUndoCommand.h b/src/domain/UBGraphicsTextItemUndoCommand.h index 0198d8b5..9f9a610a 100644 --- a/src/domain/UBGraphicsTextItemUndoCommand.h +++ b/src/domain/UBGraphicsTextItemUndoCommand.h @@ -17,16 +17,19 @@ #define UBGRAPHICSTEXTITEMUNDOCOMMAND_H_ #include +#include "UBAbstractUndoCommand.h" #include "UBGraphicsTextItem.h" -class UBGraphicsTextItemUndoCommand: public QUndoCommand +class UBGraphicsTextItemUndoCommand : public UBAbstractUndoCommand { public: UBGraphicsTextItemUndoCommand(UBGraphicsTextItem *textItem); virtual ~UBGraphicsTextItemUndoCommand(); + virtual UndoType getType() { return undotype_GRAPHICTEXTITEM; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/UBGraphicsVideoItem.cpp b/src/domain/UBGraphicsVideoItem.cpp index 841667cf..c1e57e4d 100644 --- a/src/domain/UBGraphicsVideoItem.cpp +++ b/src/domain/UBGraphicsVideoItem.cpp @@ -68,7 +68,8 @@ UBItem* UBGraphicsVideoItem::deepCopy() const UBGraphicsVideoItem *copy = new UBGraphicsVideoItem(videoUrl, parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBGraphicsVideoItemDelegate.cpp b/src/domain/UBGraphicsVideoItemDelegate.cpp index 429194b0..99ba687b 100644 --- a/src/domain/UBGraphicsVideoItemDelegate.cpp +++ b/src/domain/UBGraphicsVideoItemDelegate.cpp @@ -52,7 +52,8 @@ void UBGraphicsVideoItemDelegate::buildButtons() mMuteButton->hide(); mVideoControl = new DelegateVideoControl(delegated(), mFrame); - mVideoControl->setZValue(UBGraphicsScene::toolLayerStart + 2); +// mVideoControl->setZValue(UBGraphicsScene::toolLayerStart + 2); + UBGraphicsItem::assignZValue(mVideoControl, UBGraphicsScene::toolLayerStart + 2); mVideoControl->setFlag(QGraphicsItem::ItemIsSelectable, true); connect(mPlayPauseButton, SIGNAL(clicked(bool)), this, SLOT(togglePlayPause())); diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index b1246f2a..a786e55a 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -366,7 +366,8 @@ UBItem* UBGraphicsW3CWidgetItem::deepCopy() const UBGraphicsW3CWidgetItem *copy = new UBGraphicsW3CWidgetItem(mWebKitWidget->widgetUrl(), parentItem()); copy->setPos(this->pos()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/domain/UBItem.cpp b/src/domain/UBItem.cpp index 4a3e1643..3e6f68cf 100644 --- a/src/domain/UBItem.cpp +++ b/src/domain/UBItem.cpp @@ -28,3 +28,9 @@ UBItem::~UBItem() { // NOOP } + +void UBGraphicsItem::assignZValue(QGraphicsItem *item, int value) +{ + item->setZValue(value); + item->setData(UBGraphicsItemData::ItemOwnZValue, value); +} diff --git a/src/domain/UBItem.h b/src/domain/UBItem.h index 328a3c37..7ae29988 100644 --- a/src/domain/UBItem.h +++ b/src/domain/UBItem.h @@ -100,6 +100,7 @@ protected: public: + static void assignZValue(QGraphicsItem*, int value); virtual UBGraphicsItemDelegate *Delegate() const = 0; virtual void remove() = 0; diff --git a/src/domain/UBPageSizeUndoCommand.h b/src/domain/UBPageSizeUndoCommand.h index 78cf98b8..ad295d49 100644 --- a/src/domain/UBPageSizeUndoCommand.h +++ b/src/domain/UBPageSizeUndoCommand.h @@ -17,16 +17,19 @@ #define UBPageSizeUndoCommand_H_ #include +#include "UBAbstractUndoCommand.h" class UBGraphicsScene; -class UBPageSizeUndoCommand : public QUndoCommand +class UBPageSizeUndoCommand : public UBAbstractUndoCommand { public: UBPageSizeUndoCommand(UBGraphicsScene* pScene, const QSize& previousSize, const QSize& newSize); virtual ~UBPageSizeUndoCommand(); + virtual UndoType getType() { return undotype_PAGESIZE; }; + protected: virtual void undo(); virtual void redo(); diff --git a/src/domain/domain.pri b/src/domain/domain.pri index fbff6174..e3653576 100644 --- a/src/domain/domain.pri +++ b/src/domain/domain.pri @@ -21,7 +21,8 @@ HEADERS += src/domain/UBGraphicsScene.h \ src/domain/UBGraphicsStroke.h \ src/domain/UBGraphicsMediaItem.h \ src/domain/UBGraphicsAudioItem.h \ - src/domain/UBGraphicsAudioItemDelegate.h + src/domain/UBGraphicsAudioItemDelegate.h \ + src/domain/UBAbstractUndoCommand.h HEADERS += src/domain/UBGraphicsItemDelegate.h \ src/domain/UBGraphicsVideoItemDelegate.h \ @@ -52,7 +53,8 @@ SOURCES += src/domain/UBGraphicsScene.cpp \ src/domain/UBGraphicsStroke.cpp \ src/domain/UBGraphicsMediaItem.cpp \ src/domain/UBGraphicsAudioItem.cpp \ - src/domain/UBGraphicsAudioItemDelegate.cpp + src/domain/UBGraphicsAudioItemDelegate.cpp \ + src/domain/UBAbstractUndoCommand.cpp SOURCES += src/domain/UBGraphicsItemDelegate.cpp \ src/domain/UBGraphicsVideoItemDelegate.cpp \ diff --git a/src/frameworks/UBCoreGraphicsScene.cpp b/src/frameworks/UBCoreGraphicsScene.cpp index 4412f9b1..bcac6202 100644 --- a/src/frameworks/UBCoreGraphicsScene.cpp +++ b/src/frameworks/UBCoreGraphicsScene.cpp @@ -53,3 +53,16 @@ void UBCoreGraphicsScene::removeItem(QGraphicsItem* item, bool forceDelete) delete item; } } + +bool UBCoreGraphicsScene::deleteItem(QGraphicsItem* item) +{ + if(mItemsToDelete.contains(item)) + { + mItemsToDelete.remove(item); + delete item; + return true; + } + else + return false; +} + diff --git a/src/frameworks/UBCoreGraphicsScene.h b/src/frameworks/UBCoreGraphicsScene.h index fdeaae49..656f2a00 100644 --- a/src/frameworks/UBCoreGraphicsScene.h +++ b/src/frameworks/UBCoreGraphicsScene.h @@ -28,6 +28,9 @@ class UBCoreGraphicsScene : public QGraphicsScene virtual void removeItem(QGraphicsItem* item, bool forceDelete = false); + virtual bool deleteItem(QGraphicsItem* item); + + private: QSet mItemsToDelete; }; diff --git a/src/gui/UBDocumentNavigator.cpp b/src/gui/UBDocumentNavigator.cpp index 1526a087..4efea020 100644 --- a/src/gui/UBDocumentNavigator.cpp +++ b/src/gui/UBDocumentNavigator.cpp @@ -159,6 +159,7 @@ void UBDocumentNavigator::updateSpecificThumbnail(int iPage) mScene->removeItem(pItem); mScene->addItem(pixmapItem); mThumbnails.replace(iPage, pixmapItem); + delete pItem; } } } diff --git a/src/gui/UBDocumentTreeWidget.cpp b/src/gui/UBDocumentTreeWidget.cpp index 7f06d5d2..b344855c 100644 --- a/src/gui/UBDocumentTreeWidget.cpp +++ b/src/gui/UBDocumentTreeWidget.cpp @@ -25,6 +25,10 @@ #include "core/UBDocumentManager.h" #include "document/UBDocumentController.h" +#include "adaptors/UBThumbnailAdaptor.h" +#include "adaptors/UBSvgSubsetAdaptor.h" +#include "frameworks/UBFileSystemUtils.h" + #include "core/memcheck.h" UBDocumentTreeWidget::UBDocumentTreeWidget(QWidget * parent) @@ -290,7 +294,14 @@ void UBDocumentTreeWidget::dropEvent(QDropEvent *event) } UBPersistenceManager::persistenceManager()->insertDocumentSceneAt(targetDocProxy, sceneClone, targetDocProxy->pageCount()); - } + + //due to incorrect generation of thumbnails of invisible scene I've used direct copying of thumbnail files + //it's not universal and good way but it's faster + QString from = sourceItem.documentProxy()->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", sourceItem.sceneIndex() + 1); + QString to = targetDocProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", targetDocProxy->pageCount()); + QFile::remove(to); + QFile::copy(from, to); + } } QApplication::restoreOverrideCursor(); diff --git a/src/gui/UBDocumentTreeWidget.h b/src/gui/UBDocumentTreeWidget.h index ab2e9866..f76d1696 100644 --- a/src/gui/UBDocumentTreeWidget.h +++ b/src/gui/UBDocumentTreeWidget.h @@ -23,7 +23,7 @@ class UBDocumentProxyTreeItem; class UBDocumentTreeWidget : public QTreeWidget { - Q_OBJECT; + Q_OBJECT public: UBDocumentTreeWidget(QWidget *parent = 0); diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index ea8348b1..c3986972 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -62,6 +62,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock mpTitleLabel->setAlignment(Qt::AlignRight); mpTitle = new QLineEdit(mpContainer); mpTitle->setObjectName("DockPaletteWidgetLineEdit"); + connect(mpTitle, SIGNAL(textChanged(const QString&)), this, SLOT(onTitleTextChanged(const QString&))); mpTitleLayout = new QHBoxLayout(); mpTitleLayout->addWidget(mpTitleLabel, 0); mpTitleLayout->addWidget(mpTitle, 1); @@ -95,6 +96,7 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock mpEquipmentLabel->setAlignment(Qt::AlignRight); mpEquipment = new QLineEdit(mpContainer); mpEquipment->setObjectName("DockPaletteWidgetLineEdit"); + connect(mpEquipment, SIGNAL(textChanged(const QString&)), this, SLOT(onEquipmentTextChanged(const QString&))); mpEquipmentLayout = new QHBoxLayout(); mpEquipmentLayout->addWidget(mpEquipmentLabel, 0); mpEquipmentLayout->addWidget(mpEquipment, 1); @@ -319,6 +321,16 @@ void UBTeacherBarWidget::loadContent() mpAction3->setStudentText(nextInfos.action3Student); } +void UBTeacherBarWidget::onTitleTextChanged(const QString& text) +{ + mpTitle->setToolTip(text); +} + +void UBTeacherBarWidget::onEquipmentTextChanged(const QString& text) +{ + mpEquipment->setToolTip(text); +} + UBTeacherStudentAction::UBTeacherStudentAction(int actionNumber, QWidget *parent, const char *name):QWidget(parent) , mpActionLabel(NULL) , mpTeacherLabel(NULL) diff --git a/src/gui/UBTeacherBarWidget.h b/src/gui/UBTeacherBarWidget.h index 555b6ef6..3f18bcbe 100644 --- a/src/gui/UBTeacherBarWidget.h +++ b/src/gui/UBTeacherBarWidget.h @@ -48,6 +48,8 @@ private slots: void saveContent(); void loadContent(); void onValueChanged(); + void onTitleTextChanged(const QString& text); + void onEquipmentTextChanged(const QString& text); private: void populateCombos(); diff --git a/src/gui/UBThumbnailView.h b/src/gui/UBThumbnailView.h index ecd13a19..32390f1a 100644 --- a/src/gui/UBThumbnailView.h +++ b/src/gui/UBThumbnailView.h @@ -22,7 +22,7 @@ class UBGraphicsScene; class UBThumbnailView : public QGraphicsView { - Q_OBJECT; + Q_OBJECT public: UBThumbnailView(); diff --git a/src/gui/UBThumbnailWidget.h b/src/gui/UBThumbnailWidget.h index c4fa103f..f3f25d6a 100644 --- a/src/gui/UBThumbnailWidget.h +++ b/src/gui/UBThumbnailWidget.h @@ -23,6 +23,7 @@ #include "frameworks/UBCoreGraphicsScene.h" #include "core/UBSettings.h" +#include "domain/UBItem.h" #define STARTDRAGTIME 1000000 #define BUTTONSIZE 48 @@ -148,6 +149,7 @@ class UBThumbnail { item->scene()->addItem(mSelectionItem); mSelectionItem->setZValue(item->zValue() - 1); +// UBGraphicsItem::assignZValue(mSelectionItem, item->zValue() - 1); mAddedToScene = true; } diff --git a/src/pdf-merger/Object.h b/src/pdf-merger/Object.h index d2bc75ba..982d3734 100644 --- a/src/pdf-merger/Object.h +++ b/src/pdf-merger/Object.h @@ -48,7 +48,7 @@ namespace merge_lib std::string fileName = "", std::pair streamBounds = std::make_pair ((unsigned int)0,(unsigned int)0), bool hasStream = false ): _number(objectNumber), _generationNumber(generationNumber), _oldNumber(objectNumber), _content(objectContent),_parents(),_children(),_isPassed(false), - _fileName(fileName), _streamBounds(streamBounds), _hasStream(hasStream), _hasStreamInContent(false) + _streamBounds(streamBounds), _fileName(fileName), _hasStream(hasStream), _hasStreamInContent(false) { } virtual ~Object(); diff --git a/src/tools/UBAbstractDrawRuler.cpp b/src/tools/UBAbstractDrawRuler.cpp index 3c8b8169..e69aa815 100644 --- a/src/tools/UBAbstractDrawRuler.cpp +++ b/src/tools/UBAbstractDrawRuler.cpp @@ -35,7 +35,6 @@ const QColor UBAbstractDrawRuler::sDarkBackgroundDrawColor = QColor(0xff, 0xff, const int UBAbstractDrawRuler::sLeftEdgeMargin = 10; const int UBAbstractDrawRuler::sDegreeToQtAngleUnit = 16; const int UBAbstractDrawRuler::sRotationRadius = 15; -const int UBAbstractDrawRuler::sPixelsPerMillimeter = 5; const int UBAbstractDrawRuler::sFillTransparency = 127; const int UBAbstractDrawRuler::sDrawTransparency = 192; const int UBAbstractDrawRuler::sRoundingRadius = sLeftEdgeMargin / 2; @@ -44,7 +43,12 @@ const int UBAbstractDrawRuler::sRoundingRadius = sLeftEdgeMargin / 2; UBAbstractDrawRuler::UBAbstractDrawRuler() : mShowButtons(false) , mAntiScaleRatio(1.0) -{} +{ + //we actually need to evaluate pixels per millimeter + QDesktopWidget* desktop = UBApplication::desktop(); + int dpiCommon = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2; + sPixelsPerMillimeter = qRound(dpiCommon / 25.4f);//because 1inch = 25.4 mm +} void UBAbstractDrawRuler::create(QGraphicsItem& item) { diff --git a/src/tools/UBAbstractDrawRuler.h b/src/tools/UBAbstractDrawRuler.h index cf98e2f5..0e632eff 100644 --- a/src/tools/UBAbstractDrawRuler.h +++ b/src/tools/UBAbstractDrawRuler.h @@ -70,14 +70,13 @@ protected: static const QColor sDarkBackgroundMiddleFillColor; static const QColor sDarkBackgroundDrawColor; - static const int sLeftEdgeMargin; - static const int sDegreeToQtAngleUnit; - static const int sRotationRadius; - static const int sPixelsPerMillimeter; - static const int sFillTransparency; - static const int sDrawTransparency; - static const int sRoundingRadius; - + static const int sLeftEdgeMargin; + static const int sDegreeToQtAngleUnit; + static const int sRotationRadius; + static const int sFillTransparency; + static const int sDrawTransparency; + static const int sRoundingRadius; + int sPixelsPerMillimeter; }; #endif diff --git a/src/tools/UBGraphicsCache.cpp b/src/tools/UBGraphicsCache.cpp index 231399c3..a7e97895 100644 --- a/src/tools/UBGraphicsCache.cpp +++ b/src/tools/UBGraphicsCache.cpp @@ -33,7 +33,8 @@ UBGraphicsCache::UBGraphicsCache():QGraphicsRectItem() // Get the board size and pass it to the shape QRect boardRect = UBApplication::boardController->displayView()->rect(); setRect(-15*boardRect.width(), -15*boardRect.height(), 30*boardRect.width(), 30*boardRect.height()); - setZValue(CACHE_ZVALUE); +// setZValue(CACHE_ZVALUE); + UBGraphicsItem::assignZValue(this, CACHE_ZVALUE); setData(Qt::UserRole, QVariant("Cache")); } @@ -48,7 +49,8 @@ UBItem* UBGraphicsCache::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? @@ -90,7 +92,8 @@ void UBGraphicsCache::paint(QPainter *painter, const QStyleOptionGraphicsItem *o //Q_UNUSED(option); Q_UNUSED(widget); - setZValue(CACHE_ZVALUE); +// setZValue(CACHE_ZVALUE); + UBGraphicsItem::assignZValue(this, CACHE_ZVALUE); painter->setBrush(mMaskColor); painter->setPen(mMaskColor); diff --git a/src/tools/UBGraphicsCompass.cpp b/src/tools/UBGraphicsCompass.cpp index d0374c11..6e13b125 100644 --- a/src/tools/UBGraphicsCompass.cpp +++ b/src/tools/UBGraphicsCompass.cpp @@ -85,7 +85,8 @@ UBItem* UBGraphicsCompass::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? diff --git a/src/tools/UBGraphicsCurtainItem.cpp b/src/tools/UBGraphicsCurtainItem.cpp index 118b92f2..3dfb21b6 100644 --- a/src/tools/UBGraphicsCurtainItem.cpp +++ b/src/tools/UBGraphicsCurtainItem.cpp @@ -57,8 +57,8 @@ UBGraphicsCurtainItem::~UBGraphicsCurtainItem() QVariant UBGraphicsCurtainItem::itemChange(GraphicsItemChange change, const QVariant &value) { - if (change == QGraphicsItem::ItemSelectedHasChanged && QGraphicsRectItem::scene() && isSelected()) - setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); +// if (change == QGraphicsItem::ItemSelectedHasChanged && QGraphicsRectItem::scene() && isSelected()) +// setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); QVariant newValue = value; @@ -130,7 +130,8 @@ UBItem* UBGraphicsCurtainItem::deepCopy() const copy->setPos(this->pos()); copy->setBrush(this->brush()); copy->setPen(this->pen()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->setFlag(QGraphicsItem::ItemIsMovable, true); copy->setFlag(QGraphicsItem::ItemIsSelectable, true); diff --git a/src/tools/UBGraphicsCurtainItemDelegate.cpp b/src/tools/UBGraphicsCurtainItemDelegate.cpp index 31eb0da7..a16685b6 100644 --- a/src/tools/UBGraphicsCurtainItemDelegate.cpp +++ b/src/tools/UBGraphicsCurtainItemDelegate.cpp @@ -52,7 +52,7 @@ bool UBGraphicsCurtainItemDelegate::mousePressEvent(QGraphicsSceneMouseEvent *ev if (!mDelegated->isSelected()) { mDelegated->setSelected(true); - mDelegated->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); +// mDelegated->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCurtain); positionHandles(); return true; @@ -69,13 +69,13 @@ QVariant UBGraphicsCurtainItemDelegate::itemChange(QGraphicsItem::GraphicsItemCh { if (change == QGraphicsItem::ItemZValueHasChanged) { - mFrame->setZValue(mDelegated->zValue() + 1); +// mFrame->setZValue(mDelegated->zValue() + 1); - foreach(DelegateButton* button, mButtons) - { - button->setZValue(mDelegated->zValue() + 2); - button->setZValue(mDelegated->zValue() + 2); - } +// foreach(DelegateButton* button, mButtons) +// { +// button->setZValue(mDelegated->zValue() + 2); +// button->setZValue(mDelegated->zValue() + 2); +// } } if (change == QGraphicsItem::ItemVisibleHasChanged) diff --git a/src/tools/UBGraphicsProtractor.cpp b/src/tools/UBGraphicsProtractor.cpp index 43a84af1..bafb5689 100644 --- a/src/tools/UBGraphicsProtractor.cpp +++ b/src/tools/UBGraphicsProtractor.cpp @@ -580,7 +580,8 @@ UBItem* UBGraphicsProtractor::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); copy->mCurrentAngle = this->mCurrentAngle; diff --git a/src/tools/UBGraphicsRuler.cpp b/src/tools/UBGraphicsRuler.cpp index cd15de78..2bf27719 100644 --- a/src/tools/UBGraphicsRuler.cpp +++ b/src/tools/UBGraphicsRuler.cpp @@ -74,7 +74,8 @@ UBItem* UBGraphicsRuler::deepCopy() const copy->setPos(this->pos()); copy->setRect(this->rect()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? diff --git a/src/tools/UBGraphicsTriangle.cpp b/src/tools/UBGraphicsTriangle.cpp index f6459f97..e5c7fdeb 100644 --- a/src/tools/UBGraphicsTriangle.cpp +++ b/src/tools/UBGraphicsTriangle.cpp @@ -93,7 +93,8 @@ UBItem* UBGraphicsTriangle::deepCopy(void) const copy->setPos(this->pos()); copy->setPolygon(this->polygon()); - copy->setZValue(this->zValue()); +// copy->setZValue(this->zValue()); + UBGraphicsItem::assignZValue(copy, this->zValue()); copy->setTransform(this->transform()); // TODO UB 4.7 ... complete all members ? diff --git a/src/web/UBWebController.cpp b/src/web/UBWebController.cpp index 08c5e8ab..436397b3 100644 --- a/src/web/UBWebController.cpp +++ b/src/web/UBWebController.cpp @@ -148,6 +148,8 @@ void UBWebController::webBrowserInstance() (*mCurrentWebBrowser)->tabWidget()->tabBar()->show(); (*mCurrentWebBrowser)->tabWidget()->lineEdits()->show(); +// (*mCurrentWebBrowser)->tabWidget()->tabBar()->hide(); +// (*mCurrentWebBrowser)->tabWidget()->lineEdits()->hide(); } UBApplication::applicationController->setMirrorSourceWidget((*mCurrentWebBrowser)->paintWidget()); @@ -192,7 +194,7 @@ void UBWebController::tutorialWebInstance() else { mCurrentWebBrowser = &mWebBrowserList[Tutorial]; - mToolsCurrentPalette = &mToolsPaletteList[Tutorial]; +// mToolsCurrentPalette = &mToolsPaletteList[Tutorial]; // mKeyboardCurrentPalette = &mKeyboardPaletteList[Tutorial]; mToolsPalettePositionned = &mToolsPalettePositionnedList[Tutorial]; if (!(*mCurrentWebBrowser)) diff --git a/src/web/browser/WBBrowserWindow.cpp b/src/web/browser/WBBrowserWindow.cpp index f87178e9..14f96f09 100644 --- a/src/web/browser/WBBrowserWindow.cpp +++ b/src/web/browser/WBBrowserWindow.cpp @@ -97,11 +97,11 @@ WBBrowserWindow::WBBrowserWindow(QWidget *parent, Ui::MainWindow* uniboardMainWi defaultSettings->setAttribute(QWebSettings::PluginsEnabled, true); setupMenu(); -// if(!isViewerWebInstance) + if(!isViewerWebInstance) setupToolBar(); -// else{ -// setupToolBarForTutorial(); -// } + else{ + setupToolBarForTutorial(); + } QVBoxLayout *layout = new QVBoxLayout; layout->setSpacing(0); @@ -205,8 +205,6 @@ void WBBrowserWindow::setupToolBar() connect(mSearchToolBar, SIGNAL(search(const QUrl&)), SLOT(loadUrl(const QUrl&))); mChaseWidget = new WBChaseWidget(this); - mWebToolBar->insertWidget(mUniboardMainWindow->actionWebBigger, mChaseWidget); - mWebToolBar->insertSeparator(mUniboardMainWindow->actionWebBigger); connect(mUniboardMainWindow->actionHome, SIGNAL(triggered()), this , SLOT(slotHome())); diff --git a/src/web/browser/WBTabWidget.cpp b/src/web/browser/WBTabWidget.cpp index 70b3b1d2..2d610a1f 100644 --- a/src/web/browser/WBTabWidget.cpp +++ b/src/web/browser/WBTabWidget.cpp @@ -251,7 +251,6 @@ WBTabWidget::WBTabWidget(QWidget *parent) mLineEdits->setMinimumWidth(200); QSizePolicy spolicy = mLineEdits->sizePolicy(); mLineEdits->setSizePolicy(QSizePolicy::Maximum, spolicy.verticalPolicy()); - } void WBTabWidget::clear() diff --git a/src/web/browser/WBTabWidget.h b/src/web/browser/WBTabWidget.h index ccc90517..4e7874b2 100644 --- a/src/web/browser/WBTabWidget.h +++ b/src/web/browser/WBTabWidget.h @@ -138,7 +138,7 @@ class WBWebActionMapper : public QObject */ class WBTabWidget : public QTabWidget { - Q_OBJECT; + Q_OBJECT signals: // tab widget signals @@ -171,8 +171,10 @@ class WBTabWidget : public QTabWidget QByteArray saveState() const; bool restoreState(const QByteArray &state); - WBTabBar* tabBar() { return mTabBar; }; - QStackedWidget* lineEdits() { return mLineEdits; }; + WBTabBar* tabBar() { return mTabBar; } + QStackedWidget* lineEdits() { return mLineEdits; } + + void setLineEditStackVisible(bool visible) {mLineEdits->setVisible(visible);mLineEdits->hide();} protected: void mouseDoubleClickEvent(QMouseEvent *event); void contextMenuEvent(QContextMenuEvent *event);