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. 6
      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 THIRD_PARTY_PATH=../Sankore-ThirdParty
CONFIG += debug_and_release \ CONFIG += debug_and_release \
no_include_pwd no_include_pwd
linux-g++-64 {
CONFIG += link_prl
}
VERSION_MAJ = 1 VERSION_MAJ = 1
VERSION_MIN = 40 VERSION_MIN = 40
VERSION_TYPE = b # a = alpha, b = beta, r = release, other => error 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 = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_TYPE}.$${VERSION_PATCH}"
VERSION = $$replace(VERSION, "\\.r", "") VERSION = $$replace(VERSION, "\\.r", "")

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -1854,11 +1854,11 @@ Do you want to ignore these errors for this host?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Enseignant</source> <source>Teacher</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>ɨve</source> <source>Student</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </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 no sankore api, insert ok button
if( !isSankore ) 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(){ $( "#mp_setup input:button" ).click( function(){
modeView(); modeView();
}); });

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

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

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

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

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

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

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

@ -66,6 +66,7 @@
#include "UBBoardPaletteManager.h" #include "UBBoardPaletteManager.h"
#include "core/memcheck.h" #include "core/memcheck.h"
//#include <typeinfo>
UBBoardController::UBBoardController(UBMainWindow* mainWindow) UBBoardController::UBBoardController(UBMainWindow* mainWindow)
: QObject(mainWindow->centralWidget()) : QObject(mainWindow->centralWidget())
@ -776,6 +777,12 @@ void UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QString
{ {
QString mimeType = pContentTypeHeader; 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) if (!pSuccess)
{ {
UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString())); UBApplication::showMessage(tr("Downloading content %1 failed").arg(sourceUrl.toString()));
@ -1132,7 +1139,7 @@ void UBBoardController::setActiveDocumentScene(UBDocumentProxy* pDocumentProxy,
if(sceneChange) if(sceneChange)
emit activeSceneWillChange(); emit activeSceneWillChange();
UBApplication::undoStack->clear(); ClearUndoStack();
mActiveScene = targetScene; mActiveScene = targetScene;
mActiveDocument = pDocumentProxy; 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() void UBBoardController::adjustDisplayViews()
{ {
@ -1842,7 +1898,8 @@ void UBBoardController::processMimeData(const QMimeData* pMimeData, const QPoint
if (gi) if (gi)
{ {
gi->setZValue(mActiveScene->getNextObjectZIndex()); // gi->setZValue(mActiveScene->getNextObjectZIndex());
UBGraphicsItem::assignZValue(gi, mActiveScene->getNextObjectZIndex());
mActiveScene->addItem(gi); mActiveScene->addItem(gi);
gi->setPos(gi->pos() + QPointF(50, 50)); gi->setPos(gi->pos() + QPointF(50, 50));
} }

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

@ -81,8 +81,8 @@ UBBoardPaletteManager::UBBoardPaletteManager(QWidget* container, UBBoardControll
, mpLibWidget(NULL) , mpLibWidget(NULL)
, mpCachePropWidget(NULL) , mpCachePropWidget(NULL)
, mpTeacherBarWidget(NULL) , mpTeacherBarWidget(NULL)
, mpDesktopLibWidget(NULL)
, mpDownloadWidget(NULL) , mpDownloadWidget(NULL)
, mpDesktopLibWidget(NULL)
, mDownloadInProgress(false) , mDownloadInProgress(false)
{ {
setupPalettes(); setupPalettes();
@ -727,7 +727,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
case eUBDockPaletteWidget_BOARD: case eUBDockPaletteWidget_BOARD:
{ {
mLeftPalette->setParent(UBApplication::boardController->controlContainer()); mLeftPalette->setParent(UBApplication::boardController->controlContainer());
mRightPalette->setParent(UBApplication::boardController->controlContainer()); mRightPalette->assignParent(UBApplication::boardController->controlContainer());
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{ {
@ -743,6 +743,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(true); mLeftPalette->setVisible(true);
mRightPalette->setVisible(true); mRightPalette->setVisible(true);
#ifdef Q_WS_WIN
mRightPalette->setAdditionalVOffset(0);
#endif
if( !isInit ) if( !isInit )
containerResized(); containerResized();
@ -752,7 +755,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
case eUBDockPaletteWidget_DESKTOP: case eUBDockPaletteWidget_DESKTOP:
{ {
mLeftPalette->setParent((QWidget*)UBApplication::applicationController->uninotesController()->drawingView()); 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) if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{ {
@ -772,6 +775,9 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(false); mLeftPalette->setVisible(false);
mRightPalette->setVisible(true); mRightPalette->setVisible(true);
#ifdef Q_WS_WIN
mRightPalette->setAdditionalVOffset(30);
#endif
if( !isInit ) if( !isInit )
UBApplication::applicationController->uninotesController()->TransparentWidgetResized(); UBApplication::applicationController->uninotesController()->TransparentWidgetResized();
@ -802,7 +808,7 @@ void UBBoardPaletteManager::changeMode(eUBDockPaletteWidgetMode newMode, bool is
mLeftPalette->setVisible(false); mLeftPalette->setVisible(false);
mRightPalette->setVisible(false); mRightPalette->setVisible(false);
mLeftPalette->setParent(0); mLeftPalette->setParent(0);
mRightPalette->setParent(0); mRightPalette->assignParent(0);
if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL) if (UBPlatformUtils::hasVirtualKeyboard() && mKeyboardPalette != NULL)
{ {
@ -1027,3 +1033,27 @@ void UBBoardPaletteManager::stopDownloads()
mRightPalette->removeTab(mpDownloadWidget->name()); 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 changeMode(eUBDockPaletteWidgetMode newMode, bool isInit = false);
void startDownloads(); void startDownloads();
void stopDownloads(); void stopDownloads();
QRect GetFreeRectGlobalCoords() const;
signals: signals:
void connectToDocController(); void connectToDocController();

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

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

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

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