Merge branch 'dev' into dev-stylusPalette

preferencesAboutTextFull
kaamui 3 years ago committed by GitHub
commit 8da0174009
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      .gitignore
  2. 27
      OpenBoard.pro
  3. 32
      README.md
  4. 7
      release_scripts/linux/build.sh
  5. 11
      release_scripts/linux/package.sh
  6. 36
      release_scripts/osx/release.macx.sh
  7. 7
      resources/OpenBoard.qrc
  8. 5
      resources/etc/OpenBoard.config
  9. 6
      resources/forms/mainWindow.ui
  10. 2
      resources/forms/trapFlash.ui
  11. 42
      resources/i18n/OpenBoard_ar.ts
  12. 42
      resources/i18n/OpenBoard_bg.ts
  13. 42
      resources/i18n/OpenBoard_ca.ts
  14. 42
      resources/i18n/OpenBoard_cs.ts
  15. 42
      resources/i18n/OpenBoard_da.ts
  16. 42
      resources/i18n/OpenBoard_de.ts
  17. 42
      resources/i18n/OpenBoard_el.ts
  18. 48
      resources/i18n/OpenBoard_en.ts
  19. 48
      resources/i18n/OpenBoard_en_UK.ts
  20. 42
      resources/i18n/OpenBoard_es.ts
  21. 42
      resources/i18n/OpenBoard_fr.ts
  22. 42
      resources/i18n/OpenBoard_fr_CH.ts
  23. 42
      resources/i18n/OpenBoard_gl.ts
  24. 296
      resources/i18n/OpenBoard_hu.ts
  25. 42
      resources/i18n/OpenBoard_it.ts
  26. 42
      resources/i18n/OpenBoard_iw.ts
  27. 42
      resources/i18n/OpenBoard_ja.ts
  28. 42
      resources/i18n/OpenBoard_ko.ts
  29. 42
      resources/i18n/OpenBoard_mg.ts
  30. 42
      resources/i18n/OpenBoard_nb.ts
  31. 42
      resources/i18n/OpenBoard_nl.ts
  32. 263
      resources/i18n/OpenBoard_pl.ts
  33. 42
      resources/i18n/OpenBoard_pt.ts
  34. 1889
      resources/i18n/OpenBoard_pt_BR.ts
  35. 42
      resources/i18n/OpenBoard_ro.ts
  36. 42
      resources/i18n/OpenBoard_ru.ts
  37. 42
      resources/i18n/OpenBoard_sk.ts
  38. 42
      resources/i18n/OpenBoard_sv.ts
  39. 42
      resources/i18n/OpenBoard_tr.ts
  40. 42
      resources/i18n/OpenBoard_uk.ts
  41. 42
      resources/i18n/OpenBoard_zh.ts
  42. 42
      resources/i18n/OpenBoard_zh_CN.ts
  43. 316
      resources/i18n/OpenBoard_zh_TW.ts
  44. BIN
      resources/images/favorites.png
  45. BIN
      resources/images/folder.png
  46. BIN
      resources/images/libpalette/social.png
  47. BIN
      resources/images/stylusPalette/eraserArrow.png
  48. BIN
      resources/images/stylusPalette/eraserOnArrow.png
  49. BIN
      resources/images/stylusPalette/markerArrow.png
  50. BIN
      resources/images/stylusPalette/markerOnArrow.png
  51. BIN
      resources/images/stylusPalette/penOnArrow.png
  52. BIN
      resources/images/toolPalette/axesTool.png
  53. BIN
      resources/images/tools.png
  54. BIN
      resources/images/trash-delete-document.png
  55. BIN
      resources/images/trash-delete-folder.png
  56. BIN
      resources/images/trash-document-page.png
  57. BIN
      resources/images/trash-document.png
  58. BIN
      resources/images/trash-empty.png
  59. BIN
      resources/images/trash-folder.png
  60. BIN
      resources/images/trash-my-documents.png
  61. 56
      resources/library/applications/WebBrowser.wgt/index.html
  62. 16
      resources/library/applications/WebBrowser.wgt/scripts/languages.js
  63. BIN
      resources/linux/application-ubz.png
  64. 36
      resources/linux/application-ubz.svg
  65. 2
      resources/linux/run.sh
  66. 2
      resources/macx/Info.plist
  67. BIN
      resources/style/treeview-branch-closed.png
  68. BIN
      resources/style/treeview-branch-open.png
  69. 12
      src/adaptors/UBExportPDF.cpp
  70. 7
      src/adaptors/UBMetadataDcSubsetAdaptor.cpp
  71. 58
      src/adaptors/UBSvgSubsetAdaptor.cpp
  72. 24
      src/adaptors/UBThumbnailAdaptor.cpp
  73. 4
      src/adaptors/UBThumbnailAdaptor.h
  74. 100
      src/board/UBBoardController.cpp
  75. 2
      src/board/UBBoardController.h
  76. 10
      src/board/UBBoardPaletteManager.cpp
  77. 132
      src/board/UBBoardView.cpp
  78. 35
      src/core/UBApplication.cpp
  79. 6
      src/core/UBApplication.h
  80. 13
      src/core/UBApplicationController.cpp
  81. 4
      src/core/UBDisplayManager.cpp
  82. 1
      src/core/UBDocumentManager.cpp
  83. 134
      src/core/UBPersistenceManager.cpp
  84. 11
      src/core/UBPersistenceManager.h
  85. 1
      src/core/UBSceneCache.cpp
  86. 18
      src/core/UBSettings.cpp
  87. 9
      src/core/UBSettings.h
  88. 4
      src/core/main.cpp
  89. 2
      src/desktop/UBCustomCaptureWindow.cpp
  90. 10
      src/desktop/UBDesktopAnnotationController.cpp
  91. 77
      src/document/UBDocumentContainer.cpp
  92. 38
      src/document/UBDocumentContainer.h
  93. 444
      src/document/UBDocumentController.cpp
  94. 41
      src/document/UBDocumentController.h
  95. 12
      src/document/UBDocumentProxy.cpp
  96. 1
      src/document/UBDocumentProxy.h
  97. 4
      src/domain/UBGraphicsDelegateFrame.cpp
  98. 15
      src/domain/UBGraphicsItemDelegate.cpp
  99. 8
      src/domain/UBGraphicsItemUndoCommand.cpp
  100. 38
      src/domain/UBGraphicsMediaItem.cpp
  101. Some files were not shown because too many files have changed in this diff Show More

1
.gitignore vendored

@ -55,6 +55,7 @@ Makefile.Sankore*
# Build files # # Build files #
############### ###############
.qmake.stash
build build
install install
Makefile Makefile

