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

preferencesAboutTextFull
Claudio Valerio 12 years ago
commit 4ac3845de3
  1. 2
      resources/library/interactivities/Ass images.wgt/locales/fr/js/script.js
  2. 11
      resources/library/interactivities/Ass sons.wgt/locales/fr/js/script.js
  3. 17
      resources/library/interactivities/Cat text.wgt/locales/fr/js/script.js
  4. 2
      resources/library/interactivities/Choisir.wgt/locales/fr/scripts/selQuestionApp.js
  5. 2
      resources/library/interactivities/Enveloppe.wgt/js/help_fr-template.js
  6. 16
      resources/library/interactivities/Etudier.wgt/locales/fr/js/script.js
  7. 8
      src/adaptors/UBSvgSubsetAdaptor.cpp
  8. 70
      src/board/UBBoardController.cpp
  9. 2
      src/board/UBBoardController.h

@ -1,5 +1,5 @@
var sankoreLang = { var sankoreLang = {
display: "Fermer", display: "Afficher",
edit: "Modifier", edit: "Modifier",
short_desc: "Sélectionner le numéro «trois».", short_desc: "Sélectionner le numéro «trois».",
add: "Nouveau bloc", 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>"+ "<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>"+ "<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>"+ "<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 ...”,"+ "<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>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>"+ "<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 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>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>"+ "<p>Pour supprimer un exercice, cliquez sur la croix à gauche du numéro de l’exercice.</p>"+

@ -1,5 +1,5 @@
var sankoreLang = { var sankoreLang = {
display: "Fermer", display: "Afficher",
edit: "Modifier", edit: "Modifier",
first_desc: "Fruits", first_desc: "Fruits",
second_desc: "Légumes", 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>"+ "<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>"+ "<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>"+ "<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>"+ "<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>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>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>"+ "<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 é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 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>"+ "<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>"+ "<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>"+ "<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>"+ "<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 ”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>"+ "<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> <p>Le bouton Modifier vous permet : </p>
<ul> <ul>
<li>de choisir le thème de linteractivité : tablette, ardoise ou aucun (par défaut tablette), </li> <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> </ul>
<p>Le bouton Afficher vous permet dutiliser lactivité.</p> <p>Le bouton Afficher vous permet dutiliser lactivité.</p>

@ -1,5 +1,5 @@
var sankoreLang = { var sankoreLang = {
display: "Fermer", display: "Afficher",
edit: "Modifier", 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.", 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", 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>"+ "<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>"+ "<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>"+ "<p>Sur chaque page, vous pouvez :</p>"+
"<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>"+ "<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>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>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>agrandir la taille d’un élément avec la double flèche en bas à droite de celui-ci,</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>supprimer un élément avec la case en haut à droite de celui-ci.</li></ul>"+ "<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 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>"+ "<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 //disabling g section parsing as a group of elements. Use groups refs instead
// mXmlWriter.writeStartElement("g"); // mXmlWriter.writeStartElement("g");
// mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid())); // mXmlWriter.writeAttribute(UBSettings::uniboardDocumentNamespaceUri, "uuid", UBStringUtils::toCanonicalUuid(strokesGroupItem->uuid()));
QMatrix matrix = item->sceneMatrix(); // QMatrix matrix = item->sceneMatrix();
if (!matrix.isIdentity()){ // if (!matrix.isIdentity()){
mXmlWriter.writeAttribute("transform", toSvgTransform(matrix)); // mXmlWriter.writeAttribute("transform", toSvgTransform(matrix));
} // }
// Add the polygons // Add the polygons
foreach(QGraphicsItem* item, strokesGroupItem->childItems()){ foreach(QGraphicsItem* item, strokesGroupItem->childItems()){

@ -537,7 +537,7 @@ void UBBoardController::duplicateScene()
duplicateScene(mActiveSceneIndex); duplicateScene(mActiveSceneIndex);
} }
UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item) UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item, bool bAsync)
{ {
if (!item) if (!item)
return NULL; return NULL;
@ -568,7 +568,10 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (srcFile.isEmpty()) if (srcFile.isEmpty())
srcFile = item->sourceUrl().toString(); srcFile = item->sourceUrl().toString();
QString contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile); QString contentTypeHeader;
if (!srcFile.isEmpty())
contentTypeHeader = UBFileSystemUtils::mimeTypeFromFileName(srcFile);
if(NULL != qgraphicsitem_cast<UBGraphicsGroupContainerItem*>(commonItem)) if(NULL != qgraphicsitem_cast<UBGraphicsGroupContainerItem*>(commonItem))
itemMimeType = UBMimeType::Group; itemMimeType = UBMimeType::Group;
else else
@ -593,9 +596,13 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (mitem) if (mitem)
{ {
sourceUrl = mitem->mediaFileUrl(); 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: case UBMimeType::VectorImage:
{ {
@ -621,35 +628,32 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
case UBMimeType::Group: case UBMimeType::Group:
{ {
UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item); UBGraphicsGroupContainerItem* groupItem = dynamic_cast<UBGraphicsGroupContainerItem*>(item);
UBGraphicsGroupContainerItem* duplicatedGroup = NULL; UBGraphicsGroupContainerItem* duplicatedGroup = NULL;
if(groupItem){
QTransform groupTransform = groupItem->transform(); QList<QGraphicsItem*> duplicatedItems;
groupItem->resetTransform(); QList<QGraphicsItem*> children = groupItem->childItems();
foreach(QGraphicsItem* pIt, children){
QList<QGraphicsItem*> children = groupItem->childItems(); UBItem* pItem = dynamic_cast<UBItem*>(pIt);
foreach(QGraphicsItem* pIt, children){ if(pItem){ // we diong sync duplication of all childs.
UBItem* pItem = dynamic_cast<UBItem*>(pIt); QGraphicsItem * itemToGroup = dynamic_cast<QGraphicsItem *>(duplicateItem(pItem, false));
if(NULL != pItem){ if (itemToGroup)
duplicateItem(pItem); duplicatedItems.append(itemToGroup);
} }
} }
groupItem->setTransform(groupTransform); duplicatedGroup = mActiveScene->createGroup(duplicatedItems);
groupItem->setSelected(false); duplicatedGroup->setTransform(groupItem->transform());
UBApplication::mainWindow->actionGroupItems->trigger(); groupItem->setSelected(false);
QList<QGraphicsItem*> selItems = mActiveScene->selectedItems();
if(!selItems.empty()){ retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
// 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 QGraphicsItem * itemToAdd = dynamic_cast<QGraphicsItem *>(retItem);
duplicatedGroup = dynamic_cast<UBGraphicsGroupContainerItem*>(selItems.at(0)); if (itemToAdd)
if(NULL != duplicatedGroup){ {
duplicatedGroup->setTransform(groupTransform); mActiveScene->addItem(itemToAdd);
} itemToAdd->setSelected(true);
} }
} }break;
retItem = dynamic_cast<UBGraphicsItem *>(duplicatedGroup);
break;
}
case UBMimeType::UNKNOWN: case UBMimeType::UNKNOWN:
{ {
@ -668,7 +672,7 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
if (retItem) if (retItem)
return 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) if (createdItem)
{ {
createdItem->setSourceUrl(item->sourceUrl()); createdItem->setSourceUrl(item->sourceUrl());

@ -159,7 +159,7 @@ class UBBoardController : public UBDocumentContainer
void moveSceneToIndex(int source, int target); void moveSceneToIndex(int source, int target);
void duplicateScene(int index); void duplicateScene(int index);
UBGraphicsItem *duplicateItem(UBItem *item); UBGraphicsItem *duplicateItem(UBItem *item, bool bAsync = true);
void deleteScene(int index); void deleteScene(int index);
bool cacheIsVisible() {return mCacheWidgetIsEnabled;} bool cacheIsVisible() {return mCacheWidgetIsEnabled;}

Loading…
Cancel
Save