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 #
###############
.qmake.stash
build
install
Makefile

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

@ -1,38 +1,14 @@
# 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.
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
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
First, obtain the third party libraries from the OpenBoard-ThirdParty repository, and build them (instructions are provided for each library).
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.
Please follow instructions available on the [wiki](https://github.com/OpenBoard-org/OpenBoard/wiki/Build-from-source)
## 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.)
### 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.
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.

@ -17,7 +17,7 @@
initializeVariables()
{
APPLICATION_NAME="OpenBoard"
STANDARD_QT_USED=false
STANDARD_QT_USED=true
# Root directory
SCRIPT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
@ -26,7 +26,7 @@ initializeVariables()
PRODUCT_PATH="$BUILD_DIR/product"
# 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"
GUI_TRANSLATIONS_DIRECTORY_PATH="/usr/share/qt5/translations"
QMAKE_PATH="$QT_PATH/bin/qmake"
@ -39,6 +39,9 @@ initializeVariables()
ARCHITECTURE=`uname -m`
if [ $ARCHITECTURE == "x86_64" ]; then
ARCHITECTURE="amd64"
elif [$ARCHITECTURE == "armv7l" ]; then
$ARCHITECTURE="armhf"
QT_PATH="/usr/lib/arm-linux-gnueabihf/qt5"
fi
fi
}

@ -85,13 +85,13 @@ initializeVariables()
# Include Qt libraries and plugins in the package, or not
# (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_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"
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`
ZIP_PATH=`which zip`
@ -180,6 +180,7 @@ chown -R root:root $PACKAGE_DIRECTORY
cp -R resources/customizations $PACKAGE_DIRECTORY/
cp resources/linux/openboard-ubz.xml $PACKAGE_DIRECTORY/etc/
cp resources/linux/application-ubz.png $PACKAGE_DIRECTORY/etc/
if $BUNDLE_QT; then
cp -R resources/linux/run.sh $PACKAGE_DIRECTORY/
@ -214,6 +215,7 @@ if $BUNDLE_QT; then
notifyProgress "Copying and stripping Qt libraries"
mkdir -p $QT_LIBRARY_DEST_PATH
copyQtLibrary libQt5Concurrent
copyQtLibrary libQt5Core
copyQtLibrary libQt5DBus
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-mime install --mode system /$APPLICATION_PATH/$APPLICATION_CODE/etc/openboard-ubz.xml
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
@ -400,8 +403,6 @@ echo "MimeType=application/ubz" >> $APPLICATION_SHORTCUT
echo "Categories=Education;" >> $APPLICATION_SHORTCUT
cp "resources/images/${APPLICATION_NAME}.png" "$PACKAGE_DIRECTORY/${APPLICATION_NAME}.png"
# ----------------------------------------------------------------------------
# Building the package
# ----------------------------------------------------------------------------

@ -19,7 +19,7 @@ PROJECT_ROOT="$SCRIPT_PATH/../.."
APPLICATION_NAME="OpenBoard"
BASE_QT_DIR=~/Qt/5.15.0/clang_64
BASE_QT_DIR=~/Qt/5.15.2/clang_64
# Executables
QMAKE=$BASE_QT_DIR/bin/qmake
MACDEPLOYQT=$BASE_QT_DIR/bin/macdeployqt
@ -99,7 +99,7 @@ function addImporter {
rm MakeFile*
rm -rf release
rm -rf debug
$QMAKE ${importerName}.pro
$QMAKE ${importerName}.pro -spec macx-clang
make -j4 release
$MACDEPLOYQT ${importerName}.app
cd -
@ -143,9 +143,9 @@ notify "Generating Makefile ..."
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
QMAKE_CMD="$QMAKE $APPLICATION_NAME.pro -spec macx-g++"
QMAKE_CMD="$QMAKE $APPLICATION_NAME.pro -spec macx-clang"
fi
$QMAKE_CMD
@ -192,7 +192,7 @@ rm -f "$APP/Contents/Resources/empty.lproj"
# set various version infomration in Info.plist
$PLISTBUDDY -c "Set :CFBundleVersion $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
notify "Bulding frameworks ..."
@ -200,32 +200,6 @@ cd "`pwd`/build/macx/release/product/"
$MACDEPLOYQT "`pwd`/$APPLICATION_NAME.app"
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 ..."
$DSYMUTIL "$APP/Contents/MacOS/$APPLICATION_NAME" -o "$DSYM"
$STRIP -S "$APP/Contents/MacOS/$APPLICATION_NAME"

@ -378,5 +378,12 @@
<file>images/stylusPalette/pen.svg</file>
<file>images/stylusPalette/penOn.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>
</RCC>

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

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

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

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>قلاش تراب</translation>
<translation type="vanished">قلاش تراب</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>محتوى فلاش تراب</translation>
<translation type="vanished">محتوى فلاش تراب</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>هل تريدون حقا إزالة صفحة واحدة من الوثيقة &apos;%0&apos; المختارة؟</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>بودكاست</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1235,6 +1251,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1285,6 +1305,10 @@
<source>Page %0</source>
<translation>صفحة %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2148,6 +2176,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>1 % صور مصغرة مولّدة</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2924,7 +2956,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>اختيار فلاش للامساك به</translation>
<translation type="vanished">اختيار فلاش للامساك به</translation>
</message>
<message>
<source>about:blank</source>
@ -2938,5 +2970,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>إنشاء تطبيق</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Инструмент за Flash съдържание</translation>
<translation type="vanished">Инструмент за Flash съдържание</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Съдържание на Flash</translation>
<translation type="vanished">Съдържание на Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Сигурни ли сте ,че искате да премахнете 1 страница от избрания документ &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Подкаст</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source>
<translation>Страница %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2127,6 +2155,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 икони са създадени ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>Избери флаш , който ще използваш</translation>
<translation type="vanished">Избери флаш , който ще използваш</translation>
</message>
<message>
<source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Създаване на приложение</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -729,11 +729,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Captura d&apos;objectes Flash</translation>
<translation type="vanished">Captura d&apos;objectes Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Captura un objecte Flash</translation>
<translation type="vanished">Captura un objecte Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Esteu segur que voleu eliminar 1 pàgina del document seleccionat &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Pàgina %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2126,6 +2154,10 @@ Voleu ignorar aquests errors per a aquest amfitrió?</translation>
<source>%1 thumbnails generated ...</source>
<translation>S&apos;han generat %1 miniatures...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Crea una aplicació</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -374,7 +374,7 @@
</message>
<message>
<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>
<source>Import</source>
@ -562,7 +562,7 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Přenést Flash</translation>
<translation type="vanished">Přenést Flash</translation>
</message>
<message>
<source>Window Capture</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Opravdu chcete odstranit 1 stránku z vybraného dokumentu &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Page Size</source>
<translation>Velikost stránky</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1229,6 +1245,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1279,6 +1299,10 @@
<source>Page %0</source>
<translation>Stránka %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2132,6 +2160,10 @@ Chcete ignorovat tyto chyby na tomto serveru?</translation>
<source>Generating preview thumbnails ...</source>
<translation>Vytváří se miniatury obrázků ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2910,7 +2942,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2924,5 +2956,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Vytvořit aplikaci</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Flash Trap</translation>
<translation type="vanished">Flash Trap</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Opsaml Flash-indhold</translation>
<translation type="vanished">Opsaml Flash-indhold</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Er du sikker , at du vil fjerne 1 side fra det valgte dokument&apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Side %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2133,6 +2161,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 miniaturebilleder genereret...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2907,7 +2939,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2921,5 +2953,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Opret applikation</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Einblendung einfangen</translation>
<translation type="vanished">Einblendung einfangen</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Eingeblendeten Inhalt einfangen</translation>
<translation type="vanished">Eingeblendeten Inhalt einfangen</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation>Gitter-Zwischenlinien zeichnen</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation>Webinhalte erfassen</translation>
</message>
</context>
<context>
<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>
<translation>Wollen Sie wirklich die ausgewählte Seite des Dokuments &apos;%0&apos; entfernen?</translation>
</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>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</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>
<name>UBApplicationController</name>
@ -1242,6 +1258,10 @@
<source>Empty My Documents</source>
<translation type="vanished">Eigene Dokumente leeren</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Aktualisieren der Vorschauen im Dokumentenmodus (%1/%2)</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1292,6 +1312,10 @@
<source>Page %0</source>
<translation>Seite %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Erstellen von Voransichten des Tabellenmodus (%1/%2)</translation>
</message>
</context>
<context>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation>Aktualisieren der aktuellen Seitennamen (%1/%2)</translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2196,6 +2224,10 @@ Möchten Sie diese Fehler für diesen Computer ignorieren?</translation>
<translation type="vanished">
Miniaturansicht der Seite %1 wird geladen</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Laden der Vorschau (%1/%2)</translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2978,7 +3010,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2992,5 +3024,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Anwendung erstellen</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation>Einen zu erfassenden Inhalt auswählen</translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Λήψη αντικειμένου flash</translation>
<translation type="vanished">Λήψη αντικειμένου flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Λήψη περιεχομένου ενός αντικειμένου flash</translation>
<translation type="vanished">Λήψη περιεχομένου ενός αντικειμένου flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Είστε βέβαιος ότι θέλετε να αφαιρέσετε μια σελίδα από το επιλεγμένο έγγραφο &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Βίντεο</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Σελίδα %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2126,6 +2154,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 μικρογραφίες δημιουργήθηκαν...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2904,7 +2936,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>Επιλογή αντικειμένου flash για λήψη</translation>
<translation type="vanished">Επιλογή αντικειμένου flash για λήψη</translation>
</message>
<message>
<source>about:blank</source>
@ -2918,5 +2950,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Δημιουργία εφαρμογής</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -703,14 +703,6 @@
<source>Configure Podcast Recording</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flash Trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Web Trap</source>
<translation type="unfinished"></translation>
@ -831,6 +823,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -899,6 +903,10 @@
<source>Podcast</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1166,6 +1174,10 @@
<source>Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1216,6 +1228,10 @@
<source>Page %0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -1974,6 +1994,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2718,10 +2742,6 @@ p, li { white-space: pre-wrap; }
<source>Trap flash</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a flash to trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>about:blank</source>
<translation type="unfinished"></translation>
@ -2734,5 +2754,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -703,14 +703,6 @@
<source>Configure Podcast Recording</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Flash Trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Web Trap</source>
<translation type="unfinished"></translation>
@ -831,6 +823,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -899,6 +903,10 @@
<source>Podcast</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1166,6 +1174,10 @@
<source>Empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1216,6 +1228,10 @@
<source>Page %0</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -1974,6 +1994,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2718,10 +2742,6 @@ p, li { white-space: pre-wrap; }
<source>Trap flash</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a flash to trap</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>about:blank</source>
<translation type="unfinished"></translation>
@ -2734,5 +2754,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Captura de elemento Flash</translation>
<translation type="vanished">Captura de elemento Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Capturar contenido Flash</translation>
<translation type="vanished">Capturar contenido Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>¿Está seguro de que quiere eliminar 1 página del documento seleccionado.&apos;%0?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source>
<translation>Página de título</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source>
<translation>Página %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="vanished">cargando miniaturas de la página %1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2924,7 +2956,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2938,5 +2970,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Crear aplicación</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -181,11 +181,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Capturer du contenu Flash</translation>
<translation type="vanished">Capturer du contenu Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Capturer du contenu Flash</translation>
<translation type="vanished">Capturer du contenu Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source>
<translation>Dessiner des lignes intermédiaires</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation>Capturer du contenu web</translation>
</message>
</context>
<context>
<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>
<translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation>
</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>
<name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</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>
<name>UBApplicationController</name>
@ -1251,6 +1267,10 @@
<source>Empty My Documents</source>
<translation type="vanished">Vider Mes Documents</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Actualisation des aperçus du mode Documents (%1/%2)</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1302,6 +1322,10 @@
<source>Page %0</source>
<translation>Page %0</translation>
</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>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation>Actualisation des noms des pages en cours (%1/%2)</translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2208,6 +2236,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>loading thumbnail of page %1</source>
<translation type="vanished">Chargement aperçu page %1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Chargement de l&apos;aperçu (%1/%2)</translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2995,7 +3027,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -3009,5 +3041,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Créer une application</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation>Sélectionner un contenu à capturer</translation>
</message>
</context>
</TS>

@ -181,11 +181,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Capturer du contenu Flash</translation>
<translation type="vanished">Capturer du contenu Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Capturer du contenu Flash</translation>
<translation type="vanished">Capturer du contenu Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source>
<translation>Dessiner des lignes intermédiaires</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation>Capturer du contenu web</translation>
</message>
</context>
<context>
<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>
<translation>Voulez-vous vraiment effacer 1 page de ce document &apos;%0&apos;?</translation>
</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>
<name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</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>
<name>UBApplicationController</name>
@ -1251,6 +1267,10 @@
<source>Empty My Documents</source>
<translation type="vanished">Vider Mes Documents</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Actualisation des aperçus du mode Documents (%1/%2)</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1302,6 +1322,10 @@
<source>Page %0</source>
<translation>Page %0</translation>
</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>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation>Actualisation des noms des pages en cours (%1/%2)</translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2208,6 +2236,10 @@ Voulez-vous ignorer les erreurs pour ce serveur ?</translation>
<source>loading thumbnail of page %1</source>
<translation type="vanished">Chargement aperçu page %1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Chargement de l&apos;aperçu (%1/%2)</translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2995,7 +3027,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -3009,5 +3041,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Créer une application</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation>Sélectionner un contenu à capturer</translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Captura de elemento Flash</translation>
<translation type="vanished">Captura de elemento Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Capturar contido Flash</translation>
<translation type="vanished">Capturar contido Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>¿Está seguro de que quere eliminar 1 páxina do documento seleccionado.&apos;%0?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source>
<translation>Páxina de título</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source>
<translation>Páxina %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="vanished">cargando miniaturas da páxina %1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2901,7 +2933,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2915,5 +2947,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Crear aplicación</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -50,7 +50,7 @@
<name>IntranetPodcastPublishingDialog</name>
<message>
<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>
<source>Title</source>
@ -441,7 +441,7 @@
</message>
<message>
<source>Reload Current Page</source>
<translation>Aktuális oldal újratöltése</translation>
<translation>Jelenlegi oldal újratöltése</translation>
</message>
<message>
<source>Load Home Page</source>
@ -641,11 +641,11 @@
</message>
<message>
<source>Add To New Page</source>
<translation>Hozzáadás új oldalhoz</translation>
<translation>Hozzáadás az új oldalhoz</translation>
</message>
<message>
<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>
<source>Add To Library</source>
@ -653,7 +653,7 @@
</message>
<message>
<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>
<source>Pages</source>
@ -701,11 +701,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Flash rögzítése</translation>
<translation type="vanished">Flash rögzítése</translation>
</message>
<message>
<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>
<source>Web Trap</source>
@ -813,30 +813,34 @@
</message>
<message>
<source>Small Eraser</source>
<translation type="unfinished"></translation>
<translation>Kis radír</translation>
</message>
<message>
<source>Color 1</source>
<translation type="unfinished"></translation>
<translation>1. szín</translation>
</message>
<message>
<source>Color 2</source>
<translation type="unfinished"></translation>
<translation>2. szín</translation>
</message>
<message>
<source>Color 3</source>
<translation type="unfinished"></translation>
<translation>3. szín</translation>
</message>
<message>
<source>Color 4</source>
<translation type="unfinished"></translation>
<translation>4. szín</translation>
</message>
<message>
<source>Color 5</source>
<translation type="unfinished"></translation>
<translation>5. szín</translation>
</message>
<message>
<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>
</message>
</context>
@ -886,14 +890,22 @@
</message>
<message>
<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>
<source>Element ID = </source>
<translation type="unfinished"></translation>
<translation>Elem azonosítója = </translation>
</message>
<message>
<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>
</message>
</context>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -932,7 +948,7 @@
</message>
<message>
<source>Board drawing...</source>
<translation type="vanished">Tábla rajzolása...</translation>
<translation type="vanished">Tábla rajzolása</translation>
</message>
</context>
<context>
@ -943,7 +959,7 @@
</message>
<message>
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
<translation>Köztes rácsvonalak rajzolása</translation>
</message>
</context>
<context>
@ -990,11 +1006,11 @@
</message>
<message>
<source>Saving document...</source>
<translation>Dokumentum mentése...</translation>
<translation>Dokumentum mentése</translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation>Dokumentum éppen most mentve...</translation>
<translation>Dokumentum éppen most mentve</translation>
</message>
<message>
<source>Deleting page %1</source>
@ -1002,7 +1018,7 @@
</message>
<message>
<source>Color</source>
<translation type="unfinished">Szín</translation>
<translation>Szín</translation>
</message>
</context>
<context>
@ -1020,7 +1036,7 @@
<name>UBBoardThumbnailsView</name>
<message>
<source>Loading page (%1/%2)</source>
<translation>Oldalak betöltése (%1/%2)</translation>
<translation>Oldalak betöltése: %1/%2</translation>
</message>
</context>
<context>
@ -1113,23 +1129,23 @@
</message>
<message>
<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>
<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>
<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>
<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>
<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>
<source>Remove Folder</source>
@ -1137,7 +1153,7 @@
</message>
<message>
<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>
<source>No document selected!</source>
@ -1149,7 +1165,7 @@
</message>
<message>
<source>Importing file %1...</source>
<translation>%1 fájl importálása...</translation>
<translation>%1 fájl importálása</translation>
</message>
<message>
<source>Failed to import file ... </source>
@ -1169,7 +1185,7 @@
</message>
<message>
<source>Trash</source>
<translation>Kuka</translation>
<translation>Törölt elemek</translation>
</message>
<message>
<source>Open Document</source>
@ -1187,11 +1203,9 @@
<source>Selection does not contain any image files!</source>
<translation>A kiválasztásban nincs egyetlen kép sem!</translation>
</message>
<message numerus="yes">
<message>
<source>Are you sure you want to remove %n page(s) from the selected document &apos;%1&apos;?</source>
<translation type="vanished">
<numerusform>Biztosan szeretne eltávolítani %n oldalt a kiválasztott &apos;%1&apos; dokumentumból?</numerusform>
</translation>
<translation type="vanished">Biztosan szeretné eltávolítani %n oldalt a kiválasztott %1 dokumentumból?</translation>
</message>
<message>
<source>Folder does not contain any image files</source>
@ -1203,11 +1217,11 @@
</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>
<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>
<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>
<source>Remove multiple documents</source>
@ -1217,19 +1231,23 @@
<source>duplicated %1 page</source>
<comment>duplicated %1 pages</comment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform>%1 oldal másolata</numerusform>
</translation>
</message>
<message>
<source>Remove Item</source>
<translation type="unfinished"></translation>
<translation>Elem eltávolítása</translation>
</message>
<message>
<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>
<source>Title page</source>
<translation>Címlap</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1261,7 +1279,7 @@
</message>
<message>
<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>
<source>Import successful.</source>
@ -1280,6 +1298,10 @@
<name>UBDocumentNavigator</name>
<message>
<source>Page %0</source>
<translation>%0. oldal</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1287,32 +1309,34 @@
<name>UBDocumentReplaceDialog</name>
<message>
<source>Accept</source>
<translation type="unfinished">Elfogad</translation>
<translation>Elfogadás</translation>
</message>
<message>
<source>Replace</source>
<translation type="unfinished"></translation>
<translation>Csere</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Mégse</translation>
<translation>Mégse</translation>
</message>
<message>
<source>The name %1 is allready used.
Keeping this name will replace the document.
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>
</context>
<context>
<name>UBDocumentTreeModel</name>
<message>
<source>My documents</source>
<translation type="unfinished"></translation>
<translation>Saját dokumentumok</translation>
</message>
<message>
<source>Trash</source>
<translation type="unfinished">Kuka</translation>
<translation>Törölt elemek</translation>
</message>
<message numerus="yes">
<source>%1 pages copied</source>
@ -1325,7 +1349,7 @@ Providing a new name will create a new document.</source>
<name>UBDocumentTreeView</name>
<message>
<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 numerus="yes">
<source>%1 pages copied</source>
@ -1335,11 +1359,11 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Remove Item</source>
<translation type="unfinished"></translation>
<translation>Elem eltávolítása</translation>
</message>
<message>
<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>
</context>
<context>
@ -1350,13 +1374,11 @@ Providing a new name will create a new document.</source>
</message>
<message>
<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 numerus="yes">
<message>
<source>%1 pages copied</source>
<translation type="vanished">
<numerusform>%1 oldal másolva</numerusform>
</translation>
<translation type="vanished">%1 oldal másolva</translation>
</message>
</context>
<context>
@ -1374,7 +1396,7 @@ Providing a new name will create a new document.</source>
<name>UBDraggableThumbnail</name>
<message>
<source>Page %0</source>
<translation type="unfinished"></translation>
<translation>%0. oldal</translation>
</message>
</context>
<context>
@ -1392,7 +1414,7 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Exporting document...</source>
<translation>Dokumentum exportálása...</translation>
<translation>Dokumentum exportálása</translation>
</message>
<message>
<source>Export failed</source>
@ -1415,23 +1437,23 @@ Providing a new name will create a new document.</source>
<name>UBExportCFF</name>
<message>
<source>Export to IWB</source>
<translation type="unfinished"></translation>
<translation>Exportálás IWB-formátumként</translation>
</message>
<message>
<source>Export as IWB File</source>
<translation type="unfinished"></translation>
<translation>Exportálás IWB-fájlformátumként</translation>
</message>
<message>
<source>Exporting document...</source>
<translation type="unfinished">Dokumentum exportálása...</translation>
<translation>Dokumentum exportálása</translation>
</message>
<message>
<source>Export successful.</source>
<translation type="unfinished">Exportálás sikeres.</translation>
<translation>Az exportálás sikeres.</translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished">Exportálás sikertelen.</translation>
<translation>Az exportálás sikertelen.</translation>
</message>
</context>
<context>
@ -1446,7 +1468,7 @@ Providing a new name will create a new document.</source>
</message>
<message>
<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>
<source>Export to OpenBoard Format</source>
@ -1457,27 +1479,27 @@ Providing a new name will create a new document.</source>
<name>UBExportDocumentSetAdaptor</name>
<message>
<source>Failed to export...</source>
<translation type="unfinished"></translation>
<translation>Exportálás sikertelen</translation>
</message>
<message>
<source>Export as UBX File</source>
<translation type="unfinished"></translation>
<translation>Exportálás UBX-fájlként</translation>
</message>
<message>
<source>Exporting document...</source>
<translation type="unfinished">Dokumentum exportálása...</translation>
<translation>Dokumentum exportálása</translation>
</message>
<message>
<source>Export successful.</source>
<translation type="unfinished">Exportálás sikeres.</translation>
<translation>Exportálás sikeres.</translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished">Exportálás sikertelen.</translation>
<translation>Exportálás sikertelen.</translation>
</message>
<message>
<source>Export to OpenBoard UBX Format</source>
<translation type="unfinished"></translation>
<translation>Exportálás OpenBoard UBX-formátumként</translation>
</message>
</context>
<context>
@ -1499,7 +1521,7 @@ Providing a new name will create a new document.</source>
</message>
<message>
<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>
<source>Export to PDF</source>
@ -1518,7 +1540,7 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Exporting document...</source>
<translation>Dokumentum exportálása...</translation>
<translation>Dokumentum exportálása</translation>
</message>
<message>
<source>Export successful.</source>
@ -1627,14 +1649,14 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Trash</source>
<translation>Kuka</translation>
<translation>Törölt elemek</translation>
</message>
</context>
<context>
<name>UBFeaturesNewFolderDialog</name>
<message>
<source>Accept</source>
<translation>Elfogad</translation>
<translation>Elfogadás</translation>
</message>
<message>
<source>Cancel</source>
@ -1705,7 +1727,7 @@ Providing a new name will create a new document.</source>
<name>UBGraphicsTextItem</name>
<message>
<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>
</context>
<context>
@ -1730,7 +1752,7 @@ Providing a new name will create a new document.</source>
<name>UBGraphicsWidgetItem</name>
<message>
<source>Loading ...</source>
<translation>Betöltés ...</translation>
<translation>Betöltés folyamatban van</translation>
</message>
</context>
<context>
@ -1748,30 +1770,30 @@ Providing a new name will create a new document.</source>
<name>UBImportCFF</name>
<message>
<source>Common File Format (</source>
<translation type="unfinished"></translation>
<translation>Közös fájlformátum (</translation>
</message>
<message>
<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>
<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>
<source>Import successful.</source>
<translation type="unfinished">Importálás sikeres.</translation>
<translation>Importálás sikeres.</translation>
</message>
<message>
<source>Import failed.</source>
<translation type="unfinished"></translation>
<translation>Importálás sikertelen.</translation>
</message>
</context>
<context>
<name>UBImportDocument</name>
<message>
<source>Importing file %1...</source>
<translation>%1 fájl importálása...</translation>
<translation>%1 fájl importálása</translation>
</message>
<message>
<source>Import successful.</source>
@ -1790,14 +1812,14 @@ Providing a new name will create a new document.</source>
<name>UBImportDocumentSetAdaptor</name>
<message>
<source>Openboard (set of documents) (*.ubx)</source>
<translation type="unfinished"></translation>
<translation>OpenBoard (dokumentumkészlet) (*.ubx)</translation>
</message>
</context>
<context>
<name>UBImportImage</name>
<message>
<source>Image Format (</source>
<translation>Kép formátum (</translation>
<translation>Kép-formátum (</translation>
</message>
</context>
<context>
@ -1812,25 +1834,25 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Importing page %1 of %2</source>
<translation>%2 / %1 oldal importálása</translation>
<translation>Oldal importálása: %1/%2</translation>
</message>
</context>
<context>
<name>UBIntranetPodcastPublisher</name>
<message>
<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>
<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>
</context>
<context>
<name>UBIntranetPodcastPublishingDialog</name>
<message>
<source>Publish</source>
<translation>Publikálás</translation>
<translation>Közzététel</translation>
</message>
</context>
<context>
@ -1936,14 +1958,18 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</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>
<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>
<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>
<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>
</message>
</context>
@ -1974,11 +2000,11 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBPodcastController</name>
<message>
<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>
<source>No Podcast encoder available ...</source>
<translation>Nincs elérhető podcast kódoló ...</translation>
<translation>Nincs elérhető podcast kódoló</translation>
</message>
<message>
<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>
<source>on your desktop ...</source>
<translation>az asztalán ...</translation>
<translation>az asztalán</translation>
</message>
<message>
<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>
<source>Publish to Intranet</source>
<translation>Publikálás az Intranetre</translation>
<translation>Közzététel az Intraneten</translation>
</message>
<message>
<source>Publish to Youtube</source>
<translation>Publikálás a YouTubera</translation>
<translation>Közzététel a Youtube-on</translation>
</message>
<message>
<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>
<message>
<source>Proxy Login</source>
<translation type="vanished">Proxy belépés</translation>
<translation type="vanished">Proxy bejelentkezés</translation>
</message>
<message>
<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>
<message>
<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>
<source>Title:</source>
@ -2075,7 +2101,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message>
<message>
<source>Publish</source>
<translation type="vanished">Publikálás</translation>
<translation type="vanished">Közzététel</translation>
</message>
</context>
<context>
@ -2103,16 +2129,20 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
<name>UBThumbnailAdaptor</name>
<message>
<source>Generating preview thumbnails ...</source>
<translation>Előképek létrehozása...</translation>
<translation>Előképek létrehozása</translation>
</message>
<message>
<source>%1 thumbnails generated ...</source>
<translation>%1 előkép létrehozva...</translation>
<translation>%1 előkép létrehozva</translation>
</message>
<message>
<source>loading thumbnail of page %1</source>
<translation type="vanished">%1. oldal előképének betöltése</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2153,7 +2183,7 @@ Figyelmen kívül hagyja ezeket a hibákat ennél a hosztnál?</translation>
</message>
<message>
<source>Axes</source>
<translation type="unfinished"></translation>
<translation>Tengelyek</translation>
</message>
</context>
<context>
@ -2212,7 +2242,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<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>
<source>Remind me later</source>
@ -2223,7 +2253,7 @@ Please reboot the application to access the updated documents.</source>
<name>UBWebPluginWidget</name>
<message>
<source>Loading...</source>
<translation>Betöltés ...</translation>
<translation>Betöltés folyamatban van</translation>
</message>
</context>
<context>
@ -2256,7 +2286,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Autos &amp; Vehicles</source>
<translation>Autók &amp; Járművek</translation>
<translation>Autók és Járművek</translation>
</message>
<message>
<source>Music</source>
@ -2264,7 +2294,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Pets &amp; Animals</source>
<translation>Házi kedvencek @ Állatok</translation>
<translation>Háziállatok és Állatok</translation>
</message>
<message>
<source>Sports</source>
@ -2272,7 +2302,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Travel &amp; Events</source>
<translation>Utazás &amp; Események</translation>
<translation>Utazás és Események</translation>
</message>
<message>
<source>Gaming</source>
@ -2284,11 +2314,11 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>People &amp; Blogs</source>
<translation>Emberek &amp; Blogok</translation>
<translation>Emberek és Webes naplók</translation>
</message>
<message>
<source>News &amp; Politics</source>
<translation>Hírek &amp; Politika</translation>
<translation>Hírek és Politika</translation>
</message>
<message>
<source>Entertainment</source>
@ -2300,15 +2330,15 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Howto &amp; Style</source>
<translation>Hogyan Csináld &amp; Stílus</translation>
<translation>Hogyan kell és Stílus</translation>
</message>
<message>
<source>Nonprofits &amp; Activism</source>
<translation>NonProfit &amp; Aktivisták</translation>
<translation>Nonprofit szervezetek és Aktivizmus</translation>
</message>
<message>
<source>Science &amp; Technology</source>
<translation>Tudomány &amp; Technológia</translation>
<translation>Tudomány és Technológia</translation>
</message>
</context>
<context>
@ -2361,7 +2391,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>%1 of %2 (%3/sec) %4</source>
<translation>%1 / %2 (%3/mp) %4</translation>
<translation>%1/%2 (%3/mp) %4</translation>
</message>
<message>
<source>?</source>
@ -2370,7 +2400,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>%1 of %2 - Stopped</source>
<translation>%1 / %2 - Megállítva</translation>
<translation>%1/%2 - Megállítva</translation>
</message>
<message>
<source>bytes</source>
@ -2430,11 +2460,11 @@ Please reboot the application to access the updated documents.</source>
<name>WBTabBar</name>
<message>
<source>New &amp;Tab</source>
<translation>Új fül &amp;T</translation>
<translation>Új &amp;Lap</translation>
</message>
<message>
<source>Clone Tab</source>
<translation>Fül másolása</translation>
<translation>Lap másolása</translation>
</message>
<message>
<source>&amp;Close Tab</source>
@ -2442,15 +2472,15 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<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>
<source>Reload Tab</source>
<translation>Fül frissítése</translation>
<translation>Lap újratöltése</translation>
</message>
<message>
<source>Reload All Tabs</source>
<translation>Minden fül frissítése</translation>
<translation>Minden lap újratöltése</translation>
</message>
</context>
<context>
@ -2491,7 +2521,7 @@ Please reboot the application to access the updated documents.</source>
</message>
<message>
<source>Add to Current Document</source>
<translation>Hozzaadás az aktuális dokumentumhoz</translation>
<translation>Hozzaadás a jelenlegi dokumentumhoz</translation>
</message>
<message>
<source>PDF</source>
@ -2517,14 +2547,14 @@ Please reboot the application to access the updated documents.</source>
<name>XPDFRenderer</name>
<message>
<source>Processing...</source>
<translation type="unfinished"></translation>
<translation>Feldolgozás folyamatban van</translation>
</message>
</context>
<context>
<name>YouTubePublishingDialog</name>
<message>
<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>
<source>Title</source>
@ -2645,19 +2675,19 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Creation date</source>
<translation type="unfinished"></translation>
<translation>Létrehozás dátuma</translation>
</message>
<message>
<source>Update date</source>
<translation type="unfinished"></translation>
<translation>Frissítés dátuma</translation>
</message>
<message>
<source>Alphabetical order</source>
<translation type="unfinished"></translation>
<translation>Rendezés betűrendben</translation>
</message>
<message>
<source>Sort Order</source>
<translation type="unfinished"></translation>
<translation>Rendezési sorrend</translation>
</message>
</context>
<context>
@ -2744,7 +2774,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>version : </source>
<translation>verziószám: ...</translation>
<translation>verziószám: </translation>
</message>
<message>
<source>Licences</source>
@ -2828,31 +2858,31 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Swap first and second view displays</source>
<translation type="unfinished"></translation>
<translation>Első és második kijelző megcserélése</translation>
</message>
<message>
<source>Documents Mode</source>
<translation type="unfinished"></translation>
<translation>Dokumentum üzemmód</translation>
</message>
<message>
<source>Display date column on alphabetical sort</source>
<translation type="unfinished"></translation>
<translation>Dátum oszlop megjelenítése betűrendben</translation>
</message>
<message>
<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>
<source>days</source>
<translation type="unfinished"></translation>
<translation>nap</translation>
</message>
<message>
<source>PDF Rendering</source>
<translation type="unfinished"></translation>
<translation>PDF-megjelenítő</translation>
</message>
<message>
<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>
</context>
<context>
@ -2863,7 +2893,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2877,5 +2907,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Alkalmazás létrehozása</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Cattura Flash</translation>
<translation type="vanished">Cattura Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Cattura contenuto flash</translation>
<translation type="vanished">Cattura contenuto flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation>disegna linee di griglia intermedie</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation>Catturare il contenuto del web</translation>
</message>
</context>
<context>
<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>
<translation>Sei sicuro di voler rimuovere 1 pagina dal documento selezionato &apos;%0&apos;?</translation>
</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>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>PodCast</translation>
</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>
<name>UBApplicationController</name>
@ -1238,6 +1254,10 @@
<source>Title page</source>
<translation>Frontespizio</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation>Aggiornamento delle anteprime in modalità Documenti (%1/%2)</translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1288,6 +1308,10 @@
<source>Page %0</source>
<translation>Pagina %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation>Creazione delle anteprime in modalità Lavagna (%1/%2)</translation>
</message>
</context>
<context>
<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>
<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>
<source>Renaming pages (%1/%2)</source>
<translation>Aggiornamento dei nomi delle pagine in corso (%1/%2)</translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2187,6 +2215,10 @@ Vuoi ignorare gli errori per questo host?</translation>
<source>loading thumbnail of page %1</source>
<translation type="vanished">Caricamento miniatura della pagina %1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation>Caricamento dell&apos;anteprima (%1/%2)</translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2969,7 +3001,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2983,5 +3015,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Crea applicazione</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation>Selezionare il contenuto da catturare</translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>מלכודת פלאש</translation>
<translation type="vanished">מלכודת פלאש</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>תוכן מלכודת פלאש</translation>
<translation type="vanished">תוכן מלכודת פלאש</translation>
</message>
<message>
<source>Web Trap</source>
@ -840,6 +840,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>האם אתה בטוח שברצונך למחוק דף 1 מהמסמך שנבחר %0?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -908,6 +920,10 @@
<source>Podcast</source>
<translation>פודקסט</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source>
<translation>עמוד %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2122,6 +2150,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>נוצרה תמונה מוקטנת של %1...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2896,7 +2928,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>בחר פלאש ללכידה</translation>
<translation type="vanished">בחר פלאש ללכידה</translation>
</message>
<message>
<source>about:blank</source>
@ -2910,5 +2942,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>צור יישום</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation> </translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1220,6 +1236,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1270,6 +1290,10 @@
<source>Page %0</source>
<translation>%0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2118,6 +2146,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 ... </translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2892,7 +2924,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>about:blank</source>
@ -2906,5 +2938,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation></translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"> &apos;%0&apos; 1 ?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation></translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source>
<translation>%0 </translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2137,6 +2165,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2915,7 +2947,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation> </translation>
<translation type="vanished"> </translation>
</message>
<message>
<source>about:blank</source>
@ -2929,5 +2961,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation> </translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -681,11 +681,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Alaina ny Flash</translation>
<translation type="vanished">Alaina ny Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Alaina ny mpiatiny Flash</translation>
<translation type="vanished">Alaina ny mpiatiny Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Tena te hamafa pejy iray avy amin&apos;ilay rakitra &apos;%0&apos; voafidy ve ianao ?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Pejy %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>%1 ny kisarisary no voaforona ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2911,7 +2943,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2925,5 +2957,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Mamorona rindran&apos;asa</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Flash trap</translation>
<translation type="vanished">Flash trap</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Trap flash-innhold</translation>
<translation type="vanished">Trap flash-innhold</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Er du sikker at du vil fjerne side 1 fra det valgte dokumentet &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source>
<translation>Side %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2122,6 +2150,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 miniatyrbilder generert ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2901,7 +2933,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2915,5 +2947,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Opprett applikasjon</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Flash Trap</translation>
<translation type="vanished">Flash Trap</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Trap flash inhoud</translation>
<translation type="vanished">Trap flash inhoud</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1222,6 +1238,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1272,6 +1292,10 @@
<source>Page %0</source>
<translation>Pagina %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2123,6 +2151,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1 miniaturen opgeladen...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2900,7 +2932,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>Te vangen licht selecteren</translation>
<translation type="vanished">Te vangen licht selecteren</translation>
</message>
<message>
<source>about:blank</source>
@ -2914,5 +2946,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Applicatie maken</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -481,7 +481,7 @@
</message>
<message>
<source>Grid Light Background</source>
<translation>Jasne rastrowe tło</translation>
<translation>Jasne tło w kratkę</translation>
</message>
<message>
<source>Plain Dark Background</source>
@ -493,7 +493,7 @@
</message>
<message>
<source>Grid Dark Background</source>
<translation>Ciemne rastrowe tło</translation>
<translation>Ciemne tło w kratkę</translation>
</message>
<message>
<source>Podcast</source>
@ -561,7 +561,7 @@
</message>
<message>
<source>Highlight </source>
<translation>Wyróżnienie</translation>
<translation>Wyróżnienie </translation>
</message>
<message>
<source>Ctrl+M</source>
@ -697,16 +697,15 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Pułapka Flash</translation>
<translation type="vanished">Pułapka Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Złap zawartość Flash</translation>
<translation type="vanished">Złap zawartość Flash</translation>
</message>
<message>
<source>Web Trap</source>
<translation>
</translation>
<translation>Pułapka sieciowa</translation>
</message>
<message>
<source>Trap Web Content</source>
@ -797,50 +796,54 @@
</message>
<message>
<source>Ruled Light Background</source>
<translation type="unfinished"></translation>
<translation>Jasne tło w linie</translation>
</message>
<message>
<source>Ruled Dark Background</source>
<translation type="unfinished"></translation>
<translation>Ciemne tło w linie</translation>
</message>
<message>
<source>Open Tutorial</source>
<translation type="unfinished"></translation>
<translation>Otwórz samouczek</translation>
</message>
<message>
<source>Open the tutorial web page</source>
<translation type="unfinished"></translation>
<translation>Otwórz stronę samouczka</translation>
</message>
<message>
<source>Reset grid size</source>
<translation type="unfinished"></translation>
<translation>Zresetuj rozmiar kratki</translation>
</message>
<message>
<source>Small Eraser</source>
<translation type="unfinished"></translation>
<translation>Mała gumka</translation>
</message>
<message>
<source>Color 1</source>
<translation type="unfinished"></translation>
<translation>Kolor 1</translation>
</message>
<message>
<source>Color 2</source>
<translation type="unfinished"></translation>
<translation>Kolor 2</translation>
</message>
<message>
<source>Color 3</source>
<translation type="unfinished"></translation>
<translation>Kolor 3</translation>
</message>
<message>
<source>Color 4</source>
<translation type="unfinished"></translation>
<translation>Kolor 4</translation>
</message>
<message>
<source>Color 5</source>
<translation type="unfinished"></translation>
<translation>Kolor 5</translation>
</message>
<message>
<source>Draw intermediate grid lines</source>
<translation>Rysuj drobne linie kratki</translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -886,7 +889,7 @@
<name>QObject</name>
<message>
<source>Element ID = </source>
<translation>ID elementu =</translation>
<translation>ID elementu = </translation>
</message>
<message>
<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>
<translation>Czy na pewno chcesz usunąć 1 stronę z wybranego dokumentu %0?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -911,6 +922,10 @@
<source>Podcast</source>
<translation>Podkast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -939,11 +954,11 @@
<name>UBBackgroundPalette</name>
<message>
<source>Grid size</source>
<translation type="unfinished"></translation>
<translation>Rozmiar kratki</translation>
</message>
<message>
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
<translation>Rysuj drobne linie kratki</translation>
</message>
</context>
<context>
@ -994,19 +1009,19 @@
</message>
<message>
<source>Saving document...</source>
<translation type="unfinished"></translation>
<translation>Zapisywanie dokumentu...</translation>
</message>
<message>
<source>Document has just been saved...</source>
<translation type="unfinished"></translation>
<translation>Dokument został właśnie zapisany...</translation>
</message>
<message>
<source>Deleting page %1</source>
<translation type="unfinished"></translation>
<translation>Usuwanie strony %1</translation>
</message>
<message>
<source>Color</source>
<translation type="unfinished">Kolor</translation>
<translation>Kolor</translation>
</message>
</context>
<context>
@ -1024,7 +1039,7 @@
<name>UBBoardThumbnailsView</name>
<message>
<source>Loading page (%1/%2)</source>
<translation type="unfinished"></translation>
<translation>Ładowanie strony (%1/%2)</translation>
</message>
</context>
<context>
@ -1074,7 +1089,7 @@
</message>
<message>
<source>Show OpenBoard</source>
<translation type="unfinished"></translation>
<translation>Pokaż OpenBoard</translation>
</message>
</context>
<context>
@ -1157,7 +1172,7 @@
</message>
<message>
<source>Failed to import file ... </source>
<translation>Importowanie pliku zakończone niepowodzeniem...</translation>
<translation>Importowanie pliku zakończone niepowodzeniem... </translation>
</message>
<message>
<source>Import all Images from Folder</source>
@ -1210,26 +1225,30 @@
<message numerus="yes">
<source>duplicated %1 page</source>
<comment>duplicated %1 pages</comment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform></numerusform>
<numerusform></numerusform>
<translation>
<numerusform>zduplikowano %1 stronę</numerusform>
<numerusform>zduplikowano %1 strony</numerusform>
<numerusform>Zduplikowano %1 stron</numerusform>
</translation>
</message>
<message>
<source>Remove Item</source>
<translation type="unfinished"></translation>
<translation>Usuń element</translation>
</message>
<message>
<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>
<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>
<source>Title page</source>
<translation>Strona tytułowa</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1282,6 +1301,10 @@
<source>Page %0</source>
<translation>Strona %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentPublisher</name>
@ -1294,32 +1317,34 @@
<name>UBDocumentReplaceDialog</name>
<message>
<source>Accept</source>
<translation type="unfinished">Akceptuj</translation>
<translation>Akceptuj</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished">Anuluj</translation>
<translation>Anuluj</translation>
</message>
<message>
<source>Replace</source>
<translation type="unfinished"></translation>
<translation>Zastąp</translation>
</message>
<message>
<source>The name %1 is allready used.
Keeping this name will replace the document.
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>
</context>
<context>
<name>UBDocumentTreeModel</name>
<message>
<source>Trash</source>
<translation type="unfinished">Kosz</translation>
<translation>Kosz</translation>
</message>
<message numerus="yes">
<source>%1 pages copied</source>
<translation type="unfinished">
<translation>
<numerusform>Skopiowano %1 stronę</numerusform>
<numerusform>Skopiowano %1 strony</numerusform>
<numerusform>Skopiowano %1 stron</numerusform>
@ -1327,14 +1352,14 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>My documents</source>
<translation type="unfinished"></translation>
<translation>Moje dokumenty</translation>
</message>
</context>
<context>
<name>UBDocumentTreeView</name>
<message numerus="yes">
<source>%1 pages copied</source>
<translation type="unfinished">
<translation>
<numerusform>Skopiowano %1 stronę</numerusform>
<numerusform>Skopiowano %1 strony</numerusform>
<numerusform>Skopiowano %1 stron</numerusform>
@ -1342,15 +1367,15 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Remove Item</source>
<translation type="unfinished"></translation>
<translation>Usuń elementy</translation>
</message>
<message>
<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>
<source>Copying page %1/%2</source>
<translation type="unfinished">Kopiowanie strony %1/%2</translation>
<translation>Kopiowanie strony %1/%2</translation>
</message>
</context>
<context>
@ -1388,14 +1413,14 @@ Providing a new name will create a new document.</source>
<name>UBDraggableThumbnail</name>
<message>
<source>Page %0</source>
<translation type="unfinished">Strona %0</translation>
<translation>Strona %0</translation>
</message>
</context>
<context>
<name>UBDraggableThumbnailView</name>
<message>
<source>Page %0</source>
<translation type="unfinished">Strona %0</translation>
<translation>Strona %0</translation>
</message>
</context>
<context>
@ -1406,23 +1431,23 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Exporting document...</source>
<translation type="unfinished">Eksportowanie dokumentu...</translation>
<translation>Eksportowanie dokumentu...</translation>
</message>
<message>
<source>Export successful.</source>
<translation type="unfinished">Eksportowanie zakończone powodzeniem.</translation>
<translation>Eksportowanie zakończone powodzeniem.</translation>
</message>
<message>
<source>Export failed</source>
<translation type="unfinished"></translation>
<translation>Eksportowanie zakończone niepowodzeniem</translation>
</message>
<message>
<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>
<source>Export failed: location not writable</source>
<translation type="unfinished"></translation>
<translation>Eksportowanie nie powiodło się: niemożliwy zapis do lokacji</translation>
</message>
</context>
<context>
@ -1472,34 +1497,34 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Export to OpenBoard Format</source>
<translation type="unfinished"></translation>
<translation>Wyeksportuj do formatu OpenBoard</translation>
</message>
</context>
<context>
<name>UBExportDocumentSetAdaptor</name>
<message>
<source>Exporting document...</source>
<translation type="unfinished">Eksportowanie dokumentu...</translation>
<translation>Eksportowanie dokumentu...</translation>
</message>
<message>
<source>Export successful.</source>
<translation type="unfinished">Eksportowanie zakończone powodzeniem.</translation>
<translation>Eksportowanie zakończone powodzeniem.</translation>
</message>
<message>
<source>Export failed.</source>
<translation type="unfinished">Eksportowanie zakończone niepowodzeniem.</translation>
<translation>Eksportowanie zakończone niepowodzeniem.</translation>
</message>
<message>
<source>Failed to export...</source>
<translation type="unfinished"></translation>
<translation>Nie udało się wyeksportować...</translation>
</message>
<message>
<source>Export as UBX File</source>
<translation type="unfinished"></translation>
<translation>Wyeksportuj jako plik UBX</translation>
</message>
<message>
<source>Export to OpenBoard UBX Format</source>
<translation type="unfinished"></translation>
<translation>Wyeksportuj jako plik formatu OpenBoard UBX</translation>
</message>
</context>
<context>
@ -1691,7 +1716,7 @@ Providing a new name will create a new document.</source>
<name>UBFeaturesProgressInfo</name>
<message>
<source>Loading </source>
<translation>Wczytywanie</translation>
<translation>Wczytywanie </translation>
</message>
</context>
<context>
@ -1721,26 +1746,26 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Set as background</source>
<translation type="unfinished">Ustaw jako tło</translation>
<translation>Ustaw jako tło</translation>
</message>
</context>
<context>
<name>UBGraphicsMediaItem</name>
<message>
<source>Media resource couldn&apos;t be resolved</source>
<translation type="unfinished"></translation>
<translation>Nie udało się znaleźć zasobu multimedialnego</translation>
</message>
<message>
<source>Unsupported media format</source>
<translation type="unfinished"></translation>
<translation>Niewspierany format zasobu multimedialnego</translation>
</message>
<message>
<source>Media playback service not found</source>
<translation type="unfinished"></translation>
<translation>Nie znaleziono usługi odtwarzania</translation>
</message>
<message>
<source>Media error: </source>
<translation type="unfinished"></translation>
<translation>Błąd multimediów: </translation>
</message>
</context>
<context>
@ -1783,7 +1808,7 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>Transform as Tool </source>
<translation>Przekształć jako narzędzie</translation>
<translation>Przekształć jako narzędzie </translation>
</message>
</context>
<context>
@ -1825,14 +1850,14 @@ Providing a new name will create a new document.</source>
</message>
<message>
<source>OpenBoard (*.ubz)</source>
<translation type="unfinished"></translation>
<translation>OpenBoard (*.ubz)</translation>
</message>
</context>
<context>
<name>UBImportDocumentSetAdaptor</name>
<message>
<source>Openboard (set of documents) (*.ubx)</source>
<translation type="unfinished"></translation>
<translation>Openboard (zbiór dokumentów) (*.ubx)</translation>
</message>
</context>
<context>
@ -1943,27 +1968,27 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<name>UBOpenSankoreImporterWidget</name>
<message>
<source>Cancel</source>
<translation type="unfinished">Anuluj</translation>
<translation>Anuluj</translation>
</message>
<message>
<source>Open-Sankore Documents Detected</source>
<translation type="unfinished"></translation>
<translation>Wykryto dokumenty Open-Sankore</translation>
</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>
<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>
<source>Show this panel next time</source>
<translation type="unfinished"></translation>
<translation>Pokaż ten panel następnym razem</translation>
</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>
<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>
<source>Proceed</source>
<translation type="unfinished"></translation>
<translation>Kontynuuj</translation>
</message>
</context>
<context>
@ -1978,6 +2003,10 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</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>
<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>
</message>
</context>
@ -2064,7 +2093,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</message>
<message>
<source>OpenBoard Cast</source>
<translation type="unfinished"></translation>
<translation>OpenBoard Cast</translation>
</message>
</context>
<context>
@ -2123,7 +2152,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<name>UBStartupHintsPalette</name>
<message>
<source>Visible next time</source>
<translation type="unfinished"></translation>
<translation>Pokaż następnym razem</translation>
</message>
</context>
<context>
@ -2143,12 +2172,16 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
<source>%1 thumbnails generated ...</source>
<translation>Wygenerowano %1 miniatur...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
<message>
<source>Page %0</source>
<translation type="unfinished">Strona %0</translation>
<translation>Strona %0</translation>
</message>
</context>
<context>
@ -2183,7 +2216,7 @@ Czy chcesz ignorować te błędy dla tego hosta?</translation>
</message>
<message>
<source>Axes</source>
<translation type="unfinished"></translation>
<translation>Osie</translation>
</message>
</context>
<context>
@ -2461,7 +2494,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
<name>WBTabBar</name>
<message>
<source>New &amp;Tab</source>
<translation>Nowa zakładka</translation>
<translation>&amp;Nowa zakładka</translation>
</message>
<message>
<source>Clone Tab</source>
@ -2469,11 +2502,11 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
</message>
<message>
<source>&amp;Close Tab</source>
<translation>Zamknij zakładkę</translation>
<translation>&amp;Zamknij kartę</translation>
</message>
<message>
<source>Close &amp;Other Tabs</source>
<translation>Zamknij inne zakładki</translation>
<translation>Zamknij &amp;Inne karty</translation>
</message>
<message>
<source>Reload Tab</source>
@ -2534,7 +2567,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
</message>
<message>
<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>
</context>
<context>
@ -2548,7 +2581,7 @@ Aby uzyskać dostęp do zaktualizowanych dokumentów, należy ponownie uruchomi
<name>XPDFRenderer</name>
<message>
<source>Processing...</source>
<translation type="unfinished"></translation>
<translation>Przetwarzanie...</translation>
</message>
</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;
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;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>
&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>
</message>
<message>
<source>OpenBoard</source>
<translation type="unfinished" variants="yes">
<lengthvariant>OpenBoard</lengthvariant>
<lengthvariant></lengthvariant>
</translation>
<translation>OpenBoard</translation>
</message>
<message>
<source>Restore credentials on reboot</source>
<translation type="unfinished"></translation>
<translation>Przywróć dane logowania po restarcie</translation>
</message>
</context>
<context>
@ -2642,11 +2671,11 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Show preview circle from</source>
<translation type="unfinished"></translation>
<translation>Pokaż podgląd pędzla od</translation>
</message>
<message>
<source>px</source>
<translation type="unfinished"></translation>
<translation>px</translation>
</message>
</context>
<context>
@ -2699,23 +2728,23 @@ p, li { white-space: pre-wrap; }
<name>documents</name>
<message>
<source>OpenBoard Documents</source>
<translation type="unfinished"></translation>
<translation>Dokumenty OpenBoard</translation>
</message>
<message>
<source>Creation date</source>
<translation type="unfinished"></translation>
<translation>Data utworzenia</translation>
</message>
<message>
<source>Update date</source>
<translation type="unfinished"></translation>
<translation>Data modyfikacji</translation>
</message>
<message>
<source>Alphabetical order</source>
<translation type="unfinished"></translation>
<translation>Porządek alfabetyczny</translation>
</message>
<message>
<source>Sort Order</source>
<translation type="unfinished"></translation>
<translation>Porządek sortowania</translation>
</message>
</context>
<context>
@ -2738,7 +2767,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Display</source>
<translation>Wyświetlaj</translation>
<translation>Wyświetlanie</translation>
</message>
<message>
<source>Internet</source>
@ -2858,63 +2887,63 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>On Dark Background</source>
<translation type="unfinished">Na ciemnym tle</translation>
<translation>Na ciemnym tle</translation>
</message>
<message>
<source>Opacity</source>
<translation type="unfinished">Nieprzezroczystość</translation>
<translation>Nieprzezroczystość</translation>
</message>
<message>
<source>On Light Background</source>
<translation type="unfinished">Na jasnym tle</translation>
<translation>Na jasnym tle</translation>
</message>
<message>
<source>Swap first and second view displays</source>
<translation type="unfinished"></translation>
<translation>Zamień wyświetlacze</translation>
</message>
<message>
<source>Built-in virtual keyboard button size:</source>
<translation type="unfinished"></translation>
<translation>Rozmiar klawiszy wyświetlanej klawiatury:</translation>
</message>
<message>
<source>Use system keyboard (recommended)</source>
<translation type="unfinished"></translation>
<translation>Użyj klawiatury systemowej (zalecane)</translation>
</message>
<message>
<source>Grid</source>
<translation type="unfinished"></translation>
<translation>Kratka</translation>
</message>
<message>
<source>Open-Sankoré Importer</source>
<translation type="unfinished"></translation>
<translation>Open-Sankoré Importer</translation>
</message>
<message>
<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>
<source>Documents Mode</source>
<translation type="unfinished"></translation>
<translation>Tryb dokumentów</translation>
</message>
<message>
<source>Display date column on alphabetical sort</source>
<translation type="unfinished"></translation>
<translation>Wyświetl kolumnę dat w porządku alfabetycznym</translation>
</message>
<message>
<source>Empty trash for documents older than</source>
<translation type="unfinished"></translation>
<translation>Usuń dokumenty z kosza, które starsze niż</translation>
</message>
<message>
<source>days</source>
<translation type="unfinished"></translation>
<translation>dni</translation>
</message>
<message>
<source>PDF Rendering</source>
<translation type="unfinished"></translation>
<translation>Renderowanie PDF</translation>
</message>
<message>
<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>
</context>
<context>
@ -2925,7 +2954,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2939,5 +2968,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Stwórz aplikację</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -698,11 +698,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Captura de Flash</translation>
<translation type="vanished">Captura de Flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Captura de Conteúdo Flash</translation>
<translation type="vanished">Captura de Conteúdo Flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -841,6 +841,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Tem a certeza que quer remover 1 página do documento selecionado &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -909,6 +921,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1236,6 +1252,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1286,6 +1306,10 @@
<source>Page %0</source>
<translation>Página %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2158,6 +2186,10 @@ Quer ignorar estes erros, deste servidor?</translation>
<source>%1 thumbnails generated ...</source>
<translation>%1 de miniaturas geradas ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2940,7 +2972,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2954,5 +2986,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Criar Aplicação</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

File diff suppressed because it is too large Load Diff

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Blocare flash</translation>
<translation type="vanished">Blocare flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Blocare conţinut flash</translation>
<translation type="vanished">Blocare conţinut flash</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Sunteți sigur doriți eliminați 1 pagină din documentul selectat &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Pagina %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2133,6 +2161,10 @@ Doriţi să ignoraţi aceste erori pentru acest host?</translation>
<source>%1 thumbnails generated ...</source>
<translation>%1 miniaturi generate ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2911,7 +2943,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2925,5 +2957,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Creare aplicaţie</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Захват флэш</translation>
<translation type="vanished">Захват флэш</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Захват флэш-содержимого</translation>
<translation type="vanished">Захват флэш-содержимого</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Вы уверены, что хотите удалить 1 страницу из документа &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Подкаст</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1226,6 +1242,10 @@
<source>Title page</source>
<translation>Заглавная страница</translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1276,6 +1296,10 @@
<source>Page %0</source>
<translation>Страница %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Потерян доступ к репозиторию документов «%1». Приложение должно быть закрыто, чтобы избежать повреждения данных. Последние изменения также могут быть утеряны.</translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2135,6 +2163,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>сгенерированы эскизы %1...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2913,7 +2945,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>Выбрать флеш-содержимое для захвата</translation>
<translation type="vanished">Выбрать флеш-содержимое для захвата</translation>
</message>
<message>
<source>about:blank</source>
@ -2927,5 +2959,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Создать приложение</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -351,7 +351,7 @@
</message>
<message>
<source>Trap Flash Content</source>
<translation>Označiť obsah vo Flashi</translation>
<translation type="vanished">Označiť obsah vo Flashi</translation>
</message>
<message>
<source>Import</source>
@ -539,7 +539,7 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Označiť Flash</translation>
<translation type="vanished">Označiť Flash</translation>
</message>
<message>
<source>Window Capture</source>
@ -843,6 +843,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Určite chcete odstrániť 1 stránku z vybraného dokumentu &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -911,6 +923,10 @@
<source>Page Size</source>
<translation>Veľkosť stránky</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1240,6 +1256,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1290,6 +1310,10 @@
<source>Page %0</source>
<translation>Stránka %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2173,6 +2201,10 @@ Chcete ignorovať tieto chyby na tomto serveri?</translation>
<source>Generating preview thumbnails ...</source>
<translation>Vytvárajú sa ukážky miniatúr...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2952,7 +2984,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2966,5 +2998,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Vytvoriť aplikáciu</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Lagra flash</translation>
<translation type="vanished">Lagra flash</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Lagra flash innehål</translation>
<translation type="vanished">Lagra flash innehål</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Är du säker att du vill ta bort 1 sida från det valda dokumentet &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Podcast</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1227,6 +1243,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1277,6 +1297,10 @@
<source>Page %0</source>
<translation>Sida %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2134,6 +2162,10 @@ Vill du ignorera felen för den här värden?</translation>
<source>%1 thumbnails generated ...</source>
<translation>%1 miniatybil genererad ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2912,7 +2944,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2926,5 +2958,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Skapa applikation</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -701,11 +701,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Flash Tuzağı</translation>
<translation type="vanished">Flash Tuzağı</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Flash İçeriğini Yakala</translation>
<translation type="vanished">Flash İçeriğini Yakala</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<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>
<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>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Ekran Kaydı</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source>
<translation>Sayfa %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>%1 adet önizleme resmi oluşturuldu ...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<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>
<source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Uygulama Oluştur</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation>Захоплення флеш</translation>
<translation type="vanished">Захоплення флеш</translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation>Захоплення флеш-вмісту</translation>
<translation type="vanished">Захоплення флеш-вмісту</translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>Ви впевнені, що хочете видалити 1 сторінку з документа &apos;%0&apos;?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation>Подкаст</translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1234,6 +1250,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1284,6 +1304,10 @@
<source>Page %0</source>
<translation>Сторінка %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2142,6 +2170,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>згенеровані ескізи %1...</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2897,7 +2929,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation>Вибрати флеш-вміст для захоплення</translation>
<translation type="vanished">Вибрати флеш-вміст для захоплення</translation>
</message>
<message>
<source>about:blank</source>
@ -2911,5 +2943,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation>Створити програму</translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>%01?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation></translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source>
<translation> %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2121,6 +2149,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation></translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

@ -697,11 +697,11 @@
</message>
<message>
<source>Flash Trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Trap Flash Content</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Web Trap</source>
@ -839,6 +839,10 @@
<source>Draw intermediate grid lines</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Capture Web Content</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation>%01?</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>
</message>
</context>
<context>
<name>UBApplication</name>
@ -907,6 +919,10 @@
<source>Podcast</source>
<translation></translation>
</message>
<message>
<source>Cannot open your UBX file directly. Please import it in Documents mode instead</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBApplicationController</name>
@ -1224,6 +1240,10 @@
<source>Title page</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Refreshing Document Thumbnails View (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBDocumentManager</name>
@ -1274,6 +1294,10 @@
<source>Page %0</source>
<translation> %0</translation>
</message>
<message>
<source>Generating thumbnails for board (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<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>
<translation type="unfinished"></translation>
</message>
<message>
<source>Renaming pages (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBPlatformUtils</name>
@ -2121,6 +2149,10 @@ Do you want to ignore these errors for this host?</source>
<source>%1 thumbnails generated ...</source>
<translation>%1</translation>
</message>
<message>
<source>Loading thumbnail (%1/%2)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UBThumbnailTextItem</name>
@ -2899,7 +2931,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Select a flash to trap</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>about:blank</source>
@ -2913,5 +2945,9 @@ p, li { white-space: pre-wrap; }
<source>Create Application</source>
<translation></translation>
</message>
<message>
<source>Select a content to capture</source>
<translation type="unfinished"></translation>
</message>
</context>
</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){
loadingState = false;
var url = $("#textbox").val();
var urlStart = url.split("://");
if(urlStart[0]!="http"){
url = "http://" + url;
};
if(!url.startsWith("http"))
{
url = "https://" + 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(currentHistory == references.length)
references[currentHistory++] = url;
@ -158,7 +187,8 @@
$("#arrow").hide();
$("#embeded-content").hide();
$("#web-content").hide();
$('#web-content').attr('src',url);
$('#web-content').contents().find("body").html("");
$('#web-content').attr('src', url);
checkcontent();
checkLoading();
@ -225,11 +255,12 @@
};
if(resizerIndex > 80){
resizerIndex = 0;
console.log("error on loading page");
$("#back-button").trigger("click");
$("#textbox").val($("#textbox").val().replace("http://", ""));
$("#textbox").val("http://www.metacrawler.com/search/web?&q=" + $("#textbox").val().replace("http://", "")+"&ql=");
$("#search-button").trigger("click");
$("#container").addClass("error");
$("#web-content").hide();
$("#container-shadow").hide();
$("#content").hide();
$("#arrow").hide();
$("#notifications").html(sankoreLang[lang].error_loading_page);
}else{
resizer = setTimeout(function(){checkLoading()}, 100);
resizerIndex++;
@ -280,6 +311,7 @@
</div>
<div id="container" class="welcome">
<div id="notifications"></div>
<div id="arrow"><img src="imgs/arrow.png" alt="arrow-top"></div>
<div id="show-container">

@ -6,7 +6,9 @@
"prev_page":"Previous page",
"next_page":"Next page",
"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":{
"previous":"Пред.",
@ -15,7 +17,9 @@
"prev_page":"Пред. страница",
"next_page":"След. страница",
"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":{
"previous":"Précédente",
@ -24,7 +28,9 @@
"prev_page":"Page précédente",
"next_page":"Page suivante",
"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":{
"previous":"Predošlá",
@ -33,7 +39,9 @@
"prev_page":"Predošlá stránka",
"next_page":"Ďalšia stránka",
"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
# 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>
<key>NSMicrophoneUsageDescription</key>
<string>Accès au microphone requis</string>
<key>NSAppleEventsUsageDescription</key>
<string>Accès au clavier virtuel requis</string>
<key>UTExportedTypeDeclarations</key>
<array>
<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
bool isDark = scene->isDarkBackground();
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
// 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
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(); //RDF
@ -226,11 +224,6 @@ QMap<QString, QVariant> UBMetadataDcSubsetAdaptor::load(QString pPath)
metadata.insert(UBSettings::documentUpdatedAt, xml.readElementText());
updatedAtFound = true;
}
else if (xml.name() == "page-count"
&& xml.namespaceUri() == UBSettings::uniboardDocumentNamespaceUri)
{
metadata.insert(UBSettings::documentPageCount, xml.readElementText());
}
metadata.insert(UBSettings::documentVersion, docVersion);
}

@ -29,6 +29,7 @@
#include "UBSvgSubsetAdaptor.h"
#include <QObject>
#include <QtCore>
#include <QtXml>
#include <QGraphicsTextItem>
@ -239,6 +240,7 @@ QString UBSvgSubsetAdaptor::uniboardDocumentNamespaceUriFromVersion(int mFileVer
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);
qDebug() << fileName;
QFile file(fileName);
@ -355,7 +357,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
time.start();
mScene = 0;
UBGraphicsWidgetItem *currentWidget = 0;
bool pageDpiSpecified = true;
//bool pageDpiSpecified = true;
saveSceneAfterLoading = false;
mFileVersion = 40100; // default to 4.1.0
@ -443,7 +445,7 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
else if (proxy->pageDpi() == 0) {
proxy->setPageDpi((UBApplication::desktop()->physicalDpiX() + UBApplication::desktop()->physicalDpiY())/2);
pageDpiSpecified = false;
//pageDpiSpecified = false;
}
bool darkBackground = false;
@ -909,9 +911,9 @@ UBGraphicsScene* UBSvgSubsetAdaptor::UBSvgSubsetReader::loadScene(UBDocumentProx
if (textDelegate)
{
QDesktopWidget* desktop = UBApplication::desktop();
qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2;
qreal textSizeMultiplier = qreal(proxy->pageDpi())/currentDpi;
//QDesktopWidget* desktop = UBApplication::desktop();
//qreal currentDpi = (desktop->physicalDpiX() + desktop->physicalDpiY()) / 2;
//qreal textSizeMultiplier = qreal(proxy->pageDpi())/currentDpi;
//textDelegate->scaleTextSize(textSizeMultiplier);
}
@ -2390,8 +2392,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsItemToSvg(QGraphicsItem* ite
mXmlWriter.writeAttribute("x", "0");
mXmlWriter.writeAttribute("y", "0");
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
@ -2487,8 +2490,9 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::graphicsWidgetToSvg(UBGraphicsWidget
mXmlWriter.writeStartElement(nsXHtml, "iframe");
mXmlWriter.writeAttribute("style", "border: none");
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
QString startFileUrl;
if (item->mainHtmlFileName().startsWith("http://"))
@ -2817,10 +2821,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::curtainItemToSvg(UBGraphicsCurtainIt
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "curtain");
mXmlWriter.writeAttribute("x", QString("%1").arg(curtainItem->boundingRect().center().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(curtainItem->boundingRect().center().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(curtainItem->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(curtainItem->boundingRect().height()));
QRectF rect = curtainItem->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("x", QString("%1").arg(rect.center().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(rect.center().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(curtainItem->sceneMatrix()));
//graphicsItemToSvg(curtainItem);
@ -2877,10 +2882,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::rulerToSvg(UBGraphicsRuler* item)
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "ruler");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
QString zs;
@ -3005,10 +3011,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::compassToSvg(UBGraphicsCompass* item
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "compass");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
QString zs;
@ -3139,10 +3146,11 @@ void UBSvgSubsetAdaptor::UBSvgSubsetWriter::triangleToSvg(UBGraphicsTriangle *it
*/
mXmlWriter.writeStartElement(UBSettings::uniboardDocumentNamespaceUri, "triangle");
mXmlWriter.writeAttribute("x", QString("%1").arg(item->boundingRect().x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(item->boundingRect().y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(item->boundingRect().width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(item->boundingRect().height()));
QRectF rect = item->boundingRect() - QMarginsF(0.5, 0.5, 0.5, 0.5);
mXmlWriter.writeAttribute("x", QString("%1").arg(rect.x()));
mXmlWriter.writeAttribute("y", QString("%1").arg(rect.y()));
mXmlWriter.writeAttribute("width", QString("%1").arg(rect.width()));
mXmlWriter.writeAttribute("height", QString("%1").arg(rect.height()));
mXmlWriter.writeAttribute("transform", toSvgTransform(item->sceneMatrix()));
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);
QFile file(fileName);
@ -93,30 +94,21 @@ const QPixmap* UBThumbnailAdaptor::get(UBDocumentProxy* proxy, int pageIndex)
generateMissingThumbnails(proxy);
}
QPixmap* pix = new QPixmap();
QPixmap pix;
if (file.exists())
{
//Warning. Works only with modified Qt
#ifdef Q_OS_LINUX
pix->load(fileName, 0, Qt::AutoColor);
#else
pix->load(fileName, 0, Qt::AutoColor);
#endif
pix.load(fileName, 0, Qt::AutoColor);
}
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();
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)

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

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

@ -177,7 +177,7 @@ class UBBoardController : public UBDocumentContainer
void notifyPageChanged();
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 setActiveDocumentScene(UBDocumentProxy* pDocumentProxy, int pSceneIndex = 0, bool forceReload = false, bool onImport = false);

@ -512,16 +512,18 @@ void UBBoardPaletteManager::containerResized()
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(), 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(), mContainer->height());
mRightPalette->resize(mRightPalette->width()+1, mContainer->height());
}
}

@ -486,8 +486,14 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
if (item)
{
// item has group as first parent - it is any item or UBGraphicsStrokesGroup.
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type())
return;
if (getMovingItem())
{
if (getMovingItem()->parentItem())
{
if(item->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type())
return;
}
}
// delegate buttons shouldn't selected
if (DelegateButton::Type == item->type())
@ -510,6 +516,7 @@ void UBBoardView::handleItemsSelection(QGraphicsItem *item)
if ((UBGraphicsItemType::UserTypesCount > item->type()) && (item->type() > QGraphicsItem::UserType))
{
scene()->deselectAllItemsExcept(item);
scene()->updateSelectionFrame();
}
}
}
@ -653,11 +660,17 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
if (!(mMouseButtonIsPressed || mTabletStylusIsPressed))
return false;
if (getMovingItem()->data(UBGraphicsItemData::ItemLocked).toBool())
return false;
if (getMovingItem())
{
if (getMovingItem()->data(UBGraphicsItemData::ItemLocked).toBool())
return false;
if (getMovingItem()->parentItem() && UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type() && !getMovingItem()->isSelected() && getMovingItem()->parentItem()->isSelected())
return false;
if (getMovingItem()->parentItem())
{
if (UBGraphicsGroupContainerItem::Type == getMovingItem()->parentItem()->type() && !getMovingItem()->isSelected() && getMovingItem()->parentItem()->isSelected())
return false;
}
}
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
@ -684,7 +697,6 @@ bool UBBoardView::itemShouldBeMoved(QGraphicsItem *item)
case UBGraphicsAudioItem::Type:
return true;
case UBGraphicsStrokesGroup::Type:
return false;
case UBGraphicsTextItem::Type:
if (currentTool == UBStylusTool::Play)
return true;
@ -831,20 +843,29 @@ void UBBoardView::handleItemMouseMove(QMouseEvent *event)
QPointF posAfterMove;
if (getMovingItem())
{
posBeforeMove = getMovingItem()->pos();
QGraphicsView::mouseMoveEvent (event);
if (getMovingItem())
QGraphicsView::mouseMoveEvent (event);
posAfterMove = getMovingItem()->pos();
}
else
{
if (!mMouseButtonIsPressed)
{
QGraphicsView::mouseMoveEvent(event);
}
}
mWidgetMoved = ((posAfterMove-posBeforeMove).manhattanLength() != 0);
// 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,
// 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())
getMovingItem()->setPos(posBeforeMove);
if (getMovingItem())
{
if (mWidgetMoved && UBGraphicsW3CWidgetItem::Type == getMovingItem()->type())
getMovingItem()->setPos(posBeforeMove);
}
}
}
@ -1270,51 +1291,58 @@ void UBBoardView::mouseReleaseEvent (QMouseEvent *event)
setMovingItem(nullptr);
}
else
if (getMovingItem() && (!isCppTool(getMovingItem()) || UBGraphicsCurtainItem::Type == getMovingItem()->type()))
{
if (getMovingItem())
{
if (suspendedMousePressEvent)
{
QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop
setMovingItem(NULL);
delete suspendedMousePressEvent;
suspendedMousePressEvent = NULL;
bReleaseIsNeed = true;
}
else
if (!isCppTool(getMovingItem()) || UBGraphicsCurtainItem::Type == getMovingItem()->type())
{
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()))
if (suspendedMousePressEvent)
{
bReleaseIsNeed = false;
if (getMovingItem()->isSelected() && isMultipleSelectionEnabled())
getMovingItem()->setSelected(false);
else
if (getMovingItem()->parentItem() && getMovingItem()->parentItem()->isSelected() && isMultipleSelectionEnabled())
getMovingItem()->parentItem()->setSelected(false);
QGraphicsView::mousePressEvent(suspendedMousePressEvent); // suspendedMousePressEvent is deleted by old Qt event loop
setMovingItem(NULL);
delete suspendedMousePressEvent;
suspendedMousePressEvent = NULL;
bReleaseIsNeed = true;
}
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
{
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);
if (getMovingItem()->parentItem() && getMovingItem()->parentItem()->isSelected() && isMultipleSelectionEnabled())
getMovingItem()->parentItem()->setSelected(false);
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
bReleaseIsNeed = true;
}
if (bReleaseIsNeed)
{
@ -1402,9 +1430,13 @@ void UBBoardView::mouseReleaseEvent (QMouseEvent *event)
return;
}
if (mWidgetMoved) {
getMovingItem()->setSelected(false);
setMovingItem(NULL);
if (mWidgetMoved)
{
if (getMovingItem())
{
getMovingItem()->setSelected(false);
setMovingItem(NULL);
}
mWidgetMoved = false;
}
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::mimeTypeUniboardPageThumbnail = QString("application/vnd.mnemis-uniboard-thumbnail");
QString UBApplication::fileToOpen = "";
#if defined(Q_OS_OSX) || defined(Q_OS_LINUX)
bool bIsMinimized = false;
#endif
@ -88,7 +90,7 @@ bool bIsMinimized = false;
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)
, mApplicationTranslator(NULL)
, mQtGuiTranslator(NULL)
@ -309,6 +311,14 @@ int UBApplication::exec(const QString& pFileToImport)
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)),
boardController->paletteManager(), SLOT(slot_changeMainMode(UBApplicationController::MainMode)));
@ -348,7 +358,12 @@ int UBApplication::exec(const QString& pFileToImport)
boardController->setupLayout();
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())
applicationController->showDesktop();
@ -575,7 +590,21 @@ bool UBApplication::eventFilter(QObject *obj, QEvent *event)
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)

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

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

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

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

@ -34,6 +34,7 @@
#include <QDomDocument>
#include <QXmlStreamWriter>
#include <QModelIndex>
#include <QtConcurrent>
#include "frameworks/UBPlatformUtils.h"
#include "frameworks/UBFileSystemUtils.h"
@ -98,7 +99,6 @@ UBPersistenceManager::UBPersistenceManager(QObject *pParent)
mDocumentTreeStructureModel = new UBDocumentTreeModel(this);
createDocumentProxiesStructure();
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)
{
mDocumentRepositoryPath = UBSettings::userDocumentDirectory();
@ -130,8 +174,13 @@ void UBPersistenceManager::createDocumentProxiesStructure(bool interactive)
QDir rootDir(mDocumentRepositoryPath);
rootDir.mkpath(rootDir.path());
QFileInfoList contentList = rootDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed);
createDocumentProxiesStructure(contentList, interactive);
QFileInfoList contentInfoList = rootDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed);
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()) {
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 = path.absoluteFilePath();
QString fullPath = contentInfo.absoluteFilePath();
QDir dir(fullPath);
if (dir.entryList(QDir::Files | QDir::NoDotAndDotDot).size() > 0)
{
QMap<QString, QVariant> metadatas = UBMetadataDcSubsetAdaptor::load(fullPath);
QString docGroupName = metadatas.value(UBSettings::documentGroupName, QString()).toString();
QString docName = metadatas.value(UBSettings::documentName, QString()).toString();
if (docName.isEmpty()) {
qDebug() << "Group name and document name are empty in UBPersistenceManager::createDocumentProxiesStructure()";
continue;
}
QModelIndex parentIndex = mDocumentTreeStructureModel->goTo(docGroupName);
if (!parentIndex.isValid()) {
return;
return nullptr;
}
UBDocumentProxy* docProxy = new UBDocumentProxy(fullPath, metadatas); // managed in UBDocumentTreeNode
UBDocumentProxy* docProxy = new UBDocumentProxy(fullPath); // managed in UBDocumentTreeNode
foreach(QString key, metadatas.keys()) {
docProxy->setMetaData(key, metadatas.value(key));
}
if (metadatas.contains(UBSettings::documentPageCount))
{
int pageCount = metadatas.value(UBSettings::documentPageCount).toInt();
if (pageCount == 0)
pageCount = sceneCount(docProxy);
docProxy->setPageCount(sceneCount(docProxy));
docProxy->setPageCount(pageCount);
}
else
{
int pageCount = sceneCount(docProxy);
docProxy->setPageCount(pageCount);
}
docProxy->moveToThread(UBApplication::instance()->thread());
if (!interactive)
mDocumentTreeStructureModel->addDocument(docProxy, parentIndex);
else
processInteractiveReplacementDialog(docProxy);
return docProxy;
}
}
return nullptr;
};
QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UBDocumentProxy *pProxy)
{
@ -246,7 +279,10 @@ QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UB
if (mDocumentTreeStructureModel->currentIndex() == replaceIndex)
{
UBApplication::documentController->selectDocument(pProxy, true, true);
if (pProxy->pageCount() > 0)
{
UBApplication::documentController->selectDocument(pProxy, true, true);
}
}
if (replaceProxy) {
@ -256,7 +292,12 @@ QDialog::DialogCode UBPersistenceManager::processInteractiveReplacementDialog(UB
mDocumentTreeStructureModel->removeRow(i, parentIndex);
}
}
pProxy->setMetaData(UBSettings::documentName, resultName);
if (docName != resultName)
{
pProxy->setMetaData(UBSettings::documentName, resultName);
UBMetadataDcSubsetAdaptor::persist(pProxy);
}
mDocumentTreeStructureModel->addDocument(pProxy, parentIndex);
}
replaceDialog->setParent(0);
@ -625,11 +666,6 @@ void UBPersistenceManager::deleteDocumentScenes(UBDocumentProxy* proxy, const QL
if (compactedIndexes.size() == 0)
return;
foreach(int index, compactedIndexes)
{
emit documentSceneWillBeDeleted(proxy, index);
}
QString sourceName = proxy->metaData(UBSettings::documentName).toString();
UBDocumentProxy *trashDocProxy = createDocument(UBSettings::trashedDocumentGroupNamePrefix/* + sourceGroupName*/, sourceName, false);
@ -650,8 +686,7 @@ void UBPersistenceManager::deleteDocumentScenes(UBDocumentProxy* proxy, const QL
d.mkpath(d.absolutePath());
QFile::copy(source, target);
}
insertDocumentSceneAt(trashDocProxy, scene, trashDocProxy->pageCount());
insertDocumentSceneAt(trashDocProxy, scene, trashDocProxy->pageCount(), true, true);
}
}
@ -817,7 +852,7 @@ void UBPersistenceManager::copyDocumentScene(UBDocumentProxy *from, int fromInde
Q_ASSERT(QFileInfo(thumbTmp).exists());
Q_ASSERT(QFileInfo(thumbTo).exists());
const QPixmap *pix = new QPixmap(thumbTmp);
auto pix = std::make_shared<QPixmap>(thumbTmp);
UBDocumentController *ctrl = UBApplication::documentController;
ctrl->addPixmapAt(pix, toIndex);
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)
{
int count = sceneCount(proxy);
int count = proxy->pageCount();
for(int i = count - 1; i >= index; i--)
{
renamePage(proxy, i , i + 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);
@ -873,7 +910,8 @@ void UBPersistenceManager::insertDocumentSceneAt(UBDocumentProxy* proxy, UBGraph
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);
}
void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex)
void UBPersistenceManager::persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup)
{
checkIfDocumentRepositoryExists();
pScene->deselectAllItems();
if (!isAnAutomaticBackup)
pScene->deselectAllItems();
generatePathIfNeeded(pDocumentProxy);
@ -978,6 +1017,7 @@ UBDocumentProxy* UBPersistenceManager::persistDocumentMetadata(UBDocumentProxy*
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));
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 persistDocumentScene(UBDocumentProxy* pDocumentProxy,
UBGraphicsScene* pScene, const int pSceneIndex);
virtual void persistDocumentScene(UBDocumentProxy* pDocumentProxy, UBGraphicsScene* pScene, const int pSceneIndex, bool isAnAutomaticBackup = false);
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);
@ -132,7 +131,8 @@ class UBPersistenceManager : public QObject
bool addDirectoryContentToDocument(const QString& documentRootFolder, UBDocumentProxy* pDocument);
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);
QStringList documentSubDirectories()
@ -166,7 +166,6 @@ class UBPersistenceManager : public QObject
void documentWillBeDeleted(UBDocumentProxy* pDocumentProxy);
void documentSceneCreated(UBDocumentProxy* pDocumentProxy, int pIndex);
void documentSceneWillBeDeleted(UBDocumentProxy* pDocumentProxy, int pIndex);
private:
int sceneCount(const UBDocumentProxy* pDocumentProxy);
@ -189,6 +188,8 @@ private:
bool mHasPurgedDocuments;
QString mDocumentRepositoryPath;
QString mFoldersXmlStorageName;
QProgressDialog mProgress;
QFutureWatcher<void> futureWatcher;
private slots:
void documentRepositoryChanged(const QString& path);

@ -222,6 +222,7 @@ void UBSceneCache::shiftUpScenes(UBDocumentProxy* proxy, int startIncIndex, int
{
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);
}
}

@ -61,7 +61,6 @@ QString UBSettings::documentSize = QString("Size");
QString UBSettings::documentIdentifer = QString("ID");
QString UBSettings::documentVersion = QString("Version");
QString UBSettings::documentUpdatedAt = QString("UpdatedAt");
QString UBSettings::documentPageCount = QString("PageCount");
QString UBSettings::documentDate = QString("date");
QString UBSettings::trashedDocumentGroupNamePrefix = QString("_Trash:");
@ -73,6 +72,7 @@ QString UBSettings::undoCommandTransactionName = "UndoTransaction";
const int UBSettings::sDefaultFontPixelSize = 36;
const char *UBSettings::sDefaultFontFamily = "Arial";
const char *UBSettings::sDefaultFontStyleName = "Regular";
QString UBSettings::currentFileVersion = "4.8.0";
@ -361,9 +361,6 @@ void UBSettings::init()
webShowPageImmediatelyOnMirroredScreen = new UBSetting(this, "Web", "ShowPageImediatelyOnMirroredScreen", defaultShowPageImmediatelyOnMirroredScreen);
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);
@ -412,6 +409,8 @@ void UBSettings::init()
pdfZoomBehavior = new UBSetting(this, "PDF", "ZoomBehavior", "4");
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);
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()
{
return value("Board/FontPixelSize", sDefaultFontPixelSize).toInt();

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

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

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

@ -129,6 +129,7 @@ UBDesktopAnnotationController::UBDesktopAnnotationController(QObject *parent, UB
connect(mDesktopPalette, SIGNAL(minimizeStart(eMinimizedLocation)), this, SLOT(onDesktopPaletteMinimize()));
connect(mDesktopPalette, 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()));
@ -515,6 +516,7 @@ QPixmap UBDesktopAnnotationController::getScreenPixmap()
QScreen * screen = UBApplication::controlScreen();
QRect rect = desktop->screenGeometry(QCursor::pos());
rect.moveTo(0, 0);
return screen->grabWindow(desktop->effectiveWinId(),
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
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);
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
QPoint cursorPos = QCursor::pos();
QPoint palettePos = mDesktopPalette->pos();
QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0));
QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionEraser);
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
QPoint cursorPos = QCursor::pos();
QPoint palettePos = mDesktopPalette->pos();
QPoint palettePos = mDesktopPalette->mapToGlobal(QPoint(0, 0));
QPoint buttonPos = mDesktopPalette->buttonPos(UBApplication::mainWindow->actionMarker);
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.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();
mTransparentDrawingView->setMask(mMask.mask());

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

@ -45,8 +45,9 @@ class UBDocumentContainer : public QObject
void pureSetDocument(UBDocumentProxy *document) {mCurrentDocument = document;}
UBDocumentProxy* selectedDocument(){return mCurrentDocument;}
int pageCount(){return mCurrentDocument->pageCount();}
const QPixmap* pageAt(int index)
QList<std::shared_ptr<QPixmap>>& documentThumbs() { return mDocumentThumbs; }
int pageCount() const{return mCurrentDocument->pageCount();}
std::shared_ptr<QPixmap> pageAt(int index)
{
if (index < mDocumentThumbs.size())
return mDocumentThumbs[index];
@ -60,38 +61,41 @@ class UBDocumentContainer : public QObject
static int sceneIndexFromPage(int sceneIndex);
void duplicatePages(QList<int>& pageIndexes);
bool movePageToIndex(int source, int target);
void duplicatePage(int index);
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:
UBDocumentProxy* mCurrentDocument;
QList<const QPixmap*> mDocumentThumbs;
void addPage(int index);
void addPixmapAt(std::shared_ptr<QPixmap> pix, int index);
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 updateThumbPage(int index);
void moveThumbPage(int source, int target);
private:
UBDocumentProxy* mCurrentDocument;
QList<std::shared_ptr<QPixmap>> mDocumentThumbs;
signals:
void documentSet(UBDocumentProxy* document);
void documentPageInserted(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 addThumbnailRequired(UBDocumentContainer* source, int index);
void removeThumbnailRequired(int index);
void moveThumbnailRequired(int from, int to);
void updateThumbnailsRequired();
void documentThumbnailsUpdated(UBDocumentContainer* source);
};

@ -664,7 +664,7 @@ QMimeData *UBDocumentTreeModel::mimeData (const QModelIndexList &indexes) const
#if defined(Q_OS_OSX)
#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);
#endif
#else
@ -1034,6 +1034,16 @@ QString UBDocumentTreeModel::virtualPathForIndex(const QModelIndex &pIndex) cons
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 result;
@ -1331,6 +1341,7 @@ UBDocumentTreeView::UBDocumentTreeView(QWidget *parent) : QTreeView(parent)
{
setObjectName("UBDocumentTreeView");
setRootIsDecorated(true);
setSelectionBehavior(SelectRows);
}
void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool pExpand, bool pEdit)
@ -1348,9 +1359,9 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool
? QItemSelectionModel::Select
: QItemSelectionModel::Deselect;
setCurrentIndex(pExpand
? indexCurrentDoc
: QModelIndex());
setCurrentIndex(indexCurrentDoc);
selectionModel()->setCurrentIndex(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::SelectCurrent);
selectionModel()->select(proxy->mapFromSource(indexCurrentDoc), QItemSelectionModel::Rows | sel);
@ -1359,7 +1370,7 @@ void UBDocumentTreeView::setSelectedAndExpanded(const QModelIndex &pIndex, bool
indexCurrentDoc = indexCurrentDoc.parent();
}
scrollTo(proxy->mapFromSource(pIndex), QAbstractItemView::PositionAtCenter);
scrollTo(proxy->mapFromSource(pIndex));
if (pEdit)
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)
{
QTreeView::dragEnterEvent(event);
@ -1539,18 +1556,25 @@ void UBDocumentTreeView::dropEvent(QDropEvent *event)
Q_ASSERT(QFileInfo(thumbTmp).exists());
Q_ASSERT(QFileInfo(thumbTo).exists());
const QPixmap *pix = new QPixmap(thumbTmp);
UBDocumentController *ctrl = UBApplication::documentController;
ctrl->addPixmapAt(pix, toIndex);
ctrl->TreeViewSelectionChanged(ctrl->firstSelectedTreeIndex(), QModelIndex());
auto pix = std::make_shared<QPixmap>(thumbTmp);
UBApplication::documentController->insertExistingThumbPage(toIndex, pix);
if (UBApplication::documentController->selectedDocument() == targetDocProxy)
{
UBApplication::documentController->reloadThumbnails();
}
if (UBApplication::boardController->selectedDocument() == targetDocProxy)
{
UBApplication::boardController->insertThumbPage(toIndex);
}
}
QApplication::restoreOverrideCursor();
UBApplication::applicationController->showMessage(tr("%1 pages copied", "", total).arg(total), false);
docModel->setHighLighted(QModelIndex());
}
UBApplication::applicationController->showMessage(tr("%1 pages copied", "", total).arg(total), false);
}
else
{
@ -1569,7 +1593,7 @@ void UBDocumentTreeView::dropEvent(QDropEvent *event)
QTreeView::dropEvent(event);
UBApplication::documentController->updateActions();
UBApplication::documentController->pageSelectionChanged();
}
void UBDocumentTreeView::paintEvent(QPaintEvent *event)
@ -1645,10 +1669,15 @@ UBDocumentTreeItemDelegate::UBDocumentTreeItemDelegate(QObject *parent)
void UBDocumentTreeItemDelegate::commitAndCloseEditor()
{
QLineEdit *lineEditor = qobject_cast<QLineEdit*>(sender());
if (lineEditor) {
emit commitData(lineEditor);
QLineEdit *lineEditor = dynamic_cast<QLineEdit*>(sender());
if (lineEditor)
{
if (lineEditor->hasAcceptableInput())
{
emit commitData(lineEditor);
//emit closeEditor(lineEditor);
}
emit UBApplication::documentController->reorderDocumentsRequested();
}
}
@ -1656,14 +1685,20 @@ void UBDocumentTreeItemDelegate::commitAndCloseEditor()
void UBDocumentTreeItemDelegate::processChangedText(const QString &str) const
{
QLineEdit *editor = qobject_cast<QLineEdit*>(sender());
if (!editor) {
return;
}
if (!validateString(str)) {
editor->setStyleSheet("background-color: #FFB3C8;");
} else {
editor->setStyleSheet("background-color: #FFFFFF;");
if (editor)
{
if (editor->validator())
{
int pos = 0;
if (editor->validator()->validate(const_cast<QString&>(str), pos) != QValidator::Acceptable)
{
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.
if(index.column() == 0){
mExistingFileNames.clear();
const UBDocumentTreeModel *indexModel = qobject_cast<const UBDocumentTreeModel*>(index.model());
if (indexModel) {
mExistingFileNames = indexModel->nodeNameList(index.parent());
mExistingFileNames.removeOne(index.data().toString());
const UBDocumentTreeModel *docModel = 0;
const UBSortFilterProxyModel *proxy = dynamic_cast<const UBSortFilterProxyModel*>(index.model());
if(proxy){
docModel = dynamic_cast<UBDocumentTreeModel*>(proxy->sourceModel());
}else{
docModel = dynamic_cast<const UBDocumentTreeModel*>(index.model());
}
QLineEdit *nameEditor = new QLineEdit(parent);
connect(nameEditor, SIGNAL(editingFinished()), this, SLOT(commitAndCloseEditor()));
connect(nameEditor, SIGNAL(textChanged(QString)), this, SLOT(processChangedText(QString)));
return nameEditor;
QModelIndex sourceIndex = proxy->mapToSource(index);
if (docModel)
{
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.
@ -1706,8 +1766,17 @@ void UBDocumentTreeItemDelegate::setEditorData(QWidget *editor, const QModelInde
void UBDocumentTreeItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const
{
QLineEdit *lineEditor = qobject_cast<QLineEdit*>(editor);
if (validateString(lineEditor->text())) {
model->setData(index, lineEditor->text());
if (lineEditor)
{
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();
connect(this, SIGNAL(exportDone()), mMainWindow, SLOT(onExportDone()));
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()));
}
@ -1760,11 +1833,27 @@ void UBDocumentController::createNewDocument()
? docModel->virtualPathForIndex(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);
if (document)
pManager->mDocumentTreeStructureModel->markDocumentAsNew(document);
pageSelectionChanged();
}
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;
}
if (setAsCurrentDocument) {
if (setAsCurrentDocument)
{
UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel->setCurrentDocument(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
mBoardController->setActiveDocumentScene(proxy, 0, true, onImport);
qWarning() << "an issue occured while trying to select current index in document tree";
}
}
mSelectionType = Document;
setDocument(proxy);
}
@ -1807,6 +1903,8 @@ void UBDocumentController::createNewDocumentGroup()
QModelIndex newIndex = docModel->addCatalog(newFolderName, parentIndex);
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
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);
setDocument(currentDocumentProxy, false);
}
@ -1864,8 +1963,6 @@ void UBDocumentController::TreeViewSelectionChanged(const QModelIndex &current,
}
mCurrentIndexMoved = false;
}
itemSelectionChanged(docModel->isCatalog(current_index) ? Folder : Document);
}
//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(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);
#ifdef Q_WS_MACX
@ -2161,8 +2253,9 @@ void UBDocumentController::sortDocuments(int kind, int order)
mDocumentUI->documentTreeView->hideColumn(2);
}
}
}
mDocumentUI->documentTreeView->setSelectedAndExpanded(firstSelectedTreeIndex(), true);
}
void UBDocumentController::onSortOrderChanged(bool order)
{
@ -2222,10 +2315,9 @@ void UBDocumentController::show()
{
selectDocument(mBoardController->selectedDocument());
//to be sure thumbnails will be up-to-date
reloadThumbnails();
reorderDocuments();
updateActions();
pageSelectionChanged();
if(!mToolsPalette)
setupPalettes();
@ -2299,7 +2391,10 @@ void UBDocumentController::duplicateSelectedItem()
if (selectedSceneIndexes.count() > 0)
{
duplicatePages(selectedSceneIndexes);
emit documentThumbnailsUpdated(this);
if (selectedDocument() == selectedDocumentProxy())
{
reloadThumbnails();
}
selectedDocument()->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(selectedDocument());
int selectedThumbnail = selectedSceneIndexes.last() + selectedSceneIndexes.size();
@ -2307,8 +2402,11 @@ void UBDocumentController::duplicateSelectedItem()
int sceneCount = selectedSceneIndexes.count();
showMessage(tr("duplicated %1 page","duplicated %1 pages",sceneCount).arg(sceneCount), false);
mBoardController->setActiveDocumentScene(selectedThumbnail);
mBoardController->reloadThumbnails();
if (selectedDocument() == mBoardController->selectedDocument())
{
mBoardController->setActiveDocumentScene(selectedThumbnail);
mBoardController->reloadThumbnails();
}
}
}
else
@ -2326,6 +2424,7 @@ void UBDocumentController::duplicateSelectedItem()
}
emit reorderDocumentsRequested();
pageSelectionChanged();
}
void UBDocumentController::deleteSelectedItem()
@ -2346,7 +2445,7 @@ void UBDocumentController::deleteSelectedItem()
deleteSingleItem(indexes.at(0), docModel);
}
updateActions();
pageSelectionChanged();
}
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++)
{
deleteIndexAndAssociatedData(indexes.at(i));
emit documentThumbnailsUpdated(this);
}
emit documentThumbnailsUpdated(this);
break;
}
case EmptyFolder:
@ -2762,9 +2861,16 @@ void UBDocumentController::deleteIndexAndAssociatedData(const QModelIndex &pInde
}
//N/C - NNE - 20140408
if(pIndex.column() == 0){
UBDocumentProxy *proxyData = nullptr;
if(pIndex.column() == 0)
{
if (docModel->isDocument(pIndex)) {
UBDocumentProxy *proxyData = docModel->proxyData(pIndex);
proxyData = docModel->proxyData(pIndex);
if (selectedDocument() == proxyData)
{
setDocument(nullptr);
}
if (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) {
selectDocument(createdDocument, true, true, true);
pageSelectionChanged();
} else {
showMessage(tr("Failed to import file ... "));
@ -2888,6 +3013,10 @@ void UBDocumentController::addFolderOfImages()
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
}
}
}
@ -2901,7 +3030,6 @@ void UBDocumentController::addFileToDocument()
if (document)
{
addFileToDocument(document);
reloadThumbnails();
}
}
@ -2934,6 +3062,11 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document)
{
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
}
else
{
@ -2949,19 +3082,46 @@ bool UBDocumentController::addFileToDocument(UBDocumentProxy* document)
void UBDocumentController::moveSceneToIndex(UBDocumentProxy* proxy, int source, int target)
{
if (UBDocumentContainer::movePageToIndex(source, target))
{
proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(proxy);
UBPersistenceManager::persistenceManager()->moveSceneToIndex(proxy, source, target);
mDocumentUI->thumbnailWidget->hightlightItem(target);
proxy->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(proxy);
mBoardController->setActiveDocumentScene(target);
mBoardController->reloadThumbnails();
UBDocumentContainer::moveThumbPage(source, target);
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()
{
int maxWidth = qMin(UBSettings::maxThumbnailWidth, mDocumentUI->thumbnailWidget->width());
@ -2989,19 +3149,12 @@ void UBDocumentController::pageSelectionChanged()
itemSelectionChanged(Folder);
else
itemSelectionChanged(None);
updateActions();
}
void UBDocumentController::documentSceneChanged(UBDocumentProxy* proxy, int pSceneIndex)
{
Q_UNUSED(pSceneIndex);
if (proxy == selectedDocumentProxy())
{
reloadThumbnails();
}
QModelIndexList sel = mDocumentUI->documentTreeView->selectionModel()->selectedRows(0);
QModelIndex selection;
@ -3082,7 +3235,6 @@ void UBDocumentController::addToDocument()
UBMetadataDcSubsetAdaptor::persist(mBoardController->selectedDocument());
mBoardController->reloadThumbnails();
emit UBApplication::boardController->documentThumbnailsUpdated(this);
UBApplication::applicationController->showBoard();
mBoardController->setActiveDocumentScene(newActiveSceneIndex);
@ -3191,6 +3343,10 @@ void UBDocumentController::addImages()
document->setMetaData(UBSettings::documentUpdatedAt, UBStringUtils::toUtcIsoDateTime(QDateTime::currentDateTime()));
UBMetadataDcSubsetAdaptor::persist(document);
reloadThumbnails();
if (selectedDocument() == UBApplication::boardController->selectedDocument())
UBApplication::boardController->reloadThumbnails();
pageSelectionChanged();
}
}
}
@ -3260,16 +3416,6 @@ void UBDocumentController::focusChanged(QWidget *old, QWidget *current)
else
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()
@ -3335,6 +3481,7 @@ void UBDocumentController::updateActions()
updateExportSubActions(selectedIndex);
bool firstSceneSelected = false;
bool everyPageSelected = false;
if (docSelected) {
mMainWindow->actionDuplicate->setEnabled(!trashSelected);
@ -3372,22 +3519,77 @@ void UBDocumentController::updateActions()
switch (static_cast<int>(deletionForSelection)) {
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 :
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash.png"));
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-document-page.png"));
mMainWindow->actionDelete->setText(tr("Trash"));
break;
case CompleteDelete :
mMainWindow->actionDelete->setIcon(QIcon(":/images/toolbar/deleteDocument.png"));
mMainWindow->actionDelete->setText(tr("Delete"));
if (mSelectionType == Folder)
{
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;
case EmptyFolder :
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash.png"));
mMainWindow->actionDelete->setText(tr("Empty"));
if (firstSelectedTreeIndex() == docModel->myDocumentsIndex())
{
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;
case EmptyTrash :
mMainWindow->actionDelete->setIcon(QIcon(":/images/toolbar/deleteDocument.png"));
mMainWindow->actionDelete->setIcon(QIcon(":/images/trash-empty.png"));
mMainWindow->actionDelete->setText(tr("Empty"));
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);
@ -3445,7 +3647,12 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
}
}
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()));
UBMetadataDcSubsetAdaptor::persist(proxy);
@ -3462,7 +3669,6 @@ void UBDocumentController::deletePages(QList<QGraphicsItem *> itemsToDelete)
mDocumentUI->thumbnailWidget->selectItemAt(minIndex);
mBoardController->setActiveDocumentScene(minIndex);
mBoardController->reloadThumbnails();
}
}
@ -3514,7 +3720,12 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
, UBDocumentTreeModel *docModel) const
{
if (pTypeSelection == Page) {
if (pTypeSelection == Page)
{
if (everySceneSelected())
{
return NoDeletion;
}
if (!firstAndOnlySceneSelected()) {
return DeletePage;
}
@ -3541,11 +3752,24 @@ UBDocumentController::deletionTypeForSelection(LastSelectedElementType pTypeSele
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 firstSceneSelected = false;
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));
if (p)
@ -3568,7 +3792,7 @@ bool UBDocumentController::firstAndOnlySceneSelected() const
return false;
}
void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer* source)
{
UBDocumentTreeModel *docModel = UBPersistenceManager::persistenceManager()->mDocumentTreeStructureModel;
UBDocumentProxy *currentDocumentProxy = selectedDocument();
@ -3581,14 +3805,14 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
, QList<QUrl>()
, QStringList()
, UBApplication::mimeTypeUniboardPage);
QApplication::restoreOverrideCursor();
return;
}
QList<const QPixmap*> thumbs;
if (currentDocumentProxy)
{
UBThumbnailAdaptor::load(currentDocumentProxy, thumbs);
UBThumbnailAdaptor::load(currentDocumentProxy, documentThumbs());
}
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
@ -3604,7 +3828,9 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
{
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
if (currentDocumentProxy == mBoardController->selectedDocument() && mBoardController->activeSceneIndex() == i)
@ -3635,11 +3861,9 @@ void UBDocumentController:: refreshDocumentThumbnailsView(UBDocumentContainer*)
if (selection)
{
disconnect(mDocumentUI->thumbnailWidget->scene(), SIGNAL(selectionChanged()), this, SLOT(pageSelectionChanged()));
UBSceneThumbnailPixmap *currentScene = dynamic_cast<UBSceneThumbnailPixmap*>(selection);
if (currentScene)
mDocumentUI->thumbnailWidget->hightlightItem(currentScene->sceneIndex());
connect(mDocumentUI->thumbnailWidget->scene(), SIGNAL(selectionChanged()), this, SLOT(pageSelectionChanged()));
UBSceneThumbnailPixmap *currentSceneThumbnailPixmap = dynamic_cast<UBSceneThumbnailPixmap*>(selection);
if (currentSceneThumbnailPixmap)
mDocumentUI->thumbnailWidget->hightlightItem(currentSceneThumbnailPixmap->sceneIndex());
}
QApplication::restoreOverrideCursor();
@ -3657,6 +3881,8 @@ void UBDocumentController::createNewDocumentInUntitledFolder()
if (document)
pManager->mDocumentTreeStructureModel->markDocumentAsNew(document);
pageSelectionChanged();
}
void UBDocumentController::collapseAll()
@ -3692,3 +3918,9 @@ void UBDocumentController::expandAll()
mDocumentUI->documentTreeView->setAnimated(true);
}
void UBDocumentController::clearThumbnailsSelection()
{
mDocumentUI->thumbnailWidget->clearSelection();
pageSelectionChanged();
}

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

@ -56,6 +56,7 @@ UBDocumentProxy::UBDocumentProxy(const UBDocumentProxy &rValue) :
mPageCount = rValue.mPageCount;
}
UBDocumentProxy::UBDocumentProxy(const QString& pPersistancePath)
: mPageCount(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()
{
setMetaData(UBSettings::documentGroupName, "");

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

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

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

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

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

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

Loading…
Cancel
Save