@ -1,7 +1,7 @@
TARGET = "OpenBoard" TARGET = "OpenBoard"
TEMPLATE = app TEMPLATE = app
CONFIG += c++14 CONFIG += c++17
CONFIG -= flat CONFIG -= flat
CONFIG += debug_and_release \ CONFIG += debug_and_release \
no_include_pwd no_include_pwd
@ -9,9 +9,9 @@ CONFIG += debug_and_release \
VERSION_MAJ = 1 VERSION_MAJ = 1
VERSION_MIN = 6 VERSION_MIN = 6
VERSION_PATCH = 1 VERSION_PATCH = 2
VERSION_TYPE = r # a = alpha, b = beta, rc = release candidate, r = release, other => error VERSION_TYPE = rc # a = alpha, b = beta, rc = release candidate, r = release, other => error
VERSION_BUILD = 0309 VERSION_BUILD = 0408
VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}-$${VERSION_TYPE}.$${VERSION_BUILD}" VERSION = "$${VERSION_MAJ}.$${VERSION_MIN}.$${VERSION_PATCH}-$${VERSION_TYPE}.$${VERSION_BUILD}"
@ -40,6 +40,7 @@ QT += webkitwidgets
QT += multimediawidgets QT += multimediawidgets
QT += printsupport QT += printsupport
QT += core QT += core
QT += concurrent
INCLUDEPATH += src INCLUDEPATH += src
@ -57,7 +58,8 @@ include(src/podcast/podcast.pri)
include(src/tools/tools.pri) include(src/tools/tools.pri)
include(src/desktop/desktop.pri) include(src/desktop/desktop.pri)
include(src/web/web.pri) include(src/web/web.pri)
include(src/qtsingleapplication/src/qtsingleapplication.pri) include(src/singleapplication/singleapplication.pri)
DEFINES += QAPPLICATION_CLASS=QApplication
DEPENDPATH += src/pdf-merger DEPENDPATH += src/pdf-merger
INCLUDEPATH += src/pdf-merger INCLUDEPATH += src/pdf-merger
@ -177,26 +179,25 @@ macx {
equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) { equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) {
LIBS += "-L../OpenBoard-ThirdParty/quazip/lib/macx" "-lquazip" LIBS += "-L../OpenBoard-ThirdParty/quazip/lib/macx" "-lquazip"
} else { } else {
LIBS += -L/usr/local/opt/quazip/lib -lquazip LIBS += -L/usr/local/opt/quazip/lib -lquazip1-qt5
} }
LIBS += -L/usr/local/opt/ffmpeg/lib LIBS += -L/opt/local/lib
INCLUDEPATH += /usr/local/opt/openssl/include INCLUDEPATH += /usr/local/opt/openssl/include
INCLUDEPATH += /usr/local/opt/ffmpeg/include INCLUDEPATH += /opt/local/include
equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) { equals(QT_MAJOR_VERSION, 5):lessThan(QT_MINOR_VERSION, 14) {
INCLUDEPATH += ../OpenBoard-ThirdParty/quazip/quazip-0.7.1 INCLUDEPATH += ../OpenBoard-ThirdParty/quazip/quazip-0.7.1
} else { } else {
INCLUDEPATH += /usr/local/opt/quazip/include/quazip INCLUDEPATH += /usr/local/opt/quazip/include/quazip
} }
LIBS += -L/usr/local/opt/poppler/lib -lpoppler LIBS += -L/opt/local/lib -lpoppler
INCLUDEPATH += /usr/local/opt/poppler/include INCLUDEPATH += /opt/local/include/poppler
INCLUDEPATH += /usr/local/opt/poppler/include/poppler
CONFIG(release, debug|release):CONFIG += x86_64 CONFIG(release, debug|release):CONFIG += x86_64
CONFIG(debug, debug|release):CONFIG += x86_64 CONFIG(debug, debug|release):CONFIG += x86_64
QMAKE_MAC_SDK = macosx QMAKE_MAC_SDK = macosx
QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.10 QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.13
QMAKE_CXXFLAGS += -Wno-overloaded-virtual QMAKE_CXXFLAGS += -Wno-overloaded-virtual
#VERSION_RC_PATH = "$$BUILD_DIR/version_rc" #VERSION_RC_PATH = "$$BUILD_DIR/version_rc"
@ -451,7 +452,7 @@ linux-g++* {
#LIBS += -lprofiler #LIBS += -lprofiler
LIBS += -lX11 LIBS += -lX11
LIBS += -lquazip5 LIBS += -lquazip5
INCLUDEPATH += "/usr/include/quazip" INCLUDEPATH += "/usr/include/quazip5"
LIBS += -lpoppler LIBS += -lpoppler
INCLUDEPATH += "/usr/include/poppler" INCLUDEPATH += "/usr/include/poppler"

@ -1,38 +1,14 @@
# OpenBoard # OpenBoard
OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard. OpenBoard is an open source cross-platform interactive white board application designed primarily for use in schools. It was originally forked from Open-Sankoré, which was itself based on Uniboard.
Supported platforms are Windows (7+), OS X (10.9+) and Linux (tested on Ubuntu 16.04). Supported platforms are Windows (10+), OS X (10.13+) and Linux (Ubuntu 20.04 is the only officially maintained platform, but many others are reported by the community to work).
## Installing ## Installing
Installers are available for Windows, OS X and Ubuntu on the [wiki](https://github.com/DIP-SEM/OpenBoard/wiki/Downloads). Installers are available for Windows, OS X and Ubuntu on the [wiki](https://github.com/OpenBoard-org/OpenBoard/wiki/Downloads).
## Building from source ## Building from source
First, obtain the third party libraries from the OpenBoard-ThirdParty repository, and build them (instructions are provided for each library). Please follow instructions available on the [wiki](https://github.com/OpenBoard-org/OpenBoard/wiki/Build-from-source)
Then, you may use the build (and packaging) scripts which are provided for all three platforms. These take care of compiling OpenBoard, including the translations (for OpenBoard and for Qt), stripping the debug symbols, creating the installers etc.
Minor modification to those scripts may be necessary depending on your configuration, to set the correct Qt path for example.
Alternatively, you can easily build OpenBoard with qmake and make:
qmake OpenBoard.pro -spec linux-g++-64 # replace linux-g++-64 by macx or win32 for other platforms
make
Compilers used are gcc (Linux), clang (OS X) and MSVC 2010 (Windows). Make sure that your version of Qt matches this, as it is not possible e.g to build OpenBoard with clang if Qt was built with gcc.
## Dependencies ## Dependencies
The latest version (1.5) requires Qt 5.5. (While it has been shown to mostly work with Qt 5.2, we cannot guarantee compatibility with Qt versions other than 5.5.) The latest version (1.6.1) can be compiled with the latest open source binaries of Qt 5.15. While it has been shown to work with Qt 5.9 or any other version in between, we recommend that you use the latest version you can.
### Qt 5.5 on Linux
Due to a shared library conflict within Qt 5 in some distributions / some Qt versions (the Multimedia and Webkit modules were built against different versions of gstreamer by default), a specific installation of Qt5.5 may be needed for all of OpenBoard's features to work correctly.
It can either be built from source, with the configure flag `-gstreamer 1.0` (see [here](http://doc.qt.io/qt-5/linux-building.html)), or installed from Stephan Binner's PPAs on Ubuntu.
In the latter case, simply add the repositories and install Qt 5.5.1 like so (example provided for Ubuntu 14.04, aka "Trusty"):
sudo add-apt-repository ppa:beineri/opt-qt551-trusty
sudo apt-get update
sudo apt-get install qt-latest
Some distributions, such as Ubuntu 16.04, provide Qt 5.5.1 packages that work perfectly with OpenBoard, so you can simply install Qt from the official repository.

@ -17,7 +17,7 @@
initializeVariables() initializeVariables()
{ {
APPLICATION_NAME="OpenBoard" APPLICATION_NAME="OpenBoard"
STANDARD_QT_USED=false STANDARD_QT_USED=true
# Root directory # Root directory
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -26,7 +26,7 @@ initializeVariables()
PRODUCT_PATH="$BUILD_DIR/product" PRODUCT_PATH="$BUILD_DIR/product"
# Qt installation path. This may vary across machines # Qt installation path. This may vary across machines
QT_PATH="/home/dev/Qt/5.15.0/gcc_64" QT_PATH="/usr/lib/x86_64-linux-gnu/qt5"
PLUGINS_PATH="$QT_PATH/plugins" PLUGINS_PATH="$QT_PATH/plugins"
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations"
QMAKE_PATH="$QT_PATH/bin/qmake" QMAKE_PATH="$QT_PATH/bin/qmake"
@ -39,6 +39,9 @@ initializeVariables()
ARCHITECTURE=`uname -m` ARCHITECTURE=`uname -m`
if [ $ARCHITECTURE == "x86_64" ]; then if [ $ARCHITECTURE == "x86_64" ]; then
ARCHITECTURE="amd64" ARCHITECTURE="amd64"
elif [$ARCHITECTURE == "armv7l" ]; then
$ARCHITECTURE="armhf"
QT_PATH="/usr/lib/arm-linux-gnueabihf/qt5"
fi fi
fi fi
} }

@ -85,13 +85,13 @@ initializeVariables()
# Include Qt libraries and plugins in the package, or not # Include Qt libraries and plugins in the package, or not
# (this is necessary if the target system doesn't provide Qt 5.5.1) # (this is necessary if the target system doesn't provide Qt 5.5.1)
BUNDLE_QT=true BUNDLE_QT=false
# Qt installation path. This may vary across machines # Qt installation path. This may vary across machines
QT_PATH="/home/dev/Qt/5.15.0/gcc_64" QT_PATH="/usr/lib/x86_64-linux-gnu/qt5"
QT_PLUGINS_SOURCE_PATH="$QT_PATH/plugins" QT_PLUGINS_SOURCE_PATH="$QT_PATH/plugins"
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations" GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations"
QT_LIBRARY_SOURCE_PATH="$QT_PATH/lib" QT_LIBRARY_SOURCE_PATH="$QT_PATH/.."
NOTIFY_CMD=`which notify-send` NOTIFY_CMD=`which notify-send`
ZIP_PATH=`which zip` ZIP_PATH=`which zip`
@ -180,6 +180,7 @@ chown -R root:root $PACKAGE_DIRECTORY
cp -R resources/customizations $PACKAGE_DIRECTORY/ cp -R resources/customizations $PACKAGE_DIRECTORY/
cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/ cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/
cp resources/linux/application-ubz.png $PACKAGE_DIRECTORY/etc/
if $BUNDLE_QT; then if $BUNDLE_QT; then
cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/ cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/
@ -214,6 +215,7 @@ if $BUNDLE_QT; then
notifyProgress "Copying and stripping Qt libraries" notifyProgress "Copying and stripping Qt libraries"
mkdir -p $QT_LIBRARY_DEST_PATH mkdir -p $QT_LIBRARY_DEST_PATH
copyQtLibrary libQt5Concurrent
copyQtLibrary libQt5Core copyQtLibrary libQt5Core
copyQtLibrary libQt5DBus copyQtLibrary libQt5DBus
copyQtLibrary libQt5Gui copyQtLibrary libQt5Gui
@ -287,6 +289,7 @@ cat > "$BASE_WORKING_DIR/DEBIAN/postinst" << EOF
xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_CODE}.desktop xdg-desktop-menu install --novendor /usr/share/applications/${APPLICATION_CODE}.desktop
xdg-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml xdg-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml
xdg-mime default /usr/share/applications/${APPLICATION_CODE}.desktop application/ubz xdg-mime default /usr/share/applications/${APPLICATION_CODE}.desktop application/ubz
xdg-icon-resource install --context mimetypes --size 48 /$APPLICATION_PATH/$APPLICATION_CODE/etc/application-ubz.png application-ubz
ln -s $SYMLINK_TARGET /usr/bin/$APPLICATION_CODE ln -s $SYMLINK_TARGET /usr/bin/$APPLICATION_CODE
@ -400,8 +403,6 @@ echo "MimeType=application/ubz" >> $APPLICATION_SHORTCUT
echo "Categories=Education;" >> $APPLICATION_SHORTCUT echo "Categories=Education;" >> $APPLICATION_SHORTCUT
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png" cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png"
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------
# Building the package # Building the package
# ---------------------------------------------------------------------------- # ----------------------------------------------------------------------------

@ -19,7 +19,7 @@ PROJECT_ROOT="$SCRIPT_PATH/../.."
APPLICATION_NAME="OpenBoard" APPLICATION_NAME="OpenBoard"
BASE_QT_DIR=~/Qt/5.15.0/clang_64 BASE_QT_DIR=~/Qt/5.15.2/clang_64
# Executables # Executables
QMAKE=$BASE_QT_DIR/bin/qmake QMAKE=$BASE_QT_DIR/bin/qmake
MACDEPLOYQT=$BASE_QT_DIR/bin/macdeployqt MACDEPLOYQT=$BASE_QT_DIR/bin/macdeployqt
@ -99,7 +99,7 @@ function addImporter {
rm MakeFile* rm MakeFile*
rm -rf release rm -rf release
rm -rf debug rm -rf debug
$QMAKE ${importerName}.pro $QMAKE ${importerName}.pro -spec macx-clang
make -j4 release make -j4 release
$MACDEPLOYQT ${importerName}.app $MACDEPLOYQT ${importerName}.app
cd - cd -
@ -143,9 +143,9 @@ notify "Generating Makefile ..."
if [ "$1" == "1010" ]; then if [ "$1" == "1010" ]; then
QMAKE_CMD="$QMAKE \"DEFINES+=OS_NEWER_THAN_OR_EQUAL_TO_1010\" $APPLICATION_NAME.pro -spec macx-g++" QMAKE_CMD="$QMAKE \"DEFINES+=OS_NEWER_THAN_OR_EQUAL_TO_1010\" $APPLICATION_NAME.pro -spec macx-clang"
else else
QMAKE_CMD="$QMAKE $APPLICATION_NAME.pro -spec macx-g++" QMAKE_CMD="$QMAKE $APPLICATION_NAME.pro -spec macx-clang"
fi fi
$QMAKE_CMD $QMAKE_CMD
@ -192,7 +192,7 @@ rm -f "$APP/Contents/Resources/empty.lproj"
# set various version infomration in Info.plist # set various version infomration in Info.plist
$PLISTBUDDY -c "Set :CFBundleVersion $VERSION" "$INFO_PLIST" $PLISTBUDDY -c "Set :CFBundleVersion $VERSION" "$INFO_PLIST"
$PLISTBUDDY -c "Set :CFBundleShortVersionString $VERSION" "$INFO_PLIST" $PLISTBUDDY -c "Set :CFBundleShortVersionString $VERSION" "$INFO_PLIST"
$PLISTBUDDY -c "Set :CFBundleGetInfoString $APPLICATION_NAME" "$INFO_PLIST" $PLISTBUDDY -c "Set :CFBundleGetInfoString $VERSION" "$INFO_PLIST"
# bundle Qt Frameworks into the app bundle # bundle Qt Frameworks into the app bundle
notify "Bulding frameworks ..." notify "Bulding frameworks ..."
@ -200,32 +200,6 @@ cd "`pwd`/build/macx/release/product/"
$MACDEPLOYQT "`pwd`/$APPLICATION_NAME.app" $MACDEPLOYQT "`pwd`/$APPLICATION_NAME.app"
cd - cd -
# make sure libs installed via homebrew 2.0 refer to in-app libs
notify "relinking libs ..."
# libavformat
install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavcodec.58.dylib @executable_path/../Frameworks/libavcodec.58.dylib
install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib
install_name_tool "$APP/Contents/Frameworks/libavformat.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib
# libavcodec
install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libswresample.3.dylib @executable_path/../Frameworks/libswresample.3.dylib
install_name_tool "$APP/Contents/Frameworks/libavcodec.58.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib
#libswresample
install_name_tool "$APP/Contents/Frameworks/libswresample.3.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib
#libswscale
install_name_tool "$APP/Contents/Frameworks/libswscale.5.dylib" -change /usr/local/Cellar/ffmpeg/4.3.1_1/lib/libavutil.56.dylib @executable_path/../Frameworks/libavutil.56.dylib
# libhogweed
install_name_tool "$APP/Contents/Frameworks/libhogweed.6.dylib" -change /usr/local/Cellar/nettle/3.6/lib/libnettle.8.dylib @executable_path/../Frameworks/libnettle.8.dylib
# libssl
install_name_tool "$APP/Contents/Frameworks/libssl.1.1.dylib" -change /usr/local/Cellar/openssl@1.1/1.1.1h/lib/libcrypto.1.1.dylib @executable_path/../Frameworks/libcrypto.1.1.dylib
# libvorbis
install_name_tool "$APP/Contents/Frameworks/libvorbisenc.2.dylib" -change /usr/local/Cellar/libvorbis/1.3.6/lib/libvorbis.0.dylib @executable_path/../Frameworks/libvorbis.0.dylib
notify "Extracting debug information ..." notify "Extracting debug information ..."
$DSYMUTIL "$APP/Contents/MacOS/$APPLICATION_NAME" -o "$DSYM" $DSYMUTIL "$APP/Contents/MacOS/$APPLICATION_NAME" -o "$DSYM"
$STRIP -S "$APP/Contents/MacOS/$APPLICATION_NAME" $STRIP -S "$APP/Contents/MacOS/$APPLICATION_NAME"

@ -378,5 +378,12 @@
<file>images/stylusPalette/pen.svg</file> <file>images/stylusPalette/pen.svg</file>
<file>images/stylusPalette/penOn.svg</file> <file>images/stylusPalette/penOn.svg</file>
<file>images/stylusPalette/penOnArrow.svg</file> <file>images/stylusPalette/penOnArrow.svg</file>
<file>images/trash-my-documents.png</file>
<file>images/trash-empty.png</file>
<file>images/trash-folder.png</file>
<file>images/trash-delete-document.png</file>
<file>images/trash-delete-folder.png</file>
<file>images/trash-document.png</file>
<file>images/trash-document-page.png</file>
</qresource> </qresource>
</RCC> </RCC>

@ -124,6 +124,8 @@ RefreshRateInFramePerSecond=2
[PDF] [PDF]
enableQualityLossToIncreaseZoomPerfs=true enableQualityLossToIncreaseZoomPerfs=true
ExportBackgroundGrid=false
ExportBackgroundColor=false
Margin=20 Margin=20
PageFormat=A4 PageFormat=A4
Resolution=300 Resolution=300
@ -147,11 +149,8 @@ ReplyPlusMaxKeypads=100
ReplyWWSerialPort=3 ReplyWWSerialPort=3
[Web] [Web]
AddBookmarkURL="http://www.myuniboard.com/bookmarks/save/?url="
BookmarksPage=http://www.myuniboard.com
HistoryLimit=15 HistoryLimit=15
Homepage=http://www.openboard.ch Homepage=http://www.openboard.ch
ShowAddBookmarkButton=true
ShowPageImediatelyOnMirroredScreen=false ShowPageImediatelyOnMirroredScreen=false
UseExternalBrowser=false UseExternalBrowser=false

@ -1497,16 +1497,16 @@
<string>Configure Podcast Recording</string> <string>Configure Podcast Recording</string>
</property> </property>
</action> </action>
<action name="actionWebTrapFlash"> <action name="actionCaptureWebContent">
<property name="icon"> <property name="icon">
<iconset resource="../OpenBoard.qrc"> <iconset resource="../OpenBoard.qrc">
<normaloff>:/images/toolbar/addToolToLibrary.png</normaloff>:/images/toolbar/addToolToLibrary.png</iconset> <normaloff>:/images/toolbar/addToolToLibrary.png</normaloff>:/images/toolbar/addToolToLibrary.png</iconset>
</property> </property>
<property name="text"> <property name="text">
<string>Flash Trap</string> <string>Capture Web Content</string>
</property> </property>
<property name="toolTip"> <property name="toolTip">
<string>Trap Flash Content</string> <string>Capture Web Content</string>
</property> </property>
</action> </action>
<action name="actionWebTrap"> <action name="actionWebTrap">

@ -19,7 +19,7 @@
<item> <item>
<widget class="QLabel" name="selectFlashLabel"> <widget class="QLabel" name="selectFlashLabel">
<property name="text"> <property name="text">
<string>Select a flash to trap</string> <string>Select a content to capture</string>
</property> </property>
</widget> </widget>
</item> </item>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>قلاش تراب</translation> <translation type="vanished">قلاش تراب</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>محتوى فلاش تراب</translation> <translation type="vanished">محتوى فلاش تراب</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>هل تريدون حقا إزالة صفحة واحدة من الوثيقة &apos;%0&apos; المختارة؟</translation> <translation>هل تريدون حقا إزالة صفحة واحدة من الوثيقة &apos;%0&apos; المختارة؟</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>بودكاست</translation> <translation>بودكاست</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1235,6 +1251,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1285,6 +1305,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>صفحة %0</translation> <translation>صفحة %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1985,6 +2009,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2148,6 +2176,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>1 % صور مصغرة مولّدة</translation> <translation>1 % صور مصغرة مولّدة</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2924,7 +2956,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>اختيار فلاش للامساك به</translation> <translation type="vanished">اختيار فلاش للامساك به</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2938,5 +2970,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>إنشاء تطبيق</translation> <translation>إنشاء تطبيق</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Инструмент за Flash съдържание</translation> <translation type="vanished">Инструмент за Flash съдържание</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Съдържание на Flash</translation> <translation type="vanished">Съдържание на Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Сигурни ли сте ,че искате да премахнете 1 страница от избрания документ &apos;%0&apos;?</translation> <translation>Сигурни ли сте ,че искате да премахнете 1 страница от избрания документ &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Подкаст</translation> <translation>Подкаст</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Страница %0</translation> <translation>Страница %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1964,6 +1988,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2127,6 +2155,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 икони са създадени ...</translation> <translation>%1 икони са създадени ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Избери флаш , който ще използваш</translation> <translation type="vanished">Избери флаш , който ще използваш</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Създаване на приложение</translation> <translation>Създаване на приложение</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -729,11 +729,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Captura d&apos;objectes Flash</translation> <translation type="vanished">Captura d&apos;objectes Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Captura un objecte Flash</translation> <translation type="vanished">Captura un objecte Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Esteu segur que voleu eliminar 1 pàgina del document seleccionat &apos;%0&apos;?</translation> <translation>Esteu segur que voleu eliminar 1 pàgina del document seleccionat &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Pàgina %0</translation> <translation>Pàgina %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1970,6 +1994,10 @@ Voleu ignorar aquests errors per a aquest amfitrió?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2126,6 +2154,10 @@ Voleu ignorar aquests errors per a aquest amfitrió?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>S&apos;han generat %1 miniatures...</translation> <translation>S&apos;han generat %1 miniatures...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Seleccioneu l&apos;objecte Flash a capturar</translation> <translation type="vanished">Seleccioneu l&apos;objecte Flash a capturar</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Crea una aplicació</translation> <translation>Crea una aplicació</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -374,7 +374,7 @@
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Přenést obsah ve Flashi</translation> <translation type="vanished">Přenést obsah ve Flashi</translation>
</message> </message>
<message> <message>
<source>Import</source> <source>Import</source>
@ -562,7 +562,7 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Přenést Flash</translation> <translation type="vanished">Přenést Flash</translation>
</message> </message>
<message> <message>
<source>Window Capture</source> <source>Window Capture</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -897,6 +901,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Opravdu chcete odstranit 1 stránku z vybraného dokumentu &apos;%0&apos;?</translation> <translation>Opravdu chcete odstranit 1 stránku z vybraného dokumentu &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Page Size</source> <source>Page Size</source>
<translation>Velikost stránky</translation> <translation>Velikost stránky</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1229,6 +1245,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1279,6 +1299,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Stránka %0</translation> <translation>Stránka %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1969,6 +1993,10 @@ Chcete ignorovat tyto chyby na tomto serveru?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2132,6 +2160,10 @@ Chcete ignorovat tyto chyby na tomto serveru?</translation>
<source>Generating preview thumbnails ...</source> <source>Generating preview thumbnails ...</source>
<translation>Vytváří se miniatury obrázků ...</translation> <translation>Vytváří se miniatury obrázků ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2910,7 +2942,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Vyberte flash, který chcete přenést</translation> <translation type="vanished">Vyberte flash, který chcete přenést</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2924,5 +2956,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Vytvořit aplikaci</translation> <translation>Vytvořit aplikaci</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Flash Trap</translation> <translation type="vanished">Flash Trap</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Opsaml Flash-indhold</translation> <translation type="vanished">Opsaml Flash-indhold</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Er du sikker , at du vil fjerne 1 side fra det valgte dokument&apos;%0&apos;?</translation> <translation>Er du sikker , at du vil fjerne 1 side fra det valgte dokument&apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Side %0</translation> <translation>Side %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1970,6 +1994,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2133,6 +2161,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 miniaturebilleder genereret...</translation> <translation>%1 miniaturebilleder genereret...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2907,7 +2939,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Vælg en flash der skal opsamles</translation> <translation type="vanished">Vælg en flash der skal opsamles</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2921,5 +2953,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Opret applikation</translation> <translation>Opret applikation</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Einblendung einfangen</translation> <translation type="vanished">Einblendung einfangen</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Eingeblendeten Inhalt einfangen</translation> <translation type="vanished">Eingeblendeten Inhalt einfangen</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>Gitter-Zwischenlinien zeichnen</translation> <translation>Gitter-Zwischenlinien zeichnen</translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation>Webinhalte erfassen</translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Wollen Sie wirklich die ausgewählte Seite des Dokuments &apos;%0&apos; entfernen?</translation> <translation>Wollen Sie wirklich die ausgewählte Seite des Dokuments &apos;%0&apos; entfernen?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation>Laden der Szene (%1/%2)</translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation>Verschieben von zwischengespeicherten Szenen (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation>Ihre UBX-Datei kann nicht direkt geöffnet werden. Bitte importieren Sie die Datei im Dokumentenmodus</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1242,6 +1258,10 @@
<source>Empty My Documents</source> <source>Empty My Documents</source>
<translation type="vanished">Eigene Dokumente leeren</translation> <translation type="vanished">Eigene Dokumente leeren</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Aktualisieren der Vorschauen im Dokumentenmodus (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1292,6 +1312,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Seite %0</translation> <translation>Seite %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Erstellen von Voransichten des Tabellenmodus (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -2028,6 +2052,10 @@ Möchten Sie diese Fehler für diesen Computer ignorieren?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>Openboard hat den Zugang zum Dokumentenarchiv &apos;%1&apos; verloren. Die Anwendung muss leider beendet werden, um Datenkorruption zu vermeiden. Der Verlust kürzlich vorgenommener Änderungen ist möglich.</translation> <translation>Openboard hat den Zugang zum Dokumentenarchiv &apos;%1&apos; verloren. Die Anwendung muss leider beendet werden, um Datenkorruption zu vermeiden. Der Verlust kürzlich vorgenommener Änderungen ist möglich.</translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation>Aktualisieren der aktuellen Seitennamen (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2196,6 +2224,10 @@ Möchten Sie diese Fehler für diesen Computer ignorieren?</translation>
<translation type="vanished"> <translation type="vanished">
Miniaturansicht der Seite %1 wird geladen</translation> Miniaturansicht der Seite %1 wird geladen</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Laden der Vorschau (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2978,7 +3010,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Wählen Sie eine Einblendung, die festgehalten werden soll</translation> <translation type="vanished">Wählen Sie eine Einblendung, die festgehalten werden soll</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2992,5 +3024,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Anwendung erstellen</translation> <translation>Anwendung erstellen</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation>Einen zu erfassenden Inhalt auswählen</translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Λήψη αντικειμένου flash</translation> <translation type="vanished">Λήψη αντικειμένου flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Λήψη περιεχομένου ενός αντικειμένου flash</translation> <translation type="vanished">Λήψη περιεχομένου ενός αντικειμένου flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Είστε βέβαιος ότι θέλετε να αφαιρέσετε μια σελίδα από το επιλεγμένο έγγραφο &apos;%0&apos;?</translation> <translation>Είστε βέβαιος ότι θέλετε να αφαιρέσετε μια σελίδα από το επιλεγμένο έγγραφο &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Βίντεο</translation> <translation>Βίντεο</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Σελίδα %0</translation> <translation>Σελίδα %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1963,6 +1987,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2126,6 +2154,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 μικρογραφίες δημιουργήθηκαν...</translation> <translation>%1 μικρογραφίες δημιουργήθηκαν...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Επιλογή αντικειμένου flash για λήψη</translation> <translation type="vanished">Επιλογή αντικειμένου flash για λήψη</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Δημιουργία εφαρμογής</translation> <translation>Δημιουργία εφαρμογής</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -703,14 +703,6 @@
<source>Configure Podcast Recording</source> <source>Configure Podcast Recording</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flash Trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -831,6 +823,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -888,6 +884,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -899,6 +903,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1166,6 +1174,10 @@
<source>Empty</source> <source>Empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1216,6 +1228,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1845,6 +1861,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -1974,6 +1994,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2718,10 +2742,6 @@ p, li { white-space: pre-wrap; }
<source>Trap flash</source> <source>Trap flash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Select a flash to trap</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2734,5 +2754,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -703,14 +703,6 @@
<source>Configure Podcast Recording</source> <source>Configure Podcast Recording</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Flash Trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -831,6 +823,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -888,6 +884,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -899,6 +903,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1166,6 +1174,10 @@
<source>Empty</source> <source>Empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1216,6 +1228,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1845,6 +1861,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -1974,6 +1994,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2718,10 +2742,6 @@ p, li { white-space: pre-wrap; }
<source>Trap flash</source> <source>Trap flash</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Select a flash to trap</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -2734,5 +2754,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Captura de elemento Flash</translation> <translation type="vanished">Captura de elemento Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Capturar contenido Flash</translation> <translation type="vanished">Capturar contenido Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>¿Está seguro de que quiere eliminar 1 página del documento seleccionado.&apos;%0?</translation> <translation>¿Está seguro de que quiere eliminar 1 página del documento seleccionado.&apos;%0?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source> <source>Title page</source>
<translation>Página de título</translation> <translation>Página de título</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Página %0</translation> <translation>Página %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1979,6 +2003,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard perdió el acceso al repositorio de documentos &apos;%1&apos;. Desafortunadamente, la aplicación debe cerrarse para evitar la corrrupción de datos. También se pueden perder los últimos cambios. </translation> <translation>OpenBoard perdió el acceso al repositorio de documentos &apos;%1&apos;. Desafortunadamente, la aplicación debe cerrarse para evitar la corrrupción de datos. También se pueden perder los últimos cambios. </translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2146,6 +2174,10 @@ Do you want to ignore these errors for this host?</source>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">cargando miniaturas de la página %1</translation> <translation type="vanished">cargando miniaturas de la página %1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2924,7 +2956,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Seleccionar un flash para capturar</translation> <translation type="vanished">Seleccionar un flash para capturar</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2938,5 +2970,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Crear aplicación</translation> <translation>Crear aplicación</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -181,11 +181,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Capturer du contenu Flash</translation> <translation type="vanished">Capturer du contenu Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Capturer du contenu Flash</translation> <translation type="vanished">Capturer du contenu Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>Dessiner des lignes intermédiaires</translation> <translation>Dessiner des lignes intermédiaires</translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation>Capturer du contenu web</translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -897,6 +901,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation> <translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation>Chargement de la scène (%1/%2)</translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation>Déplacement des scènes mises en cache (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation>Impossible d&apos;ouvrir un fichier UBX directement. Veuillez l&apos;importer depuis le mode Documents</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1251,6 +1267,10 @@
<source>Empty My Documents</source> <source>Empty My Documents</source>
<translation type="vanished">Vider Mes Documents</translation> <translation type="vanished">Vider Mes Documents</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Actualisation des aperçus du mode Documents (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1302,6 +1322,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Page %0</translation> <translation>Page %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Création des aperçus du mode Tableau (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -2041,6 +2065,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard a perdu l&apos;accès au répertoire des documents &apos;%1&apos;. Malheureusement, l&apos;application sera fermée afin d&apos;éviter la corruption des données. Les dernières modifications pourraient être également perdues.</translation> <translation>OpenBoard a perdu l&apos;accès au répertoire des documents &apos;%1&apos;. Malheureusement, l&apos;application sera fermée afin d&apos;éviter la corruption des données. Les dernières modifications pourraient être également perdues.</translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation>Actualisation des noms des pages en cours (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2208,6 +2236,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">Chargement aperçu page %1</translation> <translation type="vanished">Chargement aperçu page %1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Chargement de l&apos;aperçu (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2995,7 +3027,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Sélectionner un contenu Flash à capturer</translation> <translation type="vanished">Sélectionner un contenu Flash à capturer</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -3009,5 +3041,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Créer une application</translation> <translation>Créer une application</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation>Sélectionner un contenu à capturer</translation>
</message>
</context> </context>
</TS> </TS>

@ -181,11 +181,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Capturer du contenu Flash</translation> <translation type="vanished">Capturer du contenu Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Capturer du contenu Flash</translation> <translation type="vanished">Capturer du contenu Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>Dessiner des lignes intermédiaires</translation> <translation>Dessiner des lignes intermédiaires</translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation>Capturer du contenu web</translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -897,6 +901,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation> <translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation>Chargement de la scène (%1/%2)</translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation>Déplacement des scènes mises en cache (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation>Impossible d&apos;ouvrir un fichier UBX directement. Veuillez l&apos;importer depuis le mode Documents</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1251,6 +1267,10 @@
<source>Empty My Documents</source> <source>Empty My Documents</source>
<translation type="vanished">Vider Mes Documents</translation> <translation type="vanished">Vider Mes Documents</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Actualisation des aperçus du mode Documents (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1302,6 +1322,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Page %0</translation> <translation>Page %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Création des aperçus du mode Tableau (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -2041,6 +2065,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard a perdu l&apos;accès au répertoire des documents &apos;%1&apos;. Malheureusement, l&apos;application sera fermée afin d&apos;éviter la corruption des données. Les dernières modifications pourraient être également perdues.</translation> <translation>OpenBoard a perdu l&apos;accès au répertoire des documents &apos;%1&apos;. Malheureusement, l&apos;application sera fermée afin d&apos;éviter la corruption des données. Les dernières modifications pourraient être également perdues.</translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation>Actualisation des noms des pages en cours (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2208,6 +2236,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">Chargement aperçu page %1</translation> <translation type="vanished">Chargement aperçu page %1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Chargement de l&apos;aperçu (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2995,7 +3027,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Sélectionner un contenu Flash à capturer</translation> <translation type="vanished">Sélectionner un contenu Flash à capturer</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -3009,5 +3041,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Créer une application</translation> <translation>Créer une application</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation>Sélectionner un contenu à capturer</translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Captura de elemento Flash</translation> <translation type="vanished">Captura de elemento Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Capturar contido Flash</translation> <translation type="vanished">Capturar contido Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>¿Está seguro de que quere eliminar 1 páxina do documento seleccionado.&apos;%0?</translation> <translation>¿Está seguro de que quere eliminar 1 páxina do documento seleccionado.&apos;%0?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source> <source>Title page</source>
<translation>Páxina de título</translation> <translation>Páxina de título</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Páxina %0</translation> <translation>Páxina %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1979,6 +2003,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard perdeu o acceso ao repositorio de documentos &apos;%1&apos;. Desafortunadamente, a aplicación debe pecharse para evitar a corrrupción de datos. Tamén se poden perder os últimos cambios. </translation> <translation>OpenBoard perdeu o acceso ao repositorio de documentos &apos;%1&apos;. Desafortunadamente, a aplicación debe pecharse para evitar a corrrupción de datos. Tamén se poden perder os últimos cambios. </translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2146,6 +2174,10 @@ Do you want to ignore these errors for this host?</source>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">cargando miniaturas da páxina %1</translation> <translation type="vanished">cargando miniaturas da páxina %1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2901,7 +2933,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Seleccionar un flash para capturar</translation> <translation type="vanished">Seleccionar un flash para capturar</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2915,5 +2947,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Crear aplicación</translation> <translation>Crear aplicación</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -50,7 +50,7 @@
<name>IntranetPodcastPublishingDialog</name> <name>IntranetPodcastPublishingDialog</name>
<message> <message>
<source>Publish Podcast to YouTube</source> <source>Publish Podcast to YouTube</source>
<translation>Podcast publikálása a YouTubera</translation> <translation>Podcast közzététele a YouTube-on</translation>
</message> </message>
<message> <message>
<source>Title</source> <source>Title</source>
@ -441,7 +441,7 @@
</message> </message>
<message> <message>
<source>Reload Current Page</source> <source>Reload Current Page</source>
<translation>Aktuális oldal újratöltése</translation> <translation>Jelenlegi oldal újratöltése</translation>
</message> </message>
<message> <message>
<source>Load Home Page</source> <source>Load Home Page</source>
@ -641,11 +641,11 @@
</message> </message>
<message> <message>
<source>Add To New Page</source> <source>Add To New Page</source>
<translation>Hozzáadás új oldalhoz</translation> <translation>Hozzáadás az új oldalhoz</translation>
</message> </message>
<message> <message>
<source>Add Item To New Page</source> <source>Add Item To New Page</source>
<translation>Tartalom hozzáadása új oldalhoz</translation> <translation>Elem hozzáadása az új oldalhoz</translation>
</message> </message>
<message> <message>
<source>Add To Library</source> <source>Add To Library</source>
@ -653,7 +653,7 @@
</message> </message>
<message> <message>
<source>Add Item To Library</source> <source>Add Item To Library</source>
<translation>Tartalom hozzáadása a könyvtárhoz</translation> <translation>Elem hozzáadása a könyvtárhoz</translation>
</message> </message>
<message> <message>
<source>Pages</source> <source>Pages</source>
@ -701,11 +701,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Flash rögzítése</translation> <translation type="vanished">Flash rögzítése</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Flash tartalom rögzítése</translation> <translation type="vanished">Flash tartalom rögzítése</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -813,30 +813,34 @@
</message> </message>
<message> <message>
<source>Small Eraser</source> <source>Small Eraser</source>
<translation type="unfinished"></translation> <translation>Kis radír</translation>
</message> </message>
<message> <message>
<source>Color 1</source> <source>Color 1</source>
<translation type="unfinished"></translation> <translation>1. szín</translation>
</message> </message>
<message> <message>
<source>Color 2</source> <source>Color 2</source>
<translation type="unfinished"></translation> <translation>2. szín</translation>
</message> </message>
<message> <message>
<source>Color 3</source> <source>Color 3</source>
<translation type="unfinished"></translation> <translation>3. szín</translation>
</message> </message>
<message> <message>
<source>Color 4</source> <source>Color 4</source>
<translation type="unfinished"></translation> <translation>4. szín</translation>
</message> </message>
<message> <message>
<source>Color 5</source> <source>Color 5</source>
<translation type="unfinished"></translation> <translation>5. szín</translation>
</message> </message>
<message> <message>
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>Köztes rácsvonalak rajzolása</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -886,14 +890,22 @@
</message> </message>
<message> <message>
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Biztosan el akarsz távolítani 1 oldalt a kiválasztott dokumentumból &apos;%0&apos;?</translation> <translation>Biztosan szeretné eltávolítani 1 oldalt a kijelölt %0-dokumentumból?</translation>
</message> </message>
<message> <message>
<source>Element ID = </source> <source>Element ID = </source>
<translation type="unfinished"></translation> <translation>Elem azonosítója = </translation>
</message> </message>
<message> <message>
<source>Content is not supported in destination format.</source> <source>Content is not supported in destination format.</source>
<translation>A tartalom nem támogatott célformátumban.</translation>
</message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -932,7 +948,7 @@
</message> </message>
<message> <message>
<source>Board drawing...</source> <source>Board drawing...</source>
<translation type="vanished">Tábla rajzolása...</translation> <translation type="vanished">Tábla rajzolása</translation>
</message> </message>
</context> </context>
<context> <context>
@ -943,7 +959,7 @@
</message> </message>
<message> <message>
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation>Köztes rácsvonalak rajzolása</translation>
</message> </message>
</context> </context>
<context> <context>
@ -990,11 +1006,11 @@
</message> </message>
<message> <message>
<source>Saving document...</source> <source>Saving document...</source>
<translation>Dokumentum mentése...</translation> <translation>Dokumentum mentése</translation>
</message> </message>
<message> <message>
<source>Document has just been saved...</source> <source>Document has just been saved...</source>
<translation>Dokumentum éppen most mentve...</translation> <translation>Dokumentum éppen most mentve</translation>
</message> </message>
<message> <message>
<source>Deleting page %1</source> <source>Deleting page %1</source>
@ -1002,7 +1018,7 @@
</message> </message>
<message> <message>
<source>Color</source> <source>Color</source>
<translation type="unfinished">Szín</translation> <translation>Szín</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1020,7 +1036,7 @@
<name>UBBoardThumbnailsView</name> <name>UBBoardThumbnailsView</name>
<message> <message>
<source>Loading page (%1/%2)</source> <source>Loading page (%1/%2)</source>
<translation>Oldalak betöltése (%1/%2)</translation> <translation>Oldalak betöltése: %1/%2</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1113,23 +1129,23 @@
</message> </message>
<message> <message>
<source>Are you sure you want to remove the document &apos;%1&apos;?</source> <source>Are you sure you want to remove the document &apos;%1&apos;?</source>
<translation type="vanished">Biztosan szeretné eltávolítani a &apos;%1&apos; dokumentumot?</translation> <translation type="vanished">Biztosan szeretné eltávolítani a(z) %1 dokumentumot?</translation>
</message> </message>
<message> <message>
<source>Empty Trash</source> <source>Empty Trash</source>
<translation type="vanished">Kuka kiürítése</translation> <translation type="vanished">Törölt elemek kiürítése</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to empty trash?</source> <source>Are you sure you want to empty trash?</source>
<translation type="vanished">Biztosan szeretné a kukát üríteni?</translation> <translation type="vanished">Biztosan szeretné kiüríteni a törölt elemeket?</translation>
</message> </message>
<message> <message>
<source>Emptying trash</source> <source>Emptying trash</source>
<translation type="vanished">Kuka kiürítése folyamatban</translation> <translation type="vanished">Törölt elemek kiürítése folyamatban van</translation>
</message> </message>
<message> <message>
<source>Emptied trash</source> <source>Emptied trash</source>
<translation type="vanished">Kuka kiürítve</translation> <translation type="vanished">Törölt elemek kiürítve</translation>
</message> </message>
<message> <message>
<source>Remove Folder</source> <source>Remove Folder</source>
@ -1137,7 +1153,7 @@
</message> </message>
<message> <message>
<source>Are you sure you want to remove the folder &apos;%1&apos; and all its content?</source> <source>Are you sure you want to remove the folder &apos;%1&apos; and all its content?</source>
<translation type="vanished">Biztosan eltávolítja a(z) &apos;%1&apos; mappát és minden tartalmát?</translation> <translation type="vanished">Biztosan szeretné eltávolítani a(z) %1 mappát és az összes tartalmát?</translation>
</message> </message>
<message> <message>
<source>No document selected!</source> <source>No document selected!</source>
@ -1149,7 +1165,7 @@
</message> </message>
<message> <message>
<source>Importing file %1...</source> <source>Importing file %1...</source>
<translation>%1 fájl importálása...</translation> <translation>%1 fájl importálása</translation>
</message> </message>
<message> <message>
<source>Failed to import file ... </source> <source>Failed to import file ... </source>
@ -1169,7 +1185,7 @@
</message> </message>
<message> <message>
<source>Trash</source> <source>Trash</source>
<translation>Kuka</translation> <translation>Törölt elemek</translation>
</message> </message>
<message> <message>
<source>Open Document</source> <source>Open Document</source>
@ -1187,11 +1203,9 @@
<source>Selection does not contain any image files!</source> <source>Selection does not contain any image files!</source>
<translation>A kiválasztásban nincs egyetlen kép sem!</translation> <translation>A kiválasztásban nincs egyetlen kép sem!</translation>
</message> </message>
<message numerus="yes"> <message>
<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="vanished"> <translation type="vanished">Biztosan szeretné eltávolítani %n oldalt a kiválasztott %1 dokumentumból?</translation>
<numerusform>Biztosan szeretne eltávolítani %n oldalt a kiválasztott &apos;%1&apos; dokumentumból?</numerusform>
</translation>
</message> </message>
<message> <message>
<source>Folder does not contain any image files</source> <source>Folder does not contain any image files</source>
@ -1203,11 +1217,11 @@
</message> </message>
<message> <message>
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source> <source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation>A &apos;%1&apos; dokumentum az OpenBoard újabb verziójával (%2) készült. Megnyitásával néhány információ elveszhet. Szeretné folytatni?</translation> <translation>A(z) %1 dokumentum az OpenBoard újabb verziójával (%2) készült. Megnyitásával néhány információ elveszhet. Szeretné folytatni?</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to remove all selected documents?</source> <source>Are you sure you want to remove all selected documents?</source>
<translation type="vanished">Biztosan szeretne eltávolítani minden kiválasztott dokumentumot?</translation> <translation type="vanished">Biztosan szeretné eltávolítani minden kijelölt dokumentumot?</translation>
</message> </message>
<message> <message>
<source>Remove multiple documents</source> <source>Remove multiple documents</source>
@ -1217,19 +1231,23 @@
<source>duplicated %1 page</source> <source>duplicated %1 page</source>
<comment>duplicated %1 pages</comment> <comment>duplicated %1 pages</comment>
<translation type="unfinished"> <translation type="unfinished">
<numerusform></numerusform> <numerusform>%1 oldal másolata</numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<source>Remove Item</source> <source>Remove Item</source>
<translation type="unfinished"></translation> <translation>Elem eltávolítása</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to remove the selected item(s) ?</source> <source>Are you sure you want to remove the selected item(s) ?</source>
<translation type="unfinished"></translation> <translation>Biztosan szeretné eltávolítani a kijelölt elem(ek)et?</translation>
</message> </message>
<message> <message>
<source>Title page</source> <source>Title page</source>
<translation>Címlap</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1261,7 +1279,7 @@
</message> </message>
<message> <message>
<source>Inserting page %1 of %2</source> <source>Inserting page %1 of %2</source>
<translation>%2 / %1 oldal beszúrása</translation> <translation>Oldal beszúrása: %1/%2</translation>
</message> </message>
<message> <message>
<source>Import successful.</source> <source>Import successful.</source>
@ -1280,6 +1298,10 @@
<name>UBDocumentNavigator</name> <name>UBDocumentNavigator</name>
<message> <message>
<source>Page %0</source> <source>Page %0</source>
<translation>%0. oldal</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1287,32 +1309,34 @@
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
<message> <message>
<source>Accept</source> <source>Accept</source>
<translation type="unfinished">Elfogad</translation> <translation>Elfogadás</translation>
</message> </message>
<message> <message>
<source>Replace</source> <source>Replace</source>
<translation type="unfinished"></translation> <translation>Csere</translation>
</message> </message>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Mégse</translation> <translation>Mégse</translation>
</message> </message>
<message> <message>
<source>The name %1 is allready used. <source>The name %1 is allready used.
Keeping this name will replace the document. Keeping this name will replace the document.
Providing a new name will create a new document.</source> Providing a new name will create a new document.</source>
<translation type="unfinished"></translation> <translation>A(z) %1 név már használatban van.
Ennek a névnek a megtartása helyettesíti a dokumentumot.
Új név megadása új dokumentumot hoz létre.</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBDocumentTreeModel</name> <name>UBDocumentTreeModel</name>
<message> <message>
<source>My documents</source> <source>My documents</source>
<translation type="unfinished"></translation> <translation>Saját dokumentumok</translation>
</message> </message>
<message> <message>
<source>Trash</source> <source>Trash</source>
<translation type="unfinished">Kuka</translation> <translation>Törölt elemek</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%1 pages copied</source> <source>%1 pages copied</source>
@ -1325,7 +1349,7 @@ Providing a new name will create a new document.</source>
<name>UBDocumentTreeView</name> <name>UBDocumentTreeView</name>
<message> <message>
<source>Copying page %1/%2</source> <source>Copying page %1/%2</source>
<translation type="unfinished">%1/%2 oldal másolása</translation> <translation>Oldal másolása: %1/%2</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%1 pages copied</source> <source>%1 pages copied</source>
@ -1335,11 +1359,11 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Remove Item</source> <source>Remove Item</source>
<translation type="unfinished"></translation> <translation>Elem eltávolítása</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to remove the selected item(s) ?</source> <source>Are you sure you want to remove the selected item(s) ?</source>
<translation type="unfinished"></translation> <translation>Biztosan szeretné eltávolítani a kijelölt elem(ek)et?</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1350,13 +1374,11 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Copying page %1/%2</source> <source>Copying page %1/%2</source>
<translation type="vanished">%1/%2 oldal másolása</translation> <translation type="vanished">Oldal másolása: %1/%2</translation>
</message> </message>
<message numerus="yes"> <message>
<source>%1 pages copied</source> <source>%1 pages copied</source>
<translation type="vanished"> <translation type="vanished">%1 oldal másolva</translation>
<numerusform>%1 oldal másolva</numerusform>
</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1374,7 +1396,7 @@ Providing a new name will create a new document.</source>
<name>UBDraggableThumbnail</name> <name>UBDraggableThumbnail</name>
<message> <message>
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished"></translation> <translation>%0. oldal</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1392,7 +1414,7 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation>Dokumentum exportálása...</translation> <translation>Dokumentum exportálása</translation>
</message> </message>
<message> <message>
<source>Export failed</source> <source>Export failed</source>
@ -1415,23 +1437,23 @@ Providing a new name will create a new document.</source>
<name>UBExportCFF</name> <name>UBExportCFF</name>
<message> <message>
<source>Export to IWB</source> <source>Export to IWB</source>
<translation type="unfinished"></translation> <translation>Exportálás IWB-formátumként</translation>
</message> </message>
<message> <message>
<source>Export as IWB File</source> <source>Export as IWB File</source>
<translation type="unfinished"></translation> <translation>Exportálás IWB-fájlformátumként</translation>
</message> </message>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation type="unfinished">Dokumentum exportálása...</translation> <translation>Dokumentum exportálása</translation>
</message> </message>
<message> <message>
<source>Export successful.</source> <source>Export successful.</source>
<translation type="unfinished">Exportálás sikeres.</translation> <translation>Az exportálás sikeres.</translation>
</message> </message>
<message> <message>
<source>Export failed.</source> <source>Export failed.</source>
<translation type="unfinished">Exportálás sikertelen.</translation> <translation>Az exportálás sikertelen.</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1446,7 +1468,7 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Exporting %1 %2 of %3</source> <source>Exporting %1 %2 of %3</source>
<translation>%1 exportálása %2/%3</translation> <translation>%1 exportálása: %2/%3</translation>
</message> </message>
<message> <message>
<source>Export to OpenBoard Format</source> <source>Export to OpenBoard Format</source>
@ -1457,27 +1479,27 @@ Providing a new name will create a new document.</source>
<name>UBExportDocumentSetAdaptor</name> <name>UBExportDocumentSetAdaptor</name>
<message> <message>
<source>Failed to export...</source> <source>Failed to export...</source>
<translation type="unfinished"></translation> <translation>Exportálás sikertelen</translation>
</message> </message>
<message> <message>
<source>Export as UBX File</source> <source>Export as UBX File</source>
<translation type="unfinished"></translation> <translation>Exportálás UBX-fájlként</translation>
</message> </message>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation type="unfinished">Dokumentum exportálása...</translation> <translation>Dokumentum exportálása</translation>
</message> </message>
<message> <message>
<source>Export successful.</source> <source>Export successful.</source>
<translation type="unfinished">Exportálás sikeres.</translation> <translation>Exportálás sikeres.</translation>
</message> </message>
<message> <message>
<source>Export failed.</source> <source>Export failed.</source>
<translation type="unfinished">Exportálás sikertelen.</translation> <translation>Exportálás sikertelen.</translation>
</message> </message>
<message> <message>
<source>Export to OpenBoard UBX Format</source> <source>Export to OpenBoard UBX Format</source>
<translation type="unfinished"></translation> <translation>Exportálás OpenBoard UBX-formátumként</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1499,7 +1521,7 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Exporting page %1 of %2</source> <source>Exporting page %1 of %2</source>
<translation>%2 / %1 oldal exportálása</translation> <translation>Oldal exportálása: %1/%2</translation>
</message> </message>
<message> <message>
<source>Export to PDF</source> <source>Export to PDF</source>
@ -1518,7 +1540,7 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation>Dokumentum exportálása...</translation> <translation>Dokumentum exportálása</translation>
</message> </message>
<message> <message>
<source>Export successful.</source> <source>Export successful.</source>
@ -1627,14 +1649,14 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Trash</source> <source>Trash</source>
<translation>Kuka</translation> <translation>Törölt elemek</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBFeaturesNewFolderDialog</name> <name>UBFeaturesNewFolderDialog</name>
<message> <message>
<source>Accept</source> <source>Accept</source>
<translation>Elfogad</translation> <translation>Elfogadás</translation>
</message> </message>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
@ -1705,7 +1727,7 @@ Providing a new name will create a new document.</source>
<name>UBGraphicsTextItem</name> <name>UBGraphicsTextItem</name>
<message> <message>
<source>&lt;Type Text Here&gt;</source> <source>&lt;Type Text Here&gt;</source>
<translation>&lt;Szöveg helye&gt;</translation> <translation>&lt;Adja meg a szöveget ide&gt;</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1730,7 +1752,7 @@ Providing a new name will create a new document.</source>
<name>UBGraphicsWidgetItem</name> <name>UBGraphicsWidgetItem</name>
<message> <message>
<source>Loading ...</source> <source>Loading ...</source>
<translation>Betöltés ...</translation> <translation>Betöltés folyamatban van</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1748,30 +1770,30 @@ Providing a new name will create a new document.</source>
<name>UBImportCFF</name> <name>UBImportCFF</name>
<message> <message>
<source>Common File Format (</source> <source>Common File Format (</source>
<translation type="unfinished"></translation> <translation>Közös fájlformátum (</translation>
</message> </message>
<message> <message>
<source>Importing file %1...</source> <source>Importing file %1...</source>
<translation type="unfinished">%1 fájl importálása...</translation> <translation>%1 fájl importálása</translation>
</message> </message>
<message> <message>
<source>Import of file %1 failed.</source> <source>Import of file %1 failed.</source>
<translation type="unfinished">%1 fájl importálása sikertelen.</translation> <translation>%1 fájl importálása sikertelen.</translation>
</message> </message>
<message> <message>
<source>Import successful.</source> <source>Import successful.</source>
<translation type="unfinished">Importálás sikeres.</translation> <translation>Importálás sikeres.</translation>
</message> </message>
<message> <message>
<source>Import failed.</source> <source>Import failed.</source>
<translation type="unfinished"></translation> <translation>Importálás sikertelen.</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBImportDocument</name> <name>UBImportDocument</name>
<message> <message>
<source>Importing file %1...</source> <source>Importing file %1...</source>
<translation>%1 fájl importálása...</translation> <translation>%1 fájl importálása</translation>
</message> </message>
<message> <message>
<source>Import successful.</source> <source>Import successful.</source>
@ -1790,14 +1812,14 @@ Providing a new name will create a new document.</source>
<name>UBImportDocumentSetAdaptor</name> <name>UBImportDocumentSetAdaptor</name>
<message> <message>
<source>Openboard (set of documents) (*.ubx)</source> <source>Openboard (set of documents) (*.ubx)</source>
<translation type="unfinished"></translation> <translation>OpenBoard (dokumentumkészlet) (*.ubx)</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBImportImage</name> <name>UBImportImage</name>
<message> <message>
<source>Image Format (</source> <source>Image Format (</source>
<translation>Kép formátum (</translation> <translation>Kép-formátum (</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1812,25 +1834,25 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Importing page %1 of %2</source> <source>Importing page %1 of %2</source>
<translation>%2 / %1 oldal importálása</translation> <translation>Oldal importálása: %1/%2</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBIntranetPodcastPublisher</name> <name>UBIntranetPodcastPublisher</name>
<message> <message>
<source>Error while publishing video to intranet (%1)</source> <source>Error while publishing video to intranet (%1)</source>
<translation>Hiba a videó intranetre való publikálása közben (%1)</translation> <translation>Hiba történt videó közzétételekor az intraneten (%1)</translation>
</message> </message>
<message> <message>
<source>Publishing to Intranet in progress %1 %</source> <source>Publishing to Intranet in progress %1 %</source>
<translation>Intranetre publikálás folyamatban %1 %</translation> <translation>Az intraneten való közzététel folyamatban van %1%</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBIntranetPodcastPublishingDialog</name> <name>UBIntranetPodcastPublishingDialog</name>
<message> <message>
<source>Publish</source> <source>Publish</source>
<translation>Publikálás</translation> <translation>Közzététel</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1936,14 +1958,18 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message> </message>
<message> <message>
<source>has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="vanished">elveszítette a &apos;%1&apos; dokumentum repository hozzáférését. Sajnálatosan az alkalmazásnak le kellett állnia, hogy elkerülje az adatsérülést. A legutóbbi változtatások elveszhettek.</translation> <translation type="vanished">elveszítette a(z) %1 dokumentum repository hozzáférését. Sajnálatosan az alkalmazásnak le kellett állnia, hogy elkerülje az adatsérülést. A legutóbbi változtatások elveszhettek.</translation>
</message> </message>
<message> <message>
<source>Moving page to trash folder...</source> <source>Moving page to trash folder...</source>
<translation type="vanished">Oldal áthelyezése a kukába...</translation> <translation type="vanished">Oldal áthelyezése a törölt elemek mappába</translation>
</message> </message>
<message> <message>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>Az OpenBoard elvesztette a hozzáférést a(z) %1 dokumentumtárához. Sajnos az alkalmazást le kell állítani az adatvesztés elkerülése érdekében. A legújabb változások is elveszhetnek.</translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1974,11 +2000,11 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBPodcastController</name> <name>UBPodcastController</name>
<message> <message>
<source>Failed to start encoder ...</source> <source>Failed to start encoder ...</source>
<translation>Sikertelen a kódoló indítása...</translation> <translation>Sikertelen a kódoló indítása</translation>
</message> </message>
<message> <message>
<source>No Podcast encoder available ...</source> <source>No Podcast encoder available ...</source>
<translation>Nincs elérhető podcast kódoló ...</translation> <translation>Nincs elérhető podcast kódoló</translation>
</message> </message>
<message> <message>
<source>Part %1</source> <source>Part %1</source>
@ -1986,7 +2012,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message> </message>
<message> <message>
<source>on your desktop ...</source> <source>on your desktop ...</source>
<translation>az asztalán ...</translation> <translation>az asztalán</translation>
</message> </message>
<message> <message>
<source>in folder %1</source> <source>in folder %1</source>
@ -2022,11 +2048,11 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message> </message>
<message> <message>
<source>Publish to Intranet</source> <source>Publish to Intranet</source>
<translation>Publikálás az Intranetre</translation> <translation>Közzététel az Intraneten</translation>
</message> </message>
<message> <message>
<source>Publish to Youtube</source> <source>Publish to Youtube</source>
<translation>Publikálás a YouTubera</translation> <translation>Közzététel a Youtube-on</translation>
</message> </message>
<message> <message>
<source>OpenBoard Cast</source> <source>OpenBoard Cast</source>
@ -2048,7 +2074,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBProxyLoginDlg</name> <name>UBProxyLoginDlg</name>
<message> <message>
<source>Proxy Login</source> <source>Proxy Login</source>
<translation type="vanished">Proxy belépés</translation> <translation type="vanished">Proxy bejelentkezés</translation>
</message> </message>
<message> <message>
<source>Username:</source> <source>Username:</source>
@ -2063,7 +2089,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBPublicationDlg</name> <name>UBPublicationDlg</name>
<message> <message>
<source>Publish document on the web</source> <source>Publish document on the web</source>
<translation type="vanished">Dokumentum publikálása a WEBre</translation> <translation type="vanished">Dokumentum közzététele az interneten</translation>
</message> </message>
<message> <message>
<source>Title:</source> <source>Title:</source>
@ -2075,7 +2101,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message> </message>
<message> <message>
<source>Publish</source> <source>Publish</source>
<translation type="vanished">Publikálás</translation> <translation type="vanished">Közzététel</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2103,16 +2129,20 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBThumbnailAdaptor</name> <name>UBThumbnailAdaptor</name>
<message> <message>
<source>Generating preview thumbnails ...</source> <source>Generating preview thumbnails ...</source>
<translation>Előképek létrehozása...</translation> <translation>Előképek létrehozása</translation>
</message> </message>
<message> <message>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 előkép létrehozva...</translation> <translation>%1 előkép létrehozva</translation>
</message> </message>
<message> <message>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">%1. oldal előképének betöltése</translation> <translation type="vanished">%1. oldal előképének betöltése</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2153,7 +2183,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message> </message>
<message> <message>
<source>Axes</source> <source>Axes</source>
<translation type="unfinished"></translation> <translation>Tengelyek</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2212,7 +2242,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Please wait the import process will start soon...</source> <source>Please wait the import process will start soon...</source>
<translation>Kérem várjon. Az importálási folyamat hamarosan elindul...</translation> <translation>Kérem várjon. Az importálási folyamat hamarosan elindul</translation>
</message> </message>
<message> <message>
<source>Remind me later</source> <source>Remind me later</source>
@ -2223,7 +2253,7 @@ Please reboot the application to access the updated documents.</source>
<name>UBWebPluginWidget</name> <name>UBWebPluginWidget</name>
<message> <message>
<source>Loading...</source> <source>Loading...</source>
<translation>Betöltés ...</translation> <translation>Betöltés folyamatban van</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2256,7 +2286,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Autos &amp; Vehicles</source> <source>Autos &amp; Vehicles</source>
<translation>Autók &amp; Járművek</translation> <translation>Autók és Járművek</translation>
</message> </message>
<message> <message>
<source>Music</source> <source>Music</source>
@ -2264,7 +2294,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Pets &amp; Animals</source> <source>Pets &amp; Animals</source>
<translation>Házi kedvencek @ Állatok</translation> <translation>Háziállatok és Állatok</translation>
</message> </message>
<message> <message>
<source>Sports</source> <source>Sports</source>
@ -2272,7 +2302,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Travel &amp; Events</source> <source>Travel &amp; Events</source>
<translation>Utazás &amp; Események</translation> <translation>Utazás és Események</translation>
</message> </message>
<message> <message>
<source>Gaming</source> <source>Gaming</source>
@ -2284,11 +2314,11 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>People &amp; Blogs</source> <source>People &amp; Blogs</source>
<translation>Emberek &amp; Blogok</translation> <translation>Emberek és Webes naplók</translation>
</message> </message>
<message> <message>
<source>News &amp; Politics</source> <source>News &amp; Politics</source>
<translation>Hírek &amp; Politika</translation> <translation>Hírek és Politika</translation>
</message> </message>
<message> <message>
<source>Entertainment</source> <source>Entertainment</source>
@ -2300,15 +2330,15 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Howto &amp; Style</source> <source>Howto &amp; Style</source>
<translation>Hogyan Csináld &amp; Stílus</translation> <translation>Hogyan kell és Stílus</translation>
</message> </message>
<message> <message>
<source>Nonprofits &amp; Activism</source> <source>Nonprofits &amp; Activism</source>
<translation>NonProfit &amp; Aktivisták</translation> <translation>Nonprofit szervezetek és Aktivizmus</translation>
</message> </message>
<message> <message>
<source>Science &amp; Technology</source> <source>Science &amp; Technology</source>
<translation>Tudomány &amp; Technológia</translation> <translation>Tudomány és Technológia</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2361,7 +2391,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>%1 of %2 (%3/sec) %4</source> <source>%1 of %2 (%3/sec) %4</source>
<translation>%1 / %2 (%3/mp) %4</translation> <translation>%1/%2 (%3/mp) %4</translation>
</message> </message>
<message> <message>
<source>?</source> <source>?</source>
@ -2370,7 +2400,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>%1 of %2 - Stopped</source> <source>%1 of %2 - Stopped</source>
<translation>%1 / %2 - Megállítva</translation> <translation>%1/%2 - Megállítva</translation>
</message> </message>
<message> <message>
<source>bytes</source> <source>bytes</source>
@ -2430,11 +2460,11 @@ Please reboot the application to access the updated documents.</source>
<name>WBTabBar</name> <name>WBTabBar</name>
<message> <message>
<source>New &amp;Tab</source> <source>New &amp;Tab</source>
<translation>Új fül &amp;T</translation> <translation>Új &amp;Lap</translation>
</message> </message>
<message> <message>
<source>Clone Tab</source> <source>Clone Tab</source>
<translation>Fül másolása</translation> <translation>Lap másolása</translation>
</message> </message>
<message> <message>
<source>&amp;Close Tab</source> <source>&amp;Close Tab</source>
@ -2442,15 +2472,15 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Close &amp;Other Tabs</source> <source>Close &amp;Other Tabs</source>
<translation>Többi fül bezárása &amp;O</translation> <translation>&amp;Többi lap bezárása</translation>
</message> </message>
<message> <message>
<source>Reload Tab</source> <source>Reload Tab</source>
<translation>Fül frissítése</translation> <translation>Lap újratöltése</translation>
</message> </message>
<message> <message>
<source>Reload All Tabs</source> <source>Reload All Tabs</source>
<translation>Minden fül frissítése</translation> <translation>Minden lap újratöltése</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2491,7 +2521,7 @@ Please reboot the application to access the updated documents.</source>
</message> </message>
<message> <message>
<source>Add to Current Document</source> <source>Add to Current Document</source>
<translation>Hozzaadás az aktuális dokumentumhoz</translation> <translation>Hozzaadás a jelenlegi dokumentumhoz</translation>
</message> </message>
<message> <message>
<source>PDF</source> <source>PDF</source>
@ -2517,14 +2547,14 @@ Please reboot the application to access the updated documents.</source>
<name>XPDFRenderer</name> <name>XPDFRenderer</name>
<message> <message>
<source>Processing...</source> <source>Processing...</source>
<translation type="unfinished"></translation> <translation>Feldolgozás folyamatban van</translation>
</message> </message>
</context> </context>
<context> <context>
<name>YouTubePublishingDialog</name> <name>YouTubePublishingDialog</name>
<message> <message>
<source>Publish Podcast to YouTube</source> <source>Publish Podcast to YouTube</source>
<translation>Podcast publikálása YouTubera</translation> <translation>Podcast közzététele a YouTube-on</translation>
</message> </message>
<message> <message>
<source>Title</source> <source>Title</source>
@ -2645,19 +2675,19 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Creation date</source> <source>Creation date</source>
<translation type="unfinished"></translation> <translation>Létrehozás dátuma</translation>
</message> </message>
<message> <message>
<source>Update date</source> <source>Update date</source>
<translation type="unfinished"></translation> <translation>Frissítés dátuma</translation>
</message> </message>
<message> <message>
<source>Alphabetical order</source> <source>Alphabetical order</source>
<translation type="unfinished"></translation> <translation>Rendezés betűrendben</translation>
</message> </message>
<message> <message>
<source>Sort Order</source> <source>Sort Order</source>
<translation type="unfinished"></translation> <translation>Rendezési sorrend</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2744,7 +2774,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>version : </source> <source>version : </source>
<translation>verziószám: ...</translation> <translation>verziószám: </translation>
</message> </message>
<message> <message>
<source>Licences</source> <source>Licences</source>
@ -2828,31 +2858,31 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Swap first and second view displays</source> <source>Swap first and second view displays</source>
<translation type="unfinished"></translation> <translation>Első és második kijelző megcserélése</translation>
</message> </message>
<message> <message>
<source>Documents Mode</source> <source>Documents Mode</source>
<translation type="unfinished"></translation> <translation>Dokumentum üzemmód</translation>
</message> </message>
<message> <message>
<source>Display date column on alphabetical sort</source> <source>Display date column on alphabetical sort</source>
<translation type="unfinished"></translation> <translation>Dátum oszlop megjelenítése betűrendben</translation>
</message> </message>
<message> <message>
<source>Empty trash for documents older than</source> <source>Empty trash for documents older than</source>
<translation type="unfinished"></translation> <translation>A törölt elemek ürítése a következőknél régebbi dokumentumokhoz:</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation type="unfinished"></translation> <translation>nap</translation>
</message> </message>
<message> <message>
<source>PDF Rendering</source> <source>PDF Rendering</source>
<translation type="unfinished"></translation> <translation>PDF-megjelenítő</translation>
</message> </message>
<message> <message>
<source>Improve zoom execution time (can slightly affect rendering quality)</source> <source>Improve zoom execution time (can slightly affect rendering quality)</source>
<translation type="unfinished"></translation> <translation>Nagyitás végrehajtási idő csökkentése (némileg befolyásolhatja a renderelés minőségét)</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2863,7 +2893,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Flash kiválasztása a rögzítéshez</translation> <translation type="vanished">Flash kiválasztása a rögzítéshez</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2877,5 +2907,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Alkalmazás létrehozása</translation> <translation>Alkalmazás létrehozása</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Cattura Flash</translation> <translation type="vanished">Cattura Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Cattura contenuto flash</translation> <translation type="vanished">Cattura contenuto flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>disegna linee di griglia intermedie</translation> <translation>disegna linee di griglia intermedie</translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation>Catturare il contenuto del web</translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Sei sicuro di voler rimuovere 1 pagina dal documento selezionato &apos;%0&apos;?</translation> <translation>Sei sicuro di voler rimuovere 1 pagina dal documento selezionato &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation>Caricamento della scena (%1/%2)</translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation>Spostamento delle scene in cache (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>PodCast</translation> <translation>PodCast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation>Impossibile aprire direttamente un file UBX. Si prega di importarlo dalla modalità Documenti</translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source> <source>Title page</source>
<translation>Frontespizio</translation> <translation>Frontespizio</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Aggiornamento delle anteprime in modalità Documenti (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Pagina %0</translation> <translation>Pagina %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Creazione delle anteprime in modalità Lavagna (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -2020,6 +2044,10 @@ Vuoi ignorare gli errori per questo host?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard ha perso l&apos;accesso al repository documenti &quot;%1&quot;. Sfortunatamente l&apos;applicazione deve essere chiusa per evitare di rovinare i dati. Gli ultimi cambiamenti potrebbero andare persi.</translation> <translation>OpenBoard ha perso l&apos;accesso al repository documenti &quot;%1&quot;. Sfortunatamente l&apos;applicazione deve essere chiusa per evitare di rovinare i dati. Gli ultimi cambiamenti potrebbero andare persi.</translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation>Aggiornamento dei nomi delle pagine in corso (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2187,6 +2215,10 @@ Vuoi ignorare gli errori per questo host?</translation>
<source>loading thumbnail of page %1</source> <source>loading thumbnail of page %1</source>
<translation type="vanished">Caricamento miniatura della pagina %1</translation> <translation type="vanished">Caricamento miniatura della pagina %1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Caricamento dell&apos;anteprima (%1/%2)</translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2969,7 +3001,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Seleziona un&apos;applicazione flash da catturare</translation> <translation type="vanished">Seleziona un&apos;applicazione flash da catturare</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2983,5 +3015,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Crea applicazione</translation> <translation>Crea applicazione</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation>Selezionare il contenuto da catturare</translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>מלכודת פלאש</translation> <translation type="vanished">מלכודת פלאש</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>תוכן מלכודת פלאש</translation> <translation type="vanished">תוכן מלכודת פלאש</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -897,6 +901,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>האם אתה בטוח שברצונך למחוק דף 1 מהמסמך שנבחר %0?</translation> <translation>האם אתה בטוח שברצונך למחוק דף 1 מהמסמך שנבחר %0?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>פודקסט</translation> <translation>פודקסט</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>עמוד %0</translation> <translation>עמוד %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1959,6 +1983,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2122,6 +2150,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>נוצרה תמונה מוקטנת של %1...</translation> <translation>נוצרה תמונה מוקטנת של %1...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2896,7 +2928,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>בחר פלאש ללכידה</translation> <translation type="vanished">בחר פלאש ללכידה</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2910,5 +2942,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>צור יישום</translation> <translation>צור יישום</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1220,6 +1236,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1270,6 +1290,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>%0</translation> <translation>%0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1955,6 +1979,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2118,6 +2146,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 ... </translation> <translation>%1 ... </translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2892,7 +2924,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2906,5 +2938,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation> </translation> <translation type="vanished"> </translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation> </translation> <translation type="vanished"> </translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation type="unfinished"> &apos;%0&apos; 1 ?</translation> <translation type="unfinished"> &apos;%0&apos; 1 ?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>%0 </translation> <translation>%0 </translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1974,6 +1998,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2137,6 +2165,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 ...</translation> <translation>%1 ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2915,7 +2947,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation> </translation> <translation type="vanished"> </translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2929,5 +2961,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation> </translation> <translation> </translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -681,11 +681,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Alaina ny Flash</translation> <translation type="vanished">Alaina ny Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Alaina ny mpiatiny Flash</translation> <translation type="vanished">Alaina ny mpiatiny Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Tena te hamafa pejy iray avy amin&apos;ilay rakitra &apos;%0&apos; voafidy ve ianao ?</translation> <translation>Tena te hamafa pejy iray avy amin&apos;ilay rakitra &apos;%0&apos; voafidy ve ianao ?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Pejy %0</translation> <translation>Pejy %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1970,6 +1994,10 @@ Tena tsy te hiraharaha an&apos;ireo tsy mety ho an&apos;ilay milina ve ianao?</t
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2133,6 +2161,10 @@ Tena tsy te hiraharaha an&apos;ireo tsy mety ho an&apos;ilay milina ve ianao?</t
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 ny kisarisary no voaforona ...</translation> <translation>%1 ny kisarisary no voaforona ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2911,7 +2943,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Safidio ny Flash ho alaina</translation> <translation type="vanished">Safidio ny Flash ho alaina</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2925,5 +2957,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Mamorona rindran&apos;asa</translation> <translation>Mamorona rindran&apos;asa</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Flash trap</translation> <translation type="vanished">Flash trap</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Trap flash-innhold</translation> <translation type="vanished">Trap flash-innhold</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Er du sikker at du vil fjerne side 1 fra det valgte dokumentet &apos;%0&apos;?</translation> <translation>Er du sikker at du vil fjerne side 1 fra det valgte dokumentet &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Side %0</translation> <translation>Side %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1959,6 +1983,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2122,6 +2150,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 miniatyrbilder generert ...</translation> <translation>%1 miniatyrbilder generert ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2901,7 +2933,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Velg flash som skal tas</translation> <translation type="vanished">Velg flash som skal tas</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2915,5 +2947,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Opprett applikasjon</translation> <translation>Opprett applikasjon</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Flash Trap</translation> <translation type="vanished">Flash Trap</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Trap flash inhoud</translation> <translation type="vanished">Trap flash inhoud</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1222,6 +1238,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1272,6 +1292,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Pagina %0</translation> <translation>Pagina %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1960,6 +1984,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2123,6 +2151,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 miniaturen opgeladen...</translation> <translation>%1 miniaturen opgeladen...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2900,7 +2932,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Te vangen licht selecteren</translation> <translation type="vanished">Te vangen licht selecteren</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2914,5 +2946,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Applicatie maken</translation> <translation>Applicatie maken</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -481,7 +481,7 @@
</message> </message>
<message> <message>
<source>Grid Light Background</source> <source>Grid Light Background</source>
<translation>Jasne rastrowe tło</translation> <translation>Jasne tło w kratkę</translation>
</message> </message>
<message> <message>
<source>Plain Dark Background</source> <source>Plain Dark Background</source>
@ -493,7 +493,7 @@
</message> </message>
<message> <message>
<source>Grid Dark Background</source> <source>Grid Dark Background</source>
<translation>Ciemne rastrowe tło</translation> <translation>Ciemne tło w kratkę</translation>
</message> </message>
<message> <message>
<source>Podcast</source> <source>Podcast</source>
@ -561,7 +561,7 @@
</message> </message>
<message> <message>
<source>Highlight </source> <source>Highlight </source>
<translation>Wyróżnienie</translation> <translation>Wyróżnienie </translation>
</message> </message>
<message> <message>
<source>Ctrl+M</source> <source>Ctrl+M</source>
@ -697,16 +697,15 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Pułapka Flash</translation> <translation type="vanished">Pułapka Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Złap zawartość Flash</translation> <translation type="vanished">Złap zawartość Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
<translation> <translation>Pułapka sieciowa</translation>
</translation>
</message> </message>
<message> <message>
<source>Trap Web Content</source> <source>Trap Web Content</source>
@ -797,50 +796,54 @@
</message> </message>
<message> <message>
<source>Ruled Light Background</source> <source>Ruled Light Background</source>
<translation type="unfinished"></translation> <translation>Jasne tło w linie</translation>
</message> </message>
<message> <message>
<source>Ruled Dark Background</source> <source>Ruled Dark Background</source>
<translation type="unfinished"></translation> <translation>Ciemne tło w linie</translation>
</message> </message>
<message> <message>
<source>Open Tutorial</source> <source>Open Tutorial</source>
<translation type="unfinished"></translation> <translation>Otwórz samouczek</translation>
</message> </message>
<message> <message>
<source>Open the tutorial web page</source> <source>Open the tutorial web page</source>
<translation type="unfinished"></translation> <translation>Otwórz stronę samouczka</translation>
</message> </message>
<message> <message>
<source>Reset grid size</source> <source>Reset grid size</source>
<translation type="unfinished"></translation> <translation>Zresetuj rozmiar kratki</translation>
</message> </message>
<message> <message>
<source>Small Eraser</source> <source>Small Eraser</source>
<translation type="unfinished"></translation> <translation>Mała gumka</translation>
</message> </message>
<message> <message>
<source>Color 1</source> <source>Color 1</source>
<translation type="unfinished"></translation> <translation>Kolor 1</translation>
</message> </message>
<message> <message>
<source>Color 2</source> <source>Color 2</source>
<translation type="unfinished"></translation> <translation>Kolor 2</translation>
</message> </message>
<message> <message>
<source>Color 3</source> <source>Color 3</source>
<translation type="unfinished"></translation> <translation>Kolor 3</translation>
</message> </message>
<message> <message>
<source>Color 4</source> <source>Color 4</source>
<translation type="unfinished"></translation> <translation>Kolor 4</translation>
</message> </message>
<message> <message>
<source>Color 5</source> <source>Color 5</source>
<translation type="unfinished"></translation> <translation>Kolor 5</translation>
</message> </message>
<message> <message>
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation>Rysuj drobne linie kratki</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -886,7 +889,7 @@
<name>QObject</name> <name>QObject</name>
<message> <message>
<source>Element ID = </source> <source>Element ID = </source>
<translation>ID elementu =</translation> <translation>ID elementu = </translation>
</message> </message>
<message> <message>
<source>Content is not supported in destination format.</source> <source>Content is not supported in destination format.</source>
@ -900,6 +903,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Czy na pewno chcesz usunąć 1 stronę z wybranego dokumentu %0?</translation> <translation>Czy na pewno chcesz usunąć 1 stronę z wybranego dokumentu %0?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -911,6 +922,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podkast</translation> <translation>Podkast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -939,11 +954,11 @@
<name>UBBackgroundPalette</name> <name>UBBackgroundPalette</name>
<message> <message>
<source>Grid size</source> <source>Grid size</source>
<translation type="unfinished"></translation> <translation>Rozmiar kratki</translation>
</message> </message>
<message> <message>
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation>Rysuj drobne linie kratki</translation>
</message> </message>
</context> </context>
<context> <context>
@ -994,19 +1009,19 @@
</message> </message>
<message> <message>
<source>Saving document...</source> <source>Saving document...</source>
<translation type="unfinished"></translation> <translation>Zapisywanie dokumentu...</translation>
</message> </message>
<message> <message>
<source>Document has just been saved...</source> <source>Document has just been saved...</source>
<translation type="unfinished"></translation> <translation>Dokument został właśnie zapisany...</translation>
</message> </message>
<message> <message>
<source>Deleting page %1</source> <source>Deleting page %1</source>
<translation type="unfinished"></translation> <translation>Usuwanie strony %1</translation>
</message> </message>
<message> <message>
<source>Color</source> <source>Color</source>
<translation type="unfinished">Kolor</translation> <translation>Kolor</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1024,7 +1039,7 @@
<name>UBBoardThumbnailsView</name> <name>UBBoardThumbnailsView</name>
<message> <message>
<source>Loading page (%1/%2)</source> <source>Loading page (%1/%2)</source>
<translation type="unfinished"></translation> <translation>Ładowanie strony (%1/%2)</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1074,7 +1089,7 @@
</message> </message>
<message> <message>
<source>Show OpenBoard</source> <source>Show OpenBoard</source>
<translation type="unfinished"></translation> <translation>Pokaż OpenBoard</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1157,7 +1172,7 @@
</message> </message>
<message> <message>
<source>Failed to import file ... </source> <source>Failed to import file ... </source>
<translation>Importowanie pliku zakończone niepowodzeniem...</translation> <translation>Importowanie pliku zakończone niepowodzeniem... </translation>
</message> </message>
<message> <message>
<source>Import all Images from Folder</source> <source>Import all Images from Folder</source>
@ -1210,26 +1225,30 @@
<message numerus="yes"> <message numerus="yes">
<source>duplicated %1 page</source> <source>duplicated %1 page</source>
<comment>duplicated %1 pages</comment> <comment>duplicated %1 pages</comment>
<translation type="unfinished"> <translation>
<numerusform></numerusform> <numerusform>zduplikowano %1 stronę</numerusform>
<numerusform></numerusform> <numerusform>zduplikowano %1 strony</numerusform>
<numerusform></numerusform> <numerusform>Zduplikowano %1 stron</numerusform>
</translation> </translation>
</message> </message>
<message> <message>
<source>Remove Item</source> <source>Remove Item</source>
<translation type="unfinished"></translation> <translation>Usuń element</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to remove the selected item(s) ?</source> <source>Are you sure you want to remove the selected item(s) ?</source>
<translation type="unfinished"></translation> <translation>Czy na pewno chcesz usunąć zaznaczone elementy?</translation>
</message> </message>
<message> <message>
<source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source> <source>The document &apos;%1&apos; has been generated with a newer version of OpenBoard (%2). By opening it, you may lose some information. Do you want to proceed?</source>
<translation type="unfinished"></translation> <translation>Dokument &apos;%1&apos; został utworzony przy użyciu nowszej wersji OpenBoard (%2). Otwierając go możesz stracić niektóre informację. Czy chcesz kontynuować?</translation>
</message> </message>
<message> <message>
<source>Title page</source> <source>Title page</source>
<translation>Strona tytułowa</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1282,6 +1301,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Strona %0</translation> <translation>Strona %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1294,32 +1317,34 @@
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
<message> <message>
<source>Accept</source> <source>Accept</source>
<translation type="unfinished">Akceptuj</translation> <translation>Akceptuj</translation>
</message> </message>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Anuluj</translation> <translation>Anuluj</translation>
</message> </message>
<message> <message>
<source>Replace</source> <source>Replace</source>
<translation type="unfinished"></translation> <translation>Zastąp</translation>
</message> </message>
<message> <message>
<source>The name %1 is allready used. <source>The name %1 is allready used.
Keeping this name will replace the document. Keeping this name will replace the document.
Providing a new name will create a new document.</source> Providing a new name will create a new document.</source>
<translation type="unfinished"></translation> <translation>Nazwa %1 jest już używana.
Pozostawienie tej nazwy zastąpi ten dokument.
Zmiana nazwy na nową utworzy nowy dokument.</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBDocumentTreeModel</name> <name>UBDocumentTreeModel</name>
<message> <message>
<source>Trash</source> <source>Trash</source>
<translation type="unfinished">Kosz</translation> <translation>Kosz</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<source>%1 pages copied</source> <source>%1 pages copied</source>
<translation type="unfinished"> <translation>
<numerusform>Skopiowano %1 stronę</numerusform> <numerusform>Skopiowano %1 stronę</numerusform>
<numerusform>Skopiowano %1 strony</numerusform> <numerusform>Skopiowano %1 strony</numerusform>
<numerusform>Skopiowano %1 stron</numerusform> <numerusform>Skopiowano %1 stron</numerusform>
@ -1327,14 +1352,14 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>My documents</source> <source>My documents</source>
<translation type="unfinished"></translation> <translation>Moje dokumenty</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBDocumentTreeView</name> <name>UBDocumentTreeView</name>
<message numerus="yes"> <message numerus="yes">
<source>%1 pages copied</source> <source>%1 pages copied</source>
<translation type="unfinished"> <translation>
<numerusform>Skopiowano %1 stronę</numerusform> <numerusform>Skopiowano %1 stronę</numerusform>
<numerusform>Skopiowano %1 strony</numerusform> <numerusform>Skopiowano %1 strony</numerusform>
<numerusform>Skopiowano %1 stron</numerusform> <numerusform>Skopiowano %1 stron</numerusform>
@ -1342,15 +1367,15 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Remove Item</source> <source>Remove Item</source>
<translation type="unfinished"></translation> <translation>Usuń elementy</translation>
</message> </message>
<message> <message>
<source>Are you sure you want to remove the selected item(s) ?</source> <source>Are you sure you want to remove the selected item(s) ?</source>
<translation type="unfinished"></translation> <translation>Czy na pewno chcesz usunąć zaznaczone elementy?</translation>
</message> </message>
<message> <message>
<source>Copying page %1/%2</source> <source>Copying page %1/%2</source>
<translation type="unfinished">Kopiowanie strony %1/%2</translation> <translation>Kopiowanie strony %1/%2</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1388,14 +1413,14 @@ Providing a new name will create a new document.</source>
<name>UBDraggableThumbnail</name> <name>UBDraggableThumbnail</name>
<message> <message>
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished">Strona %0</translation> <translation>Strona %0</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBDraggableThumbnailView</name> <name>UBDraggableThumbnailView</name>
<message> <message>
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished">Strona %0</translation> <translation>Strona %0</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1406,23 +1431,23 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation type="unfinished">Eksportowanie dokumentu...</translation> <translation>Eksportowanie dokumentu...</translation>
</message> </message>
<message> <message>
<source>Export successful.</source> <source>Export successful.</source>
<translation type="unfinished">Eksportowanie zakończone powodzeniem.</translation> <translation>Eksportowanie zakończone powodzeniem.</translation>
</message> </message>
<message> <message>
<source>Export failed</source> <source>Export failed</source>
<translation type="unfinished"></translation> <translation>Eksportowanie zakończone niepowodzeniem</translation>
</message> </message>
<message> <message>
<source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source> <source>Unable to export to the selected location. You do not have the permissions necessary to save the file.</source>
<translation type="unfinished"></translation> <translation>Nie udało się wyeksportować do wybranej lokacji. Nie masz wystarczających uprawnień do zapisania pliku.</translation>
</message> </message>
<message> <message>
<source>Export failed: location not writable</source> <source>Export failed: location not writable</source>
<translation type="unfinished"></translation> <translation>Eksportowanie nie powiodło się: niemożliwy zapis do lokacji</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1472,34 +1497,34 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Export to OpenBoard Format</source> <source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation> <translation>Wyeksportuj do formatu OpenBoard</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBExportDocumentSetAdaptor</name> <name>UBExportDocumentSetAdaptor</name>
<message> <message>
<source>Exporting document...</source> <source>Exporting document...</source>
<translation type="unfinished">Eksportowanie dokumentu...</translation> <translation>Eksportowanie dokumentu...</translation>
</message> </message>
<message> <message>
<source>Export successful.</source> <source>Export successful.</source>
<translation type="unfinished">Eksportowanie zakończone powodzeniem.</translation> <translation>Eksportowanie zakończone powodzeniem.</translation>
</message> </message>
<message> <message>
<source>Export failed.</source> <source>Export failed.</source>
<translation type="unfinished">Eksportowanie zakończone niepowodzeniem.</translation> <translation>Eksportowanie zakończone niepowodzeniem.</translation>
</message> </message>
<message> <message>
<source>Failed to export...</source> <source>Failed to export...</source>
<translation type="unfinished"></translation> <translation>Nie udało się wyeksportować...</translation>
</message> </message>
<message> <message>
<source>Export as UBX File</source> <source>Export as UBX File</source>
<translation type="unfinished"></translation> <translation>Wyeksportuj jako plik UBX</translation>
</message> </message>
<message> <message>
<source>Export to OpenBoard UBX Format</source> <source>Export to OpenBoard UBX Format</source>
<translation type="unfinished"></translation> <translation>Wyeksportuj jako plik formatu OpenBoard UBX</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1691,7 +1716,7 @@ Providing a new name will create a new document.</source>
<name>UBFeaturesProgressInfo</name> <name>UBFeaturesProgressInfo</name>
<message> <message>
<source>Loading </source> <source>Loading </source>
<translation>Wczytywanie</translation> <translation>Wczytywanie </translation>
</message> </message>
</context> </context>
<context> <context>
@ -1721,26 +1746,26 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Set as background</source> <source>Set as background</source>
<translation type="unfinished">Ustaw jako tło</translation> <translation>Ustaw jako tło</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBGraphicsMediaItem</name> <name>UBGraphicsMediaItem</name>
<message> <message>
<source>Media resource couldn&apos;t be resolved</source> <source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation> <translation>Nie udało się znaleźć zasobu multimedialnego</translation>
</message> </message>
<message> <message>
<source>Unsupported media format</source> <source>Unsupported media format</source>
<translation type="unfinished"></translation> <translation>Niewspierany format zasobu multimedialnego</translation>
</message> </message>
<message> <message>
<source>Media playback service not found</source> <source>Media playback service not found</source>
<translation type="unfinished"></translation> <translation>Nie znaleziono usługi odtwarzania</translation>
</message> </message>
<message> <message>
<source>Media error: </source> <source>Media error: </source>
<translation type="unfinished"></translation> <translation>Błąd multimediów: </translation>
</message> </message>
</context> </context>
<context> <context>
@ -1783,7 +1808,7 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>Transform as Tool </source> <source>Transform as Tool </source>
<translation>Przekształć jako narzędzie</translation> <translation>Przekształć jako narzędzie </translation>
</message> </message>
</context> </context>
<context> <context>
@ -1825,14 +1850,14 @@ Providing a new name will create a new document.</source>
</message> </message>
<message> <message>
<source>OpenBoard (*.ubz)</source> <source>OpenBoard (*.ubz)</source>
<translation type="unfinished"></translation> <translation>OpenBoard (*.ubz)</translation>
</message> </message>
</context> </context>
<context> <context>
<name>UBImportDocumentSetAdaptor</name> <name>UBImportDocumentSetAdaptor</name>
<message> <message>
<source>Openboard (set of documents) (*.ubx)</source> <source>Openboard (set of documents) (*.ubx)</source>
<translation type="unfinished"></translation> <translation>Openboard (zbiór dokumentów) (*.ubx)</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1943,27 +1968,27 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<name>UBOpenSankoreImporterWidget</name> <name>UBOpenSankoreImporterWidget</name>
<message> <message>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished">Anuluj</translation> <translation>Anuluj</translation>
</message> </message>
<message> <message>
<source>Open-Sankore Documents Detected</source> <source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation> <translation>Wykryto dokumenty Open-Sankore</translation>
</message> </message>
<message> <message>
<source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source> <source>Open-Sankoré documents are present on your computer. It is possible to import them to OpenBoard by pressing the Proceed button to launch the importer application.</source>
<translation type="unfinished"></translation> <translation>Dokumenty Open-Sankoré dostępne na twoimkomputerze. Możliwy jest ich import do OpenBoard naciskając przycisk &quot;Kontynuuj&quot; by uruchomić aplikację importującą.</translation>
</message> </message>
<message> <message>
<source>Show this panel next time</source> <source>Show this panel next time</source>
<translation type="unfinished"></translation> <translation>Pokaż ten panel następnym razem</translation>
</message> </message>
<message> <message>
<source>You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents.</source> <source>You can always access the OpenBoard Document Importer through the Preferences panel in the About tab. Warning, if you have already imported your Open-Sankore datas, you might loose your current OpenBoard documents.</source>
<translation type="unfinished"></translation> <translation>Zawsze możesz zyskać dostęp do aplikacji importującej OpenBoard poprzez panel Ustawień w karcie O programie. Uwaga: jeśli zaimportowałaś już dane Open-Sankore, możesz stracić swoje aktualne dokumenty OpenBoard.</translation>
</message> </message>
<message> <message>
<source>Proceed</source> <source>Proceed</source>
<translation type="unfinished"></translation> <translation>Kontynuuj</translation>
</message> </message>
</context> </context>
<context> <context>
@ -1978,6 +2003,10 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</message> </message>
<message> <message>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>OpenBoard stracił dostęp do repozytorium dokumentów &apos;%1&apos;. Niestety aplikacja musi zostać zamknięta by uniknąć korupcji danych. Ostatnie zmiany również mogą zostać utracone.</translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -2064,7 +2093,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</message> </message>
<message> <message>
<source>OpenBoard Cast</source> <source>OpenBoard Cast</source>
<translation type="unfinished"></translation> <translation>OpenBoard Cast</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2123,7 +2152,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<name>UBStartupHintsPalette</name> <name>UBStartupHintsPalette</name>
<message> <message>
<source>Visible next time</source> <source>Visible next time</source>
<translation type="unfinished"></translation> <translation>Pokaż następnym razem</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2143,12 +2172,16 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>Wygenerowano %1 miniatur...</translation> <translation>Wygenerowano %1 miniatur...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
<message> <message>
<source>Page %0</source> <source>Page %0</source>
<translation type="unfinished">Strona %0</translation> <translation>Strona %0</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2183,7 +2216,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</message> </message>
<message> <message>
<source>Axes</source> <source>Axes</source>
<translation type="unfinished"></translation> <translation>Osie</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2461,7 +2494,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
<name>WBTabBar</name> <name>WBTabBar</name>
<message> <message>
<source>New &amp;Tab</source> <source>New &amp;Tab</source>
<translation>Nowa zakładka</translation> <translation>&amp;Nowa zakładka</translation>
</message> </message>
<message> <message>
<source>Clone Tab</source> <source>Clone Tab</source>
@ -2469,11 +2502,11 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
</message> </message>
<message> <message>
<source>&amp;Close Tab</source> <source>&amp;Close Tab</source>
<translation>Zamknij zakładkę</translation> <translation>&amp;Zamknij kartę</translation>
</message> </message>
<message> <message>
<source>Close &amp;Other Tabs</source> <source>Close &amp;Other Tabs</source>
<translation>Zamknij inne zakładki</translation> <translation>Zamknij &amp;Inne karty</translation>
</message> </message>
<message> <message>
<source>Reload Tab</source> <source>Reload Tab</source>
@ -2534,7 +2567,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
</message> </message>
<message> <message>
<source>Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document?</source> <source>Download PDF Document: would you prefer to download the PDF file or add it to the current OpenBoard document?</source>
<translation type="unfinished"></translation> <translation>Pobierz dokument PDF: chcesz pobrać plik PDF, czy dodać go do aktualnego dokumentu OpenBoard?</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2548,7 +2581,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
<name>XPDFRenderer</name> <name>XPDFRenderer</name>
<message> <message>
<source>Processing...</source> <source>Processing...</source>
<translation type="unfinished"></translation> <translation>Przetwarzanie...</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2591,19 +2624,15 @@ p, li { white-space: pre-wrap; }
&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt; &lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;
p, li { white-space: pre-wrap; } p, li { white-space: pre-wrap; }
&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt; &lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;MS Shell Dlg 2&apos;; font-size:8.25pt; font-weight:400; font-style:normal;&quot;&gt;
&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Lucida Grande&apos;; font-size:10pt;&quot;&gt;Klikając Wyślij, poświadczasz, że posiadasz wszelkie prawa do zawartości lub masz zezwolenie właściciela zawartości na jej publiczne udostępnianie w serwisie YouTube, a także, że zawartość jest zgodna z Warunkami korzystania z serwisu YouTube dostępnymi pod adresem &lt;/span&gt;&lt;a href=&quot;http://www.youtube.com/t/terms&quot;&gt;&lt;span style=&quot; font-family:&apos;Lucida Grande&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.youtube.com/t/terms&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt; &lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;&lt;span style=&quot; font-family:&apos;Lucida Grande&apos;; font-size:10pt;&quot;&gt;Klikając Wyślij, poświadczasz, że posiadasz wszelkie prawa do zawartości lub masz zezwolenie właściciela zawartości na jej publiczne udostępnianie w serwisie YouTube, a także, że zawartość jest zgodna z Warunkami korzystania z serwisu YouTube dostępnymi pod adresem &lt;/span&gt;&lt;a href=&quot;http://www.youtube.com/t/terms&quot;&gt;&lt;span style=&quot; font-family:&apos;Lucida Grande&apos;; font-size:10pt; text-decoration: underline; color:#0000ff;&quot;&gt;http://www.youtube.com/t/terms&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</translation>
</message> </message>
<message> <message>
<source>OpenBoard</source> <source>OpenBoard</source>
<translation type="unfinished" variants="yes"> <translation>OpenBoard</translation>
<lengthvariant>OpenBoard</lengthvariant>
<lengthvariant></lengthvariant>
</translation>
</message> </message>
<message> <message>
<source>Restore credentials on reboot</source> <source>Restore credentials on reboot</source>
<translation type="unfinished"></translation> <translation>Przywróć dane logowania po restarcie</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2642,11 +2671,11 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Show preview circle from</source> <source>Show preview circle from</source>
<translation type="unfinished"></translation> <translation>Pokaż podgląd pędzla od</translation>
</message> </message>
<message> <message>
<source>px</source> <source>px</source>
<translation type="unfinished"></translation> <translation>px</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2699,23 +2728,23 @@ p, li { white-space: pre-wrap; }
<name>documents</name> <name>documents</name>
<message> <message>
<source>OpenBoard Documents</source> <source>OpenBoard Documents</source>
<translation type="unfinished"></translation> <translation>Dokumenty OpenBoard</translation>
</message> </message>
<message> <message>
<source>Creation date</source> <source>Creation date</source>
<translation type="unfinished"></translation> <translation>Data utworzenia</translation>
</message> </message>
<message> <message>
<source>Update date</source> <source>Update date</source>
<translation type="unfinished"></translation> <translation>Data modyfikacji</translation>
</message> </message>
<message> <message>
<source>Alphabetical order</source> <source>Alphabetical order</source>
<translation type="unfinished"></translation> <translation>Porządek alfabetyczny</translation>
</message> </message>
<message> <message>
<source>Sort Order</source> <source>Sort Order</source>
<translation type="unfinished"></translation> <translation>Porządek sortowania</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2738,7 +2767,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Display</source> <source>Display</source>
<translation>Wyświetlaj</translation> <translation>Wyświetlanie</translation>
</message> </message>
<message> <message>
<source>Internet</source> <source>Internet</source>
@ -2858,63 +2887,63 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>On Dark Background</source> <source>On Dark Background</source>
<translation type="unfinished">Na ciemnym tle</translation> <translation>Na ciemnym tle</translation>
</message> </message>
<message> <message>
<source>Opacity</source> <source>Opacity</source>
<translation type="unfinished">Nieprzezroczystość</translation> <translation>Nieprzezroczystość</translation>
</message> </message>
<message> <message>
<source>On Light Background</source> <source>On Light Background</source>
<translation type="unfinished">Na jasnym tle</translation> <translation>Na jasnym tle</translation>
</message> </message>
<message> <message>
<source>Swap first and second view displays</source> <source>Swap first and second view displays</source>
<translation type="unfinished"></translation> <translation>Zamień wyświetlacze</translation>
</message> </message>
<message> <message>
<source>Built-in virtual keyboard button size:</source> <source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation> <translation>Rozmiar klawiszy wyświetlanej klawiatury:</translation>
</message> </message>
<message> <message>
<source>Use system keyboard (recommended)</source> <source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation> <translation>Użyj klawiatury systemowej (zalecane)</translation>
</message> </message>
<message> <message>
<source>Grid</source> <source>Grid</source>
<translation type="unfinished"></translation> <translation>Kratka</translation>
</message> </message>
<message> <message>
<source>Open-Sankoré Importer</source> <source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation> <translation>Open-Sankoré Importer</translation>
</message> </message>
<message> <message>
<source>Check if Open-Sankoré data could be imported at launch</source> <source>Check if Open-Sankoré data could be imported at launch</source>
<translation type="unfinished"></translation> <translation>Sprawdź czy dane Open-Sankoré mogą być zaimportowane przy starcie</translation>
</message> </message>
<message> <message>
<source>Documents Mode</source> <source>Documents Mode</source>
<translation type="unfinished"></translation> <translation>Tryb dokumentów</translation>
</message> </message>
<message> <message>
<source>Display date column on alphabetical sort</source> <source>Display date column on alphabetical sort</source>
<translation type="unfinished"></translation> <translation>Wyświetl kolumnę dat w porządku alfabetycznym</translation>
</message> </message>
<message> <message>
<source>Empty trash for documents older than</source> <source>Empty trash for documents older than</source>
<translation type="unfinished"></translation> <translation>Usuń dokumenty z kosza, które starsze niż</translation>
</message> </message>
<message> <message>
<source>days</source> <source>days</source>
<translation type="unfinished"></translation> <translation>dni</translation>
</message> </message>
<message> <message>
<source>PDF Rendering</source> <source>PDF Rendering</source>
<translation type="unfinished"></translation> <translation>Renderowanie PDF</translation>
</message> </message>
<message> <message>
<source>Improve zoom execution time (can slightly affect rendering quality)</source> <source>Improve zoom execution time (can slightly affect rendering quality)</source>
<translation type="unfinished"></translation> <translation>Usprawnij wykonywanie przybliżania (może nieco pogorszyć jakość renderowania)</translation>
</message> </message>
</context> </context>
<context> <context>
@ -2925,7 +2954,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Wybierz Flash do złapania</translation> <translation type="vanished">Wybierz Flash do złapania</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2939,5 +2968,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Stwórz aplikację</translation> <translation>Stwórz aplikację</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -698,11 +698,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Captura de Flash</translation> <translation type="vanished">Captura de Flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Captura de Conteúdo Flash</translation> <translation type="vanished">Captura de Conteúdo Flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -841,6 +841,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -898,6 +902,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Tem a certeza que quer remover 1 página do documento selecionado &apos;%0&apos;?</translation> <translation>Tem a certeza que quer remover 1 página do documento selecionado &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -909,6 +921,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1236,6 +1252,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1286,6 +1306,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Página %0</translation> <translation>Página %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -2002,6 +2026,10 @@ Quer ignorar estes erros, deste servidor?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2158,6 +2186,10 @@ Quer ignorar estes erros, deste servidor?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 de miniaturas geradas ...</translation> <translation>%1 de miniaturas geradas ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2940,7 +2972,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Selecionar o flash a capturar</translation> <translation type="vanished">Selecionar o flash a capturar</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2954,5 +2986,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Criar Aplicação</translation> <translation>Criar Aplicação</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

File diff suppressed because it is too large Load Diff

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Blocare flash</translation> <translation type="vanished">Blocare flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Blocare conţinut flash</translation> <translation type="vanished">Blocare conţinut flash</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Sunteți sigur doriți eliminați 1 pagină din documentul selectat &apos;%0&apos;?</translation> <translation>Sunteți sigur doriți eliminați 1 pagină din documentul selectat &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Pagina %0</translation> <translation>Pagina %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1970,6 +1994,10 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2133,6 +2161,10 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 miniaturi generate ...</translation> <translation>%1 miniaturi generate ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2911,7 +2943,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Selectaţi un flash pentru blocare</translation> <translation type="vanished">Selectaţi un flash pentru blocare</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2925,5 +2957,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Creare aplicaţie</translation> <translation>Creare aplicaţie</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Захват флэш</translation> <translation type="vanished">Захват флэш</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Захват флэш-содержимого</translation> <translation type="vanished">Захват флэш-содержимого</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Вы уверены, что хотите удалить 1 страницу из документа &apos;%0&apos;?</translation> <translation>Вы уверены, что хотите удалить 1 страницу из документа &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Подкаст</translation> <translation>Подкаст</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source> <source>Title page</source>
<translation>Заглавная страница</translation> <translation>Заглавная страница</translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Страница %0</translation> <translation>Страница %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1972,6 +1996,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation>Потерян доступ к репозиторию документов «%1». Приложение должно быть закрыто, чтобы избежать повреждения данных. Последние изменения также могут быть утеряны.</translation> <translation>Потерян доступ к репозиторию документов «%1». Приложение должно быть закрыто, чтобы избежать повреждения данных. Последние изменения также могут быть утеряны.</translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2135,6 +2163,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>сгенерированы эскизы %1...</translation> <translation>сгенерированы эскизы %1...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2913,7 +2945,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Выбрать флеш-содержимое для захвата</translation> <translation type="vanished">Выбрать флеш-содержимое для захвата</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2927,5 +2959,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Создать приложение</translation> <translation>Создать приложение</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -351,7 +351,7 @@
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Označiť obsah vo Flashi</translation> <translation type="vanished">Označiť obsah vo Flashi</translation>
</message> </message>
<message> <message>
<source>Import</source> <source>Import</source>
@ -539,7 +539,7 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Označiť Flash</translation> <translation type="vanished">Označiť Flash</translation>
</message> </message>
<message> <message>
<source>Window Capture</source> <source>Window Capture</source>
@ -843,6 +843,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -900,6 +904,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Určite chcete odstrániť 1 stránku z vybraného dokumentu &apos;%0&apos;?</translation> <translation>Určite chcete odstrániť 1 stránku z vybraného dokumentu &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -911,6 +923,10 @@
<source>Page Size</source> <source>Page Size</source>
<translation>Veľkosť stránky</translation> <translation>Veľkosť stránky</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1240,6 +1256,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1290,6 +1310,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Stránka %0</translation> <translation>Stránka %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -2008,6 +2032,10 @@ Chcete ignorovať tieto chyby na tomto serveri?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2173,6 +2201,10 @@ Chcete ignorovať tieto chyby na tomto serveri?</translation>
<source>Generating preview thumbnails ...</source> <source>Generating preview thumbnails ...</source>
<translation>Vytvárajú sa ukážky miniatúr...</translation> <translation>Vytvárajú sa ukážky miniatúr...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2952,7 +2984,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Vyberte flash, ktorý chcete označiť</translation> <translation type="vanished">Vyberte flash, ktorý chcete označiť</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2966,5 +2998,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Vytvoriť aplikáciu</translation> <translation>Vytvoriť aplikáciu</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Lagra flash</translation> <translation type="vanished">Lagra flash</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Lagra flash innehål</translation> <translation type="vanished">Lagra flash innehål</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Är du säker att du vill ta bort 1 sida från det valda dokumentet &apos;%0&apos;?</translation> <translation>Är du säker att du vill ta bort 1 sida från det valda dokumentet &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Podcast</translation> <translation>Podcast</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Sida %0</translation> <translation>Sida %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentPublisher</name> <name>UBDocumentPublisher</name>
@ -1971,6 +1995,10 @@ Vill du ignorera felen för den här värden?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2134,6 +2162,10 @@ Vill du ignorera felen för den här värden?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 miniatybil genererad ...</translation> <translation>%1 miniatybil genererad ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2912,7 +2944,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Välj en flash att lagra</translation> <translation type="vanished">Välj en flash att lagra</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2926,5 +2958,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Skapa applikation</translation> <translation>Skapa applikation</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -701,11 +701,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Flash Tuzağı</translation> <translation type="vanished">Flash Tuzağı</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Flash İçeriğini Yakala</translation> <translation type="vanished">Flash İçeriğini Yakala</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Seçili olan &apos;%0&apos; adlı dökümandan 1 sayfayı kaldırmak üzeresiniz. Bu işlemi yapmak istediğinizden eminmisiniz?</translation> <translation>Seçili olan &apos;%0&apos; adlı dökümandan 1 sayfayı kaldırmak üzeresiniz. Bu işlemi yapmak istediğinizden eminmisiniz?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Ekran Kaydı</translation> <translation>Ekran Kaydı</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Sayfa %0</translation> <translation>Sayfa %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1958,6 +1982,10 @@ Bu host için yukarıdaki hatalar yok sayılsın mı?</translation>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2121,6 +2149,10 @@ Bu host için yukarıdaki hatalar yok sayılsın mı?</translation>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1 adet önizleme resmi oluşturuldu ...</translation> <translation>%1 adet önizleme resmi oluşturuldu ...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Tuzağa almak için bir flash öğesi seçin</translation> <translation type="vanished">Tuzağa almak için bir flash öğesi seçin</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Uygulama Oluştur</translation> <translation>Uygulama Oluştur</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation>Захоплення флеш</translation> <translation type="vanished">Захоплення флеш</translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation>Захоплення флеш-вмісту</translation> <translation type="vanished">Захоплення флеш-вмісту</translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>Ви впевнені, що хочете видалити 1 сторінку з документа &apos;%0&apos;?</translation> <translation>Ви впевнені, що хочете видалити 1 сторінку з документа &apos;%0&apos;?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation>Подкаст</translation> <translation>Подкаст</translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1234,6 +1250,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1284,6 +1304,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation>Сторінка %0</translation> <translation>Сторінка %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1979,6 +2003,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2142,6 +2170,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>згенеровані ескізи %1...</translation> <translation>згенеровані ескізи %1...</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2897,7 +2929,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation>Вибрати флеш-вміст для захоплення</translation> <translation type="vanished">Вибрати флеш-вміст для захоплення</translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2911,5 +2943,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation>Створити програму</translation> <translation>Створити програму</translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>%01?</translation> <translation>%01?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation> %0</translation> <translation> %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1958,6 +1982,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2121,6 +2149,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

@ -697,11 +697,11 @@
</message> </message>
<message> <message>
<source>Flash Trap</source> <source>Flash Trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Trap Flash Content</source> <source>Trap Flash Content</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Web Trap</source> <source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source> <source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>PasswordDialog</name> <name>PasswordDialog</name>
@ -896,6 +900,14 @@
<source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source> <source>Are you sure you want to remove 1 page from the selected document &apos;%0&apos;?</source>
<translation>%01?</translation> <translation>%01?</translation>
</message> </message>
<message>
<source>Loading scene (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Moving cached scenes (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplication</name> <name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source> <source>Podcast</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBApplicationController</name> <name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source> <source>Title page</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentManager</name> <name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source> <source>Page %0</source>
<translation> %0</translation> <translation> %0</translation>
</message> </message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBDocumentReplaceDialog</name> <name>UBDocumentReplaceDialog</name>
@ -1958,6 +1982,10 @@ Do you want to ignore these errors for this host?</source>
<source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source> <source>OpenBoard has lost access to the document repository &apos;%1&apos;. Unfortunately the application must shut down to avoid data corruption. Latest changes may be lost as well.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBPlatformUtils</name> <name>UBPlatformUtils</name>
@ -2121,6 +2149,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source> <source>%1 thumbnails generated ...</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>UBThumbnailTextItem</name> <name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Select a flash to trap</source> <source>Select a flash to trap</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>about:blank</source> <source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source> <source>Create Application</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
</TS> </TS>

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

@ -138,12 +138,41 @@
if($("#textbox").val().length > 0){ if($("#textbox").val().length > 0){
loadingState = false; loadingState = false;
var url = $("#textbox").val(); var url = $("#textbox").val();
var urlStart = url.split("://"); if(!url.startsWith("http"))
{
if(urlStart[0]!="http"){ url = "https://" + url;
url = "http://" + url; $("#textbox").val(url);
}; }
//non-exhaustive. add new names here as it is requested
var x_frame_options_secured_sites = [
"google.",
"youtube.",
"stackoverflow.",
"facebook.",
"github.",
"twitter.",
"amazon.",
"linkedin.",
"ebay."
];
var iframe_denied = x_frame_options_secured_sites.some(function(element, indice, array)
{
return url.includes(element);
});
if (iframe_denied)
{
$("#container").addClass("error");
$("#web-content").hide();
$("#container-shadow").hide();
$("#content").hide();
$("#arrow").hide();
$("#notifications").html(sankoreLang[lang].error_xframe_options);
return false;
}
if(checkURLs(references, url)){ if(checkURLs(references, url)){
if(currentHistory == references.length) if(currentHistory == references.length)
references[currentHistory++] = url; references[currentHistory++] = url;
@ -158,7 +187,8 @@
$("#arrow").hide(); $("#arrow").hide();
$("#embeded-content").hide(); $("#embeded-content").hide();
$("#web-content").hide(); $("#web-content").hide();
$('#web-content').attr('src',url); $('#web-content').contents().find("body").html("");
$('#web-content').attr('src', url);
checkcontent(); checkcontent();
checkLoading(); checkLoading();
@ -225,11 +255,12 @@
}; };
if(resizerIndex > 80){ if(resizerIndex > 80){
resizerIndex = 0; resizerIndex = 0;
console.log("error on loading page"); $("#container").addClass("error");
$("#back-button").trigger("click"); $("#web-content").hide();
$("#textbox").val($("#textbox").val().replace("http://", "")); $("#container-shadow").hide();
$("#textbox").val("http://www.metacrawler.com/search/web?&q=" + $("#textbox").val().replace("http://", "")+"&ql="); $("#content").hide();
$("#search-button").trigger("click"); $("#arrow").hide();
$("#notifications").html(sankoreLang[lang].error_loading_page);
}else{ }else{
resizer = setTimeout(function(){checkLoading()}, 100); resizer = setTimeout(function(){checkLoading()}, 100);
resizerIndex++; resizerIndex++;
@ -280,6 +311,7 @@
</div> </div>
<div id="container" class="welcome"> <div id="container" class="welcome">
<div id="notifications"></div>
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div> <div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container"> <div id="show-container">

@ -6,7 +6,9 @@
"prev_page":"Previous page", "prev_page":"Previous page",
"next_page":"Next page", "next_page":"Next page",
"open":"Open the site", "open":"Open the site",
"alert":"Cannot open a page! Maybe it's because of a security policy or a wrong url. Also check your internet connection." "alert":"Cannot open a page! Maybe it's because of a security policy or a wrong url. Also check your internet connection.",
"error_loading_page": "An error has occured during page's loading",
"error_xframe_options" : "This site does not allow its content to be embed from another domain"
}, },
"ru":{ "ru":{
"previous":"Пред.", "previous":"Пред.",
@ -15,7 +17,9 @@
"prev_page":"Пред. страница", "prev_page":"Пред. страница",
"next_page":"След. страница", "next_page":"След. страница",
"open":"Перейти", "open":"Перейти",
"alert":"Невозможно отобразить страницу! Возможно это из-за политики безопасности сайта или неверного адреса.Также стоит проверить подключение к интернету." "alert":"Невозможно отобразить страницу! Возможно это из-за политики безопасности сайта или неверного адреса.Также стоит проверить подключение к интернету.",
"error_loading_page": "An error has occured during page's loading",
"error_xframe_options" : "This site does not allow its content to be embed from another domain"
}, },
"fr":{ "fr":{
"previous":"Précédente", "previous":"Précédente",
@ -24,7 +28,9 @@
"prev_page":"Page précédente", "prev_page":"Page précédente",
"next_page":"Page suivante", "next_page":"Page suivante",
"open":"Ouvrez le site", "open":"Ouvrez le site",
"alert":"Impossible d'ouvrir une page! Peut-être c'est à cause d'une politique de sécurité ou une URL erronée. Vérifiez aussi votre connexion internet." "alert":"Impossible d'ouvrir une page! Peut-être c'est à cause d'une politique de sécurité ou une URL erronée. Vérifiez aussi votre connexion internet.",
"error_loading_page": "Une erreur est survenue durant le chargement de la page",
"error_xframe_options" : "Ce site n'autorise pas l'intégration de son contenu à partir d'un autre domaine"
}, },
"sk":{ "sk":{
"previous":"Predošlá", "previous":"Predošlá",
@ -33,7 +39,9 @@
"prev_page":"Predošlá stránka", "prev_page":"Predošlá stránka",
"next_page":"Ďalšia stránka", "next_page":"Ďalšia stránka",
"open":"Otvoriť stránku", "open":"Otvoriť stránku",
"alert":"Stránka sa nedá otvoriť! Možno je to kvôli spôsobu zabezpečenia alebo nesprávnej internetovej adrese. Skontrolujte aj svoje internetové pripojenie." "alert":"Stránka sa nedá otvoriť! Možno je to kvôli spôsobu zabezpečenia alebo nesprávnej internetovej adrese. Skontrolujte aj svoje internetové pripojenie.",
"error_loading_page": "An error has occured during page's loading",
"error_xframe_options" : "This site does not allow its content to be embed from another domain"
} }
}; };

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 56 KiB

@ -25,4 +25,4 @@ DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
# Add custom libraries to LD_LIBRARY_PATH # Add custom libraries to LD_LIBRARY_PATH
# TODO: Remomve the need for this # TODO: Remomve the need for this
env LD_LIBRARY_PATH=$DIR/qtlib:$LD_LIBRARY_PATH QT_PLUGIN_PATH=$DIR/plugins $DIR/OpenBoard env LD_LIBRARY_PATH=$DIR/qtlib:$LD_LIBRARY_PATH QT_PLUGIN_PATH=$DIR/plugins $DIR/OpenBoard "$@"

@ -68,6 +68,8 @@
<string>sparkle_public_key.pem</string> <string>sparkle_public_key.pem</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>Accès au microphone requis</string> <string>Accès au microphone requis</string>
<key>NSAppleEventsUsageDescription</key>
<string>Accès au clavier virtuel requis</string>
<key>UTExportedTypeDeclarations</key> <key>UTExportedTypeDeclarations</key>
<array> <array>
<dict> <dict>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 404 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 405 B

@ -106,7 +106,17 @@ bool UBExportPDF::persistsDocument(UBDocumentProxy* pDocumentProxy, const QStrin
// set background to white, no crossing for PDF output // set background to white, no crossing for PDF output
bool isDark = scene->isDarkBackground(); bool isDark = scene->isDarkBackground();
UBPageBackground pageBackground = scene->pageBackground(); UBPageBackground pageBackground = scene->pageBackground();
scene->setBackground(false, UBPageBackground::plain);
bool exportDark = isDark && UBSettings::settings()->exportBackgroundColor->get().toBool();
if (UBSettings::settings()->exportBackgroundGrid->get().toBool())
{
scene->setBackground(exportDark, pageBackground);
}
else
{
scene->setBackground(exportDark, UBPageBackground::plain);
}
// pageSize is the output PDF page size; it is set to equal the scene's boundary size; if the contents // pageSize is the output PDF page size; it is set to equal the scene's boundary size; if the contents
// of the scene overflow from the boundaries, they will be scaled down. // of the scene overflow from the boundaries, they will be scaled down.

@ -125,8 +125,6 @@ void UBMetadataDcSubsetAdaptor::persist(UBDocumentProxy* proxy)
// introduced in UB 4.4 // introduced in UB 4.4
xmlWriter.writeTextElement(UBSettings::uniboardDocumentNamespaceUri, "updated-at", UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTimeUtc())); xmlWriter.writeTextElement(UBSettings::uniboardDocumentNamespaceUri, "updated-at", UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTimeUtc()));
xmlWriter.writeTextElement(UBSettings::uniboardDocumentNamespaceUri, "page-count", QString::number(proxy->pageCount()));
xmlWriter.writeEndElement(); //dc:Description xmlWriter.writeEndElement(); //dc:Description
xmlWriter.writeEndElement(); //RDF xmlWriter.writeEndElement(); //RDF
@ -226,11 +224,6 @@ QMap<QString, QVariant> UBMetadataDcSubsetAdaptor::load(QString pPath)
metadata.insert(UBSettings::documentUpdatedAt, xml.readElementText()); metadata.insert(UBSettings::documentUpdatedAt, xml.readElementText());
updatedAtFound = true; updatedAtFound = true;
} }
else if (xml.name() == "page-count"
&& xml.namespaceUri() == UBSettings::uniboardDocumentNamespaceUri)
{
metadata.insert(UBSettings::documentPageCount, xml.readElementText());
}
metadata.insert(UBSettings::documentVersion, docVersion); metadata.insert(UBSettings::documentVersion, docVersion);
} }

@ -29,6 +29,7 @@
#include "UBSvgSubsetAdaptor.h" #include "UBSvgSubsetAdaptor.h"
#include <QObject>
#include <QtCore> #include <QtCore>
#include <QtXml> #include <QtXml>
#include <QGraphicsTextItem> #include <QGraphicsTextItem>
@ -239,6 +240,7 @@ QString UBSvgSubsetAdaptor::uniboardDocumentNamespaceUriFromVersion(int mFileVer
UBGraphicsScene* UBSvgSubsetAdaptor::loadScene(UBDocumentProxy* proxy, const int pageIndex) UBGraphicsScene* UBSvgSubsetAdaptor::loadScene(UBDocumentProxy* proxy, const int pageIndex)
{ {
UBApplication::showMessage(QObject::tr("Loading scene (%1/%2)").arg(pageIndex+1).arg(proxy->pageCount()));
QString fileName = proxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", pageIndex); QString fileName = proxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", pageIndex);
qDebug() << fileName; qDebug() << fileName;
QFile file(fileName); QFile file(fileName);
@ -355,7 +357,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
time.start(); time.start();
mScene = 0; mScene = 0;
UBGraphicsWidgetItem *currentWidget = 0; UBGraphicsWidgetItem *currentWidget = 0;
bool pageDpiSpecified = true; //bool pageDpiSpecified = true;
saveSceneAfterLoading = false; saveSceneAfterLoading = false;
mFileVersion = 40100; // default to 4.1.0 mFileVersion = 40100; // default to 4.1.0
@ -443,7 +445,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
else if (proxy->pageDpi() == 0) { else if (proxy->pageDpi() == 0) {
proxy->setPageDpi((UBApplication::desktop()->physicalDpiX() + UBApplication::desktop()->physicalDpiY())/2); proxy->setPageDpi((UBApplication::desktop()->physicalDpiX() + UBApplication::desktop()->physicalDpiY())/2);
pageDpiSpecified = false; //pageDpiSpecified = false;
} }
bool darkBackground = false; bool darkBackground = false;
@ -909,9 +911,9 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
if (textDelegate) if (textDelegate)
{ {
QDesktopWidget* desktop = UBApplication::desktop(); //QDesktopWidget* desktop = UBApplication::desktop();
qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2; //qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2;
qreal textSizeMultiplier = qreal(proxy->pageDpi())/currentDpi; //qreal textSizeMultiplier = qreal(proxy->pageDpi())/currentDpi;
//textDelegate->scaleTextSize(textSizeMultiplier); //textDelegate->scaleTextSize(textSizeMultiplier);
} }
@ -2390,8 +2392,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsItemToSvg(QGraphicsItem* ite
mXmlWriter.writeAttribute("x", "0"); mXmlWriter.writeAttribute("x", "0");
mXmlWriter.writeAttribute("y", "0"); mXmlWriter.writeAttribute("y", "0");
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width())); QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix())); mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
@ -2487,8 +2490,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsWidgetToSvg(UBGraphicsWidget
mXmlWriter.writeStartElement(nsXHtml, "iframe"); mXmlWriter.writeStartElement(nsXHtml, "iframe");
mXmlWriter.writeAttribute("style", "border: none"); mXmlWriter.writeAttribute("style", "border: none");
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width())); QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
QString startFileUrl; QString startFileUrl;
if (item->mainHtmlFileName().startsWith("http://")) if (item->mainHtmlFileName().startsWith("http://"))
@ -2817,10 +2821,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::curtainItemToSvg(UBGraphicsCurtainIt
*/ */
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "curtain"); mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "curtain");
mXmlWriter.writeAttribute("x", QString("%1").arg(curtainItem->boundingRect().center().x())); QRectF rect = curtainItem->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("y", QString("%1").arg(curtainItem->boundingRect().center().y())); mXmlWriter.writeAttribute("x", QString("%1").arg(rect.center().x()));
mXmlWriter.writeAttribute("width", QString("%1").arg(curtainItem->boundingRect().width())); mXmlWriter.writeAttribute("y", QString("%1").arg(rect.center().y()));
mXmlWriter.writeAttribute("height", QString("%1").arg(curtainItem->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(curtainItem->sceneMatrix())); mXmlWriter.writeAttribute("transform", toSvgTransform(curtainItem->sceneMatrix()));
//graphicsItemToSvg(curtainItem); //graphicsItemToSvg(curtainItem);
@ -2877,10 +2882,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::rulerToSvg(UBGraphicsRuler* item)
*/ */
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "ruler"); mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "ruler");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x())); QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y())); mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width())); mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix())); mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
QString zs; QString zs;
@ -3005,10 +3011,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::compassToSvg(UBGraphicsCompass* item
*/ */
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "compass"); mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "compass");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x())); QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y())); mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width())); mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix())); mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
QString zs; QString zs;
@ -3139,10 +3146,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::triangleToSvg(UBGraphicsTriangle *it
*/ */
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "triangle"); mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "triangle");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x())); QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y())); mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width())); mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height())); mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix())); mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
mXmlWriter.writeAttribute("orientation", UBGraphicsTriangle::orientationToStr(item->getOrientation())); mXmlWriter.writeAttribute("orientation", UBGraphicsTriangle::orientationToStr(item->getOrientation()));

@ -83,8 +83,9 @@ void UBThumbnailAdaptor::generateMissingThumbnails(UBDocumentProxy* proxy)
} }
} }
const QPixmap* UBThumbnailAdaptor::get(UBDocumentProxy* proxy, int pageIndex) QPixmap UBThumbnailAdaptor::get(UBDocumentProxy* proxy, int pageIndex)
{ {
UBApplication::showMessage(tr("Loading thumbnail (%1/%2)").arg(pageIndex+1).arg(proxy->pageCount()));
QString fileName = proxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", pageIndex); QString fileName = proxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.thumbnail.jpg", pageIndex);
QFile file(fileName); QFile file(fileName);
@ -93,30 +94,21 @@ const QPixmap* UBThumbnailAdaptor::get(UBDocumentProxy* proxy, int pageIndex)
generateMissingThumbnails(proxy); generateMissingThumbnails(proxy);
} }
QPixmap* pix = new QPixmap(); QPixmap pix;
if (file.exists()) if (file.exists())
{ {
//Warning. Works only with modified Qt pix.load(fileName, 0, Qt::AutoColor);
#ifdef Q_OS_LINUX
pix->load(fileName, 0, Qt::AutoColor);
#else
pix->load(fileName, 0, Qt::AutoColor);
#endif
} }
return pix; return pix;
} }
void UBThumbnailAdaptor::load(UBDocumentProxy* proxy, QList<const QPixmap*>& list) void UBThumbnailAdaptor::load(UBDocumentProxy* proxy, QList<std::shared_ptr<QPixmap>>& list)
{ {
generateMissingThumbnails(proxy);
foreach(const QPixmap* pm, list){
delete pm;
pm = NULL;
}
list.clear(); list.clear();
for(int i=0; i<proxy->pageCount(); i++) for(int i=0; i<proxy->pageCount(); i++)
list.append(get(proxy, i)); {
list.append(std::make_shared<QPixmap>(get(proxy, i)));
}
} }
void UBThumbnailAdaptor::persistScene(UBDocumentProxy* proxy, UBGraphicsScene* pScene, int pageIndex, bool overrideModified) void UBThumbnailAdaptor::persistScene(UBDocumentProxy* proxy, UBGraphicsScene* pScene, int pageIndex, bool overrideModified)

@ -45,8 +45,8 @@ public:
static void persistScene(UBDocumentProxy* proxy, UBGraphicsScene* pScene, int pageIndex, bool overrideModified = false); static void persistScene(UBDocumentProxy* proxy, UBGraphicsScene* pScene, int pageIndex, bool overrideModified = false);
static const QPixmap* get(UBDocumentProxy* proxy, int index); static QPixmap get(UBDocumentProxy* proxy, int index);
static void load(UBDocumentProxy* proxy, QList<const QPixmap*>& list); static void load(UBDocumentProxy* proxy, QList<std::shared_ptr<QPixmap>>& list);
private: private:
static void generateMissingThumbnails(UBDocumentProxy* proxy); static void generateMissingThumbnails(UBDocumentProxy* proxy);

@ -346,6 +346,8 @@ void UBBoardController::setupToolbar()
, lineWidthChoice, SLOT(setCurrentIndex(int))); , lineWidthChoice, SLOT(setCurrentIndex(int)));
lineWidthChoice->displayText(QVariant(settings->appToolBarDisplayText->get().toBool())); lineWidthChoice->displayText(QVariant(settings->appToolBarDisplayText->get().toBool()));
lineWidthChoice->setCurrentIndex(settings->penWidthIndex());
lineWidthActions.at(settings->penWidthIndex())->setChecked(true);
mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, lineWidthChoice); mMainWindow->boardToolBar->insertWidget(mMainWindow->actionBackgrounds, lineWidthChoice);
@ -367,6 +369,7 @@ void UBBoardController::setupToolbar()
eraserWidthChoice->displayText(QVariant(settings->appToolBarDisplayText->get().toBool())); eraserWidthChoice->displayText(QVariant(settings->appToolBarDisplayText->get().toBool()));
eraserWidthChoice->setCurrentIndex(settings->eraserWidthIndex()); eraserWidthChoice->setCurrentIndex(settings->eraserWidthIndex());
eraserWidthActions.at(settings->eraserWidthIndex())->setChecked(true);
mMainWindow->boardToolBar->insertSeparator(mMainWindow->actionBackgrounds); mMainWindow->boardToolBar->insertSeparator(mMainWindow->actionBackgrounds);
@ -521,6 +524,11 @@ void UBBoardController::addScene()
persistCurrentScene(false,true); persistCurrentScene(false,true);
UBDocumentContainer::addPage(mActiveSceneIndex + 1); UBDocumentContainer::addPage(mActiveSceneIndex + 1);
if (UBApplication::documentController->selectedDocument() == selectedDocument())
{
UBApplication::documentController->insertThumbPage(mActiveSceneIndex+1);
UBApplication::documentController->reloadThumbnails();
}
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
@ -580,11 +588,13 @@ void UBBoardController::duplicateScene(int nIndex)
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
persistCurrentScene(false,true); persistCurrentScene(false,true);
QList<int> scIndexes; duplicatePage(nIndex);
scIndexes << nIndex;
duplicatePages(scIndexes);
insertThumbPage(nIndex); insertThumbPage(nIndex);
emit documentThumbnailsUpdated(this); if (UBApplication::documentController->selectedDocument() == selectedDocument())
{
UBApplication::documentController->insertThumbPage(nIndex);
UBApplication::documentController->reloadThumbnails();
}
emit addThumbnailRequired(this, nIndex + 1); emit addThumbnailRequired(this, nIndex + 1);
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
@ -725,11 +735,19 @@ UBGraphicsItem *UBBoardController::duplicateItem(UBItem *item)
case UBMimeType::UNKNOWN: case UBMimeType::UNKNOWN:
{ {
QGraphicsItem *copiedItem = dynamic_cast<QGraphicsItem*>(item);
QGraphicsItem *gitem = dynamic_cast<QGraphicsItem*>(item->deepCopy()); QGraphicsItem *gitem = dynamic_cast<QGraphicsItem*>(item->deepCopy());
if (gitem) if (gitem)
{ {
mActiveScene->addItem(gitem); mActiveScene->addItem(gitem);
if (copiedItem)
{
if (mActiveScene->tools().contains(copiedItem))
{
mActiveScene->registerTool(gitem);
}
}
gitem->setPos(itemPos); gitem->setPos(itemPos);
mLastCreatedItem = gitem; mLastCreatedItem = gitem;
@ -779,6 +797,10 @@ void UBBoardController::deleteScene(int nIndex)
QList<int> scIndexes; QList<int> scIndexes;
scIndexes << nIndex; scIndexes << nIndex;
deletePages(scIndexes); deletePages(scIndexes);
if (UBApplication::documentController->selectedDocument() == selectedDocument())
{
UBApplication::documentController->deleteThumbPage(nIndex);
}
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(selectedDocument()); UBMetadataDcSubsetAdaptor::persist(selectedDocument());
@ -865,7 +887,6 @@ void UBBoardController::showKeyboard(bool show)
UBPlatformUtils::showOSK(show); UBPlatformUtils::showOSK(show);
else else
mPaletteManager->showVirtualKeyboard(show); mPaletteManager->showVirtualKeyboard(show);
} }
@ -984,7 +1005,7 @@ void UBBoardController::previousScene()
persistViewPositionOnCurrentScene(); persistViewPositionOnCurrentScene();
persistCurrentScene(); persistCurrentScene();
setActiveDocumentScene(mActiveSceneIndex - 1); setActiveDocumentScene(mActiveSceneIndex - 1);
mControlView->centerOn(mActiveScene->lastCenter()); centerOn(mActiveScene->lastCenter());
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
@ -1000,7 +1021,7 @@ void UBBoardController::nextScene()
persistViewPositionOnCurrentScene(); persistViewPositionOnCurrentScene();
persistCurrentScene(); persistCurrentScene();
setActiveDocumentScene(mActiveSceneIndex + 1); setActiveDocumentScene(mActiveSceneIndex + 1);
mControlView->centerOn(mActiveScene->lastCenter()); centerOn(mActiveScene->lastCenter());
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
@ -1016,7 +1037,7 @@ void UBBoardController::firstScene()
persistViewPositionOnCurrentScene(); persistViewPositionOnCurrentScene();
persistCurrentScene(); persistCurrentScene();
setActiveDocumentScene(0); setActiveDocumentScene(0);
mControlView->centerOn(mActiveScene->lastCenter()); centerOn(mActiveScene->lastCenter());
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
@ -1032,7 +1053,7 @@ void UBBoardController::lastScene()
persistViewPositionOnCurrentScene(); persistViewPositionOnCurrentScene();
persistCurrentScene(); persistCurrentScene();
setActiveDocumentScene(selectedDocument()->pageCount() - 1); setActiveDocumentScene(selectedDocument()->pageCount() - 1);
mControlView->centerOn(mActiveScene->lastCenter()); centerOn(mActiveScene->lastCenter());
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
@ -1418,12 +1439,16 @@ UBItem *UBBoardController::downloadFinished(bool pSuccess, QUrl sourceUrl, QUrl
QStringList fileNames; QStringList fileNames;
fileNames << pdfFile.fileName(); fileNames << pdfFile.fileName();
result = UBDocumentManager::documentManager()->addFilesToDocument(selectedDocument(), fileNames); result = UBDocumentManager::documentManager()->addFilesToDocument(selectedDocument(), fileNames);
emit documentThumbnailsUpdated(this); reloadThumbnails();
pdfFile.close(); pdfFile.close();
} }
} }
if (result){ if (result)
{
if (UBApplication::documentController->selectedDocument() == selectedDocument())
UBApplication::documentController->reloadThumbnails();
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
} }
} }
@ -1618,7 +1643,12 @@ void UBBoardController::moveSceneToIndex(int source, int target)
{ {
persistCurrentScene(false,true); persistCurrentScene(false,true);
UBDocumentContainer::movePageToIndex(source, target); UBPersistenceManager::persistenceManager()->moveSceneToIndex(selectedDocument(), source, target);
UBDocumentContainer::moveThumbPage(source, target);
if (UBApplication::documentController->selectedDocument() == selectedDocument())
{
UBApplication::documentController->moveThumbPage(source, target);
}
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBPersistenceManager::persistenceManager()->persistDocumentMetadata(selectedDocument()); UBPersistenceManager::persistenceManager()->persistDocumentMetadata(selectedDocument());
@ -1632,11 +1662,11 @@ void UBBoardController::moveSceneToIndex(int source, int target)
} }
} }
void UBBoardController::findUniquesItems(const QUndoCommand *parent, QSet<QGraphicsItem*> &itms) void UBBoardController::findUniquesItems(const QUndoCommand *parent, QSet<QGraphicsItem*> &items)
{ {
if (parent->childCount()) { if (parent->childCount()) {
for (int i = 0; i < parent->childCount(); i++) { for (int i = 0; i < parent->childCount(); i++) {
findUniquesItems(parent->child(i), itms); findUniquesItems(parent->child(i), items);
} }
} }
@ -1657,16 +1687,26 @@ void UBBoardController::findUniquesItems(const QUndoCommand *parent, QSet<QGraph
while (itAdded.hasNext()) while (itAdded.hasNext())
{ {
QGraphicsItem* item = itAdded.next(); QGraphicsItem* item = itAdded.next();
if( !itms.contains(item) && !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type())) if (!items.contains(item) &&
itms.insert(item); !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type()) &&
!items.contains(item->parentItem())
)
{
items.insert(item);
}
} }
QSetIterator<QGraphicsItem*> itRemoved(cmd->GetRemovedList()); QSetIterator<QGraphicsItem*> itRemoved(cmd->GetRemovedList());
while (itRemoved.hasNext()) while (itRemoved.hasNext())
{ {
QGraphicsItem* item = itRemoved.next(); QGraphicsItem* item = itRemoved.next();
if( !itms.contains(item) && !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type())) if (!items.contains(item) &&
itms.insert(item); !(item->parentItem() && UBGraphicsGroupContainerItem::Type == item->parentItem()->type()) &&
!items.contains(item->parentItem())
)
{
items.insert(item);
}
} }
} }
@ -1867,7 +1907,7 @@ void UBBoardController::documentSceneChanged(UBDocumentProxy* pDocumentProxy, in
if(selectedDocument() == pDocumentProxy) if(selectedDocument() == pDocumentProxy)
{ {
setActiveDocumentScene(mActiveSceneIndex); setActiveDocumentScene(mActiveSceneIndex);
updatePage(pIndex); updateThumbPage(pIndex);
} }
} }
@ -1906,7 +1946,12 @@ void UBBoardController::closing()
mIsClosing = true; mIsClosing = true;
lastWindowClosed(); lastWindowClosed();
ClearUndoStack(); ClearUndoStack();
showKeyboard(false); #ifdef Q_OS_OSX
if (!UBPlatformUtils::errorOpeningVirtualKeyboard)
showKeyboard(false);
#else
showKeyboard(false);
#endif
} }
void UBBoardController::lastWindowClosed() void UBBoardController::lastWindowClosed()
@ -2010,8 +2055,12 @@ void UBBoardController::persistCurrentScene(bool isAnAutomaticBackup, bool force
&& (mActiveSceneIndex >= 0) && mActiveSceneIndex != mMovingSceneIndex && (mActiveSceneIndex >= 0) && mActiveSceneIndex != mMovingSceneIndex
&& (mActiveScene->isModified())) && (mActiveScene->isModified()))
{ {
UBPersistenceManager::persistenceManager()->persistDocumentScene(selectedDocument(), mActiveScene, mActiveSceneIndex); UBPersistenceManager::persistenceManager()->persistDocumentScene(selectedDocument(), mActiveScene, mActiveSceneIndex, isAnAutomaticBackup);
updatePage(mActiveSceneIndex); updateThumbPage(mActiveSceneIndex);
if (UBApplication::documentController->selectedDocument() == selectedDocument())
{
UBApplication::documentController->updateThumbPage(mActiveSceneIndex);
}
} }
} }
@ -2142,7 +2191,14 @@ void UBBoardController::stylusToolChanged(int tool)
if(eTool != UBStylusTool::Selector && eTool != UBStylusTool::Text) if(eTool != UBStylusTool::Selector && eTool != UBStylusTool::Text)
{ {
if(mPaletteManager->mKeyboardPalette->m_isVisible) if(mPaletteManager->mKeyboardPalette->m_isVisible)
{
#ifdef Q_OS_OSX
if (!UBPlatformUtils::errorOpeningVirtualKeyboard)
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
#else
UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger); UBApplication::mainWindow->actionVirtualKeyboard->activate(QAction::Trigger);
#endif
}
} }
} }

@ -177,7 +177,7 @@ class UBBoardController : public UBDocumentContainer
void notifyPageChanged(); void notifyPageChanged();
void displayMetaData(QMap<QString, QString> metadatas); void displayMetaData(QMap<QString, QString> metadatas);
void findUniquesItems(const QUndoCommand *parent, QSet<QGraphicsItem *> &itms); void findUniquesItems(const QUndoCommand *parent, QSet<QGraphicsItem *> &items);
void ClearUndoStack(); void ClearUndoStack();
void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0, bool forceReload = false, bool onImport = false); void setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0, bool forceReload = false, bool onImport = false);

@ -512,16 +512,18 @@ void UBBoardPaletteManager::containerResized()
mKeyboardPalette->adjustSizeAndPosition(); mKeyboardPalette->adjustSizeAndPosition();
} }
if(mLeftPalette) // NOTE @letsfindaway Fixed, but don't see any reason for this.
// Probably remove.
if(mLeftPalette && mLeftPalette->width() > 0)
{ {
mLeftPalette->resize(mLeftPalette->width()-1, mContainer->height()); mLeftPalette->resize(mLeftPalette->width()-1, mContainer->height());
mLeftPalette->resize(mLeftPalette->width(), mContainer->height()); mLeftPalette->resize(mLeftPalette->width()+1, mContainer->height());
} }
if(mRightPalette) if(mRightPalette && mRightPalette->width() > 0)
{ {
mRightPalette->resize(mRightPalette->width()-1, mContainer->height()); mRightPalette->resize(mRightPalette->width()-1, mContainer->height());
mRightPalette->resize(mRightPalette->width(), mContainer->height()); mRightPalette->resize(mRightPalette->width()+1, mContainer->height());
} }
} }

@ -486,8 +486,14 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
if (item) if (item)
{ {
// item has group as first parent - it is any item or UBGraphicsStrokesGroup. // item has group as first parent - it is any item or UBGraphicsStrokesGroup.
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type()) if (getMovingItem())
return; {
if (getMovingItem()->parentItem())
{
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type())
return;
}
}
// delegate buttons shouldn't selected // delegate buttons shouldn't selected
if (DelegateButton::Type == item->type()) if (DelegateButton::Type == item->type())
@ -510,6 +516,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType)) if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType))
{ {
scene()->deselectAllItemsExcept(item); scene()->deselectAllItemsExcept(item);
scene()->updateSelectionFrame();
} }
} }
} }
@ -653,11 +660,17 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
if (!(mMouseButtonIsPressed || mTabletStylusIsPressed)) if (!(mMouseButtonIsPressed || mTabletStylusIsPressed))
return false; return false;
if (getMovingItem()->data(UBGraphicsItemData::ItemLocked).toBool()) if (getMovingItem())
return false; {
if (getMovingItem()->data(UBGraphicsItemData::ItemLocked).toBool())
return false;
if (getMovingItem()->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type() && !getMovingItem()->isSelected() && getMovingItem()->parentItem()->isSelected()) if (getMovingItem()->parentItem())
return false; {
if (UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type() && !getMovingItem()->isSelected() && getMovingItem()->parentItem()->isSelected())
return false;
}
}
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
@ -684,7 +697,6 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
case UBGraphicsAudioItem::Type: case UBGraphicsAudioItem::Type:
return true; return true;
case UBGraphicsStrokesGroup::Type: case UBGraphicsStrokesGroup::Type:
return false;
case UBGraphicsTextItem::Type: case UBGraphicsTextItem::Type:
if (currentTool == UBStylusTool::Play) if (currentTool == UBStylusTool::Play)
return true; return true;
@ -831,20 +843,29 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event)
QPointF posAfterMove; QPointF posAfterMove;
if (getMovingItem()) if (getMovingItem())
{
posBeforeMove = getMovingItem()->pos(); posBeforeMove = getMovingItem()->pos();
QGraphicsView::mouseMoveEvent (event);
QGraphicsView::mouseMoveEvent (event);
if (getMovingItem())
posAfterMove = getMovingItem()->pos(); posAfterMove = getMovingItem()->pos();
}
else
{
if (!mMouseButtonIsPressed)
{
QGraphicsView::mouseMoveEvent(event);
}
}
mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0); mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0);
// a cludge for terminate moving of w3c widgets. // a cludge for terminate moving of w3c widgets.
// in some cases w3c widgets catches mouse move and doesn't sends that events to web page, // in some cases w3c widgets catches mouse move and doesn't sends that events to web page,
// at simple - in google map widget - mouse move events doesn't comes to web page from rectangle of wearch bar on bottom right corner of widget. // at simple - in google map widget - mouse move events doesn't comes to web page from rectangle of wearch bar on bottom right corner of widget.
if (getMovingItem() && mWidgetMoved && UBGraphicsW3CWidgetItem::Type == getMovingItem()->type()) if (getMovingItem())
getMovingItem()->setPos(posBeforeMove); {
if (mWidgetMoved && UBGraphicsW3CWidgetItem::Type == getMovingItem()->type())
getMovingItem()->setPos(posBeforeMove);
}
} }
} }
@ -1270,51 +1291,58 @@ void UBBoardView::mouseReleaseEvent (QMouseEvent *event)
setMovingItem(nullptr); setMovingItem(nullptr);
} }
else else
if (getMovingItem() && (!isCppTool(getMovingItem()) || UBGraphicsCurtainItem::Type == getMovingItem()->type())) {
if (getMovingItem())
{ {
if (suspendedMousePressEvent) if (!isCppTool(getMovingItem()) || UBGraphicsCurtainItem::Type == getMovingItem()->type())
{
QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop
setMovingItem(NULL);
delete suspendedMousePressEvent;
suspendedMousePressEvent = NULL;
bReleaseIsNeed = true;
}
else
{ {
if (isUBItem(getMovingItem()) && if (suspendedMousePressEvent)
DelegateButton::Type != getMovingItem()->type() &&
UBGraphicsDelegateFrame::Type != getMovingItem()->type() &&
UBGraphicsCache::Type != getMovingItem()->type() &&
QGraphicsWebView::Type != getMovingItem()->type() && // for W3C widgets as Tools.
!(!isMultipleSelectionEnabled() && getMovingItem()->parentItem() && UBGraphicsWidgetItem::Type == getMovingItem()->type() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type()))
{ {
bReleaseIsNeed = false; QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop
if (getMovingItem()->isSelected() && isMultipleSelectionEnabled()) setMovingItem(NULL);
getMovingItem()->setSelected(false); delete suspendedMousePressEvent;
else suspendedMousePressEvent = NULL;
if (getMovingItem()->parentItem() && getMovingItem()->parentItem()->isSelected() && isMultipleSelectionEnabled()) bReleaseIsNeed = true;
getMovingItem()->parentItem()->setSelected(false); }
else
{
if (isUBItem(getMovingItem()) &&
DelegateButton::Type != getMovingItem()->type() &&
UBGraphicsDelegateFrame::Type != getMovingItem()->type() &&
UBGraphicsCache::Type != getMovingItem()->type() &&
QGraphicsWebView::Type != getMovingItem()->type() && // for W3C widgets as Tools.
!(!isMultipleSelectionEnabled() && getMovingItem()->parentItem() && UBGraphicsWidgetItem::Type == getMovingItem()->type() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type()))
{
bReleaseIsNeed = false;
if (getMovingItem()->isSelected() && isMultipleSelectionEnabled())
getMovingItem()->setSelected(false);
else else
{ if (getMovingItem()->parentItem() && getMovingItem()->parentItem()->isSelected() && isMultipleSelectionEnabled())
if (getMovingItem()->isSelected()) getMovingItem()->parentItem()->setSelected(false);
bReleaseIsNeed = true;
UBGraphicsTextItem* textItem = dynamic_cast<UBGraphicsTextItem*>(getMovingItem());
UBGraphicsMediaItem* movieItem = dynamic_cast<UBGraphicsMediaItem*>(getMovingItem());
if(textItem)
textItem->setSelected(true);
else if(movieItem)
movieItem->setSelected(true);
else else
getMovingItem()->setSelected(true); {
} if (getMovingItem()->isSelected())
bReleaseIsNeed = true;
UBGraphicsTextItem* textItem = dynamic_cast<UBGraphicsTextItem*>(getMovingItem());
UBGraphicsMediaItem* movieItem = dynamic_cast<UBGraphicsMediaItem*>(getMovingItem());
if(textItem)
textItem->setSelected(true);
else if(movieItem)
movieItem->setSelected(true);
else
getMovingItem()->setSelected(true);
}
}
} }
} }
else
bReleaseIsNeed = true;
} }
else else
bReleaseIsNeed = true; bReleaseIsNeed = true;
}
if (bReleaseIsNeed) if (bReleaseIsNeed)
{ {
@ -1402,9 +1430,13 @@ void UBBoardView::mouseReleaseEvent (QMouseEvent *event)
return; return;
} }
if (mWidgetMoved) { if (mWidgetMoved)
getMovingItem()->setSelected(false); {
setMovingItem(NULL); if (getMovingItem())
{
getMovingItem()->setSelected(false);
setMovingItem(NULL);
}
mWidgetMoved = false; mWidgetMoved = false;
} }
else { else {

@ -81,6 +81,8 @@ const QString UBApplication::mimeTypeUniboardPage = QString("application/vnd.mne
const QString UBApplication::mimeTypeUniboardPageItem = QString("application/vnd.mnemis-uniboard-page-item"); const QString UBApplication::mimeTypeUniboardPageItem = QString("application/vnd.mnemis-uniboard-page-item");
const QString UBApplication::mimeTypeUniboardPageThumbnail = QString("application/vnd.mnemis-uniboard-thumbnail"); const QString UBApplication::mimeTypeUniboardPageThumbnail = QString("application/vnd.mnemis-uniboard-thumbnail");
QString UBApplication::fileToOpen = "";
#if defined(Q_OS_OSX) || defined(Q_OS_LINUX) #if defined(Q_OS_OSX) || defined(Q_OS_LINUX)
bool bIsMinimized = false; bool bIsMinimized = false;
#endif #endif
@ -88,7 +90,7 @@ bool bIsMinimized = false;
QObject* UBApplication::staticMemoryCleaner = 0; QObject* UBApplication::staticMemoryCleaner = 0;
UBApplication::UBApplication(const QString &id, int &argc, char **argv) : QtSingleApplication(id, argc, argv) UBApplication::UBApplication(const QString &id, int &argc, char **argv) : SingleApplication(argc, argv)
, mPreferencesController(NULL) , mPreferencesController(NULL)
, mApplicationTranslator(NULL) , mApplicationTranslator(NULL)
, mQtGuiTranslator(NULL) , mQtGuiTranslator(NULL)
@ -309,6 +311,14 @@ int UBApplication::exec(const QString& pFileToImport)
boardController->paletteManager()->rightPalette()); boardController->paletteManager()->rightPalette());
if (!UBApplication::fileToOpen.isEmpty())
{
if (!UBApplication::fileToOpen.endsWith("ubx"))
applicationController->importFile(UBApplication::fileToOpen);
else
applicationController->showMessage(tr("Cannot open your UBX file directly. Please import it in Documents mode instead"), false);
}
connect(applicationController, SIGNAL(mainModeChanged(UBApplicationController::MainMode)), connect(applicationController, SIGNAL(mainModeChanged(UBApplicationController::MainMode)),
boardController->paletteManager(), SLOT(slot_changeMainMode(UBApplicationController::MainMode))); boardController->paletteManager(), SLOT(slot_changeMainMode(UBApplicationController::MainMode)));
@ -348,7 +358,12 @@ int UBApplication::exec(const QString& pFileToImport)
boardController->setupLayout(); boardController->setupLayout();
if (pFileToImport.length() > 0) if (pFileToImport.length() > 0)
UBApplication::applicationController->importFile(pFileToImport); {
if (!pFileToImport.endsWith("ubx"))
applicationController->importFile(pFileToImport);
else
applicationController->showMessage(tr("Cannot open your UBX file directly. Please import it in Documents mode instead"), false);
}
if (UBSettings::settings()->appStartMode->get().toInt()) if (UBSettings::settings()->appStartMode->get().toInt())
applicationController->showDesktop(); applicationController->showDesktop();
@ -575,7 +590,21 @@ bool UBApplication::eventFilter(QObject *obj, QEvent *event)
UBPlatformUtils::setFrontProcess(); UBPlatformUtils::setFrontProcess();
applicationController->importFile(fileToOpenEvent->file()); if (applicationController)
{
if (!fileToOpenEvent->file().endsWith("ubx"))
applicationController->importFile(fileToOpenEvent->file());
else
applicationController->showMessage(tr("Cannot open your UBX file directly. Please import it in Documents mode instead"), false);
}
else
{
//startup : progressdialog.exec() is called and fileOpenEvent is consumed too early
// we store the file and will import it when the documents tree is ready
UBApplication::fileToOpen = fileToOpenEvent->file();
return true;
}
} }
if (event->type() == QEvent::TabletLeaveProximity) if (event->type() == QEvent::TabletLeaveProximity)

@ -35,7 +35,7 @@
#include <QToolBar> #include <QToolBar>
#include <QMenu> #include <QMenu>
#include "qtsingleapplication.h" #include "singleapplication/singleapplication.h"
namespace Ui namespace Ui
{ {
@ -54,7 +54,7 @@ class UBApplicationController;
class UBDocumentController; class UBDocumentController;
class UBMainWindow; class UBMainWindow;
class UBApplication : public QtSingleApplication class UBApplication : public SingleApplication
{ {
Q_OBJECT Q_OBJECT
@ -86,6 +86,8 @@ class UBApplication : public QtSingleApplication
static const QString mimeTypeUniboardPageItem; static const QString mimeTypeUniboardPageItem;
static const QString mimeTypeUniboardPageThumbnail; static const QString mimeTypeUniboardPageThumbnail;
static QString fileToOpen;
static void showMessage(const QString& message, bool showSpinningWheel = false); static void showMessage(const QString& message, bool showSpinningWheel = false);
static void setDisabled(bool disable); static void setDisabled(bool disable);

@ -351,11 +351,11 @@ void UBApplicationController::showBoard()
if (mMainMode == Document) if (mMainMode == Document)
{ {
int selectedSceneIndex = UBApplication::documentController->getSelectedItemIndex(); // int selectedSceneIndex = UBApplication::documentController->getSelectedItemIndex();
if (selectedSceneIndex != -1) // if (selectedSceneIndex != -1)
{ // {
UBApplication::boardController->setActiveDocumentScene(UBApplication::documentController->selectedDocument(), selectedSceneIndex, true); // UBApplication::boardController->setActiveDocumentScene(UBApplication::documentController->selectedDocument(), selectedSceneIndex);
} // }
} }
mMainMode = Board; mMainMode = Board;
@ -435,12 +435,12 @@ void UBApplicationController::showDocument()
{ {
if (UBApplication::boardController->activeScene()->isModified()) if (UBApplication::boardController->activeScene()->isModified())
UBApplication::boardController->persistCurrentScene(); UBApplication::boardController->persistCurrentScene();
UBApplication::boardController->hide(); UBApplication::boardController->hide();
} }
if (UBApplication::documentController) if (UBApplication::documentController)
{ {
emit UBApplication::documentController->reorderDocumentsRequested();
UBApplication::documentController->show(); UBApplication::documentController->show();
} }
@ -464,6 +464,7 @@ void UBApplicationController::showDesktop(bool dontSwitchFrontProcess)
if (mMirror) if (mMirror)
{ {
QRect rect = qApp->desktop()->screenGeometry(desktopWidgetIndex); QRect rect = qApp->desktop()->screenGeometry(desktopWidgetIndex);
rect.moveTo(0, 0);
mMirror->setSourceRect(rect); mMirror->setSourceRect(rect);
} }

@ -180,7 +180,7 @@ void UBDisplayManager::setDisplayWidget(QWidget* pDisplayWidget)
} }
mDisplayWidget = pDisplayWidget; mDisplayWidget = pDisplayWidget;
mDisplayWidget->setGeometry(mDesktop->screenGeometry(mDisplayScreenIndex)); mDisplayWidget->setGeometry(mDesktop->screenGeometry(mDisplayScreenIndex));
if (UBSettings::settings()->appUseMultiscreen->get().toBool()) if (numScreens() > 1 && UBSettings::settings()->appUseMultiscreen->get().toBool())
UBPlatformUtils::showFullScreen(mDisplayWidget); UBPlatformUtils::showFullScreen(mDisplayWidget);
} }
} }
@ -236,7 +236,7 @@ void UBDisplayManager::positionScreens()
if (mDisplayWidget && mDisplayScreenIndex > -1) if (mDisplayWidget && mDisplayScreenIndex > -1)
{ {
mDisplayWidget->hide(); mDisplayWidget->showNormal();
mDisplayWidget->setGeometry(mDesktop->screenGeometry(mDisplayScreenIndex)); mDisplayWidget->setGeometry(mDesktop->screenGeometry(mDisplayScreenIndex));
UBPlatformUtils::showFullScreen(mDisplayWidget); UBPlatformUtils::showFullScreen(mDisplayWidget);
} }

@ -286,7 +286,6 @@ int UBDocumentManager::addFilesToDocument(UBDocumentProxy* document, QStringList
UBGraphicsScene* scene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(document, pageIndex); UBGraphicsScene* scene = UBPersistenceManager::persistenceManager()->createDocumentSceneAt(document, pageIndex);
importAdaptor->placeImportedItemToScene(scene, page); importAdaptor->placeImportedItemToScene(scene, page);
UBPersistenceManager::persistenceManager()->persistDocumentScene(document, scene, pageIndex); UBPersistenceManager::persistenceManager()->persistDocumentScene(document, scene, pageIndex);
UBApplication::boardController->insertThumbPage(pageIndex);
} }
UBPersistenceManager::persistenceManager()->persistDocumentMetadata(document); UBPersistenceManager::persistenceManager()->persistDocumentMetadata(document);

@ -34,6 +34,7 @@
#include <QDomDocument> #include <QDomDocument>
#include <QXmlStreamWriter> #include <QXmlStreamWriter>
#include <QModelIndex> #include <QModelIndex>
#include <QtConcurrent>
#include "frameworks/UBPlatformUtils.h" #include "frameworks/UBPlatformUtils.h"
#include "frameworks/UBFileSystemUtils.h" #include "frameworks/UBFileSystemUtils.h"
@ -98,7 +99,6 @@ UBPersistenceManager::UBPersistenceManager(QObject *pParent)
mDocumentTreeStructureModel = new UBDocumentTreeModel(this); mDocumentTreeStructureModel = new UBDocumentTreeModel(this);
createDocumentProxiesStructure(); createDocumentProxiesStructure();
emit proxyListChanged(); emit proxyListChanged();
} }
@ -123,6 +123,50 @@ UBPersistenceManager::~UBPersistenceManager()
{ {
} }
void UBPersistenceManager::createDocumentProxiesStructure(const QFileInfoList &contentInfoList, bool interactive)
{
// Create a QFutureWatcher and connect signals and slots.
QFutureWatcher<UBDocumentProxy*> futureWatcher;
QObject::connect(&futureWatcher, &QFutureWatcher<void>::finished, &mProgress, &QProgressDialog::reset);
QObject::connect(&futureWatcher, &QFutureWatcher<void>::progressRangeChanged, &mProgress, &QProgressDialog::setRange);
QObject::connect(&futureWatcher, &QFutureWatcher<void>::progressValueChanged, &mProgress, &QProgressDialog::setValue);
// Start the computation.
std::function<UBDocumentProxy* (QFileInfo contentInfo)> createDocumentProxyLambda = [=](QFileInfo contentInfo) {
return createDocumentProxyStructure(contentInfo);
};
QFuture<UBDocumentProxy*> proxiesFuture = QtConcurrent::mapped(contentInfoList, createDocumentProxyLambda);
futureWatcher.setFuture(proxiesFuture);
// Display the dialog and start the event loop.
mProgress.exec();
futureWatcher.waitForFinished();
QList<UBDocumentProxy*> proxies = futureWatcher.future().results();
for (auto&& proxy : qAsConst(proxies))
{
if (proxy)
{
QString docGroupName = proxy->metaData(UBSettings::documentGroupName).toString();
QModelIndex parentIndex = mDocumentTreeStructureModel->goTo(docGroupName);
if (parentIndex.isValid())
{
if (!interactive)
mDocumentTreeStructureModel->addDocument(proxy, parentIndex);
else
processInteractiveReplacementDialog(proxy);
}
else
{
qDebug() << "something went wrong";
}
}
}
}
void UBPersistenceManager::createDocumentProxiesStructure(bool interactive) void UBPersistenceManager::createDocumentProxiesStructure(bool interactive)
{ {
mDocumentRepositoryPath = UBSettings::userDocumentDirectory(); mDocumentRepositoryPath = UBSettings::userDocumentDirectory();
@ -130,8 +174,13 @@ void UBPersistenceManager::createDocumentProxiesStructure(bool interactive)
QDir rootDir(mDocumentRepositoryPath); QDir rootDir(mDocumentRepositoryPath);
rootDir.mkpath(rootDir.path()); rootDir.mkpath(rootDir.path());
QFileInfoList contentList = rootDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed); QFileInfoList contentInfoList = rootDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed);
createDocumentProxiesStructure(contentList, interactive);
mProgress.setWindowFlags(Qt::Window | Qt::WindowTitleHint | Qt::CustomizeWindowHint);
mProgress.setLabelText(QString("retrieving all your documents (found %1)").arg(contentInfoList.size()));
mProgress.setCancelButton(nullptr);
createDocumentProxiesStructure(contentInfoList, interactive);
if (QFileInfo(mFoldersXmlStorageName).exists()) { if (QFileInfo(mFoldersXmlStorageName).exists()) {
QDomDocument xmlDom; QDomDocument xmlDom;
@ -158,52 +207,36 @@ void UBPersistenceManager::createDocumentProxiesStructure(bool interactive)
} }
} }
void UBPersistenceManager::createDocumentProxiesStructure(const QFileInfoList &contentInfo, bool interactive) UBDocumentProxy* UBPersistenceManager::createDocumentProxyStructure(QFileInfo& contentInfo)
{ {
foreach(QFileInfo path, contentInfo) QString fullPath = contentInfo.absoluteFilePath();
{ QDir dir(fullPath);
QString fullPath = path.absoluteFilePath();
if (dir.entryList(QDir::Files | QDir::NoDotAndDotDot).size() > 0)
{
QMap<QString, QVariant> metadatas = UBMetadataDcSubsetAdaptor::load(fullPath); QMap<QString, QVariant> metadatas = UBMetadataDcSubsetAdaptor::load(fullPath);
QString docGroupName = metadatas.value(UBSettings::documentGroupName, QString()).toString(); QString docGroupName = metadatas.value(UBSettings::documentGroupName, QString()).toString();
QString docName = metadatas.value(UBSettings::documentName, QString()).toString(); QString docName = metadatas.value(UBSettings::documentName, QString()).toString();
if (docName.isEmpty()) { if (docName.isEmpty()) {
qDebug() << "Group name and document name are empty in UBPersistenceManager::createDocumentProxiesStructure()"; qDebug() << "Group name and document name are empty in UBPersistenceManager::createDocumentProxiesStructure()";
continue; return nullptr;
}
QModelIndex parentIndex = mDocumentTreeStructureModel->goTo(docGroupName);
if (!parentIndex.isValid()) {
return;
} }
UBDocumentProxy* docProxy = new UBDocumentProxy(fullPath, metadatas); // managed in UBDocumentTreeNode UBDocumentProxy* docProxy = new UBDocumentProxy(fullPath); // managed in UBDocumentTreeNode
foreach(QString key, metadatas.keys()) { foreach(QString key, metadatas.keys()) {
docProxy->setMetaData(key, metadatas.value(key)); docProxy->setMetaData(key, metadatas.value(key));
} }
if (metadatas.contains(UBSettings::documentPageCount)) docProxy->setPageCount(sceneCount(docProxy));
{
int pageCount = metadatas.value(UBSettings::documentPageCount).toInt();
if (pageCount == 0)
pageCount = sceneCount(docProxy);
docProxy->setPageCount(pageCount); docProxy->moveToThread(UBApplication::instance()->thread());
}
else
{
int pageCount = sceneCount(docProxy);
docProxy->setPageCount(pageCount);
}
if (!interactive) return docProxy;
mDocumentTreeStructureModel->addDocument(docProxy, parentIndex);
else
processInteractiveReplacementDialog(docProxy);
} }
}
return nullptr;
};
QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UBDocumentProxy *pProxy) QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UBDocumentProxy *pProxy)
{ {
@ -246,7 +279,10 @@ QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UB
if (mDocumentTreeStructureModel->currentIndex() == replaceIndex) if (mDocumentTreeStructureModel->currentIndex() == replaceIndex)
{ {
UBApplication::documentController->selectDocument(pProxy, true, true); if (pProxy->pageCount() > 0)
{
UBApplication::documentController->selectDocument(pProxy, true, true);
}
} }
if (replaceProxy) { if (replaceProxy) {
@ -256,7 +292,12 @@ QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UB
mDocumentTreeStructureModel->removeRow(i, parentIndex); mDocumentTreeStructureModel->removeRow(i, parentIndex);
} }
} }
pProxy->setMetaData(UBSettings::documentName, resultName);
if (docName != resultName)
{
pProxy->setMetaData(UBSettings::documentName, resultName);
UBMetadataDcSubsetAdaptor::persist(pProxy);
}
mDocumentTreeStructureModel->addDocument(pProxy, parentIndex); mDocumentTreeStructureModel->addDocument(pProxy, parentIndex);
} }
replaceDialog->setParent(0); replaceDialog->setParent(0);
@ -625,11 +666,6 @@ void UBPersistenceManager::deleteDocumentScenes(UBDocumentProxy* proxy, const QL
if (compactedIndexes.size() == 0) if (compactedIndexes.size() == 0)
return; return;
foreach(int index, compactedIndexes)
{
emit documentSceneWillBeDeleted(proxy, index);
}
QString sourceName = proxy->metaData(UBSettings::documentName).toString(); QString sourceName = proxy->metaData(UBSettings::documentName).toString();
UBDocumentProxy *trashDocProxy = createDocument(UBSettings::trashedDocumentGroupNamePrefix/* + sourceGroupName*/, sourceName, false); UBDocumentProxy *trashDocProxy = createDocument(UBSettings::trashedDocumentGroupNamePrefix/* + sourceGroupName*/, sourceName, false);
@ -650,8 +686,7 @@ void UBPersistenceManager::deleteDocumentScenes(UBDocumentProxy* proxy, const QL
d.mkpath(d.absolutePath()); d.mkpath(d.absolutePath());
QFile::copy(source, target); QFile::copy(source, target);
} }
insertDocumentSceneAt(trashDocProxy, scene, trashDocProxy->pageCount(), true, true);
insertDocumentSceneAt(trashDocProxy, scene, trashDocProxy->pageCount());
} }
} }
@ -817,7 +852,7 @@ void UBPersistenceManager::copyDocumentScene(UBDocumentProxy *from, int fromInde
Q_ASSERT(QFileInfo(thumbTmp).exists()); Q_ASSERT(QFileInfo(thumbTmp).exists());
Q_ASSERT(QFileInfo(thumbTo).exists()); Q_ASSERT(QFileInfo(thumbTo).exists());
const QPixmap *pix = new QPixmap(thumbTmp); auto pix = std::make_shared<QPixmap>(thumbTmp);
UBDocumentController *ctrl = UBApplication::documentController; UBDocumentController *ctrl = UBApplication::documentController;
ctrl->addPixmapAt(pix, toIndex); ctrl->addPixmapAt(pix, toIndex);
ctrl->TreeViewSelectionChanged(ctrl->firstSelectedTreeIndex(), QModelIndex()); ctrl->TreeViewSelectionChanged(ctrl->firstSelectedTreeIndex(), QModelIndex());
@ -828,10 +863,12 @@ void UBPersistenceManager::copyDocumentScene(UBDocumentProxy *from, int fromInde
UBGraphicsScene* UBPersistenceManager::createDocumentSceneAt(UBDocumentProxy* proxy, int index, bool useUndoRedoStack) UBGraphicsScene* UBPersistenceManager::createDocumentSceneAt(UBDocumentProxy* proxy, int index, bool useUndoRedoStack)
{ {
int count = sceneCount(proxy); int count = proxy->pageCount();
for(int i = count - 1; i >= index; i--) for(int i = count - 1; i >= index; i--)
{
renamePage(proxy, i , i + 1); renamePage(proxy, i , i + 1);
}
mSceneCache.shiftUpScenes(proxy, index, count -1); mSceneCache.shiftUpScenes(proxy, index, count -1);
@ -852,7 +889,7 @@ UBGraphicsScene* UBPersistenceManager::createDocumentSceneAt(UBDocumentProxy* pr
} }
void UBPersistenceManager::insertDocumentSceneAt(UBDocumentProxy* proxy, UBGraphicsScene* scene, int index, bool persist) void UBPersistenceManager::insertDocumentSceneAt(UBDocumentProxy* proxy, UBGraphicsScene* scene, int index, bool persist, bool deleting)
{ {
scene->setDocument(proxy); scene->setDocument(proxy);
@ -873,7 +910,8 @@ void UBPersistenceManager::insertDocumentSceneAt(UBDocumentProxy* proxy, UBGraph
persistDocumentScene(proxy, scene, index); persistDocumentScene(proxy, scene, index);
} }
emit documentSceneCreated(proxy, index); if (!deleting)
emit documentSceneCreated(proxy, index);
} }
@ -939,11 +977,12 @@ void UBPersistenceManager::reassignDocProxy(UBDocumentProxy *newDocument, UBDocu
return mSceneCache.reassignDocProxy(newDocument, oldDocument); return mSceneCache.reassignDocProxy(newDocument, oldDocument);
} }
void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex) void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup)
{ {
checkIfDocumentRepositoryExists(); checkIfDocumentRepositoryExists();
pScene->deselectAllItems(); if (!isAnAutomaticBackup)
pScene->deselectAllItems();
generatePathIfNeeded(pDocumentProxy); generatePathIfNeeded(pDocumentProxy);
@ -978,6 +1017,7 @@ UBDocumentProxy* UBPersistenceManager::persistDocumentMetadata(UBDocumentProxy*
void UBPersistenceManager::renamePage(UBDocumentProxy* pDocumentProxy, const int sourceIndex, const int targetIndex) void UBPersistenceManager::renamePage(UBDocumentProxy* pDocumentProxy, const int sourceIndex, const int targetIndex)
{ {
UBApplication::showMessage(tr("Renaming pages (%1/%2)").arg(sourceIndex).arg(pDocumentProxy->pageCount()));
QFile svg(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", sourceIndex)); QFile svg(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", sourceIndex));
svg.rename(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", targetIndex)); svg.rename(pDocumentProxy->persistencePath() + UBFileSystemUtils::digitFileFormat("/page%1.svg", targetIndex));

@ -103,12 +103,11 @@ class UBPersistenceManager : public QObject
virtual void copyDocumentScene(UBDocumentProxy *from, int fromIndex, UBDocumentProxy *to, int toIndex); virtual void copyDocumentScene(UBDocumentProxy *from, int fromIndex, UBDocumentProxy *to, int toIndex);
virtual void persistDocumentScene(UBDocumentProxy* pDocumentProxy, virtual void persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup = false);
UBGraphicsScene* pScene, const int pSceneIndex);
virtual UBGraphicsScene* createDocumentSceneAt(UBDocumentProxy* pDocumentProxy, int index, bool useUndoRedoStack = true); virtual UBGraphicsScene* createDocumentSceneAt(UBDocumentProxy* pDocumentProxy, int index, bool useUndoRedoStack = true);
virtual void insertDocumentSceneAt(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* scene, int index, bool persist = true); virtual void insertDocumentSceneAt(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* scene, int index, bool persist = true, bool deleting = false);
virtual void moveSceneToIndex(UBDocumentProxy* pDocumentProxy, int source, int target); virtual void moveSceneToIndex(UBDocumentProxy* pDocumentProxy, int source, int target);
@ -132,7 +131,8 @@ class UBPersistenceManager : public QObject
bool addDirectoryContentToDocument(const QString& documentRootFolder, UBDocumentProxy* pDocument); bool addDirectoryContentToDocument(const QString& documentRootFolder, UBDocumentProxy* pDocument);
void createDocumentProxiesStructure(bool interactive = false); void createDocumentProxiesStructure(bool interactive = false);
void createDocumentProxiesStructure(const QFileInfoList &contentInfo, bool interactive = false); void createDocumentProxiesStructure(const QFileInfoList &contentInfoList, bool interactive = false);
UBDocumentProxy* createDocumentProxyStructure(QFileInfo &contentInfo);
QDialog::DialogCode processInteractiveReplacementDialog(UBDocumentProxy *pProxy); QDialog::DialogCode processInteractiveReplacementDialog(UBDocumentProxy *pProxy);
QStringList documentSubDirectories() QStringList documentSubDirectories()
@ -166,7 +166,6 @@ class UBPersistenceManager : public QObject
void documentWillBeDeleted(UBDocumentProxy* pDocumentProxy); void documentWillBeDeleted(UBDocumentProxy* pDocumentProxy);
void documentSceneCreated(UBDocumentProxy* pDocumentProxy, int pIndex); void documentSceneCreated(UBDocumentProxy* pDocumentProxy, int pIndex);
void documentSceneWillBeDeleted(UBDocumentProxy* pDocumentProxy, int pIndex);
private: private:
int sceneCount(const UBDocumentProxy* pDocumentProxy); int sceneCount(const UBDocumentProxy* pDocumentProxy);
@ -189,6 +188,8 @@ private:
bool mHasPurgedDocuments; bool mHasPurgedDocuments;
QString mDocumentRepositoryPath; QString mDocumentRepositoryPath;
QString mFoldersXmlStorageName; QString mFoldersXmlStorageName;
QProgressDialog mProgress;
QFutureWatcher<void> futureWatcher;
private slots: private slots:
void documentRepositoryChanged(const QString& path); void documentRepositoryChanged(const QString& path);

@ -222,6 +222,7 @@ void UBSceneCache::shiftUpScenes(UBDocumentProxy* proxy, int startIncIndex, int
{ {
for(int i = endIncIndex; i >= startIncIndex; i--) for(int i = endIncIndex; i >= startIncIndex; i--)
{ {
UBApplication::showMessage(QObject::tr("Moving cached scenes (%1/%2)").arg(i).arg(endIncIndex));
internalMoveScene(proxy, i, i + 1); internalMoveScene(proxy, i, i + 1);
} }
} }

@ -61,7 +61,6 @@ QString UBSettings::documentSize = QString("Size");
QString UBSettings::documentIdentifer = QString("ID"); QString UBSettings::documentIdentifer = QString("ID");
QString UBSettings::documentVersion = QString("Version"); QString UBSettings::documentVersion = QString("Version");
QString UBSettings::documentUpdatedAt = QString("UpdatedAt"); QString UBSettings::documentUpdatedAt = QString("UpdatedAt");
QString UBSettings::documentPageCount = QString("PageCount");
QString UBSettings::documentDate = QString("date"); QString UBSettings::documentDate = QString("date");
QString UBSettings::trashedDocumentGroupNamePrefix = QString("_Trash:"); QString UBSettings::trashedDocumentGroupNamePrefix = QString("_Trash:");
@ -73,6 +72,7 @@ QString UBSettings::undoCommandTransactionName = "UndoTransaction";
const int UBSettings::sDefaultFontPixelSize = 36; const int UBSettings::sDefaultFontPixelSize = 36;
const char *UBSettings::sDefaultFontFamily = "Arial"; const char *UBSettings::sDefaultFontFamily = "Arial";
const char *UBSettings::sDefaultFontStyleName = "Regular";
QString UBSettings::currentFileVersion = "4.8.0"; QString UBSettings::currentFileVersion = "4.8.0";
@ -361,9 +361,6 @@ void UBSettings::init()
webShowPageImmediatelyOnMirroredScreen = new UBSetting(this, "Web", "ShowPageImediatelyOnMirroredScreen", defaultShowPageImmediatelyOnMirroredScreen); webShowPageImmediatelyOnMirroredScreen = new UBSetting(this, "Web", "ShowPageImediatelyOnMirroredScreen", defaultShowPageImmediatelyOnMirroredScreen);
webHomePage = new UBSetting(this, "Web", "Homepage", softwareHomeUrl); webHomePage = new UBSetting(this, "Web", "Homepage", softwareHomeUrl);
webBookmarksPage = new UBSetting(this, "Web", "BookmarksPage", "http://www.myuniboard.com");
webAddBookmarkUrl = new UBSetting(this, "Web", "AddBookmarkURL", "http://www.myuniboard.com/bookmarks/save/?url=");
webShowAddBookmarkButton = new UBSetting(this, "Web", "ShowAddBookmarkButton", false);
pageCacheSize = new UBSetting(this, "App", "PageCacheSize", 20); pageCacheSize = new UBSetting(this, "App", "PageCacheSize", 20);
@ -412,6 +409,8 @@ void UBSettings::init()
pdfZoomBehavior = new UBSetting(this, "PDF", "ZoomBehavior", "4"); pdfZoomBehavior = new UBSetting(this, "PDF", "ZoomBehavior", "4");
enableQualityLossToIncreaseZoomPerfs = new UBSetting(this, "PDF", "enableQualityLossToIncreaseZoomPerfs", true); enableQualityLossToIncreaseZoomPerfs = new UBSetting(this, "PDF", "enableQualityLossToIncreaseZoomPerfs", true);
exportBackgroundGrid = new UBSetting(this, "PDF", "ExportBackgroundGrid", false);
exportBackgroundColor = new UBSetting(this, "PDF", "ExportBackgroundColor", false);
podcastFramesPerSecond = new UBSetting(this, "Podcast", "FramesPerSecond", 10); podcastFramesPerSecond = new UBSetting(this, "Podcast", "FramesPerSecond", 10);
podcastVideoSize = new UBSetting(this, "Podcast", "VideoSize", "Medium"); podcastVideoSize = new UBSetting(this, "Podcast", "VideoSize", "Medium");
@ -871,6 +870,17 @@ void UBSettings::setFontFamily(const QString &family)
} }
QString UBSettings::fontStyleName()
{
return value("Board/FontStyleName", sDefaultFontStyleName).toString();
}
void UBSettings::setFontStyleName(const QString &styleName)
{
setValue("Board/FontStyleName", styleName);
}
int UBSettings::fontPixelSize() int UBSettings::fontPixelSize()
{ {
return value("Board/FontPixelSize", sDefaultFontPixelSize).toInt(); return value("Board/FontPixelSize", sDefaultFontPixelSize).toInt();

@ -97,6 +97,8 @@ class UBSettings : public QObject
// Text related // Text related
QString fontFamily(); QString fontFamily();
void setFontFamily(const QString &family); void setFontFamily(const QString &family);
QString fontStyleName();
void setFontStyleName(const QString &family);
int fontPixelSize(); int fontPixelSize();
void setFontPixelSize(int pixelSize); void setFontPixelSize(int pixelSize);
int fontPointSize(); int fontPointSize();
@ -202,7 +204,6 @@ class UBSettings : public QObject
static QString documentIdentifer; static QString documentIdentifer;
static QString documentVersion; static QString documentVersion;
static QString documentUpdatedAt; static QString documentUpdatedAt;
static QString documentPageCount;
static QString documentDate; static QString documentDate;
@ -328,9 +329,6 @@ class UBSettings : public QObject
UBSetting* webShowPageImmediatelyOnMirroredScreen; UBSetting* webShowPageImmediatelyOnMirroredScreen;
UBSetting* webHomePage; UBSetting* webHomePage;
UBSetting* webBookmarksPage;
UBSetting* webAddBookmarkUrl;
UBSetting* webShowAddBookmarkButton;
UBSetting* pageCacheSize; UBSetting* pageCacheSize;
@ -363,6 +361,8 @@ class UBSettings : public QObject
UBSetting* pdfZoomBehavior; UBSetting* pdfZoomBehavior;
UBSetting* enableQualityLossToIncreaseZoomPerfs; UBSetting* enableQualityLossToIncreaseZoomPerfs;
UBSetting* exportBackgroundGrid;
UBSetting* exportBackgroundColor;
UBSetting* podcastFramesPerSecond; UBSetting* podcastFramesPerSecond;
UBSetting* podcastVideoSize; UBSetting* podcastVideoSize;
@ -466,6 +466,7 @@ class UBSettings : public QObject
static const int sDefaultFontPixelSize; static const int sDefaultFontPixelSize;
static const char *sDefaultFontFamily; static const char *sDefaultFontFamily;
static const char *sDefaultFontStyleName;
static QSettings* getAppSettings(); static QSettings* getAppSettings();

@ -122,8 +122,8 @@ int main(int argc, char *argv[])
if (f.exists()) { if (f.exists()) {
fileToOpen += args[1]; fileToOpen += args[1];
if (app.sendMessage(UBSettings::appPingMessage, 20000)) { if (app.sendMessage(UBSettings::appPingMessage.toUtf8(), 20000)) {
app.sendMessage(fileToOpen, 1000000); app.sendMessage(fileToOpen.toUtf8(), 1000000);
return 0; return 0;
} }
} }

@ -79,6 +79,8 @@ int UBCustomCaptureWindow::execute(const QPixmap &pScreenPixmap)
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
int currentScreen = desktop->screenNumber(QCursor::pos()); int currentScreen = desktop->screenNumber(QCursor::pos());
// necessary so that changing geometry really affects the widget
showNormal();
setGeometry(desktop->screenGeometry(currentScreen)); setGeometry(desktop->screenGeometry(currentScreen));
this->show(); this->show();
setWindowOpacity(1.0); setWindowOpacity(1.0);

@ -129,6 +129,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent, UB
connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize())); connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
connect(mDesktopPalette, SIGNAL(mouseEntered()), mTransparentDrawingScene, SLOT(hideTool())); connect(mDesktopPalette, SIGNAL(mouseEntered()), mTransparentDrawingScene, SLOT(hideTool()));
connect(mRightPalette, SIGNAL(mouseEntered()), mTransparentDrawingScene, SLOT(hideTool())); connect(mRightPalette, SIGNAL(mouseEntered()), mTransparentDrawingScene, SLOT(hideTool()));
connect(mRightPalette, SIGNAL(pageSelectionChangedRequired()), this, SLOT(updateBackground()));
connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized())); connect(mTransparentDrawingView, SIGNAL(resized(QResizeEvent*)), this, SLOT(onTransparentWidgetResized()));
@ -515,6 +516,7 @@ QPixmap UBDesktopAnnotationController::getScreenPixmap()
QScreen * screen = UBApplication::controlScreen(); QScreen * screen = UBApplication::controlScreen();
QRect rect = desktop->screenGeometry(QCursor::pos()); QRect rect = desktop->screenGeometry(QCursor::pos());
rect.moveTo(0, 0);
return screen->grabWindow(desktop->effectiveWinId(), return screen->grabWindow(desktop->effectiveWinId(),
rect.x(), rect.y(), rect.width(), rect.height()); rect.x(), rect.y(), rect.width(), rect.height());
@ -555,7 +557,7 @@ void UBDesktopAnnotationController::penActionPressed()
// Check if the mouse cursor is on the little arrow // Check if the mouse cursor is on the little arrow
QPoint cursorPos = QCursor::pos(); QPoint cursorPos = QCursor::pos();
QPoint palettePos = mDesktopPalette->pos(); QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0)); // global coordinates of palette
QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionPen); QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionPen);
int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette
@ -609,7 +611,7 @@ void UBDesktopAnnotationController::eraserActionPressed()
// Check if the mouse cursor is on the little arrow // Check if the mouse cursor is on the little arrow
QPoint cursorPos = QCursor::pos(); QPoint cursorPos = QCursor::pos();
QPoint palettePos = mDesktopPalette->pos(); QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0));
QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionEraser); QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionEraser);
int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette
@ -664,7 +666,7 @@ void UBDesktopAnnotationController::markerActionPressed()
// Check if the mouse cursor is on the little arrow // Check if the mouse cursor is on the little arrow
QPoint cursorPos = QCursor::pos(); QPoint cursorPos = QCursor::pos();
QPoint palettePos = mDesktopPalette->pos(); QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0));
QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionMarker); QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionMarker);
int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette int iX = cursorPos.x() - (palettePos.x() + buttonPos.x()); // x position of the cursor in the palette
@ -966,7 +968,7 @@ void UBDesktopAnnotationController::updateMask(bool bTransparent)
p.setPen(Qt::red); p.setPen(Qt::red);
p.setBrush(QBrush(Qt::red)); p.setBrush(QBrush(Qt::red));
p.drawRect(mTransparentDrawingView->geometry().x(), mTransparentDrawingView->geometry().y(), mTransparentDrawingView->width(), mTransparentDrawingView->height()); p.drawRect(0, 0, mTransparentDrawingView->width(), mTransparentDrawingView->height());
p.end(); p.end();
mTransparentDrawingView->setMask(mMask.mask()); mTransparentDrawingView->setMask(mMask.mask());

@ -40,10 +40,7 @@ UBDocumentContainer::UBDocumentContainer(QObject * parent)
UBDocumentContainer::~UBDocumentContainer() UBDocumentContainer::~UBDocumentContainer()
{ {
foreach(const QPixmap* pm, mDocumentThumbs){
delete pm;
pm = NULL;
}
} }
void UBDocumentContainer::setDocument(UBDocumentProxy* document, bool forceReload) void UBDocumentContainer::setDocument(UBDocumentProxy* document, bool forceReload)
@ -52,6 +49,7 @@ void UBDocumentContainer::setDocument(UBDocumentProxy* document, bool forceReloa
{ {
mCurrentDocument = document; mCurrentDocument = document;
clearThumbPage();
reloadThumbnails(); reloadThumbnails();
emit documentSet(mCurrentDocument); emit documentSet(mCurrentDocument);
} }
@ -67,16 +65,20 @@ void UBDocumentContainer::duplicatePages(QList<int>& pageIndexes)
} }
} }
bool UBDocumentContainer::movePageToIndex(int source, int target) void UBDocumentContainer::duplicatePage(int index)
{ {
//on document view UBPersistenceManager::persistenceManager()->duplicateDocumentScene(mCurrentDocument, index);
UBPersistenceManager::persistenceManager()->moveSceneToIndex(mCurrentDocument, source, target); }
deleteThumbPage(source);
insertThumbPage(target); void UBDocumentContainer::moveThumbPage(int source, int target)
emit documentThumbnailsUpdated(this); {
//on board thumbnails view mDocumentThumbs.move(source, target);
//on board thumbnails view (UBDocumentNavigator)
emit documentPageMoved(source, target);
//on board thumbnails view (UBoardThumbnailsView)
emit moveThumbnailRequired(source, target); emit moveThumbnailRequired(source, target);
return true;
} }
void UBDocumentContainer::deletePages(QList<int>& pageIndexes) void UBDocumentContainer::deletePages(QList<int>& pageIndexes)
@ -86,33 +88,25 @@ void UBDocumentContainer::deletePages(QList<int>& pageIndexes)
foreach(int index, pageIndexes) foreach(int index, pageIndexes)
{ {
deleteThumbPage(index - offset); deleteThumbPage(index - offset);
emit removeThumbnailRequired(index - offset);
offset++; offset++;
} }
emit documentThumbnailsUpdated(this);
} }
void UBDocumentContainer::addPage(int index) void UBDocumentContainer::addPage(int index)
{ {
UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mCurrentDocument, index); UBPersistenceManager::persistenceManager()->createDocumentSceneAt(mCurrentDocument, index);
insertThumbPage(index); insertThumbPage(index);
emit documentThumbnailsUpdated(this);
emit addThumbnailRequired(this, index);
} }
void UBDocumentContainer::addPixmapAt(const QPixmap *pix, int index) void UBDocumentContainer::addPixmapAt(std::shared_ptr<QPixmap> pix, int index)
{ {
mDocumentThumbs.insert(index, pix); mDocumentThumbs.insert(index, pix);
emit documentThumbnailsUpdated(this);
} }
void UBDocumentContainer::clearThumbPage() void UBDocumentContainer::clearThumbPage()
{ {
qDeleteAll(mDocumentThumbs);
mDocumentThumbs.clear(); mDocumentThumbs.clear();
} }
@ -124,41 +118,47 @@ void UBDocumentContainer::initThumbPage()
insertThumbPage(i); insertThumbPage(i);
} }
void UBDocumentContainer::updatePage(int index)
{
updateThumbPage(index);
emit documentThumbnailsUpdated(this);
}
void UBDocumentContainer::deleteThumbPage(int index) void UBDocumentContainer::deleteThumbPage(int index)
{ {
mDocumentThumbs.removeAt(index); mDocumentThumbs.removeAt(index);
//on board thumbnails view (UBDocumentNavigator)
emit documentPageRemoved(index);
//on board thumbnails view (UBoardThumbnailsView)
emit removeThumbnailRequired(index);
} }
void UBDocumentContainer::updateThumbPage(int index) void UBDocumentContainer::updateThumbPage(int index)
{ {
if (mDocumentThumbs.size() > index) if (mDocumentThumbs.size() > index)
{ {
mDocumentThumbs[index] = UBThumbnailAdaptor::get(mCurrentDocument, index); QPixmap pixmap = UBThumbnailAdaptor::get(mCurrentDocument, index);
mDocumentThumbs[index] = std::make_shared<QPixmap>(pixmap);
emit documentPageUpdated(index); emit documentPageUpdated(index);
} }
else
{
qDebug() << "error [updateThumbPage] : index > mDocumentThumbs' size.";
}
} }
void UBDocumentContainer::insertThumbPage(int index) void UBDocumentContainer::insertThumbPage(int index)
{ {
mDocumentThumbs.insert(index, UBThumbnailAdaptor::get(mCurrentDocument, index)); QPixmap newPixmap = UBThumbnailAdaptor::get(mCurrentDocument, index);
mDocumentThumbs.insert(index, std::make_shared<QPixmap>(newPixmap));
emit documentPageInserted(index);
emit addThumbnailRequired(this, index);
}
void UBDocumentContainer::insertExistingThumbPage(int index, std::shared_ptr<QPixmap> thumbnailPixmap)
{
mDocumentThumbs.insert(index, thumbnailPixmap);
emit documentPageInserted(index);
emit addThumbnailRequired(this, index);
} }
void UBDocumentContainer::reloadThumbnails() void UBDocumentContainer::reloadThumbnails()
{ {
if (mCurrentDocument)
{
UBThumbnailAdaptor::load(mCurrentDocument, mDocumentThumbs);
}
emit documentThumbnailsUpdated(this); emit documentThumbnailsUpdated(this);
} }
@ -174,6 +174,5 @@ int UBDocumentContainer::sceneIndexFromPage(int page)
void UBDocumentContainer::addEmptyThumbPage() void UBDocumentContainer::addEmptyThumbPage()
{ {
const QPixmap* pThumb = new QPixmap(); mDocumentThumbs.append(std::shared_ptr<QPixmap>());
mDocumentThumbs.append(pThumb);
} }

@ -45,8 +45,9 @@ class UBDocumentContainer : public QObject
void pureSetDocument(UBDocumentProxy *document) {mCurrentDocument = document;} void pureSetDocument(UBDocumentProxy *document) {mCurrentDocument = document;}
UBDocumentProxy* selectedDocument(){return mCurrentDocument;} UBDocumentProxy* selectedDocument(){return mCurrentDocument;}
int pageCount(){return mCurrentDocument->pageCount();} QList<std::shared_ptr<QPixmap>>& documentThumbs() { return mDocumentThumbs; }
const QPixmap* pageAt(int index) int pageCount() const{return mCurrentDocument->pageCount();}
std::shared_ptr<QPixmap> pageAt(int index)
{ {
if (index < mDocumentThumbs.size()) if (index < mDocumentThumbs.size())
return mDocumentThumbs[index]; return mDocumentThumbs[index];
@ -60,38 +61,41 @@ class UBDocumentContainer : public QObject
static int sceneIndexFromPage(int sceneIndex); static int sceneIndexFromPage(int sceneIndex);
void duplicatePages(QList<int>& pageIndexes); void duplicatePages(QList<int>& pageIndexes);
bool movePageToIndex(int source, int target); void duplicatePage(int index);
void deletePages(QList<int>& pageIndexes); void deletePages(QList<int>& pageIndexes);
void clearThumbPage();
void initThumbPage();
void addPage(int index);
void addPixmapAt(const QPixmap *pix, int index);
void updatePage(int index);
void addEmptyThumbPage();
void reloadThumbnails();
void insertThumbPage(int index);
private: void addPage(int index);
UBDocumentProxy* mCurrentDocument; void addPixmapAt(std::shared_ptr<QPixmap> pix, int index);
QList<const QPixmap*> mDocumentThumbs;
virtual void reloadThumbnails();
protected: void clearThumbPage();
void initThumbPage();
void insertExistingThumbPage(int index, std::shared_ptr<QPixmap> thumbnailPixmap);
void insertThumbPage(int index);
void addEmptyThumbPage();
void deleteThumbPage(int index); void deleteThumbPage(int index);
void updateThumbPage(int index); void updateThumbPage(int index);
void moveThumbPage(int source, int target);
private:
UBDocumentProxy* mCurrentDocument;
QList<std::shared_ptr<QPixmap>> mDocumentThumbs;
signals: signals:
void documentSet(UBDocumentProxy* document); void documentSet(UBDocumentProxy* document);
void documentPageInserted(int index);
void documentPageUpdated(int index); void documentPageUpdated(int index);
void documentPageRemoved(int index);
void documentPageMoved(int from, int to);
void documentThumbnailsUpdated(UBDocumentContainer* source);
void initThumbnailsRequired(UBDocumentContainer* source); void initThumbnailsRequired(UBDocumentContainer* source);
void addThumbnailRequired(UBDocumentContainer* source, int index); void addThumbnailRequired(UBDocumentContainer* source, int index);
void removeThumbnailRequired(int index); void removeThumbnailRequired(int index);
void moveThumbnailRequired(int from, int to); void moveThumbnailRequired(int from, int to);
void updateThumbnailsRequired(); void updateThumbnailsRequired();
void documentThumbnailsUpdated(UBDocumentContainer* source);
}; };

@ -664,7 +664,7 @@ QMimeData *UBDocumentTreeModel::mimeData (const QModelIndexList &indexes) const
#if defined(Q_OS_OSX) #if defined(Q_OS_OSX)
#if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0)) #if (QT_VERSION < QT_VERSION_CHECK(5, 15, 0))
if (QOperatingSystemVersion::current().minorVersion() < 15) /* < Mojave */ if (QOperatingSystemVersion::current().majorVersion() == 10 && QOperatingSystemVersion::current().minorVersion() < 15) /* <= Mojave */
mimeData->setUrls(urlList); mimeData->setUrls(urlList);
#endif #endif
#else #else
@ -1034,6 +1034,16 @@ QString UBDocumentTreeModel::virtualPathForIndex(const QModelIndex &pIndex) cons
return virtualDirForIndex(pIndex) + "/" + curNode->nodeName(); return virtualDirForIndex(pIndex) + "/" + curNode->nodeName();
} }
QList<UBDocumentTreeNode*> UBDocumentTreeModel::nodeChildrenFromIndex(const QModelIndex &pIndex) const
{
UBDocumentTreeNode *node = nodeFromIndex(pIndex);
if (node)
return node->children();
else
return QList<UBDocumentTreeNode*>();
}
QStringList UBDocumentTreeModel::nodeNameList(const QModelIndex &pIndex, bool distinctNodeType) const QStringList UBDocumentTreeModel::nodeNameList(const QModelIndex &pIndex, bool distinctNodeType) const
{ {
QStringList result; QStringList result;
@ -1331,6 +1341,7 @@ UBDocumentTreeView::UBDocumentTreeView(QWidget *parent) : QTreeView(parent)
{ {
setObjectName("UBDocumentTreeView"); setObjectName("UBDocumentTreeView");
setRootIsDecorated(true); setRootIsDecorated(true);
setSelectionBehavior(SelectRows);
} }
void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool pExpand, bool pEdit) void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool pExpand, bool pEdit)
@ -1348,9 +1359,9 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool
? QItemSelectionModel::Select ? QItemSelectionModel::Select
: QItemSelectionModel::Deselect; : QItemSelectionModel::Deselect;
setCurrentIndex(pExpand setCurrentIndex(indexCurrentDoc);
? indexCurrentDoc
: QModelIndex()); selectionModel()->setCurrentIndex(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::SelectCurrent);
selectionModel()->select(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::Rows | sel); selectionModel()->select(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::Rows | sel);
@ -1359,7 +1370,7 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool
indexCurrentDoc = indexCurrentDoc.parent(); indexCurrentDoc = indexCurrentDoc.parent();
} }
scrollTo(proxy->mapFromSource(pIndex), QAbstractItemView::PositionAtCenter); scrollTo(proxy->mapFromSource(pIndex));
if (pEdit) if (pEdit)
edit(proxy->mapFromSource(pIndex)); edit(proxy->mapFromSource(pIndex));
@ -1387,6 +1398,12 @@ void UBDocumentTreeView::hSliderRangeChanged(int min, int max)
} }
} }
void UBDocumentTreeView::mousePressEvent(QMouseEvent *event)
{
QTreeView::mousePressEvent(event);
UBApplication::documentController->clearThumbnailsSelection();
}
void UBDocumentTreeView::dragEnterEvent(QDragEnterEvent *event) void UBDocumentTreeView::dragEnterEvent(QDragEnterEvent *event)
{ {
QTreeView::dragEnterEvent(event); QTreeView::dragEnterEvent(event);
@ -1539,18 +1556,25 @@ void UBDocumentTreeView::dropEvent(QDropEvent *event)
Q_ASSERT(QFileInfo(thumbTmp).exists()); Q_ASSERT(QFileInfo(thumbTmp).exists());
Q_ASSERT(QFileInfo(thumbTo).exists()); Q_ASSERT(QFileInfo(thumbTo).exists());
const QPixmap *pix = new QPixmap(thumbTmp);
UBDocumentController *ctrl = UBApplication::documentController; auto pix = std::make_shared<QPixmap>(thumbTmp);
ctrl->addPixmapAt(pix, toIndex); UBApplication::documentController->insertExistingThumbPage(toIndex, pix);
ctrl->TreeViewSelectionChanged(ctrl->firstSelectedTreeIndex(), QModelIndex()); if (UBApplication::documentController->selectedDocument() == targetDocProxy)
{
UBApplication::documentController->reloadThumbnails();
}
if (UBApplication::boardController->selectedDocument() == targetDocProxy)
{
UBApplication::boardController->insertThumbPage(toIndex);
}
} }
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
UBApplication::applicationController->showMessage(tr("%1 pages copied", "", total).arg(total), false);
docModel->setHighLighted(QModelIndex()); docModel->setHighLighted(QModelIndex());
} }
UBApplication::applicationController->showMessage(tr("%1 pages copied", "", total).arg(total), false);
} }
else else
{ {
@ -1569,7 +1593,7 @@ void UBDocumentTreeView::dropEvent(QDropEvent *event)
QTreeView::dropEvent(event); QTreeView::dropEvent(event);
UBApplication::documentController->updateActions(); UBApplication::documentController->pageSelectionChanged();
} }
void UBDocumentTreeView::paintEvent(QPaintEvent *event) void UBDocumentTreeView::paintEvent(QPaintEvent *event)
@ -1645,10 +1669,15 @@ UBDocumentTreeItemDelegate::UBDocumentTreeItemDelegate(QObject *parent)
void UBDocumentTreeItemDelegate::commitAndCloseEditor() void UBDocumentTreeItemDelegate::commitAndCloseEditor()
{ {
QLineEdit *lineEditor = qobject_cast<QLineEdit*>(sender()); QLineEdit *lineEditor = dynamic_cast<QLineEdit*>(sender());
if (lineEditor) { if (lineEditor)
emit commitData(lineEditor); {
if (lineEditor->hasAcceptableInput())
{
emit commitData(lineEditor);
//emit closeEditor(lineEditor); //emit closeEditor(lineEditor);
}
emit UBApplication::documentController->reorderDocumentsRequested(); emit UBApplication::documentController->reorderDocumentsRequested();
} }
} }
@ -1656,14 +1685,20 @@ void UBDocumentTreeItemDelegate::commitAndCloseEditor()
void UBDocumentTreeItemDelegate::processChangedText(const QString &str) const void UBDocumentTreeItemDelegate::processChangedText(const QString &str) const
{ {
QLineEdit *editor = qobject_cast<QLineEdit*>(sender()); QLineEdit *editor = qobject_cast<QLineEdit*>(sender());
if (!editor) { if (editor)
return; {
} if (editor->validator())
{
if (!validateString(str)) { int pos = 0;
editor->setStyleSheet("background-color: #FFB3C8;"); if (editor->validator()->validate(const_cast<QString&>(str), pos) != QValidator::Acceptable)
} else { {
editor->setStyleSheet("background-color: #FFFFFF;"); editor->setStyleSheet("background-color: #FFB3C8;");
}
else
{
editor->setStyleSheet("background-color: #FFFFFF;");
}
}
} }
} }
@ -1678,16 +1713,41 @@ QWidget *UBDocumentTreeItemDelegate::createEditor(QWidget *parent, const QStyleO
//N/C - NNE - 20140407 : Add the test for the index column. //N/C - NNE - 20140407 : Add the test for the index column.
if(index.column() == 0){ if(index.column() == 0){
mExistingFileNames.clear(); mExistingFileNames.clear();
const UBDocumentTreeModel *indexModel = qobject_cast<const UBDocumentTreeModel*>(index.model()); const UBDocumentTreeModel *docModel = 0;
if (indexModel) {
mExistingFileNames = indexModel->nodeNameList(index.parent()); const UBSortFilterProxyModel *proxy = dynamic_cast<const UBSortFilterProxyModel*>(index.model());
mExistingFileNames.removeOne(index.data().toString());
if(proxy){
docModel = dynamic_cast<UBDocumentTreeModel*>(proxy->sourceModel());
}else{
docModel = dynamic_cast<const UBDocumentTreeModel*>(index.model());
} }
QLineEdit *nameEditor = new QLineEdit(parent); QModelIndex sourceIndex = proxy->mapToSource(index);
connect(nameEditor, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor()));
connect(nameEditor, SIGNAL(textChanged(QString)), this, SLOT(processChangedText(QString))); if (docModel)
return nameEditor; {
mExistingFileNames = docModel->nodeNameList(sourceIndex.parent());
mExistingFileNames.removeOne(sourceIndex.data().toString());
UBDocumentTreeNode* sourceNode = docModel->nodeFromIndex(sourceIndex);
if (sourceNode)
{
QLineEdit *nameEditor = new QLineEdit(parent);
QList<UBDocumentTreeNode*> nodeChildren = docModel->nodeChildrenFromIndex(sourceIndex.parent());
nodeChildren.removeOne(sourceNode);
UBValidator* validator = new UBValidator(nodeChildren, sourceNode->nodeType());
nameEditor->setValidator(validator);
connect(nameEditor, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor()));
connect(nameEditor, SIGNAL(textChanged(QString)), this, SLOT(processChangedText(QString)));
return nameEditor;
}
}
return nullptr;
} }
//N/C - NNe - 20140407 : the other column are not editable. //N/C - NNe - 20140407 : the other column are not editable.
@ -1706,8 +1766,17 @@ void UBDocumentTreeItemDelegate::setEditorData(QWidget *editor, const QModelInde
void UBDocumentTreeItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const void UBDocumentTreeItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{ {
QLineEdit *lineEditor = qobject_cast<QLineEdit*>(editor); QLineEdit *lineEditor = qobject_cast<QLineEdit*>(editor);
if (validateString(lineEditor->text())) { if (lineEditor)
model->setData(index, lineEditor->text()); {
int pos;
QString input = lineEditor->text();
if (lineEditor->validator())
{
if (lineEditor->validator()->validate(input, pos) == QValidator::Acceptable)
{
model->setData(index, input);
}
}
} }
} }
@ -1738,6 +1807,10 @@ UBDocumentController::UBDocumentController(UBMainWindow* mainWindow)
setupToolbar(); setupToolbar();
connect(this, SIGNAL(exportDone()), mMainWindow, SLOT(onExportDone())); connect(this, SIGNAL(exportDone()), mMainWindow, SLOT(onExportDone()));
connect(this, SIGNAL(documentThumbnailsUpdated(UBDocumentContainer*)), this, SLOT(refreshDocumentThumbnailsView(UBDocumentContainer*))); connect(this, SIGNAL(documentThumbnailsUpdated(UBDocumentContainer*)), this, SLOT(refreshDocumentThumbnailsView(UBDocumentContainer*)));
//connect(this, SIGNAL(documentPageInserted(int)), this, SLOT(insertThumbnail(int)));
connect(this, SIGNAL(documentPageUpdated(int)), this, SLOT(updateThumbnail(int)));
connect(this, SIGNAL(documentPageRemoved(int)), this, SLOT(removeThumbnail(int)));
connect(this, SIGNAL(documentPageMoved(int, int)), this, SLOT(moveThumbnail(int, int)));
connect(this, SIGNAL(reorderDocumentsRequested()), this, SLOT(reorderDocuments())); connect(this, SIGNAL(reorderDocumentsRequested()), this, SLOT(reorderDocuments()));
} }
@ -1760,11 +1833,27 @@ void UBDocumentController::createNewDocument()
? docModel->virtualPathForIndex(selectedIndex) ? docModel->virtualPathForIndex(selectedIndex)
: docModel->virtualDirForIndex(selectedIndex); : docModel->virtualDirForIndex(selectedIndex);
UBDocumentProxy *document = pManager->createDocument(groupName);
QDateTime now = QDateTime::currentDateTime();
QString documentName = "";
if (docModel->isCatalog(selectedIndex))
{
documentName = docModel->adjustNameForParentIndex(now.toString(Qt::SystemLocaleShortDate), selectedIndex);
}
else
{
documentName = docModel->adjustNameForParentIndex(now.toString(Qt::SystemLocaleShortDate), selectedIndex.parent());
}
UBDocumentProxy *document = pManager->createDocument(groupName, documentName);
selectDocument(document, true, false, true); selectDocument(document, true, false, true);
if (document) if (document)
pManager->mDocumentTreeStructureModel->markDocumentAsNew(document); pManager->mDocumentTreeStructureModel->markDocumentAsNew(document);
pageSelectionChanged();
} }
void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurrentDocument, const bool onImport, const bool editMode) void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurrentDocument, const bool onImport, const bool editMode)
@ -1775,19 +1864,26 @@ void UBDocumentController::selectDocument(UBDocumentProxy* proxy, bool setAsCurr
return; return;
} }
if (setAsCurrentDocument) { if (setAsCurrentDocument)
{
UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel->setCurrentDocument(proxy); UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel->setCurrentDocument(proxy);
QModelIndex indexCurrentDoc = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel->indexForProxy(proxy); QModelIndex indexCurrentDoc = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel->indexForProxy(proxy);
mDocumentUI->documentTreeView->setSelectedAndExpanded(indexCurrentDoc, true, editMode); if (indexCurrentDoc.isValid())
{
mDocumentUI->documentTreeView->setSelectedAndExpanded(indexCurrentDoc, true, editMode);
if (proxy != mBoardController->selectedDocument()) // only if wanted Document is different from document actually on Board, // ALTI/AOU - 20140217 if (proxy != mBoardController->selectedDocument()) // only if wanted Document is different from document actually on Board, // ALTI/AOU - 20140217
{
//issue 1629 - NNE - 20131105 : When set a current document, change in the board controller
mBoardController->setActiveDocumentScene(proxy, 0, true, onImport);
}
}
else
{ {
//issue 1629 - NNE - 20131105 : When set a current document, change in the board controller qWarning() << "an issue occured while trying to select current index in document tree";
mBoardController->setActiveDocumentScene(proxy, 0, true, onImport);
} }
} }
mSelectionType = Document;
setDocument(proxy); setDocument(proxy);
} }
@ -1807,6 +1903,8 @@ void UBDocumentController::createNewDocumentGroup()
QModelIndex newIndex = docModel->addCatalog(newFolderName, parentIndex); QModelIndex newIndex = docModel->addCatalog(newFolderName, parentIndex);
mDocumentUI->documentTreeView->setSelectedAndExpanded(newIndex, true, true); mDocumentUI->documentTreeView->setSelectedAndExpanded(newIndex, true, true);
pageSelectionChanged();
} }
@ -1849,7 +1947,8 @@ void UBDocumentController::TreeViewSelectionChanged(const QModelIndex &current,
//We have just to pass a null proxy to disable the display of thumbnail //We have just to pass a null proxy to disable the display of thumbnail
UBDocumentProxy *currentDocumentProxy = 0; UBDocumentProxy *currentDocumentProxy = 0;
if(current_index.isValid() && mDocumentUI->documentTreeView->selectionModel()->selectedRows(0).size() == 1){ if(current_index.isValid() && mDocumentUI->documentTreeView->selectionModel()->selectedRows(0).size() == 1)
{
currentDocumentProxy = docModel->proxyData(current_index); currentDocumentProxy = docModel->proxyData(current_index);
setDocument(currentDocumentProxy, false); setDocument(currentDocumentProxy, false);
} }
@ -1864,8 +1963,6 @@ void UBDocumentController::TreeViewSelectionChanged(const QModelIndex &current,
} }
mCurrentIndexMoved = false; mCurrentIndexMoved = false;
} }
itemSelectionChanged(docModel->isCatalog(current_index) ? Folder : Document);
} }
//N/C - NNE - 20140402 : workaround for using a proxy model //N/C - NNE - 20140402 : workaround for using a proxy model
@ -2093,11 +2190,6 @@ void UBDocumentController::setupViews()
connect(mDocumentUI->thumbnailWidget, SIGNAL(mouseDoubleClick(QGraphicsItem*,int)), this, SLOT(thumbnailPageDoubleClicked(QGraphicsItem*,int))); connect(mDocumentUI->thumbnailWidget, SIGNAL(mouseDoubleClick(QGraphicsItem*,int)), this, SLOT(thumbnailPageDoubleClicked(QGraphicsItem*,int)));
connect(mDocumentUI->thumbnailWidget, SIGNAL(mouseClick(QGraphicsItem*, int)), this, SLOT(pageClicked(QGraphicsItem*, int))); connect(mDocumentUI->thumbnailWidget, SIGNAL(mouseClick(QGraphicsItem*, int)), this, SLOT(pageClicked(QGraphicsItem*, int)));
connect(mDocumentUI->thumbnailWidget->scene(), SIGNAL(selectionChanged()), this, SLOT(pageSelectionChanged()));
connect(UBPersistenceManager::persistenceManager(), SIGNAL(documentSceneCreated(UBDocumentProxy*, int)), this, SLOT(documentSceneChanged(UBDocumentProxy*, int)));
connect(UBPersistenceManager::persistenceManager(), SIGNAL(documentSceneWillBeDeleted(UBDocumentProxy*, int)), this, SLOT(documentSceneChanged(UBDocumentProxy*, int)));
mDocumentUI->thumbnailWidget->setBackgroundBrush(UBSettings::documentViewLightColor); mDocumentUI->thumbnailWidget->setBackgroundBrush(UBSettings::documentViewLightColor);
#ifdef Q_WS_MACX #ifdef Q_WS_MACX
@ -2161,8 +2253,9 @@ void UBDocumentController::sortDocuments(int kind, int order)
mDocumentUI->documentTreeView->hideColumn(2); mDocumentUI->documentTreeView->hideColumn(2);
} }
} }
}
mDocumentUI->documentTreeView->setSelectedAndExpanded(firstSelectedTreeIndex(), true);
}
void UBDocumentController::onSortOrderChanged(bool order) void UBDocumentController::onSortOrderChanged(bool order)
{ {
@ -2222,10 +2315,9 @@ void UBDocumentController::show()
{ {
selectDocument(mBoardController->selectedDocument()); selectDocument(mBoardController->selectedDocument());
//to be sure thumbnails will be up-to-date reorderDocuments();
reloadThumbnails();
updateActions(); pageSelectionChanged();
if(!mToolsPalette) if(!mToolsPalette)
setupPalettes(); setupPalettes();
@ -2299,7 +2391,10 @@ void UBDocumentController::duplicateSelectedItem()
if (selectedSceneIndexes.count() > 0) if (selectedSceneIndexes.count() > 0)
{ {
duplicatePages(selectedSceneIndexes); duplicatePages(selectedSceneIndexes);
emit documentThumbnailsUpdated(this); if (selectedDocument() == selectedDocumentProxy())
{
reloadThumbnails();
}
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(selectedDocument()); UBMetadataDcSubsetAdaptor::persist(selectedDocument());
int selectedThumbnail = selectedSceneIndexes.last() + selectedSceneIndexes.size(); int selectedThumbnail = selectedSceneIndexes.last() + selectedSceneIndexes.size();
@ -2307,8 +2402,11 @@ void UBDocumentController::duplicateSelectedItem()
int sceneCount = selectedSceneIndexes.count(); int sceneCount = selectedSceneIndexes.count();
showMessage(tr("duplicated %1 page","duplicated %1 pages",sceneCount).arg(sceneCount), false); showMessage(tr("duplicated %1 page","duplicated %1 pages",sceneCount).arg(sceneCount), false);
mBoardController->setActiveDocumentScene(selectedThumbnail); if (selectedDocument() == mBoardController->selectedDocument())
mBoardController->reloadThumbnails(); {
mBoardController->setActiveDocumentScene(selectedThumbnail);
mBoardController->reloadThumbnails();
}
} }
} }
else else
@ -2326,6 +2424,7 @@ void UBDocumentController::duplicateSelectedItem()
} }
emit reorderDocumentsRequested(); emit reorderDocumentsRequested();
pageSelectionChanged();
} }
void UBDocumentController::deleteSelectedItem() void UBDocumentController::deleteSelectedItem()
@ -2346,7 +2445,7 @@ void UBDocumentController::deleteSelectedItem()
deleteSingleItem(indexes.at(0), docModel); deleteSingleItem(indexes.at(0), docModel);
} }
updateActions(); pageSelectionChanged();
} }
void UBDocumentController::deleteMultipleItems(QModelIndexList indexes, UBDocumentTreeModel* docModel) void UBDocumentController::deleteMultipleItems(QModelIndexList indexes, UBDocumentTreeModel* docModel)
@ -2370,8 +2469,8 @@ void UBDocumentController::deleteMultipleItems(QModelIndexList indexes, UBDocume
for (int i =0; i < indexes.size(); i++) for (int i =0; i < indexes.size(); i++)
{ {
deleteIndexAndAssociatedData(indexes.at(i)); deleteIndexAndAssociatedData(indexes.at(i));
emit documentThumbnailsUpdated(this);
} }
emit documentThumbnailsUpdated(this);
break; break;
} }
case EmptyFolder: case EmptyFolder:
@ -2762,9 +2861,16 @@ void UBDocumentController::deleteIndexAndAssociatedData(const QModelIndex &pInde
} }
//N/C - NNE - 20140408 //N/C - NNE - 20140408
if(pIndex.column() == 0){ UBDocumentProxy *proxyData = nullptr;
if(pIndex.column() == 0)
{
if (docModel->isDocument(pIndex)) { if (docModel->isDocument(pIndex)) {
UBDocumentProxy *proxyData = docModel->proxyData(pIndex); proxyData = docModel->proxyData(pIndex);
if (selectedDocument() == proxyData)
{
setDocument(nullptr);
}
if (proxyData) { if (proxyData) {
UBPersistenceManager::persistenceManager()->deleteDocument(proxyData); UBPersistenceManager::persistenceManager()->deleteDocument(proxyData);
@ -2772,7 +2878,25 @@ void UBDocumentController::deleteIndexAndAssociatedData(const QModelIndex &pInde
} }
} }
docModel->removeRow(pIndex.row(), pIndex.parent()); if (proxyData)
{
// need to recall indexForProxy as rows could have changed when performing a multiple deletion
QModelIndex indexForProxy = docModel->indexForProxy(proxyData);
if (!docModel->removeRow(indexForProxy.row(), indexForProxy.parent()))
{
qDebug() << "could not remove row (r:" << indexForProxy.row() << "p:" << indexForProxy.parent() << ")";
}
}
else
{
if (docModel->isCatalog(pIndex))
{
if (!docModel->removeRow(pIndex.row(), pIndex.parent()))
{
qDebug() << "could not remove row (r:" << pIndex.row() << "p:" << pIndex.parent() << ")";
}
}
}
} }
@ -2846,6 +2970,7 @@ void UBDocumentController::importFile()
if (createdDocument) { if (createdDocument) {
selectDocument(createdDocument, true, true, true); selectDocument(createdDocument, true, true, true);
pageSelectionChanged();
} else { } else {
showMessage(tr("Failed to import file ... ")); showMessage(tr("Failed to import file ... "));
@ -2888,6 +3013,10 @@ void UBDocumentController::addFolderOfImages()
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document); UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails(); reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
} }
} }
} }
@ -2901,7 +3030,6 @@ void UBDocumentController::addFileToDocument()
if (document) if (document)
{ {
addFileToDocument(document); addFileToDocument(document);
reloadThumbnails();
} }
} }
@ -2934,6 +3062,11 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document)
{ {
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document); UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
} }
else else
{ {
@ -2949,19 +3082,46 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document)
void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, int target) void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, int target)
{ {
if (UBDocumentContainer::movePageToIndex(source, target)) UBPersistenceManager::persistenceManager()->moveSceneToIndex(proxy, source, target);
{
proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(proxy);
mDocumentUI->thumbnailWidget->hightlightItem(target); proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(proxy);
mBoardController->setActiveDocumentScene(target); UBDocumentContainer::moveThumbPage(source, target);
mBoardController->reloadThumbnails(); if (UBApplication::boardController->selectedDocument() == selectedDocument())
{
UBApplication::boardController->moveThumbPage(source, target);
} }
mDocumentUI->thumbnailWidget->hightlightItem(target);
//mBoardController->setActiveDocumentScene(target);
}
void UBDocumentController::insertThumbnail(int index, const QPixmap& pix)
{
QGraphicsPixmapItem *newThumbnail = new UBSceneThumbnailPixmap(pix, selectedDocument(), index); // deleted by the tree widget
mDocumentUI->thumbnailWidget->insertThumbnail(index, newThumbnail);
}
void UBDocumentController::updateThumbnail(int index)
{
auto pix = UBApplication::boardController->pageAt(index);
mDocumentUI->thumbnailWidget->updateThumbnailPixmap(index, *pix);
} }
void UBDocumentController::removeThumbnail(int index)
{
mDocumentUI->thumbnailWidget->removeThumbnail(index);
}
void UBDocumentController::moveThumbnail(int from, int to)
{
mDocumentUI->thumbnailWidget->moveThumbnail(from, to);
}
void UBDocumentController::thumbnailViewResized() void UBDocumentController::thumbnailViewResized()
{ {
int maxWidth = qMin(UBSettings::maxThumbnailWidth, mDocumentUI->thumbnailWidget->width()); int maxWidth = qMin(UBSettings::maxThumbnailWidth, mDocumentUI->thumbnailWidget->width());
@ -2989,19 +3149,12 @@ void UBDocumentController::pageSelectionChanged()
itemSelectionChanged(Folder); itemSelectionChanged(Folder);
else else
itemSelectionChanged(None); itemSelectionChanged(None);
updateActions();
} }
void UBDocumentController::documentSceneChanged(UBDocumentProxy* proxy, int pSceneIndex) void UBDocumentController::documentSceneChanged(UBDocumentProxy* proxy, int pSceneIndex)
{ {
Q_UNUSED(pSceneIndex); Q_UNUSED(pSceneIndex);
if (proxy == selectedDocumentProxy())
{
reloadThumbnails();
}
QModelIndexList sel = mDocumentUI->documentTreeView->selectionModel()->selectedRows(0); QModelIndexList sel = mDocumentUI->documentTreeView->selectionModel()->selectedRows(0);
QModelIndex selection; QModelIndex selection;
@ -3082,7 +3235,6 @@ void UBDocumentController::addToDocument()
UBMetadataDcSubsetAdaptor::persist(mBoardController->selectedDocument()); UBMetadataDcSubsetAdaptor::persist(mBoardController->selectedDocument());
mBoardController->reloadThumbnails(); mBoardController->reloadThumbnails();
emit UBApplication::boardController->documentThumbnailsUpdated(this);
UBApplication::applicationController->showBoard(); UBApplication::applicationController->showBoard();
mBoardController->setActiveDocumentScene(newActiveSceneIndex); mBoardController->setActiveDocumentScene(newActiveSceneIndex);
@ -3191,6 +3343,10 @@ void UBDocumentController::addImages()
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document); UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails(); reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
} }
} }
} }
@ -3260,16 +3416,6 @@ void UBDocumentController::focusChanged(QWidget *old, QWidget *current)
else else
mSelectionType = None; mSelectionType = None;
} }
else
{
if (old != mDocumentUI->thumbnailWidget &&
old != mDocumentUI->documentTreeView &&
old != mDocumentUI->documentZoomSlider)
{
if (current && (current->metaObject()->className() != QPushButton::staticMetaObject.className()))
mSelectionType = None;
}
}
} }
void UBDocumentController::updateActions() void UBDocumentController::updateActions()
@ -3335,6 +3481,7 @@ void UBDocumentController::updateActions()
updateExportSubActions(selectedIndex); updateExportSubActions(selectedIndex);
bool firstSceneSelected = false; bool firstSceneSelected = false;
bool everyPageSelected = false;
if (docSelected) { if (docSelected) {
mMainWindow->actionDuplicate->setEnabled(!trashSelected); mMainWindow->actionDuplicate->setEnabled(!trashSelected);
@ -3372,22 +3519,77 @@ void UBDocumentController::updateActions()
switch (static_cast<int>(deletionForSelection)) { switch (static_cast<int>(deletionForSelection)) {
case MoveToTrash : case MoveToTrash :
if (mSelectionType == Folder)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-folder.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
else if (mSelectionType == Document)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-document.png"));
mMainWindow->actionDelete->setText(tr("Trash"));
}
else if (mSelectionType == Page)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-document-page.png"));
mMainWindow->actionDelete->setText(tr("Trash"));
}
else
{//can happen ?
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash.png"));
mMainWindow->actionDelete->setText(tr("Trash"));
}
break;
case DeletePage : case DeletePage :
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash.png")); mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-document-page.png"));
mMainWindow->actionDelete->setText(tr("Trash")); mMainWindow->actionDelete->setText(tr("Trash"));
break; break;
case CompleteDelete : case CompleteDelete :
mMainWindow->actionDelete->setIcon(QIcon(":/images/toolbar/deleteDocument.png")); if (mSelectionType == Folder)
mMainWindow->actionDelete->setText(tr("Delete")); {
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-delete-folder.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
else
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-delete-document.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
break; break;
case EmptyFolder : case EmptyFolder :
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash.png")); if (firstSelectedTreeIndex() == docModel->myDocumentsIndex())
mMainWindow->actionDelete->setText(tr("Empty")); {
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-my-documents.png"));
mMainWindow->actionDelete->setText(tr("Empty"));
}
else
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-folder.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
break; break;
case EmptyTrash : case EmptyTrash :
mMainWindow->actionDelete->setIcon(QIcon(":/images/toolbar/deleteDocument.png")); mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-empty.png"));
mMainWindow->actionDelete->setText(tr("Empty")); mMainWindow->actionDelete->setText(tr("Empty"));
break; break;
case NoDeletion :
default:
if (mSelectionType == Folder)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-delete-folder.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
else if (mSelectionType == Document)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-delete-document.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
else if (mSelectionType == Page)
{
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-document-page.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
}
break;
} }
mMainWindow->actionDocumentAdd->setEnabled((docSelected || pageSelected) && !trashSelected); mMainWindow->actionDocumentAdd->setEnabled((docSelected || pageSelected) && !trashSelected);
@ -3445,7 +3647,12 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
} }
} }
UBDocumentContainer::deletePages(sceneIndexes); UBDocumentContainer::deletePages(sceneIndexes);
emit UBApplication::boardController->documentThumbnailsUpdated(this); if (mBoardController->selectedDocument() == selectedDocument())
{
std::sort(sceneIndexes.begin(), sceneIndexes.end(), std::greater<>());
for (auto index : sceneIndexes)
mBoardController->deleteThumbPage(index);
}
proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime())); proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(proxy); UBMetadataDcSubsetAdaptor::persist(proxy);
@ -3462,7 +3669,6 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
mDocumentUI->thumbnailWidget->selectItemAt(minIndex); mDocumentUI->thumbnailWidget->selectItemAt(minIndex);
mBoardController->setActiveDocumentScene(minIndex); mBoardController->setActiveDocumentScene(minIndex);
mBoardController->reloadThumbnails();
} }
} }
@ -3514,7 +3720,12 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
, UBDocumentTreeModel *docModel) const , UBDocumentTreeModel *docModel) const
{ {
if (pTypeSelection == Page) { if (pTypeSelection == Page)
{
if (everySceneSelected())
{
return NoDeletion;
}
if (!firstAndOnlySceneSelected()) { if (!firstAndOnlySceneSelected()) {
return DeletePage; return DeletePage;
} }
@ -3541,11 +3752,24 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
return NoDeletion; return NoDeletion;
} }
bool UBDocumentController::everySceneSelected() const
{
QList<QGraphicsItem*> selection = mDocumentUI->thumbnailWidget->selectedItems();
if (selection.count() > 0)
{
UBSceneThumbnailPixmap* p = dynamic_cast<UBSceneThumbnailPixmap*>(selection.at(0));
if (p)
{
return (selection.count() == p->proxy()->pageCount());
}
}
return false;
}
bool UBDocumentController::firstAndOnlySceneSelected() const bool UBDocumentController::firstAndOnlySceneSelected() const
{ {
bool firstSceneSelected = false;
QList<QGraphicsItem*> selection = mDocumentUI->thumbnailWidget->selectedItems(); QList<QGraphicsItem*> selection = mDocumentUI->thumbnailWidget->selectedItems();
for(int i = 0; i < selection.count() && !firstSceneSelected; i += 1) for(int i = 0; i < selection.count(); i += 1)
{ {
UBSceneThumbnailPixmap* p = dynamic_cast<UBSceneThumbnailPixmap*>(selection.at(i)); UBSceneThumbnailPixmap* p = dynamic_cast<UBSceneThumbnailPixmap*>(selection.at(i));
if (p) if (p)
@ -3568,7 +3792,7 @@ bool UBDocumentController::firstAndOnlySceneSelected() const
return false; return false;
} }
void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*) void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer* source)
{ {
UBDocumentTreeModel *docModel = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel; UBDocumentTreeModel *docModel = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel;
UBDocumentProxy *currentDocumentProxy = selectedDocument(); UBDocumentProxy *currentDocumentProxy = selectedDocument();
@ -3581,14 +3805,14 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
, QList<QUrl>() , QList<QUrl>()
, QStringList() , QStringList()
, UBApplication::mimeTypeUniboardPage); , UBApplication::mimeTypeUniboardPage);
QApplication::restoreOverrideCursor();
return; return;
} }
QList<const QPixmap*> thumbs;
if (currentDocumentProxy) if (currentDocumentProxy)
{ {
UBThumbnailAdaptor::load(currentDocumentProxy, thumbs); UBThumbnailAdaptor::load(currentDocumentProxy, documentThumbs());
} }
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
@ -3604,7 +3828,9 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
{ {
for (int i = 0; i < currentDocumentProxy->pageCount(); i++) for (int i = 0; i < currentDocumentProxy->pageCount(); i++)
{ {
const QPixmap* pix = thumbs.at(i); UBApplication::showMessage(tr("Refreshing Document Thumbnails View (%1/%2)").arg(i+1).arg(source->selectedDocument()->pageCount()));
auto pix = documentThumbs().at(i);
QGraphicsPixmapItem *pixmapItem = new UBSceneThumbnailPixmap(*pix, currentDocumentProxy, i); // deleted by the tree widget QGraphicsPixmapItem *pixmapItem = new UBSceneThumbnailPixmap(*pix, currentDocumentProxy, i); // deleted by the tree widget
if (currentDocumentProxy == mBoardController->selectedDocument() && mBoardController->activeSceneIndex() == i) if (currentDocumentProxy == mBoardController->selectedDocument() && mBoardController->activeSceneIndex() == i)
@ -3635,11 +3861,9 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
if (selection) if (selection)
{ {
disconnect(mDocumentUI->thumbnailWidget->scene(), SIGNAL(selectionChanged()), this, SLOT(pageSelectionChanged())); UBSceneThumbnailPixmap *currentSceneThumbnailPixmap = dynamic_cast<UBSceneThumbnailPixmap*>(selection);
UBSceneThumbnailPixmap *currentScene = dynamic_cast<UBSceneThumbnailPixmap*>(selection); if (currentSceneThumbnailPixmap)
if (currentScene) mDocumentUI->thumbnailWidget->hightlightItem(currentSceneThumbnailPixmap->sceneIndex());
mDocumentUI->thumbnailWidget->hightlightItem(currentScene->sceneIndex());
connect(mDocumentUI->thumbnailWidget->scene(), SIGNAL(selectionChanged()), this, SLOT(pageSelectionChanged()));
} }
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
@ -3657,6 +3881,8 @@ void UBDocumentController::createNewDocumentInUntitledFolder()
if (document) if (document)
pManager->mDocumentTreeStructureModel->markDocumentAsNew(document); pManager->mDocumentTreeStructureModel->markDocumentAsNew(document);
pageSelectionChanged();
} }
void UBDocumentController::collapseAll() void UBDocumentController::collapseAll()
@ -3692,3 +3918,9 @@ void UBDocumentController::expandAll()
mDocumentUI->documentTreeView->setAnimated(true); mDocumentUI->documentTreeView->setAnimated(true);
} }
void UBDocumentController::clearThumbnailsSelection()
{
mDocumentUI->thumbnailWidget->clearSelection();
pageSelectionChanged();
}

@ -210,6 +210,7 @@ public:
QString virtualDirForIndex(const QModelIndex &pIndex) const; QString virtualDirForIndex(const QModelIndex &pIndex) const;
QString virtualPathForIndex(const QModelIndex &pIndex) const; QString virtualPathForIndex(const QModelIndex &pIndex) const;
QStringList nodeNameList(const QModelIndex &pIndex, bool distinctNodeType = false) const; QStringList nodeNameList(const QModelIndex &pIndex, bool distinctNodeType = false) const;
QList<UBDocumentTreeNode*> nodeChildrenFromIndex(const QModelIndex &pIndex) const;
bool newNodeAllowed(const QModelIndex &pSelectedIndex) const; bool newNodeAllowed(const QModelIndex &pSelectedIndex) const;
QModelIndex goTo(const QString &dir); QModelIndex goTo(const QString &dir);
bool inTrash(const QModelIndex &index) const; bool inTrash(const QModelIndex &index) const;
@ -305,6 +306,7 @@ public slots:
void hSliderRangeChanged(int min, int max); void hSliderRangeChanged(int min, int max);
protected: protected:
void mousePressEvent(QMouseEvent *event) override;
void dragEnterEvent(QDragEnterEvent *event); void dragEnterEvent(QDragEnterEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event); void dragLeaveEvent(QDragLeaveEvent *event);
void dragMoveEvent(QDragMoveEvent *event); void dragMoveEvent(QDragMoveEvent *event);
@ -321,6 +323,32 @@ private:
void updateIndexEnvirons(const QModelIndex &index); void updateIndexEnvirons(const QModelIndex &index);
}; };
class UBValidator : public QValidator
{
const QList<UBDocumentTreeNode*> mExistingNodes;
UBDocumentTreeNode::Type mEditedNodeType;
public:
UBValidator(const QList<UBDocumentTreeNode*> existingNodes, UBDocumentTreeNode::Type editedNodeType, QObject *parent = nullptr)
: QValidator(parent)
, mExistingNodes(existingNodes)
, mEditedNodeType(editedNodeType)
{
}
QValidator::State validate(QString &input, int &pos) const
{
for (auto node : mExistingNodes)
{
if (node->nodeName() == input && node->nodeType() == mEditedNodeType)
return QValidator::Intermediate;
}
return QValidator::Acceptable;
}
};
class UBDocumentTreeItemDelegate : public QStyledItemDelegate class UBDocumentTreeItemDelegate : public QStyledItemDelegate
{ {
Q_OBJECT Q_OBJECT
@ -401,6 +429,7 @@ class UBDocumentController : public UBDocumentContainer
, const QModelIndex &selectedIndex , const QModelIndex &selectedIndex
, UBDocumentTreeModel *docModel) const; , UBDocumentTreeModel *docModel) const;
bool firstAndOnlySceneSelected() const; bool firstAndOnlySceneSelected() const;
bool everySceneSelected() const;
QWidget *mainWidget() const {return mDocumentWidget;} QWidget *mainWidget() const {return mDocumentWidget;}
//issue 1629 - NNE - 20131212 //issue 1629 - NNE - 20131212
@ -429,6 +458,8 @@ class UBDocumentController : public UBDocumentContainer
QModelIndex findNextSiblingNotSelected(const QModelIndex &index, QItemSelectionModel *selectionModel); QModelIndex findNextSiblingNotSelected(const QModelIndex &index, QItemSelectionModel *selectionModel);
bool parentIsSelected(const QModelIndex& child, QItemSelectionModel *selectionModel); bool parentIsSelected(const QModelIndex& child, QItemSelectionModel *selectionModel);
void clearThumbnailsSelection();
signals: signals:
void exportDone(); void exportDone();
void reorderDocumentsRequested(); void reorderDocumentsRequested();
@ -461,7 +492,6 @@ class UBDocumentController : public UBDocumentContainer
void copy(); void copy();
void paste(); void paste();
void focusChanged(QWidget *old, QWidget *current); void focusChanged(QWidget *old, QWidget *current);
void updateActions();
void updateExportSubActions(const QModelIndex &selectedIndex); void updateExportSubActions(const QModelIndex &selectedIndex);
void currentIndexMoved(const QModelIndex &newIndex, const QModelIndex &PreviousIndex); void currentIndexMoved(const QModelIndex &newIndex, const QModelIndex &PreviousIndex);
@ -472,6 +502,11 @@ class UBDocumentController : public UBDocumentContainer
void collapseAll(); void collapseAll();
void expandAll(); void expandAll();
void updateThumbnail(int index);
void removeThumbnail(int index);
void moveThumbnail(int from, int to);
void insertThumbnail(int index, const QPixmap& pix);
protected: protected:
virtual void setupViews(); virtual void setupViews();
virtual void setupToolbar(); virtual void setupToolbar();
@ -515,6 +550,8 @@ protected:
void TreeViewSelectionChanged(const QModelIndex &current, const QModelIndex &previous); void TreeViewSelectionChanged(const QModelIndex &current, const QModelIndex &previous);
void TreeViewSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected); void TreeViewSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
void pageSelectionChanged();
private slots: private slots:
void documentZoomSliderValueChanged (int value); void documentZoomSliderValueChanged (int value);
void itemSelectionChanged(LastSelectedElementType newSelection); void itemSelectionChanged(LastSelectedElementType newSelection);
@ -522,7 +559,7 @@ protected:
void exportDocumentSet(); void exportDocumentSet();
void thumbnailViewResized(); void thumbnailViewResized();
void pageSelectionChanged(); void updateActions();
void documentSceneChanged(UBDocumentProxy* proxy, int pSceneIndex); void documentSceneChanged(UBDocumentProxy* proxy, int pSceneIndex);

@ -56,6 +56,7 @@ UBDocumentProxy::UBDocumentProxy(const UBDocumentProxy &rValue) :
mPageCount = rValue.mPageCount; mPageCount = rValue.mPageCount;
} }
UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath) UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath)
: mPageCount(0) : mPageCount(0)
, mPageDpi(0) , mPageDpi(0)
@ -67,17 +68,6 @@ UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath)
} }
UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath, QMap<QString, QVariant> metadatas)
: mPageCount(0)
, mPageDpi(0)
{
init();
setPersistencePath(pPersistancePath);
mMetaDatas = metadatas;
}
void UBDocumentProxy::init() void UBDocumentProxy::init()
{ {
setMetaData(UBSettings::documentGroupName, ""); setMetaData(UBSettings::documentGroupName, "");

@ -49,7 +49,6 @@ class UBDocumentProxy : public QObject
UBDocumentProxy(); UBDocumentProxy();
UBDocumentProxy(const UBDocumentProxy &rValue); UBDocumentProxy(const UBDocumentProxy &rValue);
UBDocumentProxy(const QString& pPersistencePath); UBDocumentProxy(const QString& pPersistencePath);
UBDocumentProxy(const QString& pPersistencePath, QMap<QString, QVariant> metadatas);
virtual ~UBDocumentProxy(); virtual ~UBDocumentProxy();

@ -103,11 +103,10 @@ UBGraphicsDelegateFrame::UBGraphicsDelegateFrame(UBGraphicsItemDelegate* pDelega
mRotateButton->setCursor(UBResources::resources()->rotateCursor); mRotateButton->setCursor(UBResources::resources()->rotateCursor);
mRotateButton->setVisible(mDelegate->testUBFlags(GF_REVOLVABLE)); mRotateButton->setVisible(mDelegate->testUBFlags(GF_REVOLVABLE));
updateResizeCursors();
setAntiScale(1.0); setAntiScale(1.0);
positionHandles(); positionHandles();
updateResizeCursors();
this->setAcceptHoverEvents(true); this->setAcceptHoverEvents(true);
} }
@ -839,6 +838,7 @@ void UBGraphicsDelegateFrame::positionHandles()
resetTransform(); resetTransform();
setTransform(QTransform::fromTranslate(center.x(), center.y()), true); setTransform(QTransform::fromTranslate(center.x(), center.y()), true);
setTransform(QTransform().rotate(-angle), true); setTransform(QTransform().rotate(-angle), true);
mAngle = angle;
setTransform(QTransform::fromTranslate(-center.x(), -center.y()), true); setTransform(QTransform::fromTranslate(-center.x(), -center.y()), true);
//TODO: combine these transforms into one //TODO: combine these transforms into one

@ -328,12 +328,15 @@ void UBGraphicsItemDelegate::postpaint(QPainter *painter, const QStyleOptionGrap
{ {
Q_UNUSED(widget) Q_UNUSED(widget)
if (option->state & QStyle::State_Selected && !controlsExist()) { if (option->state & QStyle::State_Selected && !controlsExist()) {
painter->save(); if (UBStylusTool::Play != UBDrawingController::drawingController()->stylusTool())
painter->setPen(Qt::NoPen); {
painter->setBrush(QColor(0x88, 0x88, 0x88, 0x77)); painter->save();
painter->drawRect(option->rect); painter->setPen(Qt::NoPen);
painter->setBrush(QColor(0x88, 0x88, 0x88, 0x77));
painter->drawRect(option->rect);
painter->restore(); painter->restore();
}
} }
} }
@ -1304,7 +1307,7 @@ void MediaTimer::setNumDigits(int numDigits)
} else { } else {
if (numDigits == ndigits) // no change if (numDigits == ndigits) // no change
return; return;
register int i; int i;
int dif; int dif;
if (numDigits > ndigits) { // expand if (numDigits > ndigits) { // expand
dif = numDigits - ndigits; dif = numDigits - ndigits;

@ -128,7 +128,7 @@ void UBGraphicsItemUndoCommand::undo()
QGraphicsItem* item = itRemoved.next(); QGraphicsItem* item = itRemoved.next();
if (item) if (item)
{ {
if (UBItemLayerType::FixedBackground == item->data(UBGraphicsItemData::ItemLayerType)) if (itemLayerType::BackgroundItem == item->data(UBGraphicsItemData::itemLayerType))
mScene->setAsBackgroundObject(item); mScene->setAsBackgroundObject(item);
else else
mScene->addItem(item); mScene->addItem(item);
@ -246,7 +246,11 @@ void UBGraphicsItemUndoCommand::redo()
polygonItem->strokesGroup()->removeFromGroup(polygonItem); polygonItem->strokesGroup()->removeFromGroup(polygonItem);
} }
mScene->removeItem(item);
if (itemLayerType::BackgroundItem == item->data(UBGraphicsItemData::itemLayerType))
mScene->setAsBackgroundObject(nullptr);
else
mScene->removeItem(item);
if (bApplyTransform) if (bApplyTransform)
item->setTransform(t); item->setTransform(t);

@ -68,6 +68,7 @@ UBGraphicsMediaItem::UBGraphicsMediaItem(const QUrl& pMediaFileUrl, QGraphicsIte
, mMuted(sIsMutedByDefault) , mMuted(sIsMutedByDefault)
, mMutedByUserAction(sIsMutedByDefault) , mMutedByUserAction(sIsMutedByDefault)
, mStopped(false) , mStopped(false)
, mFirstLoad(true)
, mMediaFileUrl(pMediaFileUrl) , mMediaFileUrl(pMediaFileUrl)
, mLinkedImage(NULL) , mLinkedImage(NULL)
, mInitialPos(0) , mInitialPos(0)
@ -135,8 +136,8 @@ UBGraphicsVideoItem::UBGraphicsVideoItem(const QUrl &pMediaFileUrl, QGraphicsIte
* active scene has changed, or when the item is first created. * active scene has changed, or when the item is first created.
* If and when Qt fix this issue, this should be changed back. * If and when Qt fix this issue, this should be changed back.
* */ * */
//mMediaObject->setVideoOutput(mVideoItem); mMediaObject->setVideoOutput(mVideoItem);
mHasVideoOutput = false; mHasVideoOutput = true;
mMediaObject->setNotifyInterval(50); mMediaObject->setNotifyInterval(50);
@ -175,12 +176,12 @@ QVariant UBGraphicsMediaItem::itemChange(GraphicsItemChange change, const QVaria
|| (change == QGraphicsItem::ItemVisibleChange)) || (change == QGraphicsItem::ItemVisibleChange))
{ {
if (mMediaObject && (!isEnabled() || !isVisible() || !scene())) if (mMediaObject && (!isEnabled() || !isVisible() || !scene()))
mMediaObject->pause(); pause();
} }
else if (change == QGraphicsItem::ItemSceneHasChanged) else if (change == QGraphicsItem::ItemSceneHasChanged)
{ {
if (!scene()) if (!scene())
mMediaObject->stop(); stop();
else { else {
QString absoluteMediaFilename; QString absoluteMediaFilename;
@ -225,6 +226,16 @@ bool UBGraphicsMediaItem::isStopped() const
return mStopped; return mStopped;
} }
bool UBGraphicsMediaItem::firstLoad() const
{
return mFirstLoad;
}
void UBGraphicsMediaItem::setFirstLoad(bool firstLoad)
{
mFirstLoad = firstLoad;
}
qint64 UBGraphicsMediaItem::mediaDuration() const qint64 UBGraphicsMediaItem::mediaDuration() const
{ {
return mMediaObject->duration(); return mMediaObject->duration();
@ -333,7 +344,7 @@ UBGraphicsScene* UBGraphicsMediaItem::scene()
void UBGraphicsMediaItem::activeSceneChanged() void UBGraphicsMediaItem::activeSceneChanged()
{ {
if (UBApplication::boardController->activeScene() != scene()) if (UBApplication::boardController->activeScene() != scene())
mMediaObject->pause(); pause();
} }
@ -374,17 +385,19 @@ void UBGraphicsMediaItem::togglePlayPause()
} }
if (mMediaObject->state() == QMediaPlayer::StoppedState) if (mMediaObject->state() == QMediaPlayer::StoppedState)
mMediaObject->play(); {
play();
}
else if (mMediaObject->state() == QMediaPlayer::PlayingState) { else if (mMediaObject->state() == QMediaPlayer::PlayingState) {
if ((mMediaObject->duration() - mMediaObject->position()) <= 0) { if ((mMediaObject->duration() - mMediaObject->position()) <= 0) {
mMediaObject->stop(); stop();
mMediaObject->play(); play();
} }
else { else {
mMediaObject->pause(); pause();
if(scene()) if(scene())
scene()->setModified(true); scene()->setModified(true);
} }
@ -392,14 +405,14 @@ void UBGraphicsMediaItem::togglePlayPause()
else if (mMediaObject->state() == QMediaPlayer::PausedState) { else if (mMediaObject->state() == QMediaPlayer::PausedState) {
if ((mMediaObject->duration() - mMediaObject->position()) <= 0) if ((mMediaObject->duration() - mMediaObject->position()) <= 0)
mMediaObject->stop(); stop();
mMediaObject->play(); play();
} }
else if ( mMediaObject->mediaStatus() == QMediaPlayer::LoadingMedia) { else if ( mMediaObject->mediaStatus() == QMediaPlayer::LoadingMedia) {
mMediaObject->setMedia(mediaFileUrl()); mMediaObject->setMedia(mediaFileUrl());
mMediaObject->play(); play();
} }
} }
@ -427,6 +440,7 @@ void UBGraphicsMediaItem::mediaError(QMediaPlayer::Error errorCode)
if (!mErrorString.isEmpty() ) { if (!mErrorString.isEmpty() ) {
UBApplication::showMessage(mErrorString); UBApplication::showMessage(mErrorString);
qDebug() << mErrorString; qDebug() << mErrorString;
mErrorString.clear();
} }
} }

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

Loading…
Cancel
Save