Commit 778d5a04 authored by Halla Rempt's avatar Halla Rempt

Merge branch 'master' into rempt/resource_versioning

parents a8be50e7 c30ca18b
......@@ -78,7 +78,7 @@ index 0000000..d93309d
+
+
+add_library(mypaint SHARED ${mypaint_SOURCES} ${mypaint_HEADERS})
+target_link_libraries(mypaint ${JSONC_LIBRARIES})
+target_link_libraries(mypaint PRIVATE ${JSONC_LIBRARIES})
+set_property(TARGET mypaint PROPERTY C_STANDARD 11)
+install(TARGETS mypaint RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
+install(FILES ${mypaint_HEADERS} DESTINATION include)
......
From de0c4dab234f8daebdea308be48f4d9f443e5b3a Mon Sep 17 00:00:00 2001
From: Halla Rempt <halla@valdyas.org>
Date: Wed, 30 Dec 2020 10:54:08 +0100
Subject: [PATCH] Remove chunk size limits
---
src/gui/image/qpnghandler.cpp | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index e7e998ef..751ae4f0 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -542,6 +542,12 @@ bool QPngHandlerPrivate::readPngHeader()
png_set_error_fn(png_ptr, 0, 0, qt_png_warning);
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+ /* Remove the user limits, if any */
+ png_set_chunk_cache_max(png_ptr, 0);
+ png_set_chunk_malloc_max(png_ptr, 0);
+#endif
+
#if defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_MAXIMUM_INFLATE_WINDOW)
// Trade off a little bit of memory for better compatibility with existing images
// Ref. "invalid distance too far back" explanation in libpng-manual.txt
@@ -831,6 +837,12 @@ bool QPNGImageWriter::writeImage(const QImage& image, volatile int compression_i
png_set_error_fn(png_ptr, 0, 0, qt_png_warning);
+#ifdef PNG_SET_USER_LIMITS_SUPPORTED
+ /* Remove the user limits, if any */
+ png_set_chunk_cache_max(png_ptr, 0);
+ png_set_chunk_malloc_max(png_ptr, 0);
+#endif
+
info_ptr = png_create_info_struct(png_ptr);
if (!info_ptr) {
png_destroy_write_struct(&png_ptr, 0);
--
2.25.1
From d3b15422158bcc39e8ad4cac44c4efbe413652e9 Mon Sep 17 00:00:00 2001
From: Sharaf Zaman <sharafzaz121@gmail.com>
Date: Wed, 6 Jan 2021 12:12:09 +0000
Subject: [PATCH] Android: prevent out-of-order events
QPlatformWindow::setVisible() flushes internal event queue which then
sends events to widgets out-of-order fashion, which can make some
widgets hidden thus freezing the entire app.
---
src/plugins/platforms/android/qandroidplatformwindow.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/plugins/platforms/android/qandroidplatformwindow.cpp b/src/plugins/platforms/android/qandroidplatformwindow.cpp
index c095f51fa3..f9972ee4e1 100644
--- a/src/plugins/platforms/android/qandroidplatformwindow.cpp
+++ b/src/plugins/platforms/android/qandroidplatformwindow.cpp
@@ -94,7 +94,7 @@ void QAndroidPlatformWindow::setVisible(bool visible)
QRect availableGeometry = screen()->availableGeometry();
if (geometry().width() > 0 && geometry().height() > 0 && availableGeometry.width() > 0 && availableGeometry.height() > 0)
- QPlatformWindow::setVisible(visible);
+ QWindowSystemInterface::handleExposeEvent(window(), QRect(QPoint(), geometry().size()));
}
void QAndroidPlatformWindow::setWindowState(Qt::WindowStates state)
--
2.29.2
......@@ -81,6 +81,7 @@ if (WIN32)
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0100-Fix-artifacts-when-rendering-multisubpath-dashed-QPa.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0101-Don-t-eat-ShortcutOverride-events-when-there-is-a-pa.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0110-Pass-proper-dirty-rect-in-paint-event-to-QOpenGLWidg.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Remove-chunk-size-limits.patch
# COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0031-Compute-logical-DPI-on-a-per-screen-basis.patch
# COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0032-Update-Dpi-and-scale-factor-computation.patch
# COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0033-Move-QT_FONT_DPI-to-cross-platform-code.patch
......@@ -101,6 +102,7 @@ if (WIN32)
CONFIGURE_COMMAND <SOURCE_DIR>/configure.bat ${_QT_conf}
BUILD_COMMAND mingw32-make -j${SUBMAKE_JOBS}
INSTALL_COMMAND mingw32-make -j${SUBMAKE_JOBS} install
UPDATE_COMMAND ""
# Use a short name to reduce the chance of exceeding path length limit
......@@ -143,9 +145,11 @@ elseif (ANDROID)
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0052-Android-Move-events-handling-to-QtLayout.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0053-Android-Use-processOpenModeFlags-to-get-right-OpenMo.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0054-Android-use-EXTRA_INITIAL_URI-as-the-defaultDir.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0055-Android-prevent-out-of-order-events.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0105-Android-Don-t-hide-Menubar-even-if-MenuKey-is-presen.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/106-Android-don-t-use-getExternalStorageDirectory-and-ge.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Remove-chunk-size-limits.patch
CONFIGURE_COMMAND <SOURCE_DIR>/configure -prefix ${EXTPREFIX_qt} -opensource -confirm-license -verbose -nomake examples -nomake tests -nomake tools -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtgraphicaleffects -skip qtlocation -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtnetworkauth -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtpurchasing -skip qtscxml -skip qtserialbus -skip qtspeech -skip qtvirtualkeyboard -android-sdk ${ANDROID_SDK_ROOT} -android-ndk ${CMAKE_ANDROID_NDK} -android-arch ${ANDROID_ABI} -xplatform android-clang -android-ndk-platform android-23 -make libs -qt-sqlite
......@@ -281,6 +285,7 @@ else( APPLE )
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0100-Fix-artifacts-when-rendering-multisubpath-dashed-QPa.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0101-Don-t-eat-ShortcutOverride-events-when-there-is-a-pa.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0110-Pass-proper-dirty-rect-in-paint-event-to-QOpenGLWidg.patch
COMMAND ${PATCH_COMMAND} -p1 -d qtbase -i ${CMAKE_CURRENT_SOURCE_DIR}/0001-Remove-chunk-size-limits.patch
#COMMAND ${PATCH_COMMAND} -p1 -b -d <SOURCE_DIR>/qtbase/mkspecs/features/mac -i ${CMAKE_CURRENT_SOURCE_DIR}/mac-default.patch
)
......
See: ui/kis_aboutboxdata.h
Current maintainer: Boudewijn Rempt <boud@valdyas.org>
Current maintainer: Halla Rempt <halla@valdyas.org>
Boudewijn Rempt
Halla Rempt
Aaron J. Seigo
Adam Celarek
Adam Pigg
......
......@@ -191,7 +191,6 @@ previous_favorite_preset=.
previous_frame=none
previous_keyframe=none
previous_preset=/
rasterize_layer=none
Recording_Start_Recording_Macro=none
Recording_Stop_Recording_Macro=none
reload_preset_action=none
......
......@@ -302,7 +302,6 @@ previous_favorite_preset=.
previous_frame=none
previous_keyframe=none
previous_preset=/
rasterize_layer=none
Recording_Start_Recording_Macro=none
Recording_Stop_Recording_Macro=none
ReferencesTool=none
......
......@@ -302,7 +302,6 @@ previous_favorite_preset=.
previous_frame=none
previous_keyframe=none
previous_preset=/
rasterize_layer=none
Recording_Start_Recording_Macro=none
Recording_Stop_Recording_Macro=none
ReferencesTool=none
......
......@@ -319,7 +319,6 @@ previous_frame=none
previous_keyframe=none
previous_preset=/
quick_ungroup=Ctrl+Alt+G
rasterize_layer=none
Recording_Start_Recording_Macro=none
Recording_Stop_Recording_Macro=none
ReferencesTool=none
......
......@@ -27,7 +27,7 @@ Name[lt]=Dizaino šablonai
Name[nb]=Designmaler
Name[nl]=Design-sjablonen
Name[nn]=Designmalar
Name[pl]=Szablony projekcyjne
Name[pl]=Szablony projektowe
Name[pt]=Modelos de Desenho
Name[pt_BR]=Modelos de design
Name[ru]=Шаблоны для дизайна
......
......@@ -7,5 +7,6 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Build/Release/kritaquicklook.qlgen
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Build/Release/kritaspotlight.mdimporter DESTINATION ${PLUGIN_INSTALL_DIR})
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Build/Release/kritaquicklookng.appex DESTINATION ${PLUGIN_INSTALL_DIR})
# TODO fix and reenable - https://bugs.kde.org/show_bug.cgi?id=430553
# install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/Build/Release/kritaquicklookng.appex DESTINATION ${PLUGIN_INSTALL_DIR})
endif(APPLE)
......@@ -1332,10 +1332,11 @@
<statusTip></statusTip>
</Action>
</Actions>
<Actions category="tool-shortcuts">
<text>Tool Shortcuts</text>
<Action name="KritaShape/KisToolDyna">
<icon></icon>
<icon>krita_tool_dyna</icon>
<text>Dynamic Brush Tool</text>
<whatsThis></whatsThis>
<toolTip>Dynamic Brush Tool</toolTip>
......@@ -1345,7 +1346,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolRectangle">
<icon></icon>
<icon>krita_tool_rectangle</icon>
<text>Rectangle Tool</text>
<whatsThis></whatsThis>
<toolTip>Rectangle Tool</toolTip>
......@@ -1355,7 +1356,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolMultiBrush">
<icon></icon>
<icon>krita_tool_multihand</icon>
<text>Multibrush Tool</text>
<whatsThis></whatsThis>
<toolTip>Multibrush Tool</toolTip>
......@@ -1365,7 +1366,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolLazyBrush">
<icon></icon>
<icon>krita_tool_lazybrush</icon>
<text>Colorize Mask Tool</text>
<whatsThis></whatsThis>
<toolTip>Colorize Mask Tool</toolTip>
......@@ -1374,7 +1375,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolSmartPatch">
<icon></icon>
<icon>krita_tool_smart_patch</icon>
<text>Smart Patch Tool</text>
<whatsThis></whatsThis>
<toolTip>Smart Patch Tool</toolTip>
......@@ -1383,7 +1384,7 @@
<statusTip></statusTip>
</Action>
<Action name="PanTool">
<icon></icon>
<icon>tool_pan</icon>
<text>Pan Tool</text>
<whatsThis></whatsThis>
<toolTip>Pan Tool</toolTip>
......@@ -1392,7 +1393,7 @@
<statusTip></statusTip>
</Action>
<Action name="InteractionTool">
<icon></icon>
<icon>select</icon>
<text>Select Shapes Tool</text>
<whatsThis></whatsThis>
<toolTip>Select Shapes Tool</toolTip>
......@@ -1402,27 +1403,27 @@
<statusTip></statusTip>
</Action>
<Action name="KritaSelected/KisToolColorPicker">
<icon></icon>
<icon>krita_tool_color_picker</icon>
<text>Color Picker</text>
<whatsThis></whatsThis>
<toolTip>Select a color from the image or current layer</toolTip>
<iconText>Select a color from the image or current layer</iconText>
<iconText>Color Picker</iconText>
<shortcut>P</shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KritaFill/KisToolFill">
<icon></icon>
<icon>krita_tool_color_fill</icon>
<text>Fill Tool</text>
<whatsThis></whatsThis>
<toolTip>Fill a contiguous area of color with a color, or fill a selection.</toolTip>
<iconText>Fill a contiguous area of color with a color, or fill a selection.</iconText>
<iconText>Fill</iconText>
<shortcut>F</shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolLine">
<icon></icon>
<icon>krita_tool_line</icon>
<text>Line Tool</text>
<whatsThis></whatsThis>
<toolTip>Line Tool</toolTip>
......@@ -1432,7 +1433,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolEllipse">
<icon></icon>
<icon>krita_tool_ellipse</icon>
<text>Ellipse Tool</text>
<whatsThis></whatsThis>
<toolTip>Ellipse Tool</toolTip>
......@@ -1442,7 +1443,7 @@
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolBrush">
<icon></icon>
<icon>krita_tool_freehand</icon>
<text>Freehand Brush Tool</text>
<whatsThis></whatsThis>
<toolTip>Freehand Brush Tool</toolTip>
......@@ -1451,78 +1452,38 @@
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="CreateShapesTool">
<icon></icon>
<text>Create object</text>
<whatsThis></whatsThis>
<toolTip>Create object</toolTip>
<iconText>Create object</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KarbonPatternTool">
<icon></icon>
<text>Pattern editing</text>
<whatsThis></whatsThis>
<toolTip>Pattern editing</toolTip>
<iconText>Pattern editing</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="ReviewTool">
<icon></icon>
<text>Review</text>
<whatsThis></whatsThis>
<toolTip>Review</toolTip>
<iconText>Review</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KritaFill/KisToolGradient">
<icon></icon>
<text>Draw a gradient.</text>
<icon>krita_tool_gradient</icon>
<text>Gradient Tool</text>
<whatsThis></whatsThis>
<toolTip>Draw a gradient.</toolTip>
<iconText>Draw a gradient.</iconText>
<iconText>Gradient Tool</iconText>
<shortcut>G</shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KritaShape/KisToolMeasure">
<icon></icon>
<icon>krita_tool_measure</icon>
<text>Measurement Tool</text>
<whatsThis></whatsThis>
<toolTip>Measure the distance between two points</toolTip>
<iconText>Measure the distance between two points</iconText>
<iconText>Measurement Tool</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KritaTransform/KisToolMove">
<icon></icon>
<icon>krita_tool_move</icon>
<text>Move Tool</text>
<whatsThis></whatsThis>
<toolTip>Move a layer</toolTip>
<iconText>Move a layer</iconText>
<iconText>Move Tool</iconText>
<shortcut>T</shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="VectorTool">
<icon></icon>
<text>Vector Image Tool</text>
<whatsThis></whatsThis>
<toolTip>Vector Image (EMF/WMF/SVM/SVG) tool</toolTip>
<iconText>Vector Image (EMF/WMF/SVM/SVG) tool</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KarbonCalligraphyTool">
<icon></icon>
<icon>calligraphy</icon>
<text>Calligraphy</text>
<whatsThis></whatsThis>
<toolTip>Calligraphy</toolTip>
......@@ -1532,7 +1493,7 @@
<statusTip></statusTip>
</Action>
<Action name="PathTool">
<icon></icon>
<icon>krita_draw_path</icon>
<text>Edit Shapes Tool</text>
<whatsThis></whatsThis>
<toolTip>Edit Shapes Tool</toolTip>
......@@ -1542,7 +1503,7 @@
<statusTip></statusTip>
</Action>
<Action name="ZoomTool">
<icon></icon>
<icon>tool_zoom</icon>
<text>Zoom Tool</text>
<whatsThis></whatsThis>
<toolTip>Zoom Tool</toolTip>
......@@ -1551,18 +1512,8 @@
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="KarbonGradientTool">
<icon></icon>
<text>Gradient Editing Tool</text>
<whatsThis></whatsThis>
<toolTip>Gradient editing</toolTip>
<iconText>Gradient editing</iconText>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="ToolReferenceImages">
<icon></icon>
<icon>krita_tool_reference_images</icon>
<text>Reference Images Tool</text>
<whatsThis></whatsThis>
<toolTip>Reference Images Tool</toolTip>
......@@ -3524,18 +3475,6 @@ Enable to preserve playback timing.</text>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="rasterize_layer">
<icon></icon>
<text>Ras&amp;terize Layer</text>
<whatsThis></whatsThis>
<toolTip>Rasterize Layer</toolTip>
<iconText>Rasterize Layer</iconText>
<activationFlags>10000000</activationFlags>
<activationConditions>1</activationConditions>
<shortcut></shortcut>
<isCheckable>false</isCheckable>
<statusTip></statusTip>
</Action>
<Action name="flatten_image">
<icon></icon>
<text>Flatten ima&amp;ge</text>
......
......@@ -274,7 +274,6 @@ xsi:schemaLocation="http://www.kde.org/standards/kxmlgui/1.0 http://www.kde.org
<Separator/>
<Action name="merge_layer"/>
<Action name="flatten_layer"/>
<Action name="rasterize_layer"/>
<Action name="merge_all_shape_layers"/>
<Action name="flatten_image"/>
<Action name="merge_selected_layers"/>
......
......@@ -125,7 +125,7 @@
<p xml:lang="ko">Krita는 디지털 예술 스튜디오입니다.</p>
<p xml:lang="nl">Krita is de digitale kunststudio vol mogelijkheden.</p>
<p xml:lang="nn">Krita er ei funksjonsrik digital teiknestove.</p>
<p xml:lang="pl">Krita jest pełnowymiarowym, cyfrowym studiem artystycznym</p>
<p xml:lang="pl">Krita jest pełnowartościowym, cyfrowym studiem artystycznym.</p>
<p xml:lang="pt">O Krita é o estúdio de arte digital completo.</p>
<p xml:lang="pt-BR">O Krita é o estúdio de arte digital completo.</p>
<p xml:lang="ru">Krita — полнофункциональный инструмент для создания цифровой графики.</p>
......@@ -257,7 +257,8 @@
<caption xml:lang="it">Krita è uno studio d'arte digitale completo</caption>
<caption xml:lang="ko">Krita는 다기능 디지털 예술 스튜디오입니다</caption>
<caption xml:lang="nl">Krita is een digitale schilderstudio vol mogelijkheden</caption>
<caption xml:lang="nn">Krita er ei funksjonsrik digital teiknestove.</caption>
<caption xml:lang="nn">Krita er ei funksjonsrik digital teiknestove</caption>
<caption xml:lang="pl">Krita jest pełnowartościowym, cyfrowym studiem artystycznym</caption>
<caption xml:lang="pt">O Krita é um estúdio de arte digital completo</caption>
<caption xml:lang="pt-BR">O Krita é um estúdio de pintura digital completo</caption>
<caption xml:lang="sk">Krita je plnohodnotné digitálne maliarske štúdio</caption>
......@@ -282,7 +283,8 @@
<caption xml:lang="it">La finestra di avvio ora fornisce anche le ultime novità su Krita</caption>
<caption xml:lang="ko">시작 창에서 Krita의 최신 소식을 볼 수 있습니다</caption>
<caption xml:lang="nl">Het opstartvenster geeft u nu ook you het laatste nieuws over Krita</caption>
<caption xml:lang="nn">Oppstartsvindauget viser no siste nytt om Krita.</caption>
<caption xml:lang="nn">Oppstartsvindauget viser no siste nytt om Krita</caption>
<caption xml:lang="pl">Okno początkowe pokazuje teraz najnowsze wieści o Kricie</caption>
<caption xml:lang="pt">A janela inicial agora também lhe dá as últimas notícias sobre o Krita</caption>
<caption xml:lang="pt-BR">A janela de inicialização agora também mostra as últimas notícias sobre o Krita</caption>
<caption xml:lang="sk">V úvodnom okne sa tiež nachádzajú najnovšie správy o Krita</caption>
......@@ -307,7 +309,8 @@
<caption xml:lang="it">Ci sono oltre dieci motori di pennelli incredibilmente potenti</caption>
<caption xml:lang="ko">10가지 종류의 강력한 브러시 엔진을 사용할 수 있습니다</caption>
<caption xml:lang="nl">Er zijn meer dan tien immens krachtige penseelengines</caption>
<caption xml:lang="nn">Det finst meir enn ti enormt kraftige penselmotorar.</caption>
<caption xml:lang="nn">Det finst meir enn ti enormt kraftige penselmotorar</caption>
<caption xml:lang="pl">Istnieje ponad dziesięć zaawansowanych silników pędzli</caption>
<caption xml:lang="pt">Existem mais de dez motores de pincéis extremamente poderosos</caption>
<caption xml:lang="pt-BR">Mais de dez engines de pincéis incrivelmente poderosos disponíveis</caption>
<caption xml:lang="sk">Existuje viac ako desať nesmierne výkonných štetcových enginov</caption>
......@@ -331,7 +334,8 @@