From 372160020acd94509b0cecce8bfa9276f2feb48a Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Wed, 26 Sep 2012 15:42:58 +0300 Subject: [PATCH 01/15] Implemented import groups and strokes from CFF. --- src/adaptors/UBCFFSubsetAdaptor.cpp | 118 +++++++++++++++------------- src/adaptors/UBCFFSubsetAdaptor.h | 2 +- 2 files changed, 66 insertions(+), 54 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index f156e4c5..7228f5b2 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -350,13 +350,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e } } - //bounding rect lef top corner coordinates - qreal x1 = polygon.boundingRect().topLeft().x(); - qreal y1 = polygon.boundingRect().topLeft().y(); - //bounding rect dimensions - qreal width = polygon.boundingRect().width(); - qreal height = polygon.boundingRect().height(); - QString strokeColorText = element.attribute(aStroke); QString fillColorText = element.attribute(aFill); QString strokeWidthText = element.attribute(aStrokewidth); @@ -373,37 +366,22 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e brush.setColor(fillColor); brush.setStyle(Qt::SolidPattern); - QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width()); - QPainter painter; - - painter.begin(generator); //drawing to svg tmp file + UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); + graphicsPolygon->setBrush(brush); - painter.translate(pen.widthF() / 2 - x1, pen.widthF() / 2 - y1); - painter.setBrush(brush); - painter.setPen(pen); - painter.drawPolygon(polygon); - - painter.end(); - - //add resulting svg file to scene - UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); QTransform transform; QString textTransform = element.attribute(aTransform); - svgItem->resetTransform(); + graphicsPolygon->resetTransform(); if (!textTransform.isNull()) { - transform = transformFromString(textTransform, svgItem); + transform = transformFromString(textTransform, graphicsPolygon); } - repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 - strokeWidth/2 + transform.m31(), y1 + strokeWidth/2 + transform.m32(), transform); - hashSceneItem(element, svgItem); + mCurrentScene->addItem(graphicsPolygon); if (mGSectionContainer) { - addItemToGSection(svgItem); + addItemToGSection(graphicsPolygon); } - - delete generator; - return true; } bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement &element) @@ -438,9 +416,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & } } - //bounding rect lef top corner coordinates - qreal x1 = polygon.boundingRect().topLeft().x(); - qreal y1 = polygon.boundingRect().topLeft().y(); //bounding rect dimensions qreal width = polygon.boundingRect().width(); qreal height = polygon.boundingRect().height(); @@ -458,35 +433,25 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & pen.setColor(strokeColor); pen.setWidth(strokeWidth); - QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width()); - QPainter painter; - - painter.begin(generator); //drawing to svg tmp file - - painter.translate(pen.widthF()/2 - x1, pen.widthF()/2- y1); - painter.setPen(pen); - painter.drawPolyline(polygon); - - painter.end(); - - //add resulting svg file to scene - UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + QBrush brush; + brush.setColor(strokeColor); + brush.setStyle(Qt::SolidPattern); + UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); + graphicsPolygon->setBrush(brush); QTransform transform; QString textTransform = element.attribute(aTransform); - svgItem->resetTransform(); + graphicsPolygon->resetTransform(); if (!textTransform.isNull()) { - transform = transformFromString(textTransform, svgItem); + transform = transformFromString(textTransform, graphicsPolygon); } - repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 + transform.m31() - strokeWidth/2, y1 + transform.m32() + strokeWidth/2, transform); - hashSceneItem(element, svgItem); - + mCurrentScene->addItem(graphicsPolygon); + if (mGSectionContainer) { - addItemToGSection(svgItem); + addItemToGSection(graphicsPolygon); } - delete generator; return true; } @@ -1052,7 +1017,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvg(const QDomElement &svgSecti return true; } -bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomElement &parent) +UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomElement &parent) { //TODO. Create groups from elements parsed by parseIwbElement() function if (parent.namespaceURI() != iwbNS) { @@ -1060,7 +1025,54 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGroup(QDomElement &parent) return false; } - return true; + UBGraphicsGroupContainerItem *group = new UBGraphicsGroupContainerItem(); + QList strokesContainer; + QList groupContainer; + QDomElement currentStrokeElement = parent.firstChildElement(); + while (!currentStrokeElement.isNull()) + { + if (tGroup == currentStrokeElement.tagName()) + group->addToGroup(parseIwbGroup(currentStrokeElement)); + else + { + QString uuid = currentStrokeElement.attribute(aRef); + if (!uuid.isEmpty()) + { + if (uuid.contains("stroke")) // create stroke group + strokesContainer.append(qgraphicsitem_cast(mCurrentScene->itemForUuid(uuid))); + else // single elements in group + groupContainer.append(mCurrentScene->itemForUuid(uuid)); + } + } + currentStrokeElement = currentStrokeElement.nextSiblingElement(); + } + UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); + UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); + foreach(UBGraphicsPolygonItem* poly, strokesContainer) + { + if (poly) + { + mCurrentScene->removeItem(poly); + mCurrentScene->removeItemFromDeletion(poly); + poly->setStrokesGroup(pStrokesGroup); + poly->setStroke(currentStroke); + pStrokesGroup->addToGroup(poly); + } + } + if (currentStroke->polygons().empty()) + delete currentStroke; + if (pStrokesGroup->childItems().count()) + mCurrentScene->addItem(pStrokesGroup); + else + delete pStrokesGroup; + foreach(QGraphicsItem* item, groupContainer) + group->addToGroup(item); + if (pStrokesGroup) + group->addToGroup(pStrokesGroup); + if (group->childItems().count()) + mCurrentScene->addItem(group); + + return group; } bool UBCFFSubsetAdaptor::UBCFFSubsetReader::strToBool(QString str) diff --git a/src/adaptors/UBCFFSubsetAdaptor.h b/src/adaptors/UBCFFSubsetAdaptor.h index acebc151..ca389a49 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.h +++ b/src/adaptors/UBCFFSubsetAdaptor.h @@ -102,7 +102,7 @@ private: inline bool parseSvgFlash(const QDomElement &element); inline bool parseSvgAudio(const QDomElement &element); inline bool parseSvgVideo(const QDomElement &element); - inline bool parseIwbGroup(QDomElement &parent); + inline UBGraphicsGroupContainerItem *parseIwbGroup(QDomElement &parent); inline bool parseIwbElement(QDomElement &element); inline void parseTSpan(const QDomElement &parent, QPainter &painter , qreal &curX, qreal &curY, qreal &width, qreal &height, qreal &linespacing, QRectF &lastDrawnTextBoundingRect From 925efac633a9bfcc95b6fd76d735c01dec0fb316 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Thu, 27 Sep 2012 13:11:29 +0300 Subject: [PATCH 02/15] Implemented import UBZ strokes from CFF (means strokes who was exported from UBZ to CFF and imported back). Compatible with groups. --- src/adaptors/UBCFFSubsetAdaptor.cpp | 219 +++++++++++++++++++++------- 1 file changed, 166 insertions(+), 53 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 7228f5b2..6fa04c34 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "core/UBPersistenceManager.h" @@ -350,6 +351,13 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e } } + //bounding rect lef top corner coordinates + qreal x1 = polygon.boundingRect().topLeft().x(); + qreal y1 = polygon.boundingRect().topLeft().y(); + //bounding rect dimensions + qreal width = polygon.boundingRect().width(); + qreal height = polygon.boundingRect().height(); + QString strokeColorText = element.attribute(aStroke); QString fillColorText = element.attribute(aFill); QString strokeWidthText = element.attribute(aStrokewidth); @@ -366,21 +374,59 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e brush.setColor(fillColor); brush.setStyle(Qt::SolidPattern); - UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); - graphicsPolygon->setBrush(brush); + + QUuid itemUuid(element.attribute(aId).right(QUuid().toString().length())); + QUuid itemGroupUuid(element.attribute(aId).left(QUuid().toString().length()-1)); + if (!itemUuid.isNull() && (itemGroupUuid!=itemUuid)) // reimported from UBZ + { + UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); - QTransform transform; - QString textTransform = element.attribute(aTransform); + graphicsPolygon->setBrush(brush); - graphicsPolygon->resetTransform(); - if (!textTransform.isNull()) { - transform = transformFromString(textTransform, graphicsPolygon); - } - mCurrentScene->addItem(graphicsPolygon); + QTransform transform; + QString textTransform = element.attribute(aTransform); - if (mGSectionContainer) + graphicsPolygon->resetTransform(); + if (!textTransform.isNull()) { + transform = transformFromString(textTransform, graphicsPolygon); + } + mCurrentScene->addItem(graphicsPolygon); + + graphicsPolygon->setUuid(itemUuid); + + } + else // single CFF { - addItemToGSection(graphicsPolygon); + QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width()); + QPainter painter; + + painter.begin(generator); //drawing to svg tmp file + + painter.translate(pen.widthF() / 2 - x1, pen.widthF() / 2 - y1); + painter.setBrush(brush); + painter.setPen(pen); + painter.drawPolygon(polygon); + + painter.end(); + + //add resulting svg file to scene + UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + QTransform transform; + QString textTransform = element.attribute(aTransform); + + svgItem->resetTransform(); + if (!textTransform.isNull()) { + transform = transformFromString(textTransform, svgItem); + } + repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 - strokeWidth/2 + transform.m31(), y1 + strokeWidth/2 + transform.m32(), transform); + hashSceneItem(element, svgItem); + + if (mGSectionContainer) + { + addItemToGSection(svgItem); + } + + delete generator; } return true; } @@ -416,6 +462,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & } } + //bounding rect lef top corner coordinates + qreal x1 = polygon.boundingRect().topLeft().x(); + qreal y1 = polygon.boundingRect().topLeft().y(); + //bounding rect dimensions qreal width = polygon.boundingRect().width(); qreal height = polygon.boundingRect().height(); @@ -436,20 +486,59 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & QBrush brush; brush.setColor(strokeColor); brush.setStyle(Qt::SolidPattern); - UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); - graphicsPolygon->setBrush(brush); - QTransform transform; - QString textTransform = element.attribute(aTransform); - graphicsPolygon->resetTransform(); - if (!textTransform.isNull()) { - transform = transformFromString(textTransform, graphicsPolygon); + QUuid itemUuid(element.attribute(aId).right(QUuid().toString().length())); + QUuid itemGroupUuid(element.attribute(aId).left(QUuid().toString().length()-1)); + if (!itemUuid.isNull() && (itemGroupUuid!=itemUuid)) // reimported from UBZ + { + UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); + + UBGraphicsStroke *stroke = new UBGraphicsStroke(); + graphicsPolygon->setStroke(stroke); + + graphicsPolygon->setBrush(brush); + QTransform transform; + QString textTransform = element.attribute(aTransform); + + graphicsPolygon->resetTransform(); + if (!textTransform.isNull()) { + transform = transformFromString(textTransform, graphicsPolygon); + } + mCurrentScene->addItem(graphicsPolygon); + } - mCurrentScene->addItem(graphicsPolygon); - - if (mGSectionContainer) + else // simple CFF { - addItemToGSection(graphicsPolygon); + QSvgGenerator *generator = createSvgGenerator(width + pen.width(), height + pen.width()); + QPainter painter; + + painter.begin(generator); //drawing to svg tmp file + + painter.translate(pen.widthF() / 2 - x1, pen.widthF() / 2 - y1); + painter.setBrush(brush); + painter.setPen(pen); + painter.drawPolygon(polygon); + + painter.end(); + + //add resulting svg file to scene + UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + QTransform transform; + QString textTransform = element.attribute(aTransform); + + svgItem->resetTransform(); + if (!textTransform.isNull()) { + transform = transformFromString(textTransform, svgItem); + } + repositionSvgItem(svgItem, width +strokeWidth, height + strokeWidth, x1 - strokeWidth/2 + transform.m31(), y1 + strokeWidth/2 + transform.m32(), transform); + hashSceneItem(element, svgItem); + + if (mGSectionContainer) + { + addItemToGSection(svgItem); + } + + delete generator; } @@ -945,8 +1034,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgElement(const QDomElement &p { QString tagName = parent.tagName(); if (parent.namespaceURI() != svgNS) { - qDebug() << "Incorrect namespace, error at content file, line number" << parent.lineNumber(); - return false; + qWarning() << "Incorrect namespace, error at content file, line number" << parent.lineNumber(); + //return false; } if (tagName == tG && !parseGSection(parent)) return false; @@ -992,8 +1081,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPageset(const QDomElement &p bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbMeta(const QDomElement &element) { if (element.namespaceURI() != iwbNS) { - qDebug() << "incorrect meta namespace, incorrect document"; - return false; + qWarning() << "incorrect meta namespace, incorrect document"; + //return false; } return true; @@ -1001,8 +1090,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbMeta(const QDomElement &elem bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvg(const QDomElement &svgSection) { if (svgSection.namespaceURI() != svgNS) { - qDebug() << "incorrect svg namespace, incorrect document"; - return false; + qWarning() << "incorrect svg namespace, incorrect document"; + // return false; } parseSvgSectionAttr(svgSection); @@ -1021,13 +1110,15 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro { //TODO. Create groups from elements parsed by parseIwbElement() function if (parent.namespaceURI() != iwbNS) { - qDebug() << "incorrect iwb group namespace, incorrect document"; - return false; + qWarning() << "incorrect iwb group namespace, incorrect document"; + // return false; } UBGraphicsGroupContainerItem *group = new UBGraphicsGroupContainerItem(); - QList strokesContainer; + QMultiMap strokesGroupsContainer; QList groupContainer; + QString currentStrokeIdentifier; + QDomElement currentStrokeElement = parent.firstChildElement(); while (!currentStrokeElement.isNull()) { @@ -1038,40 +1129,62 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro QString uuid = currentStrokeElement.attribute(aRef); if (!uuid.isEmpty()) { - if (uuid.contains("stroke")) // create stroke group - strokesContainer.append(qgraphicsitem_cast(mCurrentScene->itemForUuid(uuid))); + if (uuid.size() > QUuid().toString().length()) // create stroke group + { + currentStrokeIdentifier = uuid.left(QUuid().toString().length()-1); + UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast(mCurrentScene->itemForUuid(QUuid(uuid.right(QUuid().toString().length())))); + + if (strokeByUuid) + strokesGroupsContainer.insert(currentStrokeIdentifier, strokeByUuid); + } else // single elements in group - groupContainer.append(mCurrentScene->itemForUuid(uuid)); + groupContainer.append(mCurrentScene->itemForUuid(QUuid(uuid))); } } currentStrokeElement = currentStrokeElement.nextSiblingElement(); } - UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); - UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); - foreach(UBGraphicsPolygonItem* poly, strokesContainer) + + + + foreach (QString key, strokesGroupsContainer.keys()) { - if (poly) + UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); + UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); + foreach(UBGraphicsPolygonItem* poly, strokesGroupsContainer.values(key)) { - mCurrentScene->removeItem(poly); - mCurrentScene->removeItemFromDeletion(poly); - poly->setStrokesGroup(pStrokesGroup); - poly->setStroke(currentStroke); - pStrokesGroup->addToGroup(poly); + if (poly) + { + mCurrentScene->removeItem(poly); + mCurrentScene->removeItemFromDeletion(poly); + poly->setStrokesGroup(pStrokesGroup); + poly->setStroke(currentStroke); + pStrokesGroup->addToGroup(poly); + } } + if (currentStroke->polygons().empty()) + delete currentStroke; + if (pStrokesGroup->childItems().count()) + mCurrentScene->addItem(pStrokesGroup); + else + delete pStrokesGroup; + + if (pStrokesGroup) + group->addToGroup(pStrokesGroup); } - if (currentStroke->polygons().empty()) - delete currentStroke; - if (pStrokesGroup->childItems().count()) - mCurrentScene->addItem(pStrokesGroup); - else - delete pStrokesGroup; + foreach(QGraphicsItem* item, groupContainer) group->addToGroup(item); - if (pStrokesGroup) - group->addToGroup(pStrokesGroup); + if (group->childItems().count()) + { mCurrentScene->addItem(group); + if (!groupContainer.count()) + { + group->destroy(false); + } + } + return group; } @@ -1083,8 +1196,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::strToBool(QString str) bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbElement(QDomElement &element) { if (element.namespaceURI() != iwbNS) { - qDebug() << "incorrect iwb element namespace, incorrect document"; - return false; + qWarning() << "incorrect iwb element namespace, incorrect document"; + // return false; } bool locked = false; From dfa872033f5557dc4e8b803472b349fa4087db25 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Thu, 27 Sep 2012 16:42:42 +0300 Subject: [PATCH 03/15] CFF export and strokes groups --- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 33 +++++++++-- plugins/cffadaptor/src/UBCFFAdaptor.h | 2 +- plugins/cffadaptor/src/UBCFFConstants.h | 3 +- src/adaptors/UBSvgSubsetAdaptor.cpp | 78 ++++++++++++++++++++----- src/adaptors/UBSvgSubsetAdaptor.h | 1 + src/domain/UBGraphicsPolygonItem.cpp | 7 +++ src/domain/UBGraphicsPolygonItem.h | 2 + 7 files changed, 105 insertions(+), 21 deletions(-) diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 5630c01d..66840940 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -550,8 +550,8 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parsePage(const QString &pageFileNam pageFile.close(); return QDomElement(); } - } else if (tagname == tUBZGroup) { - group = parseGroupPageSection(nextTopElement); + } else if (tagname == tUBZGroups) { + group = parseGroupsPageSection(nextTopElement); if (group.isNull()) { qDebug() << "Page doesn't contains any groups."; pageFile.close(); @@ -634,6 +634,7 @@ QDomElement UBCFFAdaptor::UBToCFFConverter::parseSvgPageSection(const QDomElemen else if (tagName == tUBZLine) parseUBZLine(nextElement, svgElements); else if (tagName == tUBZPolygon) parseUBZPolygon(nextElement, svgElements); else if (tagName == tUBZPolyline) parseUBZPolyline(nextElement, svgElements); + else if (tagName == tUBZGroups) parseGroupsPageSection(nextElement); nextElement = nextElement.nextSiblingElement(); } @@ -694,12 +695,34 @@ bool UBCFFAdaptor::UBToCFFConverter::writeExtendedIwbSection() // extended element options // editable, background, locked are supported for now -QDomElement UBCFFAdaptor::UBToCFFConverter::parseGroupPageSection(const QDomElement &element) +QDomElement UBCFFAdaptor::UBToCFFConverter::parseGroupsPageSection(const QDomElement &groupRoot) { // First sankore side implementation needed. TODO in Sankore 1.5 - Q_UNUSED(element) + if (!groupRoot.hasChildNodes()) { + qDebug() << "Group root is empty"; + return QDomElement(); + } + + QDomElement groupElement = groupRoot.firstChildElement(); + + while (!groupElement.isNull()) { + QDomElement extendedElement = mDataModel->createElementNS(iwbNS, groupElement.tagName()); + QDomElement groupChildElement = groupElement.firstChildElement(); + while (!groupChildElement.isNull()) { + QDomElement extSubElement = mDataModel->createElementNS(iwbNS, groupChildElement.tagName()); + extSubElement.setAttribute(aRef, groupChildElement.attribute(aID, QUuid().toString())); + extendedElement.appendChild(extSubElement); + + groupChildElement = groupChildElement.nextSiblingElement(); + } + + mExtendedElements.append(extendedElement); + + groupElement = groupElement.nextSiblingElement(); + } + qDebug() << "parsing ubz group section"; - return QDomElement(); + return groupRoot; } QString UBCFFAdaptor::UBToCFFConverter::getDstContentFolderName(const QString &elementType) diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.h b/plugins/cffadaptor/src/UBCFFAdaptor.h index d9891460..f38d51e0 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.h +++ b/plugins/cffadaptor/src/UBCFFAdaptor.h @@ -63,7 +63,7 @@ private: QDomElement parseSvgPageSection(const QDomElement &element); void writeQDomElementToXML(const QDomNode &node); bool writeExtendedIwbSection(); - QDomElement parseGroupPageSection(const QDomElement &element); + QDomElement parseGroupsPageSection(const QDomElement &groupRoot); bool createBackground(const QDomElement &element, QMultiMap &dstSvgList); QString createBackgroundImage(const QDomElement &element, QSize size); diff --git a/plugins/cffadaptor/src/UBCFFConstants.h b/plugins/cffadaptor/src/UBCFFConstants.h index adeeb507..92e85c42 100644 --- a/plugins/cffadaptor/src/UBCFFConstants.h +++ b/plugins/cffadaptor/src/UBCFFConstants.h @@ -28,6 +28,7 @@ const QString tIWBPageSet = "pageset"; const QString tId = "id"; const QString tElement = "element"; const QString tUBZGroup = "group"; +const QString tUBZGroups = "groups"; const QString tUBZG = "g"; const QString tUBZPolygon = "polygon"; const QString tUBZPolyline = "polyline"; @@ -376,4 +377,4 @@ struct UBItemLayerType }; }; -#endif // UBCFFCONSTANTS_H \ No newline at end of file +#endif // UBCFFCONSTANTS_H diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index cabc74ad..01d44121 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -48,6 +48,7 @@ #include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBStringUtils.h" +#include "frameworks/UBFileSystemUtils.h" #include "core/UBSettings.h" #include "core/UBSetting.h" @@ -79,6 +80,7 @@ const QString UBSvgSubsetAdaptor::sFormerUniboardDocumentNamespaceUri = "http:// const QString tElement = "element"; const QString tGroup = "group"; +const QString tStrokeGroup = "strokeGroup"; const QString tGroups = "groups"; const QString aId = "id"; @@ -1152,25 +1154,42 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) QGraphicsItem *item = items.takeFirst(); // Is the item a strokes group? + UBGraphicsStrokesGroup* strokesGroupItem = qgraphicsitem_cast(item); + if(strokesGroupItem && strokesGroupItem->isVisible()){ - mXmlWriter.writeStartElement("g"); - mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid())); + QDomElement newGroupElement; + if (!strokesGroupItem->parentItem() && strokesGroupItem->childItems().count()) { + newGroupElement = groupDomDocument.createElement(tGroup); + newGroupElement.setAttribute(aId, strokesGroupItem->uuid().toString()); + groupRoot.appendChild(newGroupElement); + } + + //disabling g section parsing as a group of elements. Use groups refs instead +// mXmlWriter.writeStartElement("g"); +// mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid())); QMatrix matrix = item->sceneMatrix(); if (!matrix.isIdentity()){ mXmlWriter.writeAttribute("transform", toSvgTransform(matrix)); } - // Add the polygons - foreach(QGraphicsItem* item, strokesGroupItem->childItems()){ - UBGraphicsPolygonItem* poly = qgraphicsitem_cast(item); - if(NULL != poly){ - polygonItemToSvgPolygon(poly, true); - items.removeOne(poly); - } - } + // Add the polygons + foreach(QGraphicsItem* item, strokesGroupItem->childItems()){ + + UBGraphicsPolygonItem* poly = qgraphicsitem_cast(item); + if(NULL != poly){ + polygonItemToSvgPolygon(poly, true); + if (!newGroupElement.isNull()) { + QDomElement curPolygonElement = groupDomDocument.createElement(tElement); + curPolygonElement.setAttribute(aId, strokesGroupItem->uuid().toString() + + poly->uuid().toString()); + newGroupElement.appendChild(curPolygonElement); + } + items.removeOne(poly); + } + } - mXmlWriter.writeEndElement(); //g +// mXmlWriter.writeEndElement(); //g } // Is the item a polygon? @@ -1401,12 +1420,12 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex) QDomElement curElement = groupRoot.firstChildElement(); while (!curElement.isNull()) { if (curElement.hasAttribute(aId)) { - mXmlWriter.writeStartElement(tGroup); + mXmlWriter.writeStartElement(curElement.tagName()); mXmlWriter.writeAttribute(aId, curElement.attribute(aId)); QDomElement curSubElement = curElement.firstChildElement(); while (!curSubElement.isNull()) { if (curSubElement.hasAttribute(aId)) { - mXmlWriter.writeStartElement(tElement); + mXmlWriter.writeStartElement(curSubElement.tagName()); mXmlWriter.writeAttribute(aId, curSubElement.attribute(aId)); mXmlWriter.writeEndElement(); curSubElement = curSubElement.nextSiblingElement(); @@ -1454,8 +1473,16 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro if (!tmpUuid.isNull()) { 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(tGroup); + QDomElement curSubElement = groupDomDocument->createElement(tElement); + curSubElement.setAttribute(aId, tmpUuid); curGroupElement.appendChild(curSubElement); } @@ -1464,6 +1491,27 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistGroupToDom(QGraphicsItem *gro } } +void UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistStrokeToDom(QGraphicsItem *strokeItem, QDomElement *curParent, QDomDocument *curDomDocument) +{ + QUuid uuid = UBGraphicsScene::getPersonalUuid(strokeItem); + if (!uuid.isNull()) { + QDomElement curStrokesGroupElement = curDomDocument->createElement(tStrokeGroup); + curStrokesGroupElement.setAttribute(aId, uuid); + curParent->appendChild(curStrokesGroupElement); + + foreach (QGraphicsItem *item, strokeItem->childItems()) { + QUuid tmpUuid = UBGraphicsScene::getPersonalUuid(item); + if (!tmpUuid.isNull()) { + if (item->type() == UBGraphicsPolygonItem::Type && item->childItems().count()) { + QDomElement curSubElement = curDomDocument->createElement(tElement); + curSubElement.setAttribute(aId, tmpUuid); + curStrokesGroupElement.appendChild(curSubElement); + } + } + } + } +} + void UBSvgSubsetAdaptor::UBSvgSubsetWriter::polygonItemToSvgLine(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo) { mXmlWriter.writeStartElement("line"); @@ -1615,6 +1663,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::polygonItemToSvgPolygon(UBGraphicsPo , "fill-on-light-background", polygonItem->colorOnLightBackground().name()); } + mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(polygonItem->uuid())); + mXmlWriter.writeEndElement(); } } diff --git a/src/adaptors/UBSvgSubsetAdaptor.h b/src/adaptors/UBSvgSubsetAdaptor.h index d02765c3..39a3ccd0 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.h +++ b/src/adaptors/UBSvgSubsetAdaptor.h @@ -179,6 +179,7 @@ class UBSvgSubsetAdaptor private: void persistGroupToDom(QGraphicsItem *groupItem, QDomElement *curParent, QDomDocument *curDomDocument); + void persistStrokeToDom(QGraphicsItem *strokeItem, QDomElement *curParent, QDomDocument *curDomDocument); void polygonItemToSvgPolygon(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo); void polygonItemToSvgLine(UBGraphicsPolygonItem* polygonItem, bool groupHoldsInfo); void strokeToSvgPolyline(UBGraphicsStroke* stroke, bool groupHoldsInfo); diff --git a/src/domain/UBGraphicsPolygonItem.cpp b/src/domain/UBGraphicsPolygonItem.cpp index d6448e06..55c55dda 100644 --- a/src/domain/UBGraphicsPolygonItem.cpp +++ b/src/domain/UBGraphicsPolygonItem.cpp @@ -60,6 +60,13 @@ UBGraphicsPolygonItem::UBGraphicsPolygonItem (const QLineF& pLine, qreal pWidth) void UBGraphicsPolygonItem::initialize() { setData(UBGraphicsItemData::itemLayerType, QVariant(itemLayerType::DrawingItem)); //Necessary to set if we want z value to be assigned correctly + setUuid(QUuid::createUuid()); +} + +void UBGraphicsPolygonItem::setUuid(const QUuid &pUuid) +{ + UBItem::setUuid(pUuid); + setData(UBGraphicsItemData::ItemUuid, QVariant(pUuid)); //store item uuid inside the QGraphicsItem to fast operations with Items on the scene } void UBGraphicsPolygonItem::clearStroke() diff --git a/src/domain/UBGraphicsPolygonItem.h b/src/domain/UBGraphicsPolygonItem.h index 7b961e52..511e5da7 100644 --- a/src/domain/UBGraphicsPolygonItem.h +++ b/src/domain/UBGraphicsPolygonItem.h @@ -39,6 +39,8 @@ class UBGraphicsPolygonItem : public QGraphicsPolygonItem, public UBItem void initialize(); + void setUuid(const QUuid &pUuid); + void setStrokesGroup(UBGraphicsStrokesGroup* group); UBGraphicsStrokesGroup* strokesGroup() const{return mpGroup;} void setColor(const QColor& color); From 82259683c4e85b9e8f0049af2804372b47140242 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Thu, 27 Sep 2012 19:01:45 +0300 Subject: [PATCH 04/15] New parent attrib in ubz --- src/adaptors/UBSvgSubsetAdaptor.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 01d44121..04bff654 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -1664,6 +1664,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::polygonItemToSvgPolygon(UBGraphicsPo } mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(polygonItem->uuid())); + if (polygonItem->parentItem()) { + mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "parent", UBStringUtils::toCanonicalUuid(UBGraphicsItem::getOwnUuid(polygonItem->parentItem()))); + } mXmlWriter.writeEndElement(); } From 2666115b1982cd5b74c6cd58336a5b08d379180d Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 28 Sep 2012 12:23:05 +0300 Subject: [PATCH 05/15] Finished import cff and export to cff. Import ubz works bad with groups. --- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 12 ++- plugins/cffadaptor/src/UBCFFConstants.h | 7 +- src/adaptors/UBCFFSubsetAdaptor.cpp | 5 +- src/adaptors/UBSvgSubsetAdaptor.cpp | 100 ++++++++++++++++++------ src/domain/UBGraphicsScene.cpp | 1 + src/domain/UBGraphicsScene.h | 3 +- 6 files changed, 100 insertions(+), 28 deletions(-) diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 66840940..106d2457 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -1273,6 +1273,13 @@ bool UBCFFAdaptor::UBToCFFConverter::setCFFAttribute(const QString &attributeNam { setGeometryFromUBZ(ubzElement, svgElement); } + else + if (attributeName.contains(aUBZUuid)) + { + + QString id = "{" +ubzElement.attribute(aUBZParent)+"}" + "{"+ubzElement.attribute(aUBZUuid)+"}"; + svgElement.setAttribute(aID, id); + } else if (attributeName.contains(aUBZHref)||attributeName.contains(aSrc)) { @@ -1822,7 +1829,10 @@ bool UBCFFAdaptor::UBToCFFConverter::parseUBZPolygon(const QDomElement &element, if (0 < iwbElementPart.attributes().count()) { - QString id = QUuid::createUuid().toString(); + QString id = svgElementPart.attribute(aUBZUuid); + if (id.isEmpty()) + id = QUuid::createUuid().toString(); + svgElementPart.setAttribute(aID, id); iwbElementPart.setAttribute(aRef, id); diff --git a/plugins/cffadaptor/src/UBCFFConstants.h b/plugins/cffadaptor/src/UBCFFConstants.h index 92e85c42..69de92dd 100644 --- a/plugins/cffadaptor/src/UBCFFConstants.h +++ b/plugins/cffadaptor/src/UBCFFConstants.h @@ -68,6 +68,7 @@ const QString aBackground = "background"; const QString aCrossedBackground = "crossed-background"; const QString aUBZType = "type"; const QString aUBZUuid = "uuid"; +const QString aUBZParent = "parent"; const QString aFill = "fill"; // IWB attribute contans color to fill const QString aID = "id"; // ID of any svg element can be placed in to iwb section @@ -335,8 +336,10 @@ stroke-lineshape-end \ const QString ubzElementAttributesToConvert(" \ xlink:href, \ src, \ -transform \ -"); +transform, \ +uuid \ +" +); // additional attributes. Have references in SVG section. const QString svgElementAttributes(" \ diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 6fa04c34..7b17f0b0 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -379,9 +379,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e QUuid itemGroupUuid(element.attribute(aId).left(QUuid().toString().length()-1)); if (!itemUuid.isNull() && (itemGroupUuid!=itemUuid)) // reimported from UBZ { - UBGraphicsPolygonItem *graphicsPolygon = new UBGraphicsPolygonItem(polygon); + UBGraphicsPolygonItem *graphicsPolygon = mCurrentScene->polygonToPolygonItem(polygon); graphicsPolygon->setBrush(brush); + //graphicsPolygon->setPen(pen); QTransform transform; QString textTransform = element.attribute(aTransform); @@ -1131,7 +1132,7 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro { if (uuid.size() > QUuid().toString().length()) // create stroke group { - currentStrokeIdentifier = uuid.left(QUuid().toString().length()-1); + currentStrokeIdentifier = uuid.left(QUuid().toString().length()); UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast(mCurrentScene->itemForUuid(QUuid(uuid.right(QUuid().toString().length())))); if (strokeByUuid) diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 04bff654..3eaf2335 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -555,6 +555,10 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() if (polygonItem) { + mScene->addItem(polygonItem); + + polygonItem->setUuid(uuidFromSvg); + if (annotationGroup) { polygonItem->setStroke(annotationGroup); @@ -991,31 +995,42 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene() UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() { - UBGraphicsGroupContainerItem *result = new UBGraphicsGroupContainerItem(); - + UBGraphicsGroupContainerItem *group = new UBGraphicsGroupContainerItem(); + QMultiMap strokesGroupsContainer; + QList groupContainer; + QString currentStrokeIdentifier; + QUuid groupUuid = QUuid(mXmlReader.attributes().value(aId).toString()); mXmlReader.readNext(); - while (!mXmlReader.atEnd()) { - if (mXmlReader.isEndElement()) { - mXmlReader.readNext(); - result->setUuid(groupUuid); - if (!result->childItems().count()) { - delete result; - result = 0; - } - break; - } else if (mXmlReader.isStartElement()) { - if (mXmlReader.name() == tGroup) { + while (!mXmlReader.atEnd()) + { + if (mXmlReader.isStartElement()) + { + if (mXmlReader.name() == tGroup) + { qDebug() << "came across the group id is" << mXmlReader.attributes().value(aId); UBGraphicsGroupContainerItem *curGroup = readGroup(); - if (curGroup) { - result->addToGroup(curGroup); - } - } else if (mXmlReader.name() == tElement) { + if (curGroup) + group->addToGroup(curGroup); + } + else if (mXmlReader.name() == tElement) + { + QString id = mXmlReader.attributes().value(aId).toString(); + QString itemId = id.right(QUuid().toString().size()); + QString groupId = id.left(QUuid().toString().size()); + QGraphicsItem *curItem = readElementFromGroup(); - if (curItem) { - result->addToGroup(curItem); + + UBGraphicsPolygonItem *curPolygon = qgraphicsitem_cast(curItem); + + if (curPolygon && !groupId.isEmpty() && !itemId.isEmpty() && itemId != groupId) + { + strokesGroupsContainer.insert(groupId, curPolygon); + } + else // item + { + group->addToGroup(curItem); } }else { mXmlReader.skipCurrentElement(); @@ -1025,7 +1040,47 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() } } - return result; + + foreach (QString key, strokesGroupsContainer.keys()) + { + UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); + UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); + foreach(UBGraphicsPolygonItem* poly, strokesGroupsContainer.values(key)) + { + if (poly) + { + mScene->removeItem(poly); + mScene->removeItemFromDeletion(poly); + poly->setStrokesGroup(pStrokesGroup); + poly->setStroke(currentStroke); + pStrokesGroup->addToGroup(poly); + } + } + if (currentStroke->polygons().empty()) + delete currentStroke; + if (pStrokesGroup->childItems().count()) + mScene->addItem(pStrokesGroup); + else + delete pStrokesGroup; + + if (pStrokesGroup) + group->addToGroup(pStrokesGroup); + } + + foreach(QGraphicsItem* item, groupContainer) + group->addToGroup(item); + + if (group->childItems().count()) + { + mScene->addItem(group); + + if (!groupContainer.count()) + { + group->destroy(false); + } + } + + return group; } void UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroupRoot() @@ -1053,8 +1108,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroupRoot() QGraphicsItem *UBSvgSubsetAdaptor::UBSvgSubsetReader::readElementFromGroup() { QGraphicsItem *result = 0; - - result = mScene->itemForUuid(QUuid(mXmlReader.attributes().value(aId).toString())); + QString id = mXmlReader.attributes().value(aId).toString(); + QString uuid = id.right(QUuid().toString().size()); + result = mScene->itemForUuid(QUuid(uuid)); mXmlReader.skipCurrentElement(); mXmlReader.readNext(); diff --git a/src/domain/UBGraphicsScene.cpp b/src/domain/UBGraphicsScene.cpp index 621dc9a4..99bfe301 100644 --- a/src/domain/UBGraphicsScene.cpp +++ b/src/domain/UBGraphicsScene.cpp @@ -1713,6 +1713,7 @@ QRectF UBGraphicsScene::normalizedSceneRect(qreal ratio) QGraphicsItem *UBGraphicsScene::itemForUuid(QUuid uuid) { QGraphicsItem *result = 0; + QString ui = uuid.toString(); //simple search before implementing container for fast access foreach (QGraphicsItem *item, items()) { diff --git a/src/domain/UBGraphicsScene.h b/src/domain/UBGraphicsScene.h index 6d496369..1b0a54db 100644 --- a/src/domain/UBGraphicsScene.h +++ b/src/domain/UBGraphicsScene.h @@ -302,6 +302,8 @@ class UBGraphicsScene: public UBCoreGraphicsScene, public UBItem static QUuid getPersonalUuid(QGraphicsItem *item); + UBGraphicsPolygonItem* polygonToPolygonItem(const QPolygonF pPolygon); + public slots: void initStroke(); void hideEraser(); @@ -338,7 +340,6 @@ public slots: UBGraphicsPolygonItem* lineToPolygonItem(const QLineF& pLine, const qreal& pWidth); UBGraphicsPolygonItem* arcToPolygonItem(const QLineF& pStartRadius, qreal pSpanAngle, qreal pWidth); - UBGraphicsPolygonItem* polygonToPolygonItem(const QPolygonF pPolygon); void initPolygonItem(UBGraphicsPolygonItem*); From ae900677bd98b35df30ac7f4b4346f53e33f9a79 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 28 Sep 2012 13:55:00 +0300 Subject: [PATCH 06/15] Reimported cff reads fine. Groups reads fine for strokes. --- src/adaptors/UBCFFSubsetAdaptor.cpp | 18 ++++++++++++------ src/adaptors/UBSvgSubsetAdaptor.cpp | 19 ++++++++++++------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index 7b17f0b0..e0584b4d 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -249,6 +249,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &elem painter.end(); UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + svgItem->setUuid(QUuid::createUuid()); QTransform transform; QString textTransform = element.attribute(aTransform); @@ -299,6 +300,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgEllipse(const QDomElement &e painter.end(); UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + svgItem->setUuid(QUuid::createUuid()); QTransform transform; QString textTransform = element.attribute(aTransform); @@ -382,7 +384,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e UBGraphicsPolygonItem *graphicsPolygon = mCurrentScene->polygonToPolygonItem(polygon); graphicsPolygon->setBrush(brush); - //graphicsPolygon->setPen(pen); QTransform transform; QString textTransform = element.attribute(aTransform); @@ -414,7 +415,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); QTransform transform; QString textTransform = element.attribute(aTransform); - + svgItem->setUuid(QUuid::createUuid()); svgItem->resetTransform(); if (!textTransform.isNull()) { transform = transformFromString(textTransform, svgItem); @@ -524,6 +525,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & //add resulting svg file to scene UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + svgItem->setUuid(QUuid::createUuid()); QTransform transform; QString textTransform = element.attribute(aTransform); @@ -1132,7 +1134,7 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro { if (uuid.size() > QUuid().toString().length()) // create stroke group { - currentStrokeIdentifier = uuid.left(QUuid().toString().length()); + currentStrokeIdentifier = uuid.left(QUuid().toString().length()-1); UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast(mCurrentScene->itemForUuid(QUuid(uuid.right(QUuid().toString().length())))); if (strokeByUuid) @@ -1147,7 +1149,7 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro - foreach (QString key, strokesGroupsContainer.keys()) + foreach (QString key, strokesGroupsContainer.keys().toSet()) { UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); @@ -1164,13 +1166,17 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro } if (currentStroke->polygons().empty()) delete currentStroke; + if (pStrokesGroup->childItems().count()) mCurrentScene->addItem(pStrokesGroup); else delete pStrokesGroup; if (pStrokesGroup) - group->addToGroup(pStrokesGroup); + { + QGraphicsItem *strokeGroup = qgraphicsitem_cast(pStrokesGroup); + groupContainer.append(strokeGroup); + } } foreach(QGraphicsItem* item, groupContainer) @@ -1180,7 +1186,7 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro { mCurrentScene->addItem(group); - if (!groupContainer.count()) + if (1 == group->childItems().count()) { group->destroy(false); } diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 3eaf2335..8f0efe67 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -1005,7 +1005,10 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() mXmlReader.readNext(); while (!mXmlReader.atEnd()) { - if (mXmlReader.isStartElement()) + if (mXmlReader.isEndElement()) { + mXmlReader.readNext(); + break; + } else if (mXmlReader.isStartElement()) { if (mXmlReader.name() == tGroup) { @@ -1030,7 +1033,7 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() } else // item { - group->addToGroup(curItem); + groupContainer.append(curItem); } }else { mXmlReader.skipCurrentElement(); @@ -1040,8 +1043,7 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() } } - - foreach (QString key, strokesGroupsContainer.keys()) + foreach (QString key, strokesGroupsContainer.keys().toSet()) { UBGraphicsStrokesGroup* pStrokesGroup = new UBGraphicsStrokesGroup(); UBGraphicsStroke *currentStroke = new UBGraphicsStroke(); @@ -1058,13 +1060,17 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() } if (currentStroke->polygons().empty()) delete currentStroke; + if (pStrokesGroup->childItems().count()) mScene->addItem(pStrokesGroup); else delete pStrokesGroup; if (pStrokesGroup) - group->addToGroup(pStrokesGroup); + { + QGraphicsItem *strokeGroup = qgraphicsitem_cast(pStrokesGroup); + groupContainer.append(strokeGroup); + } } foreach(QGraphicsItem* item, groupContainer) @@ -1074,12 +1080,11 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() { mScene->addItem(group); - if (!groupContainer.count()) + if (1 == group->childItems().count()) { group->destroy(false); } } - return group; } From b49a01d981f02c4bedcc1cbca5e9cfbe7f695973 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Fri, 28 Sep 2012 16:40:04 +0300 Subject: [PATCH 07/15] Fixed export images to CFF. Added UUIDs for each imported item. Supported groups. --- plugins/cffadaptor/src/UBCFFAdaptor.cpp | 8 ++- src/adaptors/UBCFFSubsetAdaptor.cpp | 68 ++++++++++++++++++++----- src/adaptors/UBCFFSubsetAdaptor.h | 1 + src/adaptors/UBSvgSubsetAdaptor.cpp | 2 +- 4 files changed, 64 insertions(+), 15 deletions(-) diff --git a/plugins/cffadaptor/src/UBCFFAdaptor.cpp b/plugins/cffadaptor/src/UBCFFAdaptor.cpp index 106d2457..f5c84068 100644 --- a/plugins/cffadaptor/src/UBCFFAdaptor.cpp +++ b/plugins/cffadaptor/src/UBCFFAdaptor.cpp @@ -1277,7 +1277,13 @@ bool UBCFFAdaptor::UBToCFFConverter::setCFFAttribute(const QString &attributeNam if (attributeName.contains(aUBZUuid)) { - QString id = "{" +ubzElement.attribute(aUBZParent)+"}" + "{"+ubzElement.attribute(aUBZUuid)+"}"; + QString parentId = ubzElement.attribute(aUBZParent); + QString id; + if (!parentId.isEmpty()) + id = "{" + parentId + "}" + "{" + ubzElement.attribute(aUBZUuid)+"}"; + else + id = "{" + ubzElement.attribute(aUBZUuid)+"}"; + svgElement.setAttribute(aID, id); } else diff --git a/src/adaptors/UBCFFSubsetAdaptor.cpp b/src/adaptors/UBCFFSubsetAdaptor.cpp index e0584b4d..d06c95a7 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.cpp +++ b/src/adaptors/UBCFFSubsetAdaptor.cpp @@ -249,7 +249,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgRect(const QDomElement &elem painter.end(); UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); - svgItem->setUuid(QUuid::createUuid()); + + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -300,7 +304,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgEllipse(const QDomElement &e painter.end(); UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); - svgItem->setUuid(QUuid::createUuid()); + + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -395,6 +403,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e mCurrentScene->addItem(graphicsPolygon); graphicsPolygon->setUuid(itemUuid); + mRefToUuidMap.insert(element.attribute(aId), itemUuid); } else // single CFF @@ -415,7 +424,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolygon(const QDomElement &e UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); QTransform transform; QString textTransform = element.attribute(aTransform); - svgItem->setUuid(QUuid::createUuid()); + + QUuid uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(uuid); + svgItem->resetTransform(); if (!textTransform.isNull()) { transform = transformFromString(textTransform, svgItem); @@ -508,6 +521,9 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & } mCurrentScene->addItem(graphicsPolygon); + graphicsPolygon->setUuid(itemUuid); + mRefToUuidMap.insert(element.attribute(aId), itemUuid); + } else // simple CFF { @@ -525,7 +541,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgPolyline(const QDomElement & //add resulting svg file to scene UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); - svgItem->setUuid(QUuid::createUuid()); + + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -678,6 +698,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgText(const QDomElement &elem //add resulting svg file to scene UBGraphicsSvgItem *svgItem = mCurrentScene->addSvg(QUrl::fromLocalFile(generator->fileName())); + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(QUuid(uuid)); + svgItem->resetTransform(); repositionSvgItem(svgItem, width, height, x + transform.m31(), y + transform.m32(), transform); hashSceneItem(element, svgItem); @@ -791,6 +815,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgTextarea(const QDomElement & UBGraphicsTextItem *svgItem = mCurrentScene->addTextHtml(doc.toHtml()); svgItem->resize(width, height); + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + svgItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -840,6 +868,11 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgImage(const QDomElement &ele } UBGraphicsPixmapItem *pixItem = mCurrentScene->addPixmap(pix, NULL); + + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + pixItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -887,6 +920,10 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgFlash(const QDomElement &ele UBGraphicsWidgetItem *flashItem = mCurrentScene->addW3CWidget(QUrl::fromLocalFile(flashUrl)); flashItem->setSourceUrl(urlPath); + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); + flashItem->setUuid(QUuid(uuid)); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -924,14 +961,15 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgAudio(const QDomElement &ele concreteUrl = QUrl::fromLocalFile(audioPath); } - QUuid uuid = QUuid::createUuid(); + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); QString destFile; bool b = UBPersistenceManager::persistenceManager()->addFileToDocument( mCurrentScene->document(), concreteUrl.toLocalFile(), UBPersistenceManager::audioDirectory, - uuid, + QUuid(uuid), destFile); if (!b) { @@ -940,6 +978,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgAudio(const QDomElement &ele concreteUrl = QUrl::fromLocalFile(destFile); UBGraphicsMediaItem *audioItem = mCurrentScene->addAudio(concreteUrl, false); + QTransform transform; QString textTransform = parentOfAudio.attribute(aTransform); @@ -977,15 +1016,15 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgVideo(const QDomElement &ele concreteUrl = QUrl::fromLocalFile(videoPath); } - QUuid uuid = QUuid::createUuid(); - + QString uuid = QUuid::createUuid().toString(); + mRefToUuidMap.insert(element.attribute(aId), uuid); QString destFile; bool b = UBPersistenceManager::persistenceManager()->addFileToDocument( mCurrentScene->document(), concreteUrl.toLocalFile(), UBPersistenceManager::videoDirectory, - uuid, + QUuid(uuid), destFile); if (!b) { @@ -994,6 +1033,7 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgVideo(const QDomElement &ele concreteUrl = QUrl::fromLocalFile(destFile); UBGraphicsMediaItem *videoItem = mCurrentScene->addVideo(concreteUrl, false); + QTransform transform; QString textTransform = element.attribute(aTransform); @@ -1129,13 +1169,15 @@ UBGraphicsGroupContainerItem *UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbGro group->addToGroup(parseIwbGroup(currentStrokeElement)); else { - QString uuid = currentStrokeElement.attribute(aRef); + + QString ref = currentStrokeElement.attribute(aRef); + QString uuid = mRefToUuidMap[ref]; if (!uuid.isEmpty()) { - if (uuid.size() > QUuid().toString().length()) // create stroke group + if (ref.size() > QUuid().toString().length()) // create stroke group { - currentStrokeIdentifier = uuid.left(QUuid().toString().length()-1); - UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast(mCurrentScene->itemForUuid(QUuid(uuid.right(QUuid().toString().length())))); + currentStrokeIdentifier = ref.left(QUuid().toString().length()-1); + UBGraphicsPolygonItem *strokeByUuid = qgraphicsitem_cast(mCurrentScene->itemForUuid(QUuid(ref.right(QUuid().toString().length())))); if (strokeByUuid) strokesGroupsContainer.insert(currentStrokeIdentifier, strokeByUuid); diff --git a/src/adaptors/UBCFFSubsetAdaptor.h b/src/adaptors/UBCFFSubsetAdaptor.h index ca389a49..3a6f89a6 100644 --- a/src/adaptors/UBCFFSubsetAdaptor.h +++ b/src/adaptors/UBCFFSubsetAdaptor.h @@ -74,6 +74,7 @@ private: QDomDocument mDOMdoc; QDomNode mCurrentDOMElement; QHash persistedItems; + QMap mRefToUuidMap; QDir mTmpFlashDir; void addItemToGSection(QGraphicsItem *item); diff --git a/src/adaptors/UBSvgSubsetAdaptor.cpp b/src/adaptors/UBSvgSubsetAdaptor.cpp index 8f0efe67..17e25564 100644 --- a/src/adaptors/UBSvgSubsetAdaptor.cpp +++ b/src/adaptors/UBSvgSubsetAdaptor.cpp @@ -1015,7 +1015,7 @@ UBGraphicsGroupContainerItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::readGroup() qDebug() << "came across the group id is" << mXmlReader.attributes().value(aId); UBGraphicsGroupContainerItem *curGroup = readGroup(); if (curGroup) - group->addToGroup(curGroup); + groupContainer.append(curGroup); } else if (mXmlReader.name() == tElement) { From 112d1dc9d7cf969085a7deadf21b6228d958cc26 Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 1 Oct 2012 11:37:03 +0300 Subject: [PATCH 08/15] Add to library action works fine. Added items has icons. --- src/board/UBFeaturesController.cpp | 2 +- src/gui/UBFeaturesWidget.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/board/UBFeaturesController.cpp b/src/board/UBFeaturesController.cpp index 049ee301..afc6026e 100644 --- a/src/board/UBFeaturesController.cpp +++ b/src/board/UBFeaturesController.cpp @@ -750,7 +750,7 @@ void UBFeaturesController::addDownloadedFile(const QUrl &sourceUrl, const QByteA file.write(pData); file.close(); - UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath ), + UBFeature downloadedFeature = UBFeature(dest.getFullVirtualPath() + "/" + fileName, getIcon( filePath, fileTypeFromUrl(filePath)), fileName, QUrl::fromLocalFile(filePath), FEATURE_ITEM); if (downloadedFeature != UBFeature()) { featuresModel->addItem(downloadedFeature); diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index e5e6ab69..c0728127 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -1044,6 +1044,7 @@ void UBFeatureProperties::onAddToLib() sDownloadFileDesc desc; desc.isBackground = false; desc.modal = false; + desc.dest = sDownloadFileDesc::library; desc.name = QFileInfo( mpElement->getFullPath().toString()).fileName(); qDebug() << desc.name; desc.srcUrl = mpElement->getFullPath().toString(); From 63c3567ec8b3ef23b413e0264bb18a06f6563625 Mon Sep 17 00:00:00 2001 From: Ilia Ryabokon Date: Mon, 1 Oct 2012 13:16:14 +0300 Subject: [PATCH 09/15] Sankore 1196 - Taking snapshot of item on download finished --- src/domain/UBGraphicsWidgetItem.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/domain/UBGraphicsWidgetItem.cpp b/src/domain/UBGraphicsWidgetItem.cpp index 53ecc53a..6e22d04b 100644 --- a/src/domain/UBGraphicsWidgetItem.cpp +++ b/src/domain/UBGraphicsWidgetItem.cpp @@ -621,6 +621,7 @@ void UBGraphicsWidgetItem::mainFrameLoadFinished (bool ok) mInitialLoadDone = true; mLoadIsErronous = !ok; update(boundingRect()); + takeSnapshot(); } void UBGraphicsWidgetItem::wheelEvent(QGraphicsSceneWheelEvent *event) From d7be7c26cec3521b64cb385a1e92ac5a505577fc Mon Sep 17 00:00:00 2001 From: maximXbs Date: Mon, 1 Oct 2012 14:13:18 +0200 Subject: [PATCH 10/15] updated 'Ordre phrases' app --- .../Ordre phrase.wgt/img/ar_down.png | Bin 529 -> 0 bytes .../Ordre phrase.wgt/img/ar_down_white.png | Bin 142 -> 0 bytes .../Ordre phrase.wgt/img/parameters-bg.png | Bin 0 -> 4256 bytes .../Ordre phrase.wgt/img/slate-display.png | Bin 532 -> 0 bytes .../Ordre phrase.wgt/img/slate-edit.png | Bin 1907 -> 0 bytes .../Ordre phrase.wgt/img/slate-help-white.png | Bin 553 -> 0 bytes .../Ordre phrase.wgt/img/slate-help.png | Bin 1795 -> 0 bytes .../img/slate-toolbar-help.png | Bin 0 -> 1697 bytes .../img/slate-toolbar-reload-white.png | Bin 1619 -> 0 bytes .../img/slate-toolbar-reload.png | Bin 2110 -> 2289 bytes .../Ordre phrase.wgt/img/toolbar-edit.png | Bin 0 -> 732 bytes .../Ordre phrase.wgt/img/toolbar-help.png | Bin 0 -> 707 bytes .../Ordre phrase.wgt/img/toolbar-reload.png | Bin 0 -> 999 bytes .../Ordre phrase.wgt/index.html | 17 ++- .../Ordre phrase.wgt/locales/fr/index.html | 17 ++- .../locales/fr/script/template2.js | 81 ++++++----- .../Ordre phrase.wgt/locales/ru/index.html | 17 ++- .../locales/ru/script/template2.js | 65 +++++---- .../Ordre phrase.wgt/scripts/template2.js | 51 ++++--- .../Ordre phrase.wgt/styles/of_puppets.css | 133 ++++++++++-------- 20 files changed, 215 insertions(+), 166 deletions(-) delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/ar_down.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/ar_down_white.png create mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/parameters-bg.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-display.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-edit.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-help-white.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-help.png create mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-help.png delete mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-reload-white.png create mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/toolbar-edit.png create mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/toolbar-help.png create mode 100644 resources/library/interactivities/Ordre phrase.wgt/img/toolbar-reload.png diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/ar_down.png b/resources/library/interactivities/Ordre phrase.wgt/img/ar_down.png deleted file mode 100644 index a20fab4f36a5d0f7e7a48e67ce9335c1a76a005d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)tGP4h z+%xyi(97qKUw8MsXF#K%IhY_2F%T0FmI=FS7s>4>0pJM{Jq374%m_IHYlYl0IS1#$ zGJGbM3psHfKI-)P`yF?15ANVDy1hPxV`Hfl>Sc-VA3uy(b{oExX_T~XcGrdL?ZbO; z0Pp?*-2MPX8Yk0Vzu&N?)>l~^T~t+xs#K^J3#dGWOkz~V@z2k17b=%S0n<|)1jp9Y zKP0OI$K339&@;nLsk<4=#cf{cgO6C|3zl_v8Ki8@T(`IZC zP$uC~7AHvOA?C9Q{@z?;eD(E++IKN3(QJgZl4nuqzhZ#Ti diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/ar_down_white.png b/resources/library/interactivities/Ordre phrase.wgt/img/ar_down_white.png deleted file mode 100644 index 4a1d133b72676983e994ef76f99f777714560e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 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 WxhI7T;&QP70000J?Gxv$9bOTect!?{?08< zN?hvX;OPJWfD=ESC!j{q^3JfMzUrKu2h`v}#)`=0xQx_@RTvO0#nUj5uMn@p1ejQ= z+t7`L1Aq-E7m7#`x(t!v3WnH%VQ3Wu#Rh=z#acovS&xxm8n#ZZjG+B-^f(QaOCxA2 zIVg-0F<81hK1YQu&q)+Ya@I?@QrhB3FkFjJ0t$>2gIYzVQjKUMXwP&JYHrzvXy7vl zxjusS+>{7S0%LF$267lMT>=NgU@()xWCw+Wgam>tmKbdn?x2-0XY3=NxstJXnGE|+W3V6o^Fg09vnNwJo$RL`GO;9+Ws zN=}e+TnSnf#c6mJ89}3*K2JeGyp&a{UzCX|7^D>w5R(C0Qkn#!=>J0%ikE0LDZpO& z{ZC=FP)A^p08`^xDhYLPviX)!1QMgd#3Zf~;&|p{6_e6&5?80=1Q@fN1Fn=SrMO1@ z42_})U#TX=N(sj2MbIcdLoSyhF}x5ShqHvm<-oB_W-OB%7Z(y63bWavalu?(EO(O2 z!zEb?Oi501rLVZ`DY=$LP!LpP9;T9KW70Skt^l7UjL4_<0#B*;f-9Zc3v)^?M45ps z$NH~hp4_5($1;7{wAA8d+ha>aN`4^P+{?-|ntN-*HQx)6TATclZsO zo&Fx|-2@w`qA@lHZwR=N+Zm@kM()CieUF6j;@u z)mi($s_Ysvx4W0z_|a%I-kmsd`n$gx%6iMvq#cE>+C1~I!bkC=j@Ke9y34+lpX6OO zXN{YVLI+|JqM4(EH*dZK0ZN_9zS>AbgtOE=W%4d;Ch`fL$EeKN)-=9-`HC9acSx8 zbHfe+YYP2)*757zy}9~}F3sClx|W|lGxp6A7yCw}U0j#zcW6gI!{`sg-Mpq@0`?9r zI{8uSv0oOt48Bp`a`51plR{yL5B}6?A zn6+53i74n3D8uy*faXX_P-Ns!MPbcr9*&;Smml8kTUhv^*(-3Tmz%ysXfnT}n zS3@r1|K+6%kiUS72|H8u1LTW{Lf1JdS`d>v4N6Qnu+_cDrU-h519XxnWlyUk}jQt8p z=&zWj`@f?)hRmBjc+fG@{DtW) zE9k9Mk*#ASIIF&>sA%r)F@HOhXn#Zx41Cbi($dc(E7i(b0o5j9XGHaD@B#zpioNaL z-V0;wDznGF{;}Hn`rbKhq5CUj2b?!9-j) z(t)e-1*S()rv8gt&fa~}v$N#)Aa@-KUrlR>ygu#lc*cbdc?pQK8DAy7RoHC(ciOmn ZDi8|3Y4kkxbj0!-_pb~$&L3vDaAXI=gPRvNf*c8S$Ood*7f2B<470o|&+qb$b4UIY z13>CP>OuPOnGLstkOR8%{g1qObmu=Q0HhwIk75S^eUb3s#)bdn0FXYAeu^Bhd-aTS z|0w`a{dn!bn+;`^bqp!VV#MfYB#=_6QA{$9mV`ss0iQp-IZBD)pWhRqpFlQo_)i&d zptvOb{rlHea%_g`qr4~v(gJ_~{<%zwYKh_U?Zrw@-n>WPS6;vE1r zEP==XNFXwOfiY3-0T}r6=l54;W)?17>VZN3jfI7ko0J9#3n|%Z%fg=f0wNOHxa2>) zd2yfQyh>~ofWWf{H{at6dyqT{S)6cfhz|IL#UD~4PjM7%n%~7BDX)rC{`te(3^a`b zU{mWgfu`7NQlo$*2LQ!35XgcXNOb^7*$@Qgcjh%IY8cj{i{HO-zB#dcQXRSjs2T-O r^#wS5UqE6-M>qsV8zl4q009O7eJ4TJ=dcL@00000NkvXXu0mjfuXXIg diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/slate-help.png b/resources/library/interactivities/Ordre phrase.wgt/img/slate-help.png deleted file mode 100644 index 069052d0061dacbeaa3bd022259a5db0e37a9f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 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 literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-reload-white.png b/resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-reload-white.png deleted file mode 100644 index 78d146ec37fd55bc97dbac2bf21e599468ee8d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1619 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%nF$y5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8pIh$D;n7J8P zI>Ge14w>EaktaqCUE zeMXd{ME$g&z>Gq{!c_^51snY4TFqGcLLjQ(k}BKWT(|8URw)zHiUpPV%6ybN9$az| zmu;Sc#D(ln%u|sTI=_3w%fVq$30uq+-Wr*9>1G+|L*tQ*8A<3KdPL!+jr;j zyPNI^?l>Rxp=xiU$?=&!&#b?m?K{Re;o6oTci2uHuq-+4#ku0izm_8tZol1k;`!%% z;ZByeIC;BvdFM4@+U;$ZUw-yu+3!qAh)ffylanGm54`^_&&$TFd03vI{mjOFEP7!Ret4N3Q(;gIHk&>5PTAf# z`$@Zlx$<9B{;iv@E}bmI!Pd;WvsnEJhi9t_pG)!aN5MP9I+z*{1f0t*D=(kEZn;BW zW0OIF)!eMLVXs5qw3#=0ElpbFuQ=1EF6>F0dC#v)rBQ3WZ)*P#zx1}uo~w58#TBW~ zm|9}2?A|LZnV0Xp;9|y<#ESkeSF=p5B@aH>B;V`idFW;rL(t*Ly_XGz&V9~Ze;~oY zW^vp8sRBP#OLW9ecjxvzwkl2A{Bxzjyt8TXGgyv2E)0BeJ7-&a#FKxv%aW=iUaN&X&+75LUZLyb_4t6%LZ9WqX;HC>cO0K}C{;QZ+BU?z zo8YnfVQ6Hp-%}TLq0TeU1BxQohOK`pAo@7g;nhLsSNjh>Ewbc0{v+8!W}aS_!@_^F zuXpbFEIa-5SB|B3rnah0K53WakhOMJfuedt|G$R0g-e4nH{(tuF)I_U^4vQ~# zT))8{lzqKLB<}NU&Xrj;(pOuw6XK`DdOc;ieq@bwi1Z%blhz6SRpKvJlru7Z{Jhz< les}r7ySG2opO9x{WB7J{-|3FTiSIzgyr-+5%Q~loCIA;2bXNcX diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-reload.png b/resources/library/interactivities/Ordre phrase.wgt/img/slate-toolbar-reload.png index 685a5cb2a93933036bec2353f4e1291358ec3ca1..844169a963567982f39336dcff5b0c56568f58ce 100644 GIT binary patch literal 2289 zcmV000W>0fLJSS^xk59CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs7IZ~ebVG7wVRUJ4ZXi@?ZDjy5HZL$UFEKLOh$^H200>D* zL_t(&f$f-oY*W`2$G`XevSWTZ2@nE>7|2Mpl*FtpZCR)t!P+rRg9%EvbX9^!VVX7p z8WNeRG%x%ZNE0IJD%Nf*37ytzV?a=+vB5S%L)Ne%;;n3jk_smXl0hJWB+q_7&;E!V zY{!lrvcW$b>B;Zi=X<}Od+zbQ=a>-@9;R^*Rs9hF03p7CF&6V&T~R6nsM~SyOkbq! zwO5w71wrrva075jk_1&%14QH}qNbhiw)m3?#>X5R(GUetv+g;!D2i9+K?ndG$EtK)pGHIw1OcXLLf3U< zW=_F3U;N4$Q534#+%-*c-D&|qzxb<_j~6YFkDq9EpZ9+Pj^iMT;zR(y-?ef1=XG80 z6Gic!R=oJm4a;1rs%_IW4IIY}yBq*|d+%WH8x1W&L3zCRu!)5)A7lA1En4wqPu&a4 zzX(wjVObUwMaktjRuwIt5P-<~nZx0LBuQa!aNv0!cDo&-C_+`WZLe1@btMCc7@POv zmPI9nTjtMw42&_@Y&HPcTwPJ>jQ-w;C8+wrdIcDY1tNlwkr5#q`m`*Vx{mD)&8Zk5 z6qMIpKlA2_e_#CUdBzwF!?0y#Im-d;PYNIwzPu{s$YZeF-02%1FIsTra(f4KU5DLf zTOSSZf8UDP{I!7z4*MlwXgNcwS`hvIft&@|S}D z=Xt2A3XZYewcqxRITl`fWr>^P_-z>(83+c0C|EETIn%T1QUWm7>Za0Xzu=FY_o5`( z1%Yp_S@&Gp5IZ+4^V;pUW=+$eC<-P_aNya+#V0X;Z6HP~Sw29Y{l@#}Qy-l=`}dDw znkI%45n*6(P}$4#eBJhj<~}5_og0=p4a3;Xaa;{!463Svh_L4CFDUNf!lJYR0DwA< z$c;z-P;>751vnfIsHzH46rt8<0uIoeZ z!#kWPiqJF-q9~$dVF5f#pSqiwow+F@4vaA?j`2j`up6eiufKoLd%o>o=(yU2uI`)A zG#!>@Vd8`gOr4sAg3q~7STGOH?92uLwam3T5Hp#vWW@4sDQAflKn+79gg-Z>&7f6H-_eV#z$JG-f`r<+n) zUr#qRzO$QTpT{5eR&u>$0J6`sDsa&sGw4{YyR)6%u6?yX8X_$K+2?T{daL$Eit(=y z(NQ9*316p(s5kygA!Q&2A}xS@Ti5PMHeruiTb7l*k4_FBB6TNnvT_z?DM$NgxDP2_rnj~4aIw5 z1OO2=js_66v;Y7g6de3xq*F*4pr8EkTi+cO;D2pIDcL!TBllWJNnM^R{e1(G``Po0#$BFIoSaz_ zc^tH53JjqmS*En@-zz%+D)7sMhArEd51k^zJvWB@hM5UnQt1K+I@ra1a;Un$g|aj_%HO z0Kkkn`EV61f~(LyJnMMz@OZIr(m4x=Xj6P7rDK+5-XWsOQT5UR2zPYTP}-HQ)l-6F zJMADG1;hoQ0{7~I$p8O=@YM+57-KAuq<^g5XtRD0_RveSM*#l?BwzixKjlZG00000 LNkvXXu0mjfx#&Pd literal 2110 zcmaJ?dpMN&9)IPULP##F%)TzQVlKvI3?q{qH!AU7rX(x^@3SCarV%3VJMx2>8?fK(4@AJIx@A7;;pYQGSJa5i{eLgzc zX4(J%==k|k7>X68e6=(bUvYBsykap$yhD*dI0i{%i6DT?fukXmADzgcs0+aUzv6FdhR}Q$x1LZCyDg^it!a_;;@d7bXN&-LV5*2&pH3md|fFL{) z_(xKq0S8cCun0mqp|SRCtTPtnj6>t_jxH`Pb|?od4vWD$U~mrhI2R(`fr!PTK0cr# znurraWKgIdV<}D~Fb+Y4L<}Y|F%g}JN5i6649?ZnRjJ|NV6Q;fi<1NhOKL9=TdpZk zATe9S6(U?%fKn>5qG1U_0u`D5Q37B1Nmd~K*d|58FjAHfgF|DLC9MGi0{%ag&;NuL zBMj)zeE+AgI4DU7VHl7YmWbGj!NpiALkWpqB8Y{+q97QKU+dz5I2eJ&aj+2O73hQt z;R-l#qWA+kAb{v65F;!B8}g%&Km{Mo<#LE#1S)}oCpf!0VZCuUZydqZ#g*bpcEIDj z_B!Kn&TCu>%$D#W0kX#B{K<7$m#Z`aU#N&ofkfOR5Qi#)`KS*C6S?c>;<&EfM=odm zT%6YBVid_>lwv!TOA^$jt_3;ju**OX8P$^oD_)9J9RL$2fBKz4t>mXtnfX zCTH=~3$vOfy9VqesDhx15g3?a?>skiv{n@Obd%}_~SD+n8j;di)UX{ zyg94a#&OuVC=xEJEWZMT=B-Z`|0SDUc=9}D`q7j0`BuG(h9=vs+B?zpOQylLMs*Dh zCl3^5Kkk0?I47EzSw7F#tZat939bp!m=L{f50T|wl77?3>q(J4d{~xNI5f7fAgPpq zr=q5%?z&n6^Hpvu2=v{N8`{H`>!Poe4E>-oYNNvKMT$mH*_##Mj9aZ=UKT zLg5+xv2n-FyF)slq2;#r4Jm({>3MND&-CBnLP-hlGa}8#P`vw;QPyWYWsg1dBjh#4 z$9GUy!7>SOyCP4XL-4da{LC(E?}$~IcjSH9*w~onMzvp_C9Smlj*bio(-r1>Bs~|z z{9}18EAn!vU2AV|uSxzL0}MUmg5+w%{+9IJ8R#x_yJ1A!c#-Prja|03bAdyk@qkRm z!=L=zz}nBM%7m)XG5&VtX14$sxP3dvB)GotqI2f*5$_Wv;gON>SiSn|yJrkW2F*%U zULwS8i`SX7#=H*oR7@-V(6@9Z(_E%i+1cq%!&?_rS683tpzq_Rh(tf09N53@MqfaT zS`^lVTGi%#Z_;w-XrgxN5HT#!+WPX;)YNz`K$A2q)(p`#s-{jxjmuwVel1QjGgcGQ z&J6!?5gMk=dO$`%^6zxPwADFms=XO z=x)-=kJU^~Yjb`6c4E2IFwGPA-t!dJ*0+RVOegC#c&qgtc25VV2~AV&!U#`~oy~^w z^0G3|2Ryj%UBVF`66>ZxBy;;e?>G|(KdB9Qye%B~%e9=Hj8@9z`C32Tm#7WXqIS;* zs}#52_3HM}dcP}K86HuMDsEWVt|QAmDwoSyF)@=C-a$-8!p|`b-=mI}kFGuy+Sx7` z`B+c5&3@^U+UCl+!5A%F7GE>ntnpVp0*Pc_&7=N!`n19KwY3|XM>cDxSbssv$z>% diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/toolbar-edit.png b/resources/library/interactivities/Ordre phrase.wgt/img/toolbar-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..daa338cd9bad28014559c72dab05555471ed402b GIT binary patch literal 732 zcmV<20wev2P)hPu2Ds07A#D z+(`)m10Mn0JJUZ@+pnq%MBp|%ES8NwDOLk#-~e!sr^msc6xo3pa5tZ@SZX^c-ho6o z06e&ZB7qF}i)0IA!gl~p>L5#?0N!D-JQN8?!jlC`;HvFkz>@@Oz-J58g3l7D2|p`P z8~&=mCE!tkOTnW827U+NPfd7GfZKJ0>63S=?e7451Mpk}9uxr30C=|7DAo1@fG#3Y z1bh} z^05>ix)tAeWB=B=!&DC&0NNI&WPE`=rmvk=Z9huGLQ(H8r|$x9UZ75YfIRIFC>8Aw zfaLK{3Qkh7L*3U0(z`UC0k;6t*GAaUDm zv{_eH15)rT0ZDkWKndKe&lf0#7YRtfvjwE!Spt&qWC3Y-l0Xf3s(>bWAi0-<&lceH zYekZc8Lx~?5j;iUE6Ibmu!%^_hNlP&B*(zwRS7&rz!u*o@PK_TJVn6G##wBSAqzfB zfMgdq=g~R;Y@Ro3;YFgD1q%&8O?(WPGBdSVDd`TL85dhqT2qH4N*IktZ1@II2I(YR4)WAlv zvU%qR&X@!VPJr&J6|ez*ghT^dppdL=FCxGNZ-6^P@E)%~&i!NSBU#Tt9T^*vt~(P|%gu7`!?=FJha~9{6Sqo?DucISV8!Tj0q^e|G$^U+W6=&|TFs{tr0D zn`GtcogeTY{2@7k0{HHEzmIV?MZg+=cl?8)4fjZ138$>U6Oen}H~&I_Zwqq#0!Ns# z1)=mZrC*QeGz8FHb<620w~?$ojJO|=hS2?H{W|fyC9-)1SKyz?OFd_PpxdkuIiRjt*AT2)sj{}ur*_}&=2$KKgpL_iZ6yhk%zfT|V~ zgZC(W{*%uKEY0W=-Rf*QTz?%{1n|Gl2dst2T7r*J2mKobq%Fk*5r>%ImKC`8@Lh^BEZML#?@q@t?dBCZ7*{$}PBp`GD#z=jH<W1u002ovPDHLkV1mUGDkT5_ literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Ordre phrase.wgt/img/toolbar-reload.png b/resources/library/interactivities/Ordre phrase.wgt/img/toolbar-reload.png new file mode 100644 index 0000000000000000000000000000000000000000..340d7371f204e07c5e1e7202160cbd20eb2bbaff GIT binary patch literal 999 zcmV8xO?{jC#X3A z<^rQ6j=F<){f31acLnk3NI;JEztL3;=ED0r;h&G?5}pfEjSuu_%CNV5XvU@m_!&_+lvS zGi=KfkeD6`29P2<1@1bOm((tAl*iOtGP3^n3d9XW5P%ffNGo=&I0vp(l;$ofDY6sl zZJM|sY_F!dOJ2EO@>1E?rnsVF@H=Em>=u+$6d29P2f16LmXhZ?R|RFqxl`C@$SI(F}sZF#_Sdu2ZG0hGq|spmg$1$YVp_`N9r9sNul zc?iJ5xIUC33yOXonNo*hm+sDNcu$?-z{+T$V$>6jtT;Xojsw@m^#PD;g`vh{+U~A! z2ULe;Mro_5gc;{{Dc-445mWDr2m>KcG}_e*h6_{j6sbsb!(>6A>w;UrG^4d;l$b zJpj3-bf`RPZ+QXy6_Lnh`vZDgg0?_JMjb1@7m?UUB_byx@?g!W8czgmfr!jJ#!C@d z`^NWx{BX_f1rU+3$9N;N5C9D^wdaNaEPDV%M8*Rk?u>br?S;-$unBQ^G%@Xce1AZx zl6`-mqd(vTu=XteK(Kv(U<>_$I&ymZ1HMokTkpY}`vbBb*2h7CNb00xMzG*db3@0Z zZCjRW_BsG;FARdv^DATii@o|z0FV1BJ?71bQpb8%Hcj;Nu!6);xS9TdQi}$_Hqe`l zMC8J;q7Zozt2P|81=hrgv|r3VxfMs+9=rt(1!F?`19cX3&2QW5TJ<($=U+y9fPeFJ V^_8`m{=5JH002ovPDHLkV1m
-   @@ -74,7 +69,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Ordre phrase.wgt/locales/fr/index.html b/resources/library/interactivities/Ordre phrase.wgt/locales/fr/index.html index 763aa128..ef868edb 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/locales/fr/index.html +++ b/resources/library/interactivities/Ordre phrase.wgt/locales/fr/index.html @@ -36,11 +36,6 @@
-   @@ -50,7 +45,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Ordre phrase.wgt/locales/fr/script/template2.js b/resources/library/interactivities/Ordre phrase.wgt/locales/fr/script/template2.js index 65cbc135..184102b8 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/locales/fr/script/template2.js +++ b/resources/library/interactivities/Ordre phrase.wgt/locales/fr/script/template2.js @@ -26,7 +26,7 @@ function checkResponse() */ var sankoreLang = { - view: "Afficher", + view: "Fermer", edit: "Modifier", example: "Cette phrase\nest un\nexemple", wgt_name: "Ordonner des phrases", @@ -36,23 +36,23 @@ var sankoreLang = { none: "aucun", help: "Aide", help_content: "

Ordonner des phrases

"+ -"

Ordonner des segments de phrases pour reconstituer le texte.

"+ + "

Ordonner des segments de phrases pour reconstituer le texte.

"+ -"

Des étiquettes avec des phrases sont dans le désordre. Le but est de les remettre en ordre pour avoir un texte compréhensible et correct. Lorsque le texte est en ordre, l’interactivité se colore en vert. L’activité s’effectue par un glisser-déposer des étiquettes pour remettre le texte en ordre.

"+ + "

Des étiquettes avec des phrases sont dans le désordre. Le but est de les remettre en ordre pour avoir un texte compréhensible et correct. Lorsque le texte est en ordre, l’interactivité se colore en vert. L’activité s’effectue par un glisser-déposer des étiquettes pour remettre le texte en ordre.

"+ -"

Le bouton “Recharger” réinitialise l’exercice.

"+ + "

Le bouton “Recharger” réinitialise l’exercice.

"+ -"

Le bouton “Modifier” vous permet :

"+ -"
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ -"
  • de déterminer le texte à reconstituer et le nombre de séparations dans l’énoncé.
"+ + "

Le bouton “Modifier” vous permet :

"+ + "
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ + "
  • de déterminer le texte à reconstituer et le nombre de séparations dans l’énoncé.
"+ -"

Pour insérer du texte dans la zone, cliquez sur la zone et saisissez le texte souhaité.

"+ -"

Pour ajouter des séparations dans l’énoncé, retournez à la ligne. Votre texte sera séparé lors d'un retour à la ligne.

"+ + "

Pour insérer du texte dans la zone, cliquez sur la zone et saisissez le texte souhaité.

"+ + "

Pour ajouter des séparations dans l’énoncé, retournez à la ligne. Votre texte sera séparé lors d'un retour à la ligne.

"+ -"

Le bouton “Afficher” vous permet d’utiliser l’activité.

" + "

Le bouton “Afficher” vous permet d’utiliser l’activité.

", + theme:"Thème" }; - var sentence = ""; var curSentence = ""; @@ -82,23 +82,34 @@ var input_width = 606; var widget_padding = 0; $(document).ready(function(){ - if(sankore.preference("ord_phrases_style","")){ - changeStyle(sankore.preference("ord_phrases_style","")); - $(".style_select").val(sankore.preference("ord_phrases_style","")); - } else - changeStyle("3") - + if(window.sankore) + if(sankore.preference("ord_phrases_style","")){ + changeStyle(sankore.preference("ord_phrases_style","")); + $("#style_select").val(sankore.preference("ord_phrases_style","")); + } else + changeStyle("3") + $("#wgt_display").text(sankoreLang.view); $("#wgt_edit").text(sankoreLang.edit); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) + + $("#style_select").change(function (event){ + changeStyle($(this).find("option:selected").val()); + }) $("#wgt_display, #wgt_edit").click(function(event){ if(this.id == "wgt_display"){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(this).css("display", "none"); $("#wgt_edit").css("display", "block"); modeView(); @@ -107,7 +118,7 @@ $(document).ready(function(){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(this).css("display", "none"); $("#wgt_display").css("display", "block"); modeEdit(); @@ -120,11 +131,13 @@ $(document).ready(function(){ $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#ub-widget").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#ub-widget").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -158,13 +171,7 @@ $(document).ready(function(){ } }); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); - $(".style_select").change(function (event){ - changeStyle($(this).find("option:selected").val()); - }) }) function str_replace( w, b, s ){ @@ -230,10 +237,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select option:first").attr('selected',true); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -247,10 +254,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:first").next().attr('selected',true); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -264,10 +271,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:last").attr('selected',true); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } @@ -355,7 +362,7 @@ function modeEdit() if (window.widget) { window.widget.onleave = function(){ - sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val()); if($( "#mp_word textarea" ).val()) { modeView(); @@ -377,4 +384,4 @@ if (window.widget) { } sankore.setPreference("rightOrdPhrases", sentence); } -} +} \ No newline at end of file diff --git a/resources/library/interactivities/Ordre phrase.wgt/locales/ru/index.html b/resources/library/interactivities/Ordre phrase.wgt/locales/ru/index.html index 763aa128..ef868edb 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/locales/ru/index.html +++ b/resources/library/interactivities/Ordre phrase.wgt/locales/ru/index.html @@ -36,11 +36,6 @@
-   @@ -50,7 +45,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Ordre phrase.wgt/locales/ru/script/template2.js b/resources/library/interactivities/Ordre phrase.wgt/locales/ru/script/template2.js index 8163d8af..398d9fa7 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/locales/ru/script/template2.js +++ b/resources/library/interactivities/Ordre phrase.wgt/locales/ru/script/template2.js @@ -27,7 +27,7 @@ function checkResponse() var sankoreLang = { edit: "Изменить", - view: "Просмотр", + view: "Закрыть", example: "это\nпример\nпредложения", wgt_name: "Порядок фраз", reload: "Обновить", @@ -35,10 +35,10 @@ var sankoreLang = { pad: "Планшет", none: "Нет", help: "Помощь", - help_content: "Пример текста помощи ..." + help_content: "Пример текста помощи ...", + theme: "Тема" } - var sentence = ""; var curSentence = ""; @@ -68,23 +68,34 @@ var input_width = 606; var widget_padding = 0; $(document).ready(function(){ - if(sankore.preference("ord_phrases_style","")){ - changeStyle(sankore.preference("ord_phrases_style","")); - $(".style_select").val(sankore.preference("ord_phrases_style","")); - } else - changeStyle("3") - + if(window.sankore) + if(sankore.preference("ord_phrases_style","")){ + changeStyle(sankore.preference("ord_phrases_style","")); + $("#style_select").val(sankore.preference("ord_phrases_style","")); + } else + changeStyle("3") + $("#wgt_display").text(sankoreLang.view); $("#wgt_edit").text(sankoreLang.edit); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) + + $("#style_select").change(function (event){ + changeStyle($(this).find("option:selected").val()); + }) $("#wgt_display, #wgt_edit").click(function(event){ if(this.id == "wgt_display"){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(this).css("display", "none"); $("#wgt_edit").css("display", "block"); modeView(); @@ -93,7 +104,7 @@ $(document).ready(function(){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(this).css("display", "none"); $("#wgt_display").css("display", "block"); modeEdit(); @@ -106,11 +117,13 @@ $(document).ready(function(){ $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#ub-widget").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#ub-widget").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -144,13 +157,7 @@ $(document).ready(function(){ } }); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); - $(".style_select").change(function (event){ - changeStyle($(this).find("option:selected").val()); - }) }) function str_replace( w, b, s ){ @@ -216,10 +223,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select option:first").attr('selected',true); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -233,10 +240,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:first").next().attr('selected',true); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -250,10 +257,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:last").attr('selected',true); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } @@ -341,7 +348,7 @@ function modeEdit() if (window.widget) { window.widget.onleave = function(){ - sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val()); if($( "#mp_word textarea" ).val()) { modeView(); @@ -363,4 +370,4 @@ if (window.widget) { } sankore.setPreference("rightOrdPhrases", sentence); } -} +} \ No newline at end of file diff --git a/resources/library/interactivities/Ordre phrase.wgt/scripts/template2.js b/resources/library/interactivities/Ordre phrase.wgt/scripts/template2.js index 99241058..d63220b3 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/scripts/template2.js +++ b/resources/library/interactivities/Ordre phrase.wgt/scripts/template2.js @@ -28,7 +28,7 @@ function checkResponse() var sankoreLang = { edit: "Edit", - view: "Display", + view: "Close", example: "this is\nan example\nsentence", wgt_name: "Order phrases", reload: "Reload", @@ -36,7 +36,8 @@ var sankoreLang = { pad: "Pad", none: "None", help: "Help", - help_content: "This is an example of help content ..." + help_content: "This is an example of help content ...", + theme: "Theme" } @@ -72,7 +73,7 @@ $(document).ready(function(){ if(window.sankore) if(sankore.preference("ord_phrases_style","")){ changeStyle(sankore.preference("ord_phrases_style","")); - $(".style_select").val(sankore.preference("ord_phrases_style","")); + $("#style_select").val(sankore.preference("ord_phrases_style","")); } else changeStyle("3") @@ -80,13 +81,23 @@ $(document).ready(function(){ $("#wgt_edit").text(sankoreLang.edit); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) + + $("#style_select").change(function (event){ + changeStyle($(this).find("option:selected").val()); + }) $("#wgt_display, #wgt_edit").click(function(event){ if(this.id == "wgt_display"){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(this).css("display", "none"); $("#wgt_edit").css("display", "block"); modeView(); @@ -95,7 +106,7 @@ $(document).ready(function(){ if(!$(this).hasClass("selected")){ $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(this).css("display", "none"); $("#wgt_display").css("display", "block"); modeEdit(); @@ -108,11 +119,13 @@ $(document).ready(function(){ $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#ub-widget").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#ub-widget").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -146,13 +159,7 @@ $(document).ready(function(){ } }); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); - $(".style_select").change(function (event){ - changeStyle($(this).find("option:selected").val()); - }) }) function str_replace( w, b, s ){ @@ -218,10 +225,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select option:first").attr('selected',true); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -235,10 +242,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:first").next().attr('selected',true); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -252,10 +259,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select option:last").attr('selected',true); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } @@ -343,7 +350,7 @@ function modeEdit() if (window.widget) { window.widget.onleave = function(){ - sankore.setPreference("ord_phrases_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("ord_phrases_style", $("#style_select").find("option:selected").val()); if($( "#mp_word textarea" ).val()) { modeView(); diff --git a/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css b/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css index 401a2bea..741bf47f 100644 --- a/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css +++ b/resources/library/interactivities/Ordre phrase.wgt/styles/of_puppets.css @@ -3,7 +3,7 @@ html, body{ height: 100%; margin: 0; padding: 0; - border-radius: 50px; + border-radius: 35px; overflow: hidden; } @@ -149,57 +149,40 @@ textarea{ margin: 10px 10px 0 10px; padding: 0; float: left; - /*font-family: "Lobster13Regular";*/ + font-family: Arial,Helvetica,sans-serif; font-size: 24px; - color: #8c5730; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #wgt_reload, #wgt_edit, #wgt_display, #wgt_help{ cursor: pointer; - height: 44px; margin: 10px 10px 0 0; float: right; - /*font-family: "Lobster13Regular";*/ - font-size: 24px; - color: #8c5730; + font-family: Arial,Helvetica,sans-serif; + font-size: 24px; + line-height: 32px; } #wgt_display{ - padding-left: 40px; - background-image: url(../img/slate-edit.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/toolbar-edit.png) left -32px no-repeat; + color: white; display: none; } #wgt_edit{ - padding-left: 40px; - background-image: url(../img/slate-edit.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/slate-toolbar-edit.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #wgt_reload{ - padding-left: 40px; - background-image: url(../img/slate-toolbar-reload.png); - background-repeat: no-repeat; - background-position: top 0; -} - -.style_select{ - width: 120px; - /*font-family: "Lobster13Regular";*/ - font-size: 24px; - float: right; - margin: 10px 20px 0 0; - border-radius: 10px; - background-image: url(../img/ar_down.png); - background-color: #d4aa79; - color: #8c5730; - background-position: 105px 11px; - background-repeat: no-repeat; - -webkit-appearance: menulist-text; - display: none; + padding-left: 35px; + background: url(../img/slate-toolbar-reload.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } .btl_pad{ @@ -234,51 +217,50 @@ textarea{ background-image: url(../img/pad-bottom-right.png) !important; } -.pad_color{ - color: white !important; +.without_radius{ + border-radius: 0 !important; } -.pad_reload{ - background-image: url(../img/slate-toolbar-reload-white.png) !important; +.without_back{ + background: none !important; } -.pad_edit{ - background-image: url(../img/slate-display.png) !important; +.pad_color{ + color: #FC9 !important; + text-shadow: none !important; } -.pad_select{ - background-color: black !important; - color: white !important; - background-image: url(../img/ar_down_white.png) !important; +.pad_reload{ + background: url(../img/toolbar-reload.png) left top no-repeat !important; } -.without_radius{ - border-radius: 0 !important; +.pad_edit{ + background: url(../img/toolbar-edit.png) left top no-repeat !important; } -.without_back{ - background: none !important; +.pad_help{ + background: url(../img/toolbar-help.png) left top no-repeat !important; } -.none_select{ - background-color: #333 !important; +.help_wood{ + background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important; color: white !important; - background-image: url(../img/ar_down_white.png) !important; + text-shadow: #7F613F 0 -1px 0 !important; } -.pad_help{ - background-image: url(../img/slate-help-white.png) !important; +.help_pad{ + background: url(../img/toolbar-help.png) left -32px no-repeat !important; + color: white !important; } #wgt_help{ - padding-left: 32px; - background-image: url(../img/slate-help.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/slate-toolbar-help.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #help{ - width: 100%; height: 100%; overflow: auto; display: none; @@ -287,5 +269,36 @@ textarea{ } .open{ - + +} + +#parameters{ + display: none; + padding: 10px 20px; + background: url("../img/parameters-bg.png"); + border-radius: 4px 4px 0 0; +} + +.inline{ + display: inline-block; + font-family: "helvetica neue"; + font-size: 14px; + color: #666; +} + +#parameters label { + font-style: italic; +} + +#style_select{ + margin-left: 10px; +} + +.display_wood{ + background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important; + text-shadow: #7F613F 0 -1px 0; +} + +.radius_ft{ + border-radius: 45px !important; } \ No newline at end of file From ef262fdc8218a890eeec37d179acca50a3b4ebbe Mon Sep 17 00:00:00 2001 From: Aleksei Kanash Date: Mon, 1 Oct 2012 15:27:47 +0300 Subject: [PATCH 11/15] Preview picture gathering adapted to new onDownloadFinished events. --- src/gui/UBFeaturesWidget.cpp | 5 +++-- src/gui/UBFeaturesWidget.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gui/UBFeaturesWidget.cpp b/src/gui/UBFeaturesWidget.cpp index c0728127..6ee337cf 100644 --- a/src/gui/UBFeaturesWidget.cpp +++ b/src/gui/UBFeaturesWidget.cpp @@ -235,7 +235,7 @@ void UBFeaturesWidget::onDisplayMetadata( QMap metadata ) if (!imageGatherer) imageGatherer = new UBDownloadHttpFile(0, this); - connect(imageGatherer, SIGNAL(downloadFinished(int, bool, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onPreviewLoaded(int, bool, QUrl, QString, QByteArray, QPointF, QSize, bool))); + connect(imageGatherer, SIGNAL(downloadFinished(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool)), this, SLOT(onPreviewLoaded(int, bool, QUrl, QUrl, QString, QByteArray, QPointF, QSize, bool))); // We send here the request and store its reply in order to be able to cancel it if needed imageGatherer->get(QUrl(metadata["Url"]), QPoint(0,0), QSize(), false); @@ -262,10 +262,11 @@ void UBFeaturesWidget::onDisplayMetadata( QMap metadata ) } -void UBFeaturesWidget::onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground) +void UBFeaturesWidget::onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QUrl originalUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground) { Q_UNUSED(id); Q_UNUSED(pSuccess); + Q_UNUSED(originalUrl); Q_UNUSED(isBackground); Q_UNUSED(pSize); Q_UNUSED(pPos); diff --git a/src/gui/UBFeaturesWidget.h b/src/gui/UBFeaturesWidget.h index e4fb9775..b94b3136 100644 --- a/src/gui/UBFeaturesWidget.h +++ b/src/gui/UBFeaturesWidget.h @@ -79,7 +79,7 @@ signals: void sendFileNameList(const QStringList lst); private slots: - void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground); + void onPreviewLoaded(int id, bool pSuccess, QUrl sourceUrl, QUrl originalUrl, QString pContentTypeHeader, QByteArray pData, QPointF pPos, QSize pSize, bool isBackground); void currentSelected( const QModelIndex & ); void searchStarted( const QString & ); void createNewFolder(); From 1face4b0a37cb3ff6cf25b9edf8e286adaaef676 Mon Sep 17 00:00:00 2001 From: maximXbs Date: Mon, 1 Oct 2012 14:33:55 +0200 Subject: [PATCH 12/15] updated 'selectionner' app --- .../Selectionner.wgt/css/basic.css | 141 +++++++++--------- .../Selectionner.wgt/img/ar_down.png | Bin 529 -> 0 bytes .../Selectionner.wgt/img/ar_down_white.png | Bin 142 -> 0 bytes .../Selectionner.wgt/img/green_point.png | Bin 721 -> 0 bytes .../Selectionner.wgt/img/parameters-bg.png | Bin 0 -> 4256 bytes .../Selectionner.wgt/img/red_point.png | Bin 740 -> 0 bytes .../Selectionner.wgt/img/slate-display.png | Bin 532 -> 0 bytes .../Selectionner.wgt/img/slate-edit.png | Bin 1907 -> 0 bytes .../Selectionner.wgt/img/slate-help-white.png | Bin 553 -> 0 bytes .../Selectionner.wgt/img/slate-help.png | Bin 1795 -> 0 bytes .../img/slate-toolbar-help.png | Bin 0 -> 1697 bytes .../img/slate-toolbar-reload-white.png | Bin 1619 -> 0 bytes .../img/slate-toolbar-reload.png | Bin 2110 -> 2289 bytes .../Selectionner.wgt/img/toolbar-edit.png | Bin 0 -> 732 bytes .../Selectionner.wgt/img/toolbar-help.png | Bin 0 -> 707 bytes .../Selectionner.wgt/img/toolbar-reload.png | Bin 0 -> 999 bytes .../Selectionner.wgt/index.html | 17 ++- .../Selectionner.wgt/js/script.js | 45 +++--- .../Selectionner.wgt/locales/fr/index.html | 17 ++- .../Selectionner.wgt/locales/fr/js/script.js | 109 +++++++------- .../Selectionner.wgt/locales/ru/index.html | 17 ++- .../Selectionner.wgt/locales/ru/js/script.js | 87 ++++++----- 22 files changed, 234 insertions(+), 199 deletions(-) delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/ar_down.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/ar_down_white.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/green_point.png create mode 100644 resources/library/interactivities/Selectionner.wgt/img/parameters-bg.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/red_point.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-display.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-edit.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-help-white.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-help.png create mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-help.png delete mode 100644 resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-reload-white.png create mode 100644 resources/library/interactivities/Selectionner.wgt/img/toolbar-edit.png create mode 100644 resources/library/interactivities/Selectionner.wgt/img/toolbar-help.png create mode 100644 resources/library/interactivities/Selectionner.wgt/img/toolbar-reload.png diff --git a/resources/library/interactivities/Selectionner.wgt/css/basic.css b/resources/library/interactivities/Selectionner.wgt/css/basic.css index 8a5c3d9d..7f682d90 100644 --- a/resources/library/interactivities/Selectionner.wgt/css/basic.css +++ b/resources/library/interactivities/Selectionner.wgt/css/basic.css @@ -3,7 +3,7 @@ html, body{ height: 100%; margin: 0; padding: 0; - border-radius: 50px; + border-radius: 35px; overflow: hidden; } @@ -28,14 +28,6 @@ body{ margin: 5px 10px; } -.green_point{ - background-image: url(../img/green_point.png); -} - -.red_point{ - background-image: url(../img/red_point.png); -} - #display_text, #edit_text{ height: 19px; padding: 3px 0 0 0; @@ -322,57 +314,40 @@ body{ margin: 10px 10px 0 10px; padding: 0; float: left; - /*font-family: "Lobster13Regular";*/ + font-family: Arial,Helvetica,sans-serif; font-size: 24px; - color: #8c5730; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #wgt_reload, #wgt_edit, #wgt_display, #wgt_help{ cursor: pointer; - height: 44px; margin: 10px 10px 0 0; float: right; - /*font-family: "Lobster13Regular";*/ - font-size: 24px; - color: #8c5730; + font-family: Arial,Helvetica,sans-serif; + font-size: 24px; + line-height: 32px; } #wgt_display{ - padding-left: 40px; - background-image: url(../img/slate-edit.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/toolbar-edit.png) left -32px no-repeat; + color: white; display: none; } #wgt_edit{ - padding-left: 40px; - background-image: url(../img/slate-edit.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/slate-toolbar-edit.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #wgt_reload{ - padding-left: 40px; - background-image: url(../img/slate-toolbar-reload.png); - background-repeat: no-repeat; - background-position: top 0; -} - -.style_select{ - width: 120px; - /*font-family: "Lobster13Regular";*/ - font-size: 24px; - float: right; - margin: 10px 20px 0 0; - border-radius: 10px; - background-image: url(../img/ar_down.png); - background-color: #d4aa79; - color: #8c5730; - background-position: 105px 11px; - background-repeat: no-repeat; - -webkit-appearance: menulist-text; - display: none; + padding-left: 35px; + background: url(../img/slate-toolbar-reload.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } .btl_pad{ @@ -407,51 +382,50 @@ body{ background-image: url(../img/pad-bottom-right.png) !important; } -.pad_color{ - color: white !important; +.without_radius{ + border-radius: 0 !important; } -.pad_reload{ - background-image: url(../img/slate-toolbar-reload-white.png) !important; +.without_back{ + background: none !important; } -.pad_edit{ - background-image: url(../img/slate-display.png) !important; +.pad_color{ + color: #FC9 !important; + text-shadow: none !important; } -.pad_select{ - background-color: black !important; - color: white !important; - background-image: url(../img/ar_down_white.png) !important; +.pad_reload{ + background: url(../img/toolbar-reload.png) left top no-repeat !important; } -.without_radius{ - border-radius: 0 !important; +.pad_edit{ + background: url(../img/toolbar-edit.png) left top no-repeat !important; } -.without_back{ - background: none !important; +.pad_help{ + background: url(../img/toolbar-help.png) left top no-repeat !important; } -.none_select{ - background-color: #333 !important; +.help_wood{ + background: url(../img/slate-toolbar-help.png) left -32px no-repeat !important; color: white !important; - background-image: url(../img/ar_down_white.png) !important; + text-shadow: #7F613F 0 -1px 0 !important; } -.pad_help{ - background-image: url(../img/slate-help-white.png) !important; +.help_pad{ + background: url(../img/toolbar-help.png) left -32px no-repeat !important; + color: white !important; } #wgt_help{ - padding-left: 32px; - background-image: url(../img/slate-help.png); - background-repeat: no-repeat; - background-position: top 0; + padding-left: 35px; + background: url(../img/slate-toolbar-help.png) left top no-repeat; + color: #7F613F; + text-shadow: #FFDCA9 0 1px 0; } #help{ - width: 100%; height: 100%; overflow: auto; display: none; @@ -460,5 +434,36 @@ body{ } .open{ - + +} + +#parameters{ + display: none; + padding: 10px 20px; + background: url("../img/parameters-bg.png"); + border-radius: 4px 4px 0 0; +} + +.inline{ + display: inline-block; + font-family: "helvetica neue"; + font-size: 14px; + color: #666; +} + +#parameters label { + font-style: italic; +} + +#style_select{ + margin-left: 10px; +} + +.display_wood{ + background: url(../img/slate-toolbar-edit.png) left -32px no-repeat !important; + text-shadow: #7F613F 0 -1px 0; +} + +.radius_ft{ + border-radius: 45px !important; } \ No newline at end of file diff --git a/resources/library/interactivities/Selectionner.wgt/img/ar_down.png b/resources/library/interactivities/Selectionner.wgt/img/ar_down.png deleted file mode 100644 index a20fab4f36a5d0f7e7a48e67ce9335c1a76a005d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)tGP4h z+%xyi(97qKUw8MsXF#K%IhY_2F%T0FmI=FS7s>4>0pJM{Jq374%m_IHYlYl0IS1#$ zGJGbM3psHfKI-)P`yF?15ANVDy1hPxV`Hfl>Sc-VA3uy(b{oExX_T~XcGrdL?ZbO; z0Pp?*-2MPX8Yk0Vzu&N?)>l~^T~t+xs#K^J3#dGWOkz~V@z2k17b=%S0n<|)1jp9Y zKP0OI$K339&@;nLsk<4=#cf{cgO6C|3zl_v8Ki8@T(`IZC zP$uC~7AHvOA?C9Q{@z?;eD(E++IKN3(QJgZl4nuqzhZ#Ti diff --git a/resources/library/interactivities/Selectionner.wgt/img/ar_down_white.png b/resources/library/interactivities/Selectionner.wgt/img/ar_down_white.png deleted file mode 100644 index 4a1d133b72676983e994ef76f99f777714560e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 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
*5i3V}^P*Mr= z(V~;SzpEP;>o$+;T94N4f1i_Pq3(DGYa-}i*5yDqaNDO8N}RkWz_XOKM&Iz+>(yTe z$@Ivo@AqvEoN!g>W6ql&ZlYcc!{$Ecf~R_Z9H2W>M;8_66kDN+AwT_9A(+oAh(Jwi z8Lr0{eoJ@MUt)!K0jTmC&Ojzoh*pTW+0uo-q#jp3WBqD0%#pY?7d(8D`re z^`UE02ftb*5!X+i+9D?H_b?PyrMkP{uUz55JD<_rwB%Uz^PA@i`ynn?szr~d6?QOVvr@t(| z+AJXoWLNgxgq3WMEj>~#)K~!LhGMP~j(<`49>1;gM zr*IzowH~I0b#X!}s*JFkIdlYY%-d!rjnV~YpoGKX_Jq8#i;M9qM#p|FrGRC}zE9e3 z3Me+_cPA`GPFi;)kB0=|g;hpr9|OeK(EJh68LV9Z`g40VSShq|YOwW>cx#v5+bwlw zJDpP{a(jRKBt=imP?DyKAp2rV>c}Peg!OG(LdVVb$Gq$4&V6o*QdV{;$7?&K-Yf8s zSz7>8o5^qHbzOFwR3@g+hV0MHs*H9|y~tZTFF;ZCN5y+1ndD#$hXa7ETL6gTWhTjyfMHyD+>_8YCl$KHO|ROy1&ReE50aRaw+q;*#Kl5Y_|(& zG)U+l=sk!ifm*wLK514jHiidJ3Mpz@>CMistuxuT?@Qjfw@mU~qz{uCa@HI=did_d z^u+bpby}GJ2DBD@8pF`B!I_<@_Kl7AU+$?+_FxYVAn;`D#F2%`srsB>djkd8^5n$R z1nU4i0`S_v_{h}3`#)D9DvEp|NOB~&+1_{cz$jdE>z}|D3cQG@VsMP|U=bLUkp0;L zz4n>xRqqHHpAMW9X?&{HfXnRf4`G88=inWMMsm&tWg0E1GYLA^pw-3*i=#QNqjgD3 zx+HaXI`0yIjFv!l1L%8p4Z((BWf2O)ps)%AxEUFVSt&RkBBmZx!-N1?8V!+#URZiy z$bqJEt}o#I0A+q$dIuTVGDbjYH8jywp^2iyFAT(F+mR~vY?4H%5ST$MEr*1Yq-qIXq?^}a zyW}cU4-21u@Noqcc~-PQYkfbgVBJyL07ru>La621-8s~I=9KW+S{Jte*k!8wzg+kCB2o_nrCH|O?vbRXS~Bb zuCOdyhMnz42<%@81h^cCM2eDX6^mk?rO6eUq!&=gL1y$is(cBpdsfb6J*9B`7hnKZ WDw06KPZvZ0000007@qS@dvOgaA8U<@5=ML{NmA_|LEYxxg-C(3j(%+?VyDN@L7)R2%x$G zsyl!f%VA*8nwjsY>HtzK2Z0Z7Ui_z;14y+T2B_iyaxMS+_s?aD9YBfYKuUlj2T*D` zMcI&IpF>MRvK&AS%gJ^CwJayg0o1gdWCu{&a*`ZC3(JXi0Ie)1+5x@A!P8$px%-FO zmJ{uO3rBZ6`TgtX4_2}a+m|~wu*JkoT5QAzp$7O&@l^;8mkB1Jb$zw#{c*4?-eE{W?P{62dcJ; zr4%*nLA1F`2m=QfPdvC032EUP>{~zAJS?k`BFo{yfD2zcbMP&4Fauk(|5r?|{(o}M z+6SP7Nlvhnlm_tR{R2QeffCDM4qzlu?SdpPf^s7i9{>jR1#0yhh;hJZ=al9EAiw}1 WxhI7T;&QP70000J?Gxv$9bOTect!?{?08< zN?hvX;OPJWfD=ESC!j{q^3JfMzUrKu2h`v}#)`=0xQx_@RTvO0#nUj5uMn@p1ejQ= z+t7`L1Aq-E7m7#`x(t!v3WnH%VQ3Wu#Rh=z#acovS&xxm8n#ZZjG+B-^f(QaOCxA2 zIVg-0F<81hK1YQu&q)+Ya@I?@QrhB3FkFjJ0t$>2gIYzVQjKUMXwP&JYHrzvXy7vl zxjusS+>{7S0%LF$267lMT>=NgU@()xWCw+Wgam>tmKbdn?x2-0XY3=NxstJXnGE|+W3V6o^Fg09vnNwJo$RL`GO;9+Ws zN=}e+TnSnf#c6mJ89}3*K2JeGyp&a{UzCX|7^D>w5R(C0Qkn#!=>J0%ikE0LDZpO& z{ZC=FP)A^p08`^xDhYLPviX)!1QMgd#3Zf~;&|p{6_e6&5?80=1Q@fN1Fn=SrMO1@ z42_})U#TX=N(sj2MbIcdLoSyhF}x5ShqHvm<-oB_W-OB%7Z(y63bWavalu?(EO(O2 z!zEb?Oi501rLVZ`DY=$LP!LpP9;T9KW70Skt^l7UjL4_<0#B*;f-9Zc3v)^?M45ps z$NH~hp4_5($1;7{wAA8d+ha>aN`4^P+{?-|ntN-*HQx)6TATclZsO zo&Fx|-2@w`qA@lHZwR=N+Zm@kM()CieUF6j;@u z)mi($s_Ysvx4W0z_|a%I-kmsd`n$gx%6iMvq#cE>+C1~I!bkC=j@Ke9y34+lpX6OO zXN{YVLI+|JqM4(EH*dZK0ZN_9zS>AbgtOE=W%4d;Ch`fL$EeKN)-=9-`HC9acSx8 zbHfe+YYP2)*757zy}9~}F3sClx|W|lGxp6A7yCw}U0j#zcW6gI!{`sg-Mpq@0`?9r zI{8uSv0oOt48Bp`a`51plR{yL5B}6?A zn6+53i74n3D8uy*faXX_P-Ns!MPbcr9*&;Smml8kTUhv^*(-3Tmz%ysXfnT}n zS3@r1|K+6%kiUS72|H8u1LTW{Lf1JdS`d>v4N6Qnu+_cDrU-h519XxnWlyUk}jQt8p z=&zWj`@f?)hRmBjc+fG@{DtW) zE9k9Mk*#ASIIF&>sA%r)F@HOhXn#Zx41Cbi($dc(E7i(b0o5j9XGHaD@B#zpioNaL z-V0;wDznGF{;}Hn`rbKhq5CUj2b?!9-j) z(t)e-1*S()rv8gt&fa~}v$N#)Aa@-KUrlR>ygu#lc*cbdc?pQK8DAy7RoHC(ciOmn ZDi8|3Y4kkxbj0!-_pb~$&L3vDaAXI=gPRvNf*c8S$Ood*7f2B<470o|&+qb$b4UIY z13>CP>OuPOnGLstkOR8%{g1qObmu=Q0HhwIk75S^eUb3s#)bdn0FXYAeu^Bhd-aTS z|0w`a{dn!bn+;`^bqp!VV#MfYB#=_6QA{$9mV`ss0iQp-IZBD)pWhRqpFlQo_)i&d zptvOb{rlHea%_g`qr4~v(gJ_~{<%zwYKh_U?Zrw@-n>WPS6;vE1r zEP==XNFXwOfiY3-0T}r6=l54;W)?17>VZN3jfI7ko0J9#3n|%Z%fg=f0wNOHxa2>) zd2yfQyh>~ofWWf{H{at6dyqT{S)6cfhz|IL#UD~4PjM7%n%~7BDX)rC{`te(3^a`b zU{mWgfu`7NQlo$*2LQ!35XgcXNOb^7*$@Qgcjh%IY8cj{i{HO-zB#dcQXRSjs2T-O r^#wS5UqE6-M>qsV8zl4q009O7eJ4TJ=dcL@00000NkvXXu0mjfuXXIg diff --git a/resources/library/interactivities/Selectionner.wgt/img/slate-help.png b/resources/library/interactivities/Selectionner.wgt/img/slate-help.png deleted file mode 100644 index 069052d0061dacbeaa3bd022259a5db0e37a9f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 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 literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-reload-white.png b/resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-reload-white.png deleted file mode 100644 index 78d146ec37fd55bc97dbac2bf21e599468ee8d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1619 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%nF$y5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8pIh$D;n7J8P zI>Ge14w>EaktaqCUE zeMXd{ME$g&z>Gq{!c_^51snY4TFqGcLLjQ(k}BKWT(|8URw)zHiUpPV%6ybN9$az| zmu;Sc#D(ln%u|sTI=_3w%fVq$30uq+-Wr*9>1G+|L*tQ*8A<3KdPL!+jr;j zyPNI^?l>Rxp=xiU$?=&!&#b?m?K{Re;o6oTci2uHuq-+4#ku0izm_8tZol1k;`!%% z;ZByeIC;BvdFM4@+U;$ZUw-yu+3!qAh)ffylanGm54`^_&&$TFd03vI{mjOFEP7!Ret4N3Q(;gIHk&>5PTAf# z`$@Zlx$<9B{;iv@E}bmI!Pd;WvsnEJhi9t_pG)!aN5MP9I+z*{1f0t*D=(kEZn;BW zW0OIF)!eMLVXs5qw3#=0ElpbFuQ=1EF6>F0dC#v)rBQ3WZ)*P#zx1}uo~w58#TBW~ zm|9}2?A|LZnV0Xp;9|y<#ESkeSF=p5B@aH>B;V`idFW;rL(t*Ly_XGz&V9~Ze;~oY zW^vp8sRBP#OLW9ecjxvzwkl2A{Bxzjyt8TXGgyv2E)0BeJ7-&a#FKxv%aW=iUaN&X&+75LUZLyb_4t6%LZ9WqX;HC>cO0K}C{;QZ+BU?z zo8YnfVQ6Hp-%}TLq0TeU1BxQohOK`pAo@7g;nhLsSNjh>Ewbc0{v+8!W}aS_!@_^F zuXpbFEIa-5SB|B3rnah0K53WakhOMJfuedt|G$R0g-e4nH{(tuF)I_U^4vQ~# zT))8{lzqKLB<}NU&Xrj;(pOuw6XK`DdOc;ieq@bwi1Z%blhz6SRpKvJlru7Z{Jhz< les}r7ySG2opO9x{WB7J{-|3FTiSIzgyr-+5%Q~loCIA;2bXNcX diff --git a/resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-reload.png b/resources/library/interactivities/Selectionner.wgt/img/slate-toolbar-reload.png index 685a5cb2a93933036bec2353f4e1291358ec3ca1..844169a963567982f39336dcff5b0c56568f58ce 100644 GIT binary patch literal 2289 zcmV000W>0fLJSS^xk59CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs7IZ~ebVG7wVRUJ4ZXi@?ZDjy5HZL$UFEKLOh$^H200>D* zL_t(&f$f-oY*W`2$G`XevSWTZ2@nE>7|2Mpl*FtpZCR)t!P+rRg9%EvbX9^!VVX7p z8WNeRG%x%ZNE0IJD%Nf*37ytzV?a=+vB5S%L)Ne%;;n3jk_smXl0hJWB+q_7&;E!V zY{!lrvcW$b>B;Zi=X<}Od+zbQ=a>-@9;R^*Rs9hF03p7CF&6V&T~R6nsM~SyOkbq! zwO5w71wrrva075jk_1&%14QH}qNbhiw)m3?#>X5R(GUetv+g;!D2i9+K?ndG$EtK)pGHIw1OcXLLf3U< zW=_F3U;N4$Q534#+%-*c-D&|qzxb<_j~6YFkDq9EpZ9+Pj^iMT;zR(y-?ef1=XG80 z6Gic!R=oJm4a;1rs%_IW4IIY}yBq*|d+%WH8x1W&L3zCRu!)5)A7lA1En4wqPu&a4 zzX(wjVObUwMaktjRuwIt5P-<~nZx0LBuQa!aNv0!cDo&-C_+`WZLe1@btMCc7@POv zmPI9nTjtMw42&_@Y&HPcTwPJ>jQ-w;C8+wrdIcDY1tNlwkr5#q`m`*Vx{mD)&8Zk5 z6qMIpKlA2_e_#CUdBzwF!?0y#Im-d;PYNIwzPu{s$YZeF-02%1FIsTra(f4KU5DLf zTOSSZf8UDP{I!7z4*MlwXgNcwS`hvIft&@|S}D z=Xt2A3XZYewcqxRITl`fWr>^P_-z>(83+c0C|EETIn%T1QUWm7>Za0Xzu=FY_o5`( z1%Yp_S@&Gp5IZ+4^V;pUW=+$eC<-P_aNya+#V0X;Z6HP~Sw29Y{l@#}Qy-l=`}dDw znkI%45n*6(P}$4#eBJhj<~}5_og0=p4a3;Xaa;{!463Svh_L4CFDUNf!lJYR0DwA< z$c;z-P;>751vnfIsHzH46rt8<0uIoeZ z!#kWPiqJF-q9~$dVF5f#pSqiwow+F@4vaA?j`2j`up6eiufKoLd%o>o=(yU2uI`)A zG#!>@Vd8`gOr4sAg3q~7STGOH?92uLwam3T5Hp#vWW@4sDQAflKn+79gg-Z>&7f6H-_eV#z$JG-f`r<+n) zUr#qRzO$QTpT{5eR&u>$0J6`sDsa&sGw4{YyR)6%u6?yX8X_$K+2?T{daL$Eit(=y z(NQ9*316p(s5kygA!Q&2A}xS@Ti5PMHeruiTb7l*k4_FBB6TNnvT_z?DM$NgxDP2_rnj~4aIw5 z1OO2=js_66v;Y7g6de3xq*F*4pr8EkTi+cO;D2pIDcL!TBllWJNnM^R{e1(G``Po0#$BFIoSaz_ zc^tH53JjqmS*En@-zz%+D)7sMhArEd51k^zJvWB@hM5UnQt1K+I@ra1a;Un$g|aj_%HO z0Kkkn`EV61f~(LyJnMMz@OZIr(m4x=Xj6P7rDK+5-XWsOQT5UR2zPYTP}-HQ)l-6F zJMADG1;hoQ0{7~I$p8O=@YM+57-KAuq<^g5XtRD0_RveSM*#l?BwzixKjlZG00000 LNkvXXu0mjfx#&Pd literal 2110 zcmaJ?dpMN&9)IPULP##F%)TzQVlKvI3?q{qH!AU7rX(x^@3SCarV%3VJMx2>8?fK(4@AJIx@A7;;pYQGSJa5i{eLgzc zX4(J%==k|k7>X68e6=(bUvYBsykap$yhD*dI0i{%i6DT?fukXmADzgcs0+aUzv6FdhR}Q$x1LZCyDg^it!a_;;@d7bXN&-LV5*2&pH3md|fFL{) z_(xKq0S8cCun0mqp|SRCtTPtnj6>t_jxH`Pb|?od4vWD$U~mrhI2R(`fr!PTK0cr# znurraWKgIdV<}D~Fb+Y4L<}Y|F%g}JN5i6649?ZnRjJ|NV6Q;fi<1NhOKL9=TdpZk zATe9S6(U?%fKn>5qG1U_0u`D5Q37B1Nmd~K*d|58FjAHfgF|DLC9MGi0{%ag&;NuL zBMj)zeE+AgI4DU7VHl7YmWbGj!NpiALkWpqB8Y{+q97QKU+dz5I2eJ&aj+2O73hQt z;R-l#qWA+kAb{v65F;!B8}g%&Km{Mo<#LE#1S)}oCpf!0VZCuUZydqZ#g*bpcEIDj z_B!Kn&TCu>%$D#W0kX#B{K<7$m#Z`aU#N&ofkfOR5Qi#)`KS*C6S?c>;<&EfM=odm zT%6YBVid_>lwv!TOA^$jt_3;ju**OX8P$^oD_)9J9RL$2fBKz4t>mXtnfX zCTH=~3$vOfy9VqesDhx15g3?a?>skiv{n@Obd%}_~SD+n8j;di)UX{ zyg94a#&OuVC=xEJEWZMT=B-Z`|0SDUc=9}D`q7j0`BuG(h9=vs+B?zpOQylLMs*Dh zCl3^5Kkk0?I47EzSw7F#tZat939bp!m=L{f50T|wl77?3>q(J4d{~xNI5f7fAgPpq zr=q5%?z&n6^Hpvu2=v{N8`{H`>!Poe4E>-oYNNvKMT$mH*_##Mj9aZ=UKT zLg5+xv2n-FyF)slq2;#r4Jm({>3MND&-CBnLP-hlGa}8#P`vw;QPyWYWsg1dBjh#4 z$9GUy!7>SOyCP4XL-4da{LC(E?}$~IcjSH9*w~onMzvp_C9Smlj*bio(-r1>Bs~|z z{9}18EAn!vU2AV|uSxzL0}MUmg5+w%{+9IJ8R#x_yJ1A!c#-Prja|03bAdyk@qkRm z!=L=zz}nBM%7m)XG5&VtX14$sxP3dvB)GotqI2f*5$_Wv;gON>SiSn|yJrkW2F*%U zULwS8i`SX7#=H*oR7@-V(6@9Z(_E%i+1cq%!&?_rS683tpzq_Rh(tf09N53@MqfaT zS`^lVTGi%#Z_;w-XrgxN5HT#!+WPX;)YNz`K$A2q)(p`#s-{jxjmuwVel1QjGgcGQ z&J6!?5gMk=dO$`%^6zxPwADFms=XO z=x)-=kJU^~Yjb`6c4E2IFwGPA-t!dJ*0+RVOegC#c&qgtc25VV2~AV&!U#`~oy~^w z^0G3|2Ryj%UBVF`66>ZxBy;;e?>G|(KdB9Qye%B~%e9=Hj8@9z`C32Tm#7WXqIS;* zs}#52_3HM}dcP}K86HuMDsEWVt|QAmDwoSyF)@=C-a$-8!p|`b-=mI}kFGuy+Sx7` z`B+c5&3@^U+UCl+!5A%F7GE>ntnpVp0*Pc_&7=N!`n19KwY3|XM>cDxSbssv$z>% diff --git a/resources/library/interactivities/Selectionner.wgt/img/toolbar-edit.png b/resources/library/interactivities/Selectionner.wgt/img/toolbar-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..daa338cd9bad28014559c72dab05555471ed402b GIT binary patch literal 732 zcmV<20wev2P)hPu2Ds07A#D z+(`)m10Mn0JJUZ@+pnq%MBp|%ES8NwDOLk#-~e!sr^msc6xo3pa5tZ@SZX^c-ho6o z06e&ZB7qF}i)0IA!gl~p>L5#?0N!D-JQN8?!jlC`;HvFkz>@@Oz-J58g3l7D2|p`P z8~&=mCE!tkOTnW827U+NPfd7GfZKJ0>63S=?e7451Mpk}9uxr30C=|7DAo1@fG#3Y z1bh} z^05>ix)tAeWB=B=!&DC&0NNI&WPE`=rmvk=Z9huGLQ(H8r|$x9UZ75YfIRIFC>8Aw zfaLK{3Qkh7L*3U0(z`UC0k;6t*GAaUDm zv{_eH15)rT0ZDkWKndKe&lf0#7YRtfvjwE!Spt&qWC3Y-l0Xf3s(>bWAi0-<&lceH zYekZc8Lx~?5j;iUE6Ibmu!%^_hNlP&B*(zwRS7&rz!u*o@PK_TJVn6G##wBSAqzfB zfMgdq=g~R;Y@Ro3;YFgD1q%&8O?(WPGBdSVDd`TL85dhqT2qH4N*IktZ1@II2I(YR4)WAlv zvU%qR&X@!VPJr&J6|ez*ghT^dppdL=FCxGNZ-6^P@E)%~&i!NSBU#Tt9T^*vt~(P|%gu7`!?=FJha~9{6Sqo?DucISV8!Tj0q^e|G$^U+W6=&|TFs{tr0D zn`GtcogeTY{2@7k0{HHEzmIV?MZg+=cl?8)4fjZ138$>U6Oen}H~&I_Zwqq#0!Ns# z1)=mZrC*QeGz8FHb<620w~?$ojJO|=hS2?H{W|fyC9-)1SKyz?OFd_PpxdkuIiRjt*AT2)sj{}ur*_}&=2$KKgpL_iZ6yhk%zfT|V~ zgZC(W{*%uKEY0W=-Rf*QTz?%{1n|Gl2dst2T7r*J2mKobq%Fk*5r>%ImKC`8@Lh^BEZML#?@q@t?dBCZ7*{$}PBp`GD#z=jH<W1u002ovPDHLkV1mUGDkT5_ literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Selectionner.wgt/img/toolbar-reload.png b/resources/library/interactivities/Selectionner.wgt/img/toolbar-reload.png new file mode 100644 index 0000000000000000000000000000000000000000..340d7371f204e07c5e1e7202160cbd20eb2bbaff GIT binary patch literal 999 zcmV8xO?{jC#X3A z<^rQ6j=F<){f31acLnk3NI;JEztL3;=ED0r;h&G?5}pfEjSuu_%CNV5XvU@m_!&_+lvS zGi=KfkeD6`29P2<1@1bOm((tAl*iOtGP3^n3d9XW5P%ffNGo=&I0vp(l;$ofDY6sl zZJM|sY_F!dOJ2EO@>1E?rnsVF@H=Em>=u+$6d29P2f16LmXhZ?R|RFqxl`C@$SI(F}sZF#_Sdu2ZG0hGq|spmg$1$YVp_`N9r9sNul zc?iJ5xIUC33yOXonNo*hm+sDNcu$?-z{+T$V$>6jtT;Xojsw@m^#PD;g`vh{+U~A! z2ULe;Mro_5gc;{{Dc-445mWDr2m>KcG}_e*h6_{j6sbsb!(>6A>w;UrG^4d;l$b zJpj3-bf`RPZ+QXy6_Lnh`vZDgg0?_JMjb1@7m?UUB_byx@?g!W8czgmfr!jJ#!C@d z`^NWx{BX_f1rU+3$9N;N5C9D^wdaNaEPDV%M8*Rk?u>br?S;-$unBQ^G%@Xce1AZx zl6`-mqd(vTu=XteK(Kv(U<>_$I&ymZ1HMokTkpY}`vbBb*2h7CNb00xMzG*db3@0Z zZCjRW_BsG;FARdv^DATii@o|z0FV1BJ?71bQpb8%Hcj;Nu!6);xS9TdQi}$_Hqe`l zMC8J;q7Zozt2P|81=hrgv|r3VxfMs+9=rt(1!F?`19cX3&2QW5TJ<($=U+y9fPeFJ V^_8`m{=5JH002ovPDHLkV1m
-   @@ -66,7 +61,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Selectionner.wgt/js/script.js b/resources/library/interactivities/Selectionner.wgt/js/script.js index f8a5f9a2..0e96f2eb 100644 --- a/resources/library/interactivities/Selectionner.wgt/js/script.js +++ b/resources/library/interactivities/Selectionner.wgt/js/script.js @@ -1,5 +1,5 @@ var sankoreLang = { - display: "Display", + display: "Close", edit: "Edit", short_desc: "Select animals from the following list:", add: "Add new block", @@ -15,7 +15,8 @@ var sankoreLang = { pad: "Pad", none: "None", help: "Help", - help_content: "This is an example of help content ..." + help_content: "This is an example of help content ...", + theme: "Theme" }; //main function @@ -27,9 +28,11 @@ function start(){ $("#wgt_reload").text(sankoreLang.reload); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) if(window.sankore){ if(sankore.preference("selectionner","")){ @@ -39,7 +42,7 @@ function start(){ showExample(); if(sankore.preference("sel_style","")){ changeStyle(sankore.preference("sel_style","")); - $(".style_select").val(sankore.preference("sel_style","")); + $("#style_select").val(sankore.preference("sel_style","")); } else changeStyle("3") } @@ -50,18 +53,20 @@ function start(){ if (window.widget) { window.widget.onleave = function(){ exportData(); - sankore.setPreference("sel_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("sel_style", $("#style_select").find("option:selected").val()); } } $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#data").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#data").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -83,7 +88,7 @@ function start(){ $("#wgt_display").trigger("click"); }); - $(".style_select").change(function (event){ + $("#style_select").change(function (event){ changeStyle($(this).find("option:selected").val()); }) @@ -94,7 +99,7 @@ function start(){ sankore.enableDropOnWidget(false); $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(".add_block").remove(); $(".cont").each(function(){ var container = $(this); @@ -122,7 +127,7 @@ function start(){ sankore.enableDropOnWidget(true); $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(".cont").each(function(){ var container = $(this); @@ -446,10 +451,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -463,10 +468,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -480,10 +485,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } diff --git a/resources/library/interactivities/Selectionner.wgt/locales/fr/index.html b/resources/library/interactivities/Selectionner.wgt/locales/fr/index.html index 218567a2..33fa36f6 100644 --- a/resources/library/interactivities/Selectionner.wgt/locales/fr/index.html +++ b/resources/library/interactivities/Selectionner.wgt/locales/fr/index.html @@ -26,11 +26,6 @@
-   @@ -40,7 +35,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js b/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js index 7650dcaf..7cdd8d02 100644 --- a/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js +++ b/resources/library/interactivities/Selectionner.wgt/locales/fr/js/script.js @@ -1,5 +1,5 @@ var sankoreLang = { - display: "Afficher", + display: "Fermer", edit: "Modifier", short_desc: "Sélectionner les animaux dans la liste suivante :", add: "Nouveau bloc", @@ -16,24 +16,25 @@ var sankoreLang = { none: "aucun", help: "Aide", help_content: "

Sélectionner

"+ -"

Trouver les éléments correspondants à la consigne.

"+ + "

Trouver les éléments correspondants à la consigne.

"+ -"

Une consigne est écrite précisant le ou les éléments à chercher parmi tous les éléments proposés. Le but est de trouver les éléments correspondants à la consigne. L’activité s’effectue en cochant les cases sous les éléments correspondants. Une fois que tous les éléments corrects sont cochés, la zone se colore en vert.

"+ + "

Une consigne est écrite précisant le ou les éléments à chercher parmi tous les éléments proposés. Le but est de trouver les éléments correspondants à la consigne. L’activité s’effectue en cochant les cases sous les éléments correspondants. Une fois que tous les éléments corrects sont cochés, la zone se colore en vert.

"+ -"

Le bouton “Recharger” réinitialise les exercices.

"+ + "

Le bouton “Recharger” réinitialise les exercices.

"+ -"

Le bouton “Modifier” vous permet :

"+ -"
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ -"
  • de modifier un exercice ou d’en créer de nouveaux dans la même activité.
"+ + "

Le bouton “Modifier” vous permet :

"+ + "
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ + "
  • de modifier un exercice ou d’en créer de nouveaux dans la même activité.
"+ -"

En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis

"+ -"
  • insérez une consigne en cliquant sur le champ de texte “Saisir votre consigne ici ...”,
  • "+ -"
  • ajoutez des zones de texte en cliquant sur le gros “+T” vert en dessous puis entrez le texte voulu.
"+ -"

Pour supprimer une zone de texte, cliquez sur la croix située dans le coin supérieur de celle-ci.

"+ + "

En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis

"+ + "
  • insérez une consigne en cliquant sur le champ de texte “Saisir votre consigne ici ...”,
  • "+ + "
  • ajoutez des zones de texte en cliquant sur le gros “+T” vert en dessous puis entrez le texte voulu.
"+ + "

Pour supprimer une zone de texte, cliquez sur la croix située dans le coin supérieur de celle-ci.

"+ -"

Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.

"+ + "

Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.

"+ -"

Le bouton “Afficher” vous permet d’utiliser l’activité.

" + "

Le bouton “Afficher” vous permet d’utiliser l’activité.

", + theme:"Thème" }; //main function @@ -45,9 +46,11 @@ function start(){ $("#wgt_reload").text(sankoreLang.reload); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) if(window.sankore){ if(sankore.preference("selectionner","")){ @@ -57,7 +60,7 @@ function start(){ showExample(); if(sankore.preference("sel_style","")){ changeStyle(sankore.preference("sel_style","")); - $(".style_select").val(sankore.preference("sel_style","")); + $("#style_select").val(sankore.preference("sel_style","")); } else changeStyle("3") } @@ -68,18 +71,20 @@ function start(){ if (window.widget) { window.widget.onleave = function(){ exportData(); - sankore.setPreference("sel_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("sel_style", $("#style_select").find("option:selected").val()); } } $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#data").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#data").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -101,7 +106,7 @@ function start(){ $("#wgt_display").trigger("click"); }); - $(".style_select").change(function (event){ + $("#style_select").change(function (event){ changeStyle($(this).find("option:selected").val()); }) @@ -112,7 +117,7 @@ function start(){ sankore.enableDropOnWidget(false); $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(".add_block").remove(); $(".cont").each(function(){ var container = $(this); @@ -140,7 +145,7 @@ function start(){ sankore.enableDropOnWidget(true); $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(".cont").each(function(){ var container = $(this); @@ -196,31 +201,31 @@ function start(){ if($(this).is(":checked")) $(this).parent().find("input:hidden").val(1); else - $(this).parent().find("input:hidden").val(0); - } - }); + $(this).parent().find("input:hidden").val(0); + } + }); - //play/pause event - $(".play, .stop").live("click", function(){ - var tmp_audio = $(this); - var audio = tmp_audio.parent().find("audio").get(0); - if($(this).hasClass("play")){ + //play/pause event + $(".play, .stop").live("click", function(){ + var tmp_audio = $(this); + var audio = tmp_audio.parent().find("audio").get(0); + if($(this).hasClass("play")){ if(tmp_audio.parent().find("source").attr("src")){ - tmp_audio.removeClass("play").addClass("stop"); - var id = setInterval(function(){ - if(audio.currentTime == audio.duration){ - clearInterval(id); - tmp_audio.removeClass("stop").addClass("play"); - } + tmp_audio.removeClass("play").addClass("stop"); + var id = setInterval(function(){ + if(audio.currentTime == audio.duration){ + clearInterval(id); + tmp_audio.removeClass("stop").addClass("play"); + } }, 10); - tmp_audio.parent().find("input").val(id); - audio.play(); + tmp_audio.parent().find("input").val(id); + audio.play(); } - } else { - $(this).removeClass("stop").addClass("play"); - clearInterval( tmp_audio.parent().find("input").val()) - audio.pause(); - } + } else { + $(this).removeClass("stop").addClass("play"); + clearInterval( tmp_audio.parent().find("input").val()) + audio.pause(); + } }); $(".replay").live("click", function(){ @@ -463,10 +468,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -480,10 +485,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -497,10 +502,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } diff --git a/resources/library/interactivities/Selectionner.wgt/locales/ru/index.html b/resources/library/interactivities/Selectionner.wgt/locales/ru/index.html index 1e415855..61714a1f 100644 --- a/resources/library/interactivities/Selectionner.wgt/locales/ru/index.html +++ b/resources/library/interactivities/Selectionner.wgt/locales/ru/index.html @@ -26,11 +26,6 @@
-   @@ -40,7 +35,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Selectionner.wgt/locales/ru/js/script.js b/resources/library/interactivities/Selectionner.wgt/locales/ru/js/script.js index 872e57bf..8f4f3589 100644 --- a/resources/library/interactivities/Selectionner.wgt/locales/ru/js/script.js +++ b/resources/library/interactivities/Selectionner.wgt/locales/ru/js/script.js @@ -1,5 +1,5 @@ var sankoreLang = { - display: "Показать", + display: "Закрыть", edit: "Изменить", short_desc: "Выберите животных из следующего списка:", add: "Новый блок", @@ -15,7 +15,8 @@ var sankoreLang = { pad: "Планшет", none: "Нет", help: "Помощь", - help_content: "Пример текста помощи ..." + help_content: "Пример текста помощи ...", + theme: "Тема" }; //main function @@ -27,9 +28,11 @@ function start(){ $("#wgt_reload").text(sankoreLang.reload); $("#wgt_help").text(sankoreLang.help); $("#help").html(sankoreLang.help_content); - $(".style_select option[value='1']").text(sankoreLang.slate); - $(".style_select option[value='2']").text(sankoreLang.pad); - $(".style_select option[value='3']").text(sankoreLang.none); + $("#style_select option[value='1']").text(sankoreLang.slate); + $("#style_select option[value='2']").text(sankoreLang.pad); + $("#style_select option[value='3']").text(sankoreLang.none); + var tmpl = $("div.inline label").html(); + $("div.inline label").html(sankoreLang.theme + tmpl) if(window.sankore){ if(sankore.preference("selectionner","")){ @@ -39,7 +42,7 @@ function start(){ showExample(); if(sankore.preference("sel_style","")){ changeStyle(sankore.preference("sel_style","")); - $(".style_select").val(sankore.preference("sel_style","")); + $("#style_select").val(sankore.preference("sel_style","")); } else changeStyle("3") } @@ -50,18 +53,20 @@ function start(){ if (window.widget) { window.widget.onleave = function(){ exportData(); - sankore.setPreference("sel_style", $(".style_select").find("option:selected").val()); + sankore.setPreference("sel_style", $("#style_select").find("option:selected").val()); } } $("#wgt_help").click(function(){ var tmp = $(this); if($(this).hasClass("open")){ + $(this).removeClass("help_pad").removeClass("help_wood") $("#help").slideUp("100", function(){ tmp.removeClass("open"); $("#data").show(); }); - } else { + } else { + ($("#style_select").val() == 1)?$(this).removeClass("help_pad").addClass("help_wood"):$(this).removeClass("help_wood").addClass("help_pad"); $("#data").hide(); $("#help").slideDown("100", function(){ tmp.addClass("open"); @@ -83,7 +88,7 @@ function start(){ $("#wgt_display").trigger("click"); }); - $(".style_select").change(function (event){ + $("#style_select").change(function (event){ changeStyle($(this).find("option:selected").val()); }) @@ -94,7 +99,7 @@ function start(){ sankore.enableDropOnWidget(false); $(this).addClass("selected"); $("#wgt_edit").removeClass("selected"); - $(".style_select").css("display","none"); + $("#parameters").css("display","none"); $(".add_block").remove(); $(".cont").each(function(){ var container = $(this); @@ -122,7 +127,7 @@ function start(){ sankore.enableDropOnWidget(true); $(this).addClass("selected"); $("#wgt_display").removeClass("selected"); - $(".style_select").css("display","block"); + $("#parameters").css("display","block"); $(".cont").each(function(){ var container = $(this); @@ -178,31 +183,31 @@ function start(){ if($(this).is(":checked")) $(this).parent().find("input:hidden").val(1); else - $(this).parent().find("input:hidden").val(0); - } - }); + $(this).parent().find("input:hidden").val(0); + } + }); - //play/pause event - $(".play, .stop").live("click", function(){ - var tmp_audio = $(this); - var audio = tmp_audio.parent().find("audio").get(0); - if($(this).hasClass("play")){ + //play/pause event + $(".play, .stop").live("click", function(){ + var tmp_audio = $(this); + var audio = tmp_audio.parent().find("audio").get(0); + if($(this).hasClass("play")){ if(tmp_audio.parent().find("source").attr("src")){ - tmp_audio.removeClass("play").addClass("stop"); - var id = setInterval(function(){ - if(audio.currentTime == audio.duration){ - clearInterval(id); - tmp_audio.removeClass("stop").addClass("play"); - } + tmp_audio.removeClass("play").addClass("stop"); + var id = setInterval(function(){ + if(audio.currentTime == audio.duration){ + clearInterval(id); + tmp_audio.removeClass("stop").addClass("play"); + } }, 10); - tmp_audio.parent().find("input").val(id); - audio.play(); + tmp_audio.parent().find("input").val(id); + audio.play(); } - } else { - $(this).removeClass("stop").addClass("play"); - clearInterval( tmp_audio.parent().find("input").val()) - audio.pause(); - } + } else { + $(this).removeClass("stop").addClass("play"); + clearInterval( tmp_audio.parent().find("input").val()) + audio.pause(); + } }); $(".replay").live("click", function(){ @@ -445,10 +450,10 @@ function changeStyle(val){ $("#wgt_reload").removeClass("pad_color").removeClass("pad_reload"); $("#wgt_help").removeClass("pad_color").removeClass("pad_help"); $("#wgt_edit").removeClass("pad_color").removeClass("pad_edit"); - $("#wgt_display").removeClass("pad_color").removeClass("pad_edit"); $("#wgt_name").removeClass("pad_color"); - $(".style_select").removeClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").addClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").addClass("radius_ft"); break; case "2": $(".b_top_left").addClass("btl_pad").removeClass("without_back"); @@ -462,10 +467,10 @@ function changeStyle(val){ $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("pad_select").removeClass("none_select").val(val); - $("body, html").removeClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").removeClass("without_radius").removeClass("radius_ft"); break; case "3": $(".b_top_left").addClass("without_back").removeClass("btl_pad"); @@ -479,10 +484,10 @@ function changeStyle(val){ $("#wgt_help").addClass("pad_color").addClass("pad_help"); $("#wgt_reload").addClass("pad_color").addClass("pad_reload"); $("#wgt_edit").addClass("pad_color").addClass("pad_edit"); - $("#wgt_display").addClass("pad_color").addClass("pad_edit"); $("#wgt_name").addClass("pad_color"); - $(".style_select").addClass("none_select").val(val); - $("body, html").addClass("without_radius"); + $("#wgt_display").removeClass("display_wood"); + $("#style_select").val(val); + $("body, html").addClass("without_radius").removeClass("radius_ft"); break; } } From 15af0a8b586cb6767bb192c47a71beb9ea16d3e5 Mon Sep 17 00:00:00 2001 From: maximXbs Date: Mon, 1 Oct 2012 15:05:30 +0200 Subject: [PATCH 13/15] updated 'Separe phrase' app --- .../Separe phrase.wgt/img/ar_down.png | Bin 529 -> 0 bytes .../Separe phrase.wgt/img/ar_down_white.png | Bin 142 -> 0 bytes .../Separe phrase.wgt/img/parameters-bg.png | Bin 0 -> 4256 bytes .../Separe phrase.wgt/img/slate-display.png | Bin 532 -> 0 bytes .../Separe phrase.wgt/img/slate-edit.png | Bin 1907 -> 0 bytes .../img/slate-help-white.png | Bin 553 -> 0 bytes .../Separe phrase.wgt/img/slate-help.png | Bin 1795 -> 0 bytes .../img/slate-toolbar-help.png | Bin 0 -> 1697 bytes .../img/slate-toolbar-reload-white.png | Bin 1619 -> 0 bytes .../img/slate-toolbar-reload.png | Bin 2110 -> 2289 bytes .../Separe phrase.wgt/img/toolbar-edit.png | Bin 0 -> 732 bytes .../Separe phrase.wgt/img/toolbar-help.png | Bin 0 -> 707 bytes .../Separe phrase.wgt/img/toolbar-reload.png | Bin 0 -> 999 bytes .../Separe phrase.wgt/index.html | 17 +- .../Separe phrase.wgt/locales/fr/index.html | 17 +- .../locales/fr/scripts/wcontainer.js | 245 +++++++++--------- .../Separe phrase.wgt/locales/ru/index.html | 18 +- .../locales/ru/scripts/wcontainer.js | 5 +- .../Separe phrase.wgt/scripts/app.js | 51 ++-- .../Separe phrase.wgt/scripts/wcontainer.js | 5 +- .../Separe phrase.wgt/styles/app.css | 131 +++++----- .../Separe phrase.wgt/styles/master.css | 2 +- 22 files changed, 262 insertions(+), 229 deletions(-) delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/ar_down.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/ar_down_white.png create mode 100644 resources/library/interactivities/Separe phrase.wgt/img/parameters-bg.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-display.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-edit.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-help-white.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-help.png create mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-help.png delete mode 100644 resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-reload-white.png create mode 100644 resources/library/interactivities/Separe phrase.wgt/img/toolbar-edit.png create mode 100644 resources/library/interactivities/Separe phrase.wgt/img/toolbar-help.png create mode 100644 resources/library/interactivities/Separe phrase.wgt/img/toolbar-reload.png diff --git a/resources/library/interactivities/Separe phrase.wgt/img/ar_down.png b/resources/library/interactivities/Separe phrase.wgt/img/ar_down.png deleted file mode 100644 index a20fab4f36a5d0f7e7a48e67ce9335c1a76a005d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmV+s0`C2ZP)tGP4h z+%xyi(97qKUw8MsXF#K%IhY_2F%T0FmI=FS7s>4>0pJM{Jq374%m_IHYlYl0IS1#$ zGJGbM3psHfKI-)P`yF?15ANVDy1hPxV`Hfl>Sc-VA3uy(b{oExX_T~XcGrdL?ZbO; z0Pp?*-2MPX8Yk0Vzu&N?)>l~^T~t+xs#K^J3#dGWOkz~V@z2k17b=%S0n<|)1jp9Y zKP0OI$K339&@;nLsk<4=#cf{cgO6C|3zl_v8Ki8@T(`IZC zP$uC~7AHvOA?C9Q{@z?;eD(E++IKN3(QJgZl4nuqzhZ#Ti diff --git a/resources/library/interactivities/Separe phrase.wgt/img/ar_down_white.png b/resources/library/interactivities/Separe phrase.wgt/img/ar_down_white.png deleted file mode 100644 index 4a1d133b72676983e994ef76f99f777714560e7b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142 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
*5i3V}^P*Mr= z(V~;SzpEP;>o$+;T94N4f1i_Pq3(DGYa-}i*5yDqaNDO8N}RkWz_XOKM&Iz+>(yTe z$@Ivo@AqvEoN!g>W6ql&ZlYcc!{$Ecf~R_Z9H2W>M;8_66kDN+AwT_9A(+oAh(Jwi z8Lr0{eoJ@MUt)!K0jTmC&Ojzoh*pTW+0uo-q#jp3WBqD0%#pY?7d(8D`re z^`UE02ftb*5!X+i+9D?H_b?PyrMkP{uUz55JD<_rwB%Uz^PA@i`ynn?szr~d6?QOVvr@t(| z+AJXoWLNgxgq3WMEj>~#)K~!LhGMP~j(<`49>1;gM zr*IzowH~I0b#X!}s*JFkIdlYY%-d!rjnV~YpoGKX_Jq8#i;M9qM#p|FrGRC}zE9e3 z3Me+_cPA`GPFi;)kB0=|g;hpr9|OeK(EJh68LV9Z`g40VSShq|YOwW>cx#v5+bwlw zJDpP{a(jRKBt=imP?DyKAp2rV>c}Peg!OG(LdVVb$Gq$4&V6o*QdV{;$7?&K-Yf8s zSz7>8o5^qHbzOFwR3@g+hV0MHs*H9|y~tZTFF;ZCN5y+1ndD#$hXa7ETL6gTWh07@qS@dvOgaA8U<@5=ML{NmA_|LEYxxg-C(3j(%+?VyDN@L7)R2%x$G zsyl!f%VA*8nwjsY>HtzK2Z0Z7Ui_z;14y+T2B_iyaxMS+_s?aD9YBfYKuUlj2T*D` zMcI&IpF>MRvK&AS%gJ^CwJayg0o1gdWCu{&a*`ZC3(JXi0Ie)1+5x@A!P8$px%-FO zmJ{uO3rBZ6`TgtX4_2}a+m|~wu*JkoT5QAzp$7O&@l^;8mkB1Jb$zw#{c*4?-eE{W?P{62dcJ; zr4%*nLA1F`2m=QfPdvC032EUP>{~zAJS?k`BFo{yfD2zcbMP&4Fauk(|5r?|{(o}M z+6SP7Nlvhnlm_tR{R2QeffCDM4qzlu?SdpPf^s7i9{>jR1#0yhh;hJZ=al9EAiw}1 WxhI7T;&QP70000J?Gxv$9bOTect!?{?08< zN?hvX;OPJWfD=ESC!j{q^3JfMzUrKu2h`v}#)`=0xQx_@RTvO0#nUj5uMn@p1ejQ= z+t7`L1Aq-E7m7#`x(t!v3WnH%VQ3Wu#Rh=z#acovS&xxm8n#ZZjG+B-^f(QaOCxA2 zIVg-0F<81hK1YQu&q)+Ya@I?@QrhB3FkFjJ0t$>2gIYzVQjKUMXwP&JYHrzvXy7vl zxjusS+>{7S0%LF$267lMT>=NgU@()xWCw+Wgam>tmKbdn?x2-0XY3=NxstJXnGE|+W3V6o^Fg09vnNwJo$RL`GO;9+Ws zN=}e+TnSnf#c6mJ89}3*K2JeGyp&a{UzCX|7^D>w5R(C0Qkn#!=>J0%ikE0LDZpO& z{ZC=FP)A^p08`^xDhYLPviX)!1QMgd#3Zf~;&|p{6_e6&5?80=1Q@fN1Fn=SrMO1@ z42_})U#TX=N(sj2MbIcdLoSyhF}x5ShqHvm<-oB_W-OB%7Z(y63bWavalu?(EO(O2 z!zEb?Oi501rLVZ`DY=$LP!LpP9;T9KW70Skt^l7UjL4_<0#B*;f-9Zc3v)^?M45ps z$NH~hp4_5($1;7{wAA8d+ha>aN`4^P+{?-|ntN-*HQx)6TATclZsO zo&Fx|-2@w`qA@lHZwR=N+Zm@kM()CieUF6j;@u z)mi($s_Ysvx4W0z_|a%I-kmsd`n$gx%6iMvq#cE>+C1~I!bkC=j@Ke9y34+lpX6OO zXN{YVLI+|JqM4(EH*dZK0ZN_9zS>AbgtOE=W%4d;Ch`fL$EeKN)-=9-`HC9acSx8 zbHfe+YYP2)*757zy}9~}F3sClx|W|lGxp6A7yCw}U0j#zcW6gI!{`sg-Mpq@0`?9r zI{8uSv0oOt48Bp`a`51plR{yL5B}6?A zn6+53i74n3D8uy*faXX_P-Ns!MPbcr9*&;Smml8kTUhv^*(-3Tmz%ysXfnT}n zS3@r1|K+6%kiUS72|H8u1LTW{Lf1JdS`d>v4N6Qnu+_cDrU-h519XxnWlyUk}jQt8p z=&zWj`@f?)hRmBjc+fG@{DtW) zE9k9Mk*#ASIIF&>sA%r)F@HOhXn#Zx41Cbi($dc(E7i(b0o5j9XGHaD@B#zpioNaL z-V0;wDznGF{;}Hn`rbKhq5CUj2b?!9-j) z(t)e-1*S()rv8gt&fa~}v$N#)Aa@-KUrlR>ygu#lc*cbdc?pQK8DAy7RoHC(ciOmn ZDi8|3Y4kkxbj0!-_pb~$&L3vDaAXI=gPRvNf*c8S$Ood*7f2B<470o|&+qb$b4UIY z13>CP>OuPOnGLstkOR8%{g1qObmu=Q0HhwIk75S^eUb3s#)bdn0FXYAeu^Bhd-aTS z|0w`a{dn!bn+;`^bqp!VV#MfYB#=_6QA{$9mV`ss0iQp-IZBD)pWhRqpFlQo_)i&d zptvOb{rlHea%_g`qr4~v(gJ_~{<%zwYKh_U?Zrw@-n>WPS6;vE1r zEP==XNFXwOfiY3-0T}r6=l54;W)?17>VZN3jfI7ko0J9#3n|%Z%fg=f0wNOHxa2>) zd2yfQyh>~ofWWf{H{at6dyqT{S)6cfhz|IL#UD~4PjM7%n%~7BDX)rC{`te(3^a`b zU{mWgfu`7NQlo$*2LQ!35XgcXNOb^7*$@Qgcjh%IY8cj{i{HO-zB#dcQXRSjs2T-O r^#wS5UqE6-M>qsV8zl4q009O7eJ4TJ=dcL@00000NkvXXu0mjfuXXIg diff --git a/resources/library/interactivities/Separe phrase.wgt/img/slate-help.png b/resources/library/interactivities/Separe phrase.wgt/img/slate-help.png deleted file mode 100644 index 069052d0061dacbeaa3bd022259a5db0e37a9f16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1795 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 literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-reload-white.png b/resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-reload-white.png deleted file mode 100644 index 78d146ec37fd55bc97dbac2bf21e599468ee8d36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1619 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%nF$y5hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8pIh$D;n7J8P zI>Ge14w>EaktaqCUE zeMXd{ME$g&z>Gq{!c_^51snY4TFqGcLLjQ(k}BKWT(|8URw)zHiUpPV%6ybN9$az| zmu;Sc#D(ln%u|sTI=_3w%fVq$30uq+-Wr*9>1G+|L*tQ*8A<3KdPL!+jr;j zyPNI^?l>Rxp=xiU$?=&!&#b?m?K{Re;o6oTci2uHuq-+4#ku0izm_8tZol1k;`!%% z;ZByeIC;BvdFM4@+U;$ZUw-yu+3!qAh)ffylanGm54`^_&&$TFd03vI{mjOFEP7!Ret4N3Q(;gIHk&>5PTAf# z`$@Zlx$<9B{;iv@E}bmI!Pd;WvsnEJhi9t_pG)!aN5MP9I+z*{1f0t*D=(kEZn;BW zW0OIF)!eMLVXs5qw3#=0ElpbFuQ=1EF6>F0dC#v)rBQ3WZ)*P#zx1}uo~w58#TBW~ zm|9}2?A|LZnV0Xp;9|y<#ESkeSF=p5B@aH>B;V`idFW;rL(t*Ly_XGz&V9~Ze;~oY zW^vp8sRBP#OLW9ecjxvzwkl2A{Bxzjyt8TXGgyv2E)0BeJ7-&a#FKxv%aW=iUaN&X&+75LUZLyb_4t6%LZ9WqX;HC>cO0K}C{;QZ+BU?z zo8YnfVQ6Hp-%}TLq0TeU1BxQohOK`pAo@7g;nhLsSNjh>Ewbc0{v+8!W}aS_!@_^F zuXpbFEIa-5SB|B3rnah0K53WakhOMJfuedt|G$R0g-e4nH{(tuF)I_U^4vQ~# zT))8{lzqKLB<}NU&Xrj;(pOuw6XK`DdOc;ieq@bwi1Z%blhz6SRpKvJlru7Z{Jhz< les}r7ySG2opO9x{WB7J{-|3FTiSIzgyr-+5%Q~loCIA;2bXNcX diff --git a/resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-reload.png b/resources/library/interactivities/Separe phrase.wgt/img/slate-toolbar-reload.png index 685a5cb2a93933036bec2353f4e1291358ec3ca1..844169a963567982f39336dcff5b0c56568f58ce 100644 GIT binary patch literal 2289 zcmV000W>0fLJSS^xk59CSrkbW?9;ba!ELWdK2BZ(?O2Mrm?o zcW-iQb09-gHF34$HUIzs7IZ~ebVG7wVRUJ4ZXi@?ZDjy5HZL$UFEKLOh$^H200>D* zL_t(&f$f-oY*W`2$G`XevSWTZ2@nE>7|2Mpl*FtpZCR)t!P+rRg9%EvbX9^!VVX7p z8WNeRG%x%ZNE0IJD%Nf*37ytzV?a=+vB5S%L)Ne%;;n3jk_smXl0hJWB+q_7&;E!V zY{!lrvcW$b>B;Zi=X<}Od+zbQ=a>-@9;R^*Rs9hF03p7CF&6V&T~R6nsM~SyOkbq! zwO5w71wrrva075jk_1&%14QH}qNbhiw)m3?#>X5R(GUetv+g;!D2i9+K?ndG$EtK)pGHIw1OcXLLf3U< zW=_F3U;N4$Q534#+%-*c-D&|qzxb<_j~6YFkDq9EpZ9+Pj^iMT;zR(y-?ef1=XG80 z6Gic!R=oJm4a;1rs%_IW4IIY}yBq*|d+%WH8x1W&L3zCRu!)5)A7lA1En4wqPu&a4 zzX(wjVObUwMaktjRuwIt5P-<~nZx0LBuQa!aNv0!cDo&-C_+`WZLe1@btMCc7@POv zmPI9nTjtMw42&_@Y&HPcTwPJ>jQ-w;C8+wrdIcDY1tNlwkr5#q`m`*Vx{mD)&8Zk5 z6qMIpKlA2_e_#CUdBzwF!?0y#Im-d;PYNIwzPu{s$YZeF-02%1FIsTra(f4KU5DLf zTOSSZf8UDP{I!7z4*MlwXgNcwS`hvIft&@|S}D z=Xt2A3XZYewcqxRITl`fWr>^P_-z>(83+c0C|EETIn%T1QUWm7>Za0Xzu=FY_o5`( z1%Yp_S@&Gp5IZ+4^V;pUW=+$eC<-P_aNya+#V0X;Z6HP~Sw29Y{l@#}Qy-l=`}dDw znkI%45n*6(P}$4#eBJhj<~}5_og0=p4a3;Xaa;{!463Svh_L4CFDUNf!lJYR0DwA< z$c;z-P;>751vnfIsHzH46rt8<0uIoeZ z!#kWPiqJF-q9~$dVF5f#pSqiwow+F@4vaA?j`2j`up6eiufKoLd%o>o=(yU2uI`)A zG#!>@Vd8`gOr4sAg3q~7STGOH?92uLwam3T5Hp#vWW@4sDQAflKn+79gg-Z>&7f6H-_eV#z$JG-f`r<+n) zUr#qRzO$QTpT{5eR&u>$0J6`sDsa&sGw4{YyR)6%u6?yX8X_$K+2?T{daL$Eit(=y z(NQ9*316p(s5kygA!Q&2A}xS@Ti5PMHeruiTb7l*k4_FBB6TNnvT_z?DM$NgxDP2_rnj~4aIw5 z1OO2=js_66v;Y7g6de3xq*F*4pr8EkTi+cO;D2pIDcL!TBllWJNnM^R{e1(G``Po0#$BFIoSaz_ zc^tH53JjqmS*En@-zz%+D)7sMhArEd51k^zJvWB@hM5UnQt1K+I@ra1a;Un$g|aj_%HO z0Kkkn`EV61f~(LyJnMMz@OZIr(m4x=Xj6P7rDK+5-XWsOQT5UR2zPYTP}-HQ)l-6F zJMADG1;hoQ0{7~I$p8O=@YM+57-KAuq<^g5XtRD0_RveSM*#l?BwzixKjlZG00000 LNkvXXu0mjfx#&Pd literal 2110 zcmaJ?dpMN&9)IPULP##F%)TzQVlKvI3?q{qH!AU7rX(x^@3SCarV%3VJMx2>8?fK(4@AJIx@A7;;pYQGSJa5i{eLgzc zX4(J%==k|k7>X68e6=(bUvYBsykap$yhD*dI0i{%i6DT?fukXmADzgcs0+aUzv6FdhR}Q$x1LZCyDg^it!a_;;@d7bXN&-LV5*2&pH3md|fFL{) z_(xKq0S8cCun0mqp|SRCtTPtnj6>t_jxH`Pb|?od4vWD$U~mrhI2R(`fr!PTK0cr# znurraWKgIdV<}D~Fb+Y4L<}Y|F%g}JN5i6649?ZnRjJ|NV6Q;fi<1NhOKL9=TdpZk zATe9S6(U?%fKn>5qG1U_0u`D5Q37B1Nmd~K*d|58FjAHfgF|DLC9MGi0{%ag&;NuL zBMj)zeE+AgI4DU7VHl7YmWbGj!NpiALkWpqB8Y{+q97QKU+dz5I2eJ&aj+2O73hQt z;R-l#qWA+kAb{v65F;!B8}g%&Km{Mo<#LE#1S)}oCpf!0VZCuUZydqZ#g*bpcEIDj z_B!Kn&TCu>%$D#W0kX#B{K<7$m#Z`aU#N&ofkfOR5Qi#)`KS*C6S?c>;<&EfM=odm zT%6YBVid_>lwv!TOA^$jt_3;ju**OX8P$^oD_)9J9RL$2fBKz4t>mXtnfX zCTH=~3$vOfy9VqesDhx15g3?a?>skiv{n@Obd%}_~SD+n8j;di)UX{ zyg94a#&OuVC=xEJEWZMT=B-Z`|0SDUc=9}D`q7j0`BuG(h9=vs+B?zpOQylLMs*Dh zCl3^5Kkk0?I47EzSw7F#tZat939bp!m=L{f50T|wl77?3>q(J4d{~xNI5f7fAgPpq zr=q5%?z&n6^Hpvu2=v{N8`{H`>!Poe4E>-oYNNvKMT$mH*_##Mj9aZ=UKT zLg5+xv2n-FyF)slq2;#r4Jm({>3MND&-CBnLP-hlGa}8#P`vw;QPyWYWsg1dBjh#4 z$9GUy!7>SOyCP4XL-4da{LC(E?}$~IcjSH9*w~onMzvp_C9Smlj*bio(-r1>Bs~|z z{9}18EAn!vU2AV|uSxzL0}MUmg5+w%{+9IJ8R#x_yJ1A!c#-Prja|03bAdyk@qkRm z!=L=zz}nBM%7m)XG5&VtX14$sxP3dvB)GotqI2f*5$_Wv;gON>SiSn|yJrkW2F*%U zULwS8i`SX7#=H*oR7@-V(6@9Z(_E%i+1cq%!&?_rS683tpzq_Rh(tf09N53@MqfaT zS`^lVTGi%#Z_;w-XrgxN5HT#!+WPX;)YNz`K$A2q)(p`#s-{jxjmuwVel1QjGgcGQ z&J6!?5gMk=dO$`%^6zxPwADFms=XO z=x)-=kJU^~Yjb`6c4E2IFwGPA-t!dJ*0+RVOegC#c&qgtc25VV2~AV&!U#`~oy~^w z^0G3|2Ryj%UBVF`66>ZxBy;;e?>G|(KdB9Qye%B~%e9=Hj8@9z`C32Tm#7WXqIS;* zs}#52_3HM}dcP}K86HuMDsEWVt|QAmDwoSyF)@=C-a$-8!p|`b-=mI}kFGuy+Sx7` z`B+c5&3@^U+UCl+!5A%F7GE>ntnpVp0*Pc_&7=N!`n19KwY3|XM>cDxSbssv$z>% diff --git a/resources/library/interactivities/Separe phrase.wgt/img/toolbar-edit.png b/resources/library/interactivities/Separe phrase.wgt/img/toolbar-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..daa338cd9bad28014559c72dab05555471ed402b GIT binary patch literal 732 zcmV<20wev2P)hPu2Ds07A#D z+(`)m10Mn0JJUZ@+pnq%MBp|%ES8NwDOLk#-~e!sr^msc6xo3pa5tZ@SZX^c-ho6o z06e&ZB7qF}i)0IA!gl~p>L5#?0N!D-JQN8?!jlC`;HvFkz>@@Oz-J58g3l7D2|p`P z8~&=mCE!tkOTnW827U+NPfd7GfZKJ0>63S=?e7451Mpk}9uxr30C=|7DAo1@fG#3Y z1bh} z^05>ix)tAeWB=B=!&DC&0NNI&WPE`=rmvk=Z9huGLQ(H8r|$x9UZ75YfIRIFC>8Aw zfaLK{3Qkh7L*3U0(z`UC0k;6t*GAaUDm zv{_eH15)rT0ZDkWKndKe&lf0#7YRtfvjwE!Spt&qWC3Y-l0Xf3s(>bWAi0-<&lceH zYekZc8Lx~?5j;iUE6Ibmu!%^_hNlP&B*(zwRS7&rz!u*o@PK_TJVn6G##wBSAqzfB zfMgdq=g~R;Y@Ro3;YFgD1q%&8O?(WPGBdSVDd`TL85dhqT2qH4N*IktZ1@II2I(YR4)WAlv zvU%qR&X@!VPJr&J6|ez*ghT^dppdL=FCxGNZ-6^P@E)%~&i!NSBU#Tt9T^*vt~(P|%gu7`!?=FJha~9{6Sqo?DucISV8!Tj0q^e|G$^U+W6=&|TFs{tr0D zn`GtcogeTY{2@7k0{HHEzmIV?MZg+=cl?8)4fjZ138$>U6Oen}H~&I_Zwqq#0!Ns# z1)=mZrC*QeGz8FHb<620w~?$ojJO|=hS2?H{W|fyC9-)1SKyz?OFd_PpxdkuIiRjt*AT2)sj{}ur*_}&=2$KKgpL_iZ6yhk%zfT|V~ zgZC(W{*%uKEY0W=-Rf*QTz?%{1n|Gl2dst2T7r*J2mKobq%Fk*5r>%ImKC`8@Lh^BEZML#?@q@t?dBCZ7*{$}PBp`GD#z=jH<W1u002ovPDHLkV1mUGDkT5_ literal 0 HcmV?d00001 diff --git a/resources/library/interactivities/Separe phrase.wgt/img/toolbar-reload.png b/resources/library/interactivities/Separe phrase.wgt/img/toolbar-reload.png new file mode 100644 index 0000000000000000000000000000000000000000..340d7371f204e07c5e1e7202160cbd20eb2bbaff GIT binary patch literal 999 zcmV8xO?{jC#X3A z<^rQ6j=F<){f31acLnk3NI;JEztL3;=ED0r;h&G?5}pfEjSuu_%CNV5XvU@m_!&_+lvS zGi=KfkeD6`29P2<1@1bOm((tAl*iOtGP3^n3d9XW5P%ffNGo=&I0vp(l;$ofDY6sl zZJM|sY_F!dOJ2EO@>1E?rnsVF@H=Em>=u+$6d29P2f16LmXhZ?R|RFqxl`C@$SI(F}sZF#_Sdu2ZG0hGq|spmg$1$YVp_`N9r9sNul zc?iJ5xIUC33yOXonNo*hm+sDNcu$?-z{+T$V$>6jtT;Xojsw@m^#PD;g`vh{+U~A! z2ULe;Mro_5gc;{{Dc-445mWDr2m>KcG}_e*h6_{j6sbsb!(>6A>w;UrG^4d;l$b zJpj3-bf`RPZ+QXy6_Lnh`vZDgg0?_JMjb1@7m?UUB_byx@?g!W8czgmfr!jJ#!C@d z`^NWx{BX_f1rU+3$9N;N5C9D^wdaNaEPDV%M8*Rk?u>br?S;-$unBQ^G%@Xce1AZx zl6`-mqd(vTu=XteK(Kv(U<>_$I&ymZ1HMokTkpY}`vbBb*2h7CNb00xMzG*db3@0Z zZCjRW_BsG;FARdv^DATii@o|z0FV1BJ?71bQpb8%Hcj;Nu!6);xS9TdQi}$_Hqe`l zMC8J;q7Zozt2P|81=hrgv|r3VxfMs+9=rt(1!F?`19cX3&2QW5TJ<($=U+y9fPeFJ V^_8`m{=5JH002ovPDHLkV1m
-   @@ -72,7 +67,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Separe phrase.wgt/locales/fr/index.html b/resources/library/interactivities/Separe phrase.wgt/locales/fr/index.html index 593e885a..db3451e8 100644 --- a/resources/library/interactivities/Separe phrase.wgt/locales/fr/index.html +++ b/resources/library/interactivities/Separe phrase.wgt/locales/fr/index.html @@ -36,11 +36,6 @@
-   @@ -50,7 +45,17 @@
- +
+
+ +
+
  diff --git a/resources/library/interactivities/Separe phrase.wgt/locales/fr/scripts/wcontainer.js b/resources/library/interactivities/Separe phrase.wgt/locales/fr/scripts/wcontainer.js index 73f641e9..e74b586e 100644 --- a/resources/library/interactivities/Separe phrase.wgt/locales/fr/scripts/wcontainer.js +++ b/resources/library/interactivities/Separe phrase.wgt/locales/fr/scripts/wcontainer.js @@ -1,5 +1,5 @@ var sankoreLang = { - view: "Afficher", + view: "Fermer", edit: "Modifier", example: "Ceci est une série de mots à séparer correctement", wgt_name: "Séparer une phrase", @@ -9,25 +9,26 @@ var sankoreLang = { none: "aucun", help: "Aide", help_content: "

Séparer une phrase

"+ -"

Séparer les mots d’une phrase.

"+ + "

Séparer les mots d’une phrase.

"+ -"

Une phrase est écrite sans que les mots ne soient séparés. Le but de cette activité est d’insérer les espaces aux bons endroits. Une fois que les séparations sont placées correctement, la phrase se colore en vert.

"+ + "

Une phrase est écrite sans que les mots ne soient séparés. Le but de cette activité est d’insérer les espaces aux bons endroits. Une fois que les séparations sont placées correctement, la phrase se colore en vert.

"+ -"

Pour ajouter des séparations entre les mots, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute alors.

"+ + "

Pour ajouter des séparations entre les mots, déplacez le curseur et cliquez entre deux lettres, une séparation s’ajoute alors.

"+ -"

Le bouton “Recharger” réinitialise l’exercice.

"+ + "

Le bouton “Recharger” réinitialise l’exercice.

"+ -"

Le bouton “Modifier” vous permet :

"+ + "

Le bouton “Modifier” vous permet :

"+ -"
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ -"
  • de déterminer la phrase sur laquelle travailler.
"+ + "
  • de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),
  • "+ + "
  • de déterminer la phrase sur laquelle travailler.
"+ -"

Ecrivez simplement une phrase dans la zone de texte.

"+ + "

Ecrivez simplement une phrase dans la zone de texte.

"+ -"

Le bouton “Afficher” vous permet d’utiliser l’activité.

" + "

Le bouton “Afficher” vous permet d’utiliser l’activité.

", + theme: "Thème" }; @@ -38,180 +39,180 @@ var isBrowser = ( typeof( widget ) == "undefined" ); function wcontainer( containerID ) { - // some protecred variables - var thisInstance = this; - this.editMode = false; - var data = {}; // see setData and getData + // some protecred variables + var thisInstance = this; + this.editMode = false; + var data = {}; // see setData and getData - // widget size parameters - this.minHeight = 100; - this.minWidth = 400; + // widget size parameters + this.minHeight = 100; + this.minWidth = 400; - // set to 0 for no max width restriction - this.maxWidth = 0; + // set to 0 for no max width restriction + this.maxWidth = 0; - // links to the elements of the widget - this.elements = {}; + // links to the elements of the widget + this.elements = {}; - /* + /* ============ create ============ - creates html base, inits this.elements, assings events */ - this.create = function( containerID ) - { - var html = - '
' + - '
' + - '
' + - '
' + - '
' + - '
'; + this.create = function( containerID ) + { + var html = + '
' + + '
' + + '
' + + '
' + + '
' + + '
'; - var container = $( containerID ); + var container = $( containerID ); - container.append( html ); - this.elements.edit = container.find( ".editmode" ); - this.elements.view = container.find( ".viewmode" ); - this.elements.container = container; - this.elements.subcontainer = container.find( "#mp_content" ); - this.elements.containerView = this.elements.subcontainer.find( ".viewmode" ); - this.elements.containerEdit = this.elements.subcontainer.find( ".editmode" ); + container.append( html ); + this.elements.edit = container.find( ".editmode" ); + this.elements.view = container.find( ".viewmode" ); + this.elements.container = container; + this.elements.subcontainer = container.find( "#mp_content" ); + this.elements.containerView = this.elements.subcontainer.find( ".viewmode" ); + this.elements.containerEdit = this.elements.subcontainer.find( ".editmode" ); - $("#wgt_edit").live("click", function(){ - thisInstance.modeEdit(); - } ); + $("#wgt_edit").live("click", function(){ + thisInstance.modeEdit(); + } ); - $("#wgt_display").live("click", function(){ - thisInstance.modeView(); - } ); - }; + $("#wgt_display").live("click", function(){ + thisInstance.modeView(); + } ); + }; - /* + /* =============== setViewContent =============== - assigns custom html to the viewmode container */ - this.setViewContent = function( html ) - { - this.elements.container.find( "#mp_content .viewmode" ).html( html ); - }; + this.setViewContent = function( html ) + { + this.elements.container.find( "#mp_content .viewmode" ).html( html ); + }; - /* + /* =============== setEditContent =============== - assigns custom html to the editmode container */ - this.setEditContent = function( html ) - { - this.elements.container.find( "#mp_content .editmode" ).html( html ); - }; + this.setEditContent = function( html ) + { + this.elements.container.find( "#mp_content .editmode" ).html( html ); + }; - /* + /* ========================= modeEdit and modeView ========================= - switch the widget betweed modes * for customization extend onEditMode and onViewMode */ - this.modeEdit = function() - { - this.onEditMode(); - this.editMode = true; - this.elements.edit.removeClass( "hide" ); - this.elements.view.addClass( "hide" ); + this.modeEdit = function() + { + this.onEditMode(); + this.editMode = true; + this.elements.edit.removeClass( "hide" ); + this.elements.view.addClass( "hide" ); - //this.adjustSize(); - }; - this.modeView = function() - { - this.onViewMode(); - this.editMode = false; - this.elements.edit.addClass( "hide" ); - this.elements.view.removeClass( "hide" ); + //this.adjustSize(); + }; + this.modeView = function() + { + this.onViewMode(); + this.editMode = false; + this.elements.edit.addClass( "hide" ); + this.elements.view.removeClass( "hide" ); - //this.adjustSize(); - }; + //this.adjustSize(); + }; - /* + /* ====================== setData and getData ====================== - store some data inside */ - this.setData = function( name, value ){ - data[name] = value; - }; - this.getData = function( name ){ - if( typeof( data[name] ) == "undefined" ){ - return null; - } else return data[name]; - }; + this.setData = function( name, value ){ + data[name] = value; + }; + this.getData = function( name ){ + if( typeof( data[name] ) == "undefined" ){ + return null; + } else return data[name]; + }; - // redefinable methods + // redefinable methods - /* + /* ========================== onEditMode and onViewMode ========================== - these are called when the mode is being changed */ - this.onEditMode = function(){ - // - }; - this.onViewMode = function(){ - // - }; - - /* + this.onEditMode = function(){ + // + }; + this.onViewMode = function(){ + // + }; + + /* ====================== viewSize and editSize ====================== - calculate container size for the adjustSize method * they are likely to be redefined for each particular widget */ - this.viewSize = function(){ - return { - w: this.elements.containerView.outerWidth(), - h: this.elements.containerView.outerHeight() - }; - }; - this.editSize = function(){ - return { - w: this.elements.containerEdit.outerWidth(), - h: this.elements.containerEdit.outerHeight() - }; - }; - - /* + this.viewSize = function(){ + return { + w: this.elements.containerView.outerWidth(), + h: this.elements.containerView.outerHeight() + }; + }; + this.editSize = function(){ + return { + w: this.elements.containerEdit.outerWidth(), + h: this.elements.containerEdit.outerHeight() + }; + }; + + /* ===================== checkAnswer ===================== - check if the exercise in the view mode was done right * redefine it for each particular widget */ - this.checkAnswer = function() - { - // - }; - - - // constructor end - - // if the constructor was called with a parameter, - // call create() automatically - if( arguments.length > 0 ){ - this.create( containerID ); - } - this.setData( "dw", this.elements.container.outerWidth( true ) - this.elements.container.width() ); - this.setData( "dh", this.elements.container.outerHeight( true ) - this.elements.container.height() ); - window.winstance = thisInstance; + this.checkAnswer = function() + { + // + }; + + + // constructor end + + // if the constructor was called with a parameter, + // call create() automatically + if( arguments.length > 0 ){ + this.create( containerID ); + } + this.setData( "dw", this.elements.container.outerWidth( true ) - this.elements.container.width() ); + this.setData( "dh", this.elements.container.outerHeight( true ) - this.elements.container.height() ); + window.winstance = thisInstance; } diff --git a/resources/library/interactivities/Separe phrase.wgt/locales/ru/index.html b/resources/library/interactivities/Separe phrase.wgt/locales/ru/index.html index 61039d1a..e13bfddc 100644 --- a/resources/library/interactivities/Separe phrase.wgt/locales/ru/index.html +++ b/resources/library/interactivities/Separe phrase.wgt/locales/ru/index.html @@ -20,7 +20,6 @@