Merge branch 'master' of github.com:Sankore/Sankore-3.1

preferencesAboutTextFull
shibakaneki 13 years ago
commit 304c97f359
  1. 8
      Sankore_3.1.pro
  2. 4
      resources/i18n/sankore_ar.ts
  3. 4
      resources/i18n/sankore_da.ts
  4. 4
      resources/i18n/sankore_de.ts
  5. 4
      resources/i18n/sankore_en.ts
  6. 4
      resources/i18n/sankore_en_UK.ts
  7. 4
      resources/i18n/sankore_es.ts
  8. 6
      resources/i18n/sankore_fr.ts
  9. 6
      resources/i18n/sankore_fr_CH.ts
  10. 4
      resources/i18n/sankore_it.ts
  11. 4
      resources/i18n/sankore_iw.ts
  12. 4
      resources/i18n/sankore_ja.ts
  13. 4
      resources/i18n/sankore_ko.ts
  14. 4
      resources/i18n/sankore_nb.ts
  15. 4
      resources/i18n/sankore_nl.ts
  16. 4
      resources/i18n/sankore_pl.ts
  17. 4
      resources/i18n/sankore_pt.ts
  18. 4
      resources/i18n/sankore_rm.ts
  19. 4
      resources/i18n/sankore_ro.ts
  20. 74
      resources/i18n/sankore_ru.ts
  21. 4
      resources/i18n/sankore_sv.ts
  22. 4
      resources/i18n/sankore_zh.ts
  23. BIN
      resources/images/tab_mask.png
  24. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/config.xml
  25. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/css/basic.css
  26. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/icon.png
  27. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare.png
  28. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/images/greySquare2.png
  29. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/images/icon-close.png
  30. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/images/popupBack.png
  31. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/index.html
  32. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/blackYellow.js
  33. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery-1.6.2.min.js
  34. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/jquery.disable.text.select.js
  35. 0
      resources/library/sankoreInteractivities/BlackYellow.wgt/scripts/languages.js
  36. 0
      resources/library/sankoreInteractivities/Choisir.wgt/config.xml
  37. 0
      resources/library/sankoreInteractivities/Choisir.wgt/css/basic.css
  38. 0
      resources/library/sankoreInteractivities/Choisir.wgt/icon.png
  39. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/1thOption.png
  40. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/2thOption.png
  41. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/3thOption.png
  42. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/addSomething.png
  43. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/bigBlackClose.png
  44. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/blueClose.png
  45. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/boldBlackClose.png
  46. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/boldClose.png
  47. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/boldGreyClose.png
  48. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/bottomLeftThing.png
  49. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/complete.png
  50. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/grayClose.png
  51. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/greySquare.png
  52. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/greySquareArrow.png
  53. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/horSep.png
  54. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/leftThing.png
  55. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/lessBottomBorder.png
  56. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/lessTopBorder.png
  57. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBack.png
  58. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder.png
  59. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/lowerBorder2.png
  60. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack.png
  61. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack2.png
  62. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/niceBack3.png
  63. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/pencil.png
  64. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/point.png
  65. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/redBoldClose.png
  66. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/reload.jpg
  67. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/reload2.png
  68. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/rightThing.png
  69. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/separator.png
  70. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/separator2.png
  71. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/settings.png
  72. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/sidePoints.png
  73. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/spanner.png
  74. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/star.png
  75. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/stop.jpg
  76. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/tool.png
  77. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/topLeftThing.png
  78. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/transparentBack.png
  79. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder.png
  80. 0
      resources/library/sankoreInteractivities/Choisir.wgt/images/upperBorder2.png
  81. 0
      resources/library/sankoreInteractivities/Choisir.wgt/index.html
  82. 0
      resources/library/sankoreInteractivities/Choisir.wgt/scripts/jquery-1.6.2.min.js
  83. 0
      resources/library/sankoreInteractivities/Choisir.wgt/scripts/languages.js
  84. 0
      resources/library/sankoreInteractivities/Choisir.wgt/scripts/selQuestionApp.js
  85. 2
      resources/library/sankoreInteractivities/ord-phrases.wgt/template/scripts/template2.js
  86. 8
      resources/library/sankoreInteractivities/ord-words.wgt/template/scripts/template2.js
  87. 1
      resources/sankore.qrc
  88. 7
      src/adaptors/UBCFFSubsetAdaptor.cpp
  89. 1
      src/adaptors/UBExportAdaptor.cpp
  90. 2
      src/adaptors/UBMetadataDcSubsetAdaptor.cpp
  91. 38
      src/adaptors/UBSvgSubsetAdaptor.cpp
  92. 3
      src/adaptors/publishing/UBDocumentPublisher.cpp
  93. 61
      src/board/UBBoardController.cpp
  94. 4
      src/board/UBBoardController.h
  95. 38
      src/board/UBBoardPaletteManager.cpp
  96. 1
      src/board/UBBoardPaletteManager.h
  97. 2
      src/board/UBBoardView.cpp
  98. 19
      src/board/UBLibraryController.cpp
  99. 1
      src/core/UB.h
  100. 3
      src/core/UBApplication.cpp
  101. Some files were not shown because too many files have changed in this diff Show More

@ -4,12 +4,16 @@ TEMPLATE = app
THIRD_PARTY_PATH=../Sankore-ThirdParty
CONFIG += debug_and_release \
no_include_pwd
no_include_pwd
linux-g++-64 {
CONFIG += link_prl
}
VERSION_MAJ = 1
VERSION_MIN = 40
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error
VERSION_PATCH = 00
VERSION_PATCH = 01
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
VERSION = $$replace(VERSION, "\\.r", "")

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Möchten Sie diese Fehler auf diesem Computer ignorieren?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1856,11 +1856,11 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
<translation>Action %0</translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1967,7 +1967,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Remind me later</source>
<translation type="Me rappeler ultérieurement"></translation>
<translation></translation>
</message>
</context>
<context>

@ -1856,11 +1856,11 @@ Voulez-vous ignorer les erreurs pour ce serveur?</translation>
<translation>Action %0</translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1967,7 +1967,7 @@ Veuillez redémarrer l&apos;application pour accéder aux documents mis à jour.
</message>
<message>
<source>Remind me later</source>
<translation type="Me rappeler ultérieurement"></translation>
<translation></translation>
</message>
</context>
<context>

@ -1854,11 +1854,11 @@ Vuoi ignorare gli errori per questo host?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1855,11 +1855,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1849,11 +1849,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1855,11 +1855,11 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1848,11 +1848,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
<TS version="2.0" language="en_US">
<context>
<name>BlackoutWidget</name>
<message>
@ -81,11 +81,11 @@
</message>
<message>
<source>Tutorial</source>
<translation>Учебное руководство</translation>
<translation>Учебник</translation>
</message>
<message>
<source>Stylus</source>
<translation>Инструменты для ввода</translation>
<translation>Инструменты</translation>
</message>
<message>
<source>Ctrl+T</source>
@ -109,7 +109,7 @@
</message>
<message>
<source>Redo</source>
<translation>Восстановить</translation>
<translation>Вернуть</translation>
</message>
<message>
<source>Ctrl+Y</source>
@ -281,7 +281,7 @@
</message>
<message>
<source>Show Desktop</source>
<translation>Показать рабочий стол</translation>
<translation>Рабочий стол</translation>
</message>
<message>
<source>Show Computer Desktop</source>
@ -757,7 +757,7 @@
</message>
<message>
<source>Open the tutorial</source>
<translation>Открыть учебное руководство</translation>
<translation>Открыть учебник</translation>
</message>
<message>
<source>Check Update</source>
@ -976,7 +976,7 @@
</message>
<message>
<source>Show the stylus palette</source>
<translation>Показать панель элементов для ввода</translation>
<translation>Показать инструменты</translation>
</message>
<message>
<source>Show Board on Secondary Screen</source>
@ -984,7 +984,7 @@
</message>
<message>
<source>Show Desktop on Secondary Screen</source>
<translation>Показать рабочий стол на втором экране</translation>
<translation>Показать раб. стол на втором экране</translation>
</message>
</context>
<context>
@ -1111,7 +1111,8 @@
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n page(s) from the selected document &apos;%1&apos;?</source>
<translation type="unfinished">
<translation>
<numerusform>Вы уверены, что хотите удалить %n страниц из выбранного документа &apos;%1&apos;?</numerusform>
<numerusform></numerusform>
</translation>
</message>
@ -1193,7 +1194,7 @@
<name>UBDocumentTreeWidget</name>
<message>
<source>%1 (copy)</source>
<translation>%1 (копия)</translation>
<translation>%1 (копирование)</translation>
</message>
<message>
<source>Copying page %1/%2</source>
@ -1203,6 +1204,7 @@
<source>%1 pages copied</source>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
</translation>
</message>
</context>
@ -1665,7 +1667,7 @@ Do you want to ignore these errors for this host?</source>
</message>
<message>
<source>on your desktop ...</source>
<translation>на вашем рабочем столе...</translation>
<translation>на вашем раб. столе...</translation>
</message>
<message>
<source>in folder %1</source>
@ -1780,23 +1782,23 @@ Do you want to ignore these errors for this host?</source>
<name>UBTeacherBarWidget</name>
<message>
<source>Title</source>
<translation type="unfinished">Название</translation>
<translation>Название</translation>
</message>
<message>
<source>Phasis</source>
<translation type="unfinished"></translation>
<translation>Тип урока</translation>
</message>
<message>
<source>Duration</source>
<translation type="unfinished"></translation>
<translation>Длительность</translation>
</message>
<message>
<source>Equipment</source>
<translation type="unfinished"></translation>
<translation>Оборудование</translation>
</message>
<message>
<source>Activity</source>
<translation type="unfinished"></translation>
<translation>Участники</translation>
</message>
<message>
<source></source>
@ -1804,62 +1806,70 @@ Do you want to ignore these errors for this host?</source>
</message>
<message>
<source>I discover</source>
<translation type="unfinished"></translation>
<translation>Открытие</translation>
</message>
<message>
<source>I experiment</source>
<translation type="unfinished"></translation>
<translation>Эксперименты</translation>
</message>
<message>
<source>I train myself</source>
<translation type="unfinished"></translation>
<translation>Самостоятельно</translation>
</message>
<message>
<source>I play</source>
<translation type="unfinished"></translation>
<translation>Игра</translation>
</message>
<message>
<source>I memorize</source>
<translation type="unfinished"></translation>
<translation>Заметка</translation>
</message>
<message>
<source>Short</source>
<translation type="unfinished"></translation>
<translation>Не долго</translation>
</message>
<message>
<source>Middle</source>
<translation type="unfinished"></translation>
<translation>Средне</translation>
</message>
<message>
<source>Long</source>
<translation type="unfinished"></translation>
<translation>Долго</translation>
</message>
<message>
<source>Alone</source>
<translation type="unfinished"></translation>
<translation>Один</translation>
</message>
<message>
<source>By Group</source>
<translation type="unfinished"></translation>
<translation>Группы</translation>
</message>
<message>
<source>All together</source>
<translation type="unfinished"></translation>
<translation>Все вместе</translation>
</message>
</context>
<context>
<name>UBTeacherStudentAction</name>
<message>
<source>Action %0</source>
<translation type="unfinished"></translation>
<translation>Действие %0</translation>
</message>
<message>
<source>Enseignant</source>
<translation type="unfinished"></translation>
<translation type="obsolete">Teacher</translation>
</message>
<message>
<source>ɨve</source>
<translation type="unfinished"></translation>
<translation type="obsolete">Student</translation>
</message>
<message>
<source>Teacher</source>
<translation>Учитель</translation>
</message>
<message>
<source>Student</source>
<translation>Студент</translation>
</message>
</context>
<context>
@ -1965,7 +1975,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Remind me later</source>
<translation type="unfinished"></translation>
<translation>Напомнить позже</translation>
</message>
</context>
<context>
@ -2506,7 +2516,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Stylus Palette</source>
<translation>Панель инструментов для ввода</translation>
<translation>Инструменты</translation>
</message>
<message>
<source>Horizontal</source>

@ -1854,11 +1854,11 @@ Vill du ignorera felen för den här värden?</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

@ -1854,11 +1854,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Enseignant</source>
<source>Teacher</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ɨve</source>
<source>Student</source>
<translation type="unfinished"></translation>
</message>
</context>

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 B

@ -208,7 +208,7 @@ function modeEdit()
// if no sankore api, insert ok button
if( !isSankore )
{
$( "#mp_setup" ).empty().append( '<input type="button" value="OK">' );
$( "#mp_setup" ).empty().append( '<input type="button" value="View">' );
$( "#mp_setup input:button" ).click( function(){
modeView();
});

@ -236,7 +236,7 @@ function modeEdit()
// if no sankore api, insert ok button
if( !isSankore )
{
$( "#mp_setup" ).empty().append( '<input type="button" value="OK">' );
$( "#mp_setup" ).empty().append( '<input type="button" value="View">' );
$( "#mp_setup input:button" ).click( function(){
modeView();
});
@ -249,9 +249,11 @@ $(window).mouseout(function(){
if(window.sankore){
var str = "";
$( "#mp_word .letter" ).each( function(){
str += $(this).text();
str += $(this).text() + "*";
});
str = str.substr(0, str.length - 1);
sankore.setPreference("currentOrdWords", str);
sankore.setPreference("rightOrdWords", word);
}

@ -337,5 +337,6 @@
<file>images/libpalette/WebSearchCategory.svg</file>
<file>images/download_close.png</file>
<file>images/download_open.png</file>
<file>images/tab_mask.png</file>
</qresource>
</RCC>

@ -729,10 +729,8 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseSvgFlash(const QDomElement &ele
QTransform transform;
QString textTransform = element.attribute(aTransform);
bool hastransform = false;
if (!textTransform.isNull()) {
transform = transformFromString(textTransform);
hastransform = true;
}
repositionSvgItem(flashItem, width, height, x, y, true, transform);
hashSceneItem(element, flashItem);
@ -923,13 +921,12 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::parseIwbElement(QDomElement &element
}
bool locked = false;
bool isBackground = false;
bool isEditableItem = false;
bool isEditable = false; //Text items to convert to UBGraphicsTextItem only
QString IDRef = element.attribute(aRef);
if (!IDRef.isNull()) {
isBackground = element.hasAttribute(aBackground) ? strToBool(element.attribute(aBackground)) : false;
element.hasAttribute(aBackground) ? strToBool(element.attribute(aBackground)) : false;
locked = element.hasAttribute(aBackground) ? strToBool(element.attribute(aBackground)) : false;
isEditableItem = element.hasAttribute(aEditable);
if (isEditableItem)
@ -1002,6 +999,7 @@ void UBCFFSubsetAdaptor::UBCFFSubsetReader::repositionSvgItem(QGraphicsItem *ite
bool UBCFFSubsetAdaptor::UBCFFSubsetReader::createNewScene()
{
mCurrentScene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mProxy, mProxy->pageCount());
mCurrentScene->setURStackEnable(false);
mCurrentSceneRect = mCurrentScene->normalizedSceneRect();
mVBTransFactor = qMin(mCurrentSceneRect.width() / mViewPort.width(),
mCurrentSceneRect.height() / mViewPort.height());
@ -1038,7 +1036,6 @@ bool UBCFFSubsetAdaptor::UBCFFSubsetReader::persistScenes()
UBThumbnailAdaptor::persistScene(mProxy->persistencePath(), tmpScene, i);
delete tmpScene;
mCurrentScene->setModified(false);
}

@ -17,7 +17,6 @@
#include "document/UBDocumentProxy.h"
#include "frameworks/UBDesktopServices.h"
#include "frameworks/UBFileSystemUtils.h"
#include "core/UBSettings.h"

@ -90,8 +90,6 @@ void UBMetadataDcSubsetAdaptor::persist(UBDocumentProxy* proxy)
xmlWriter.writeStartElement("Description");
xmlWriter.writeAttribute("about", proxy->metaData(UBSettings::documentIdentifer).toString());
QDate today = QDate::currentDate();
xmlWriter.writeTextElement(nsDc, "title", proxy->metaData(UBSettings::documentName).toString());
xmlWriter.writeTextElement(nsDc, "type", proxy->metaData(UBSettings::documentGroupName).toString());
xmlWriter.writeTextElement(nsDc, "date", QDate::currentDate().toString("yyyy-MM-dd"));

@ -29,6 +29,7 @@
#include "domain/UBGraphicsTextItem.h"
#include "domain/UBAbstractWidget.h"
#include "domain/UBGraphicsStroke.h"
#include "domain/UBItem.h"
#include "tools/UBGraphicsRuler.h"
#include "tools/UBGraphicsCompass.h"
@ -106,7 +107,8 @@ QMatrix UBSvgSubsetAdaptor::fromSvgTransform(const QString& transform)
static bool itemZIndexComp(const QGraphicsItem* item1,
const QGraphicsItem* item2)
{
return item1->zValue() < item2->zValue();
// return item1->zValue() < item2->zValue();
return item1->data(UBGraphicsItemData::ItemOwnZValue).toReal() < item2->data(UBGraphicsItemData::ItemOwnZValue).toReal();
}
@ -1337,11 +1339,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromPol
if (!ubZValue.isNull())
{
polygonItem->setZValue(ubZValue.toString().toFloat());
// polygonItem->setZValue (ubZValue.toString().toFloat());
UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat());
}
else
{
polygonItem->setZValue(mGroupZIndex);
// polygonItem->setZValue(mGroupZIndex);
UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex);
}
QStringRef ubFillOnDarkBackground = mXmlReader.attributes().value(mNamespaceUri, "fill-on-dark-background");
@ -1444,11 +1448,13 @@ UBGraphicsPolygonItem* UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItemFromLin
if (!ubZValue.isNull())
{
polygonItem->setZValue(ubZValue.toString().toFloat());
// polygonItem->setZValue(ubZValue.toString().toFloat());
UBGraphicsItem::assignZValue(polygonItem, ubZValue.toString().toFloat());
}
else
{
polygonItem->setZValue(mGroupZIndex);
// polygonItem->setZValue(mGroupZIndex);
UBGraphicsItem::assignZValue(polygonItem, mGroupZIndex);
}
@ -1587,7 +1593,8 @@ QList<UBGraphicsPolygonItem*> UBSvgSubsetAdaptor::UBSvgSubsetReader::polygonItem
{
UBGraphicsPolygonItem* polygonItem = new UBGraphicsPolygonItem(QLineF(points.at(i), points.at(i + 1)), lineWidth);
polygonItem->setColor(brushColor);
polygonItem->setZValue(zValue);
// polygonItem->setZValue(zValue);
UBGraphicsItem::assignZValue(polygonItem, zValue);
polygonItem->setColorOnDarkBackground(colorOnDarkBackground);
polygonItem->setColorOnLightBackground(colorOnLightBackground);
@ -1931,7 +1938,8 @@ void UBSvgSubsetAdaptor::UBSvgSubsetReader::graphicsItemFromSvg(QGraphicsItem* g
if (!ubZValue.isNull())
{
gItem->setZValue(ubZValue.toString().toFloat());
// gItem->setZValue(ubZValue.toString().toFloat());
UBGraphicsItem::assignZValue(gItem, ubZValue.toString().toFloat());
}
UBItem* ubItem = dynamic_cast<UBItem*>(gItem);
@ -2484,7 +2492,8 @@ UBGraphicsRuler* UBSvgSubsetAdaptor::UBSvgSubsetReader::rulerFromSvg()
graphicsItemFromSvg(ruler);
ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler);
// ruler->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler);
UBGraphicsItem::assignZValue(ruler, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetRuler);
ruler->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
QStringRef svgWidth = mXmlReader.attributes().value("width");
@ -2542,7 +2551,8 @@ UBGraphicsCompass* UBSvgSubsetAdaptor::UBSvgSubsetReader::compassFromSvg()
graphicsItemFromSvg(compass);
compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass);
//compass->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass);
UBGraphicsItem::assignZValue(compass, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCompass);
compass->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
QStringRef svgX = mXmlReader.attributes().value("x");
@ -2606,7 +2616,8 @@ UBGraphicsProtractor* UBSvgSubsetAdaptor::UBSvgSubsetReader::protractorFromSvg()
{
UBGraphicsProtractor* protractor = new UBGraphicsProtractor();
protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor);
// protractor->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor);
UBGraphicsItem::assignZValue(protractor, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetProtractor);
protractor->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
graphicsItemFromSvg(protractor);
@ -2676,7 +2687,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
{
UBGraphicsTriangle* triangle = new UBGraphicsTriangle();
triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle);
// triangle->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle);
UBGraphicsItem::assignZValue(triangle, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetTriangle);
triangle->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
graphicsItemFromSvg(triangle);
@ -2695,7 +2707,6 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
triangle->setRect(svgX.toString().toFloat(), svgY.toString().toFloat(), svgWidth.toString().toFloat(), svgHeight.toString().toFloat(), orientation);
}
triangle->setVisible(true);
return triangle;
}
@ -2703,7 +2714,8 @@ UBGraphicsTriangle* UBSvgSubsetAdaptor::UBSvgSubsetReader::triangleFromSvg()
UBGraphicsCache* UBSvgSubsetAdaptor::UBSvgSubsetReader::cacheFromSvg()
{
UBGraphicsCache* pCache = new UBGraphicsCache();
//pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache);
pCache->setZValue(UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache);
// UBGraphicsItem::assignZValue(pCache, UBGraphicsScene::toolLayerStart + UBGraphicsScene::toolOffsetCache);
pCache->setData(UBGraphicsItemData::ItemLayerType, QVariant(UBItemLayerType::Tool));
graphicsItemFromSvg(pCache);

@ -240,8 +240,6 @@ void UBDocumentPublisher::upgradeDocumentForPublishing()
{
UBGraphicsScene *scene = UBSvgSubsetAdaptor::loadScene(mPublishingDocument, pageIndex);
bool sceneHasWidget = false;
QList<UBGraphicsW3CWidgetItem*> widgets;
foreach(QGraphicsItem* item, scene->items()){
@ -249,7 +247,6 @@ void UBDocumentPublisher::upgradeDocumentForPublishing()
if(widgetItem){
generateWidgetPropertyScript(widgetItem, pageIndex + 1);
sceneHasWidget = true;
widgets << widgetItem;
}
}

@ -66,6 +66,7 @@
#include "UBBoardPaletteManager.h"
#include "core/memcheck.h"
//#include <typeinfo>
UBBoardController::UBBoardController(UBMainWindow* mainWindow)
: QObject(mainWindow->centralWidget())
@ -776,6 +777,12 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString
{
QString mimeType = pContentTypeHeader;
// In some cases "image/jpeg;charset=" is retourned by the drag-n-drop. That is
// why we will check if an ; exists and take the first part (the standard allows this kind of mimetype)
int position=mimeType.indexOf(";");
if(position != -1)
mimeType=mimeType.left(position);
if (!pSuccess)
{
UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString()));
@ -1132,7 +1139,7 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy,
if(sceneChange)
emit activeSceneWillChange();
UBApplication::undoStack->clear();
ClearUndoStack();
mActiveScene = targetScene;
mActiveDocument = pDocumentProxy;
@ -1173,6 +1180,55 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy,
}
}
void UBBoardController::ClearUndoStack()
{
QSet<QGraphicsItem*> uniqueItems;
// go through all stack command
for(int i = 0; i < UBApplication::undoStack->count(); i++)
{
UBAbstractUndoCommand *abstractCmd = (UBAbstractUndoCommand*)UBApplication::undoStack->command(i);
if(abstractCmd->getType() != UBAbstractUndoCommand::undotype_GRAPHICITEM)
continue;
UBGraphicsItemUndoCommand *cmd = (UBGraphicsItemUndoCommand*)UBApplication::undoStack->command(i);
// go through all added and removed objects, for create list of unique objects
QSetIterator<QGraphicsItem*> itAdded(cmd->GetAddedList());
while (itAdded.hasNext())
{
QGraphicsItem* item = itAdded.next();
if( !uniqueItems.contains(item) )
uniqueItems.insert(item);
}
QSetIterator<QGraphicsItem*> itRemoved(cmd->GetRemovedList());
while (itRemoved.hasNext())
{
QGraphicsItem* item = itRemoved.next();
if( !uniqueItems.contains(item) )
uniqueItems.insert(item);
}
}
// clear stack, and command list
UBApplication::undoStack->clear();
// go through all unique items, and check, ot on scene, or not.
// if not on scene, than item can be deleted
QSetIterator<QGraphicsItem*> itUniq(uniqueItems);
while (itUniq.hasNext())
{
QGraphicsItem* item = itUniq.next();
UBGraphicsScene *scene = (UBGraphicsScene*)item->scene();
if(!scene)
{
mActiveScene->deleteItem(item);
}
}
}
void UBBoardController::adjustDisplayViews()
{
@ -1842,7 +1898,8 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
if (gi)
{
gi->setZValue(mActiveScene->getNextObjectZIndex());
// gi->setZValue(mActiveScene->getNextObjectZIndex());
UBGraphicsItem::assignZValue(gi, mActiveScene->getNextObjectZIndex());
mActiveScene->addItem(gi);
gi->setPos(gi->pos() + QPointF(50, 50));
}

@ -140,6 +140,7 @@ class UBBoardController : public QObject
void setBoxing(QRect displayRect);
void setToolbarTexts();
static QUrl expandWidgetToTempDir(const QByteArray& pZipedData, const QString& pExtension = QString("wgt"));
// static QRect freeRectInGlobalPos() const {return ;}
void setPageSize(QSize newSize);
UBBoardPaletteManager *paletteManager()
{
@ -150,6 +151,9 @@ class UBBoardController : public QObject
void notifyPageChanged();
void displayMetaData(QMap<QString, QString> metadatas);
void ClearUndoStack();
public slots:
void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0);
void showDocumentsDialog();

@ -81,8 +81,8 @@ UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardControll
, mpLibWidget(NULL)
, mpCachePropWidget(NULL)
, mpTeacherBarWidget(NULL)
, mpDesktopLibWidget(NULL)
, mpDownloadWidget(NULL)
, mpDesktopLibWidget(NULL)
, mDownloadInProgress(false)
{
setupPalettes();
@ -727,7 +727,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
case eUBDockPaletteWidget_BOARD:
{
mLeftPalette->setParent(UBApplication::boardController->controlContainer());
mRightPalette->setParent(UBApplication::boardController->controlContainer());
mRightPalette->assignParent(UBApplication::boardController->controlContainer());
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{
@ -743,6 +743,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(true);
mRightPalette->setVisible(true);
#ifdef Q_WS_WIN
mRightPalette->setAdditionalVOffset(0);
#endif
if( !isInit )
containerResized();
@ -752,7 +755,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
case eUBDockPaletteWidget_DESKTOP:
{
mLeftPalette->setParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView());
mRightPalette->setParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView());
mRightPalette->assignParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView());
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{
@ -772,6 +775,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(false);
mRightPalette->setVisible(true);
#ifdef Q_WS_WIN
mRightPalette->setAdditionalVOffset(30);
#endif
if( !isInit )
UBApplication::applicationController->uninotesController()->TransparentWidgetResized();
@ -802,7 +808,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(false);
mRightPalette->setVisible(false);
mLeftPalette->setParent(0);
mRightPalette->setParent(0);
mRightPalette->assignParent(0);
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{
@ -1027,3 +1033,27 @@ void UBBoardPaletteManager::stopDownloads()
mRightPalette->removeTab(mpDownloadWidget->name());
}
}
QRect UBBoardPaletteManager::GetFreeRectGlobalCoords() const
{
QPoint topLeft, bottomRight;
if (mLeftPalette) {
int x = mLeftPalette->getTabPaletteRect().topRight().x();
int y = 0;
if (x || y) {
topLeft.setX(x);
topLeft.setY(y);
topLeft = mContainer->mapToGlobal(topLeft);
}
}
if (mRightPalette) {
int x = mRightPalette->getTabPaletteRect().topLeft().x();
int y = mRightPalette->height();
if (x || y) {
bottomRight.setX(x);
bottomRight.setY(y);
bottomRight = mContainer->mapToGlobal(bottomRight);
}
}
return QRect(topLeft, bottomRight);
}

@ -65,6 +65,7 @@ class UBBoardPaletteManager : public QObject
void changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false);
void startDownloads();
void stopDownloads();
QRect GetFreeRectGlobalCoords() const;
signals:
void connectToDocController();

@ -12,8 +12,6 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "UBBoardView.h"
#include <QtGui>

@ -16,7 +16,6 @@
#include "frameworks/UBFileSystemUtils.h"
#include "frameworks/UBPlatformUtils.h"
#include "frameworks/UBDesktopServices.h"
#include "core/UBApplication.h"
#include "core/UBPersistenceManager.h"
@ -54,13 +53,13 @@ UBLibraryController::UBLibraryController(QWidget *pParentWidget) :
{
readFavoriteList();
mAudioStandardDirectoryPath = QUrl::fromLocalFile(UBDesktopServices::storageLocation(QDesktopServices::MusicLocation));
mAudioStandardDirectoryPath = QUrl::fromLocalFile(QDesktopServices::storageLocation(QDesktopServices::MusicLocation));
userPath(mAudioStandardDirectoryPath);
mVideoStandardDirectoryPath = QUrl::fromLocalFile(UBDesktopServices::storageLocation(QDesktopServices::MoviesLocation));
mVideoStandardDirectoryPath = QUrl::fromLocalFile(QDesktopServices::storageLocation(QDesktopServices::MoviesLocation));
userPath(mVideoStandardDirectoryPath);
mPicturesStandardDirectoryPath = QUrl::fromLocalFile(UBDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
mPicturesStandardDirectoryPath = QUrl::fromLocalFile(QDesktopServices::storageLocation(QDesktopServices::PicturesLocation));
userPath(mPicturesStandardDirectoryPath);
mInteractiveUserDirectoryPath = QUrl::fromLocalFile(UBSettings::settings()->uniboardInteractiveUserDirectory());
@ -696,16 +695,20 @@ void UBLibraryController::addVideosToCurrentPage(const QList<QUrl>& videos)
void UBLibraryController::addAudiosToCurrentPage(const QList<QUrl>& sounds)
{
QPointF topLeftPos = visibleSceneRect().topLeft();
QPointF centerPos = visibleSceneRect().center();
QPointF pos = topLeftPos;
QPointF pos = centerPos;
//move it a little higher for convenience
centerPos.setX(pos.x() - 200);
centerPos.setY(pos.y() - 100);
foreach(const QUrl url, sounds)
{
mLastItemOffsetIndex++;
mLastItemOffsetIndex = qMin(mLastItemOffsetIndex, 5);
pos = QPointF(topLeftPos.x() + 50 * mLastItemOffsetIndex,
topLeftPos.y() + 50 * mLastItemOffsetIndex);
pos = QPointF(centerPos.x() + 50 * mLastItemOffsetIndex,
centerPos.y() + 50 * mLastItemOffsetIndex);
UBApplication::boardController->addAudio(url, false, pos);
}
}

@ -78,6 +78,7 @@ struct UBGraphicsItemData
ItemLayerType
, ItemLocked
, ItemEditable//for text only
, ItemOwnZValue
};
};

@ -109,7 +109,7 @@ UBApplication::UBApplication(const QString &id, int &argc, char **argv) : QtSing
setOrganizationName("Sankore");
setOrganizationDomain("sankore.org");
setApplicationName("Sankore 3.1");
setApplicationName("Open-Sankore");
setApplicationVersion(UBVERSION);
@ -222,7 +222,6 @@ int UBApplication::exec(const QString& pFileToImport)
QWebSettings *gs = QWebSettings::globalSettings();
gs->setAttribute(QWebSettings::JavaEnabled, true);
gs->setAttribute(QWebSettings::PluginsEnabled, true);
gs->setAttribute(QWebSettings::JavaEnabled, true);
gs->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true);
gs->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true);
gs->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save