Commit 4ac3845d authored by Claudio Valerio's avatar Claudio Valerio

Merge remote-tracking branch 'origin/develop' into claudio-dev

parents 48714f86 923f1a57
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
short_desc: "Sélectionner le numéro «trois».",
add: "Nouveau bloc",
......
......@@ -21,6 +21,16 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
<<<<<<< HEAD
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis </p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre description ici ...”,"+
"<li>insérez un son dans la zone à gauche de la consigne par glisser-déposer d’un son à partir de votre bibliothèque,</li>"+
"<li>ajoutez des zones image(s) en cliquant sur le gros signe + en dessous,</li>"+
"<li>insérez des images par glisser-déposer des images à partir de votre bibliothèque,</li>"+
"<li>définissez l’image correcte de l’interactivité en cliquant sur le bouton valider “v” situé en bas à droite de l’image concernée.</li></ul>"+
"<p>Pour supprimer une zone image, cliquez sur la croix située dans le coin supérieur droit de l’image.</p>"+
"<p>Pour remplacer un son, glissez-déposez simplement un nouveau son.</p>"+
=======
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, puis </p>"+
"<ul><li>insérez une consigne en cliquant sur le champ de texte “Saisir votre description ici ...”,"+
"<li>insérez un son dans la zone à gauche de la consigne par glisser-déposer d’un son à partir de votre bibliothèque,</li>"+
......@@ -29,6 +39,7 @@ var sankoreLang = {
"<li>définissez l’image correcte de l’interactivité en cliquant sur le bouton valider “v” situé en bas à droite de l’image concernée.</li></ul>"+
"<p>Pour supprimer une zone image, cliquez sur la croix située dans le coin supérieur droit de l’image.</p>"+
"<p>Pour remplacer un son, glissez-déposez simplement un nouveau son.</p>"+
>>>>>>> 986e8e8f3435c5208d294c97db33e0cf54790514
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
......
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
first_desc: "Fruits",
second_desc: "Légumes",
......@@ -28,13 +28,14 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, une zone bleue apparaît, c’est une catégorie, puis.</p>"+
"<ul><li>insérez le nom de la catégorie (par exemple “fruits”, “légumes”, “mammifères”...) en cliquant dans le champ de texte “Saisir le nom de la catégorie ici …”,</li>"+
"<li>cliquez sur le gros “+” situé à gauche de la catégorie ce qui vous permet de rajouter des étiquettes de mots,</li>"+
"<li>entrez des mots dans ces étiquettes,</li>"+
"<li>ajoutez ensuite une catégorie (ou plusieurs) en cliquant sur le signe “+” situé à droite de la catégorie, complétez par son nom et ajoutez des étiquettes de mots.</li></ul>"+
"<p>Pour supprimer une étiquette de mots, cliquez sur la croix située dans le coin supérieur droit de celle-ci.</p>"+
"<p>Pour supprimer une catégorie, cliquez sur le signe “-” situé à droite de celle-ci.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Nouveau bloc” en bas, une zone bleue apparaît, c’est une catégorie, puis :</p>"+
"<ul><li>insérez le nom de la catégorie (par exemple “fruits”, “légumes”, “mammifères”...) en cliquant dans le champ de texte “Saisir le nom de la catégorie ici …”,</li>"+
"<li>cliquez sur le gros “+” situé à gauche de la catégorie ce qui vous permet de rajouter des étiquettes de mots,</li>"+
"<li>entrez des mots dans ces étiquettes,</li>"+
"<li>ajoutez ensuite une catégorie (ou plusieurs) en cliquant sur le signe “+” situé à droite de la catégorie, complétez par son nom et ajoutez des étiquettes de mots.</li></ul>"+
"<p>Pour supprimer une étiquette de mots, cliquez sur la croix située dans le coin supérieur droit de celle-ci.</p>"+
"<p>Pour supprimer une catégorie, cliquez sur le signe “-” situé à droite de celle-ci.</p>"+
"<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+
......
......@@ -52,7 +52,7 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier un exercice ou d’en créer de nouveaux dans la même activité.</li></ul>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Ajouter une nouvelle question …”, puis.</p>"+
"<p>En mode édition, pour créer un nouvel exercice, cliquez sur “Ajouter une nouvelle question …”, puis :</p>"+
"<ul><li>insérez la question en cliquant sur le champ de texte “Saisir la question ici ...”,</li>"+
"<li>cliquez sur ”Options” pour choisir l’affichage des propositions (une seule bonne réponse, plusieurs bonnes réponses, liste déroulante). Cliquez sur “Fermer”,</li>"+
"<li>cliquez sur ”Ajouter une proposition” et saisissez la proposition dans le champ de texte,</li>"+
......
......@@ -8,7 +8,7 @@
<p>Le bouton Modifier vous permet : </p>
<ul>
<li>de choisir le thème de linteractivité : tablette, ardoise ou aucun (par défaut tablette), </li>
<li>de déterminer le nombre de trombone(s) souhaités.</li>
<li>de déterminer le nombre de trombone(s) souhaité(s).</li>
</ul>
<p>Le bouton Afficher vous permet dutiliser lactivité.</p>
\ No newline at end of file
var sankoreLang = {
display: "Fermer",
display: "Afficher",
edit: "Modifier",
text_content: "Ceci est un exemple. Au lieu de ce texte, vous pouvez mettre votre propre texte ou glisser-déposer une image, un son ou une vidéo.",
new_txt: "Nouveau bloc de texte",
......@@ -18,12 +18,14 @@ var sankoreLang = {
"<ul><li>de choisir le thème de l’interactivité : tablette, ardoise ou aucun (par défaut aucun),</li>"+
"<li>de modifier les pages du livret.</li></ul>"+
"<p>Sur chaque page, vous pouvez :</p>"+
"<ul><li>insérer des zones de texte avec le bouton “+T” situé en haut à gauche de l’interactivité. (pour modifier ces zones de texte, cliquez à l’intérieur et écrivez du texte),</li>"+
"<li>insérer des images, sons et vidéos par glisser-déposer de fichiers depuis la bibliothèque jusqu’à l’intérieur de la page du livret,</li>"+
"<li>déplacer les textes, images, sons et vidéos à l’intérieur de la page en cliquant et en déplaçant la flèche multidirectionnelle qui se situe dans le coin supérieur gauche de chaque élément,</li>"+
"<li>agrandir la taille d’un élément avec la double flèche en bas à droite de celui-ci,</li>"+
"<li>supprimer un élément avec la case en haut à droite de celui-ci.</li></ul>"+
"<p>Sur chaque page, vous pouvez :</p>"+
"<ul><li>insérer des zones de texte avec le bouton “+T” situé en haut à gauche de l’interactivité (pour modifier ces zones de texte, cliquez à l’intérieur et écrivez du texte),</li>"+
"<li>insérer des images, sons et vidéos par glisser-déposer de fichiers depuis la bibliothèque jusqu’à l’intérieur de la page du livret,</li>"+
"<li>déplacer les textes, images, sons et vidéos à l’intérieur de la page en cliquant et en déplaçant la flèche multidirectionnelle qui se situe dans le coin supérieur gauche de chaque élément,</li>"+
"<li>agrandir la taille d’un élément avec la double flèche en bas à droite de celui-ci,</li>"+
"<li>supprimer un élément avec la case en haut à droite de celui-ci.</li></ul>"+
"<p>Pour ajouter une page, cliquez sur la flèche verte accompagnée d’un “+” se trouvant en bas à gauche et à droite.</p>"+
"<p>Pour supprimer une page, cliquez sur la croix rouge située en haut à droite de la page.</p>"+
......
......@@ -1229,10 +1229,10 @@ bool UBSvgSubsetAdaptor::UBSvgSubsetWriter::persistScene(int pageIndex)
//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));
}
// QMatrix matrix = item->sceneMatrix();
// if (!matrix.isIdentity()){
// mXmlWriter.writeAttribute("transform", toSvgTransform(matrix));
// }
// Add the polygons
foreach(QGraphicsItem* item, strokesGroupItem->childItems()){
......
......@@ -537,7 +537,7 @@ void UBBoardController::duplicateScene()
duplicateScene(mActiveSceneIndex);
}
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync)
{
if (!item)
return NULL;
......@@ -568,7 +568,10 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (srcFile.isEmpty())
srcFile = item->sourceUrl().toString();
QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
QString contentTypeHeader;
if (!srcFile.isEmpty())
contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
if(NULL != qgraphicsitem_cast<UBGraphicsGroupContainerItem*>(commonItem))
itemMimeType = UBMimeType::Group;
else
......@@ -593,9 +596,13 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (mitem)
{
sourceUrl = mitem->mediaFileUrl();
downloadURL(sourceUrl, srcFile, itemPos, QSize(itemSize.width(), itemSize.height()), false, false);
if (bAsync)
{
downloadURL(sourceUrl, srcFile, itemPos, QSize(itemSize.width(), itemSize.height()), false, false);
return NULL; // async operation
}
}
}return NULL; // async operation
}break;
case UBMimeType::VectorImage:
{
......@@ -621,35 +628,32 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
case UBMimeType::Group:
{
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
UBGraphicsGroupContainerItem* duplicatedGroup = NULL;
if(groupItem){
QTransform groupTransform = groupItem->transform();
groupItem->resetTransform();
QList<QGraphicsItem*> children = groupItem->childItems();
foreach(QGraphicsItem* pIt, children){
UBItem* pItem = dynamic_cast<UBItem*>(pIt);
if(NULL != pItem){
duplicateItem(pItem);
}
}
groupItem->setTransform(groupTransform);
groupItem->setSelected(false);
UBApplication::mainWindow->actionGroupItems->trigger();
QList<QGraphicsItem*> selItems = mActiveScene->selectedItems();
if(!selItems.empty()){
// I don't like this solution but for now this is the only way I found.
// Normally, at this state, only the duplicated group should be selected
duplicatedGroup = dynamic_cast<UBGraphicsGroupContainerItem*>(selItems.at(0));
if(NULL != duplicatedGroup){
duplicatedGroup->setTransform(groupTransform);
}
}
}
retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
break;
}
QList<QGraphicsItem*> duplicatedItems;
QList<QGraphicsItem*> children = groupItem->childItems();
foreach(QGraphicsItem* pIt, children){
UBItem* pItem = dynamic_cast<UBItem*>(pIt);
if(pItem){ // we diong sync duplication of all childs.
QGraphicsItem * itemToGroup = dynamic_cast<QGraphicsItem *>(duplicateItem(pItem, false));
if (itemToGroup)
duplicatedItems.append(itemToGroup);
}
}
duplicatedGroup = mActiveScene->createGroup(duplicatedItems);
duplicatedGroup->setTransform(groupItem->transform());
groupItem->setSelected(false);
retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
QGraphicsItem * itemToAdd = dynamic_cast<QGraphicsItem *>(retItem);
if (itemToAdd)
{
mActiveScene->addItem(itemToAdd);
itemToAdd->setSelected(true);
}
}break;
case UBMimeType::UNKNOWN:
{
......@@ -668,7 +672,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (retItem)
return retItem;
UBItem *createdItem = downloadFinished(true, sourceUrl, sourceUrl, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
UBItem *createdItem = downloadFinished(true, sourceUrl, srcFile, contentTypeHeader, pData, itemPos, QSize(itemSize.width(), itemSize.height()), false);
if (createdItem)
{
createdItem->setSourceUrl(item->sourceUrl());
......
......@@ -159,7 +159,7 @@ class UBBoardController : public UBDocumentContainer
void moveSceneToIndex(int source, int target);
void duplicateScene(int index);
UBGraphicsItem *duplicateItem(UBItem *item);
UBGraphicsItem *duplicateItem(UBItem *item, bool bAsync = true);
void deleteScene(int index);
bool cacheIsVisible() {return mCacheWidgetIsEnabled;}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment