On default build : Revert webview subscription and keep old sheets (avoid deployment issues) but keep a way to reactivate it.

This commit is contained in:
Julien Wadel 2022-03-09 17:11:12 +01:00
parent 839a1bc9b0
commit ebd033a3e6
40 changed files with 1418 additions and 457 deletions

View file

@ -41,8 +41,8 @@ include:
#- '.gitlab-ci-files/job-linux-desktop-debian8.yml' #Removed as there is 5.10 and not at least 5.12
- '.gitlab-ci-files/job-linux-desktop-debian9.yml'
## - '.gitlab-ci-files/job-linux-desktop-debian10.yml'
- '.gitlab-ci-files/job-linux-desktop-ubuntu-rolling.yml'
- '.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml'
# - '.gitlab-ci-files/job-linux-desktop-ubuntu-rolling.yml' #Removed as there is no QtWebengine in image
# - '.gitlab-ci-files/job-linux-desktop-archlinux-latest.yml' #Removed as there is no QtWebengine in image
# - '.gitlab-ci-files/job-linux-desktop-centos7.yml' #QtWebengine cannot be build (support for C++14 is not found in configuration)
- '.gitlab-ci-files/job-windows-desktop.yml'
- '.gitlab-ci-files/job-macosx-desktop.yml'

View file

@ -38,14 +38,7 @@ endforeach()
if(ENABLE_BUILD_VERBOSE)
message("User Args : ${USER_ARGS}")
endif()
if(WIN32)
if(NOT ${CMAKE_GENERATOR} MATCHES "Ninja")
if(NOT CMAKE_GENERATOR_PLATFORM)
set(CMAKE_GENERATOR_PLATFORM "Win32")
message(STATUS "Setting Platform to ${CMAKE_GENERATOR_PLATFORM}")
endif()
endif()
elseif( APPLE )
if( APPLE )
if( NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version")
endif()
@ -117,6 +110,8 @@ option(ENABLE_CONSOLE_UI "Turn on or off compilation of console interface." NO)
option(ENABLE_APP_LICENSE "Enable the license in packages." YES)
#Webview is not fully supported because of deployments. Used for subscription.
option(ENABLE_APP_WEBVIEW "Enable webviews." NO)
@ -144,6 +139,7 @@ list(APPEND APP_OPTIONS "-DENABLE_CONSOLE_UI=${ENABLE_CONSOLE_UI}")
list(APPEND APP_OPTIONS "-DENABLE_VIDEO=${ENABLE_VIDEO}")
list(APPEND APP_OPTIONS "-DENABLE_APP_LICENSE=${ENABLE_APP_LICENSE}")
list(APPEND APP_OPTIONS "-DENABLE_LDAP=YES")
list(APPEND APP_OPTIONS "-DENABLE_APP_WEBVIEW=${ENABLE_APP_WEBVIEW}")

View file

@ -96,13 +96,18 @@ if( WIN32)
endif()
set(CMAKE_INCLUDE_CURRENT_DIR ON)#useful for config.h
set(QT5_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network Test WebView)
set(QT5_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network Test)
if(ENABLE_APP_WEBVIEW)
list(APPEND QT5_PACKAGES WebView WebEngine WebEngineCore)
add_definitions(-DENABLE_WEBVIEW)
endif()
if (UNIX AND NOT APPLE)
list(APPEND QT5_PACKAGES DBus)
endif ()
set(QT5_PACKAGES_OPTIONAL TextToSpeech)
set(CMAKE_AUTOMOC ON)
find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED)
find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET)
@ -378,6 +383,9 @@ else ()
endif ()
set(QRC_RESOURCES resources.qrc)
if(ENABLE_APP_WEBVIEW)
set(QRC_WEBVIEW_RESOURCES webview_resources.qrc)
endif()
#qt5_add_big_resources(QRC_BIG_RESOURCES resources.qrc) #Use this macro if resources size is too high
@ -409,6 +417,10 @@ PREPEND(PLUGIN_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/")
set(QML_SOURCES)
file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT)
if(ENABLE_APP_WEBVIEW)
file(STRINGS ${QRC_WEBVIEW_RESOURCES} QRC_WEBVIEW_RESOURCES_CONTENT)
list(APPEND QRC_RESOURCES_CONTENT ${QRC_WEBVIEW_RESOURCES_CONTENT})
endif()
foreach (line ${QRC_RESOURCES_CONTENT})
set(result)
string(REGEX REPLACE
@ -490,7 +502,7 @@ if(WIN32)
endif()
add_library(${APP_PLUGIN} SHARED ${PLUGIN_SOURCES} ${PLUGIN_HEADERS})
add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES} ${PLUGIN_HEADERS})#Need to add Headers to resolve moc Qt symbols
add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES} ${QRC_WEBVIEW_RESOURCES} ${PLUGIN_HEADERS})#Need to add Headers to resolve moc Qt symbols
if (WIN32)
add_executable(${TARGET_NAME} WIN32 $<TARGET_OBJECTS:${APP_LIBRARY}> ${MAIN_FILE} ${QRC_BIG_RESOURCES} ${RC_FILE})
@ -554,7 +566,10 @@ foreach (package ${QT5_PACKAGES})
# `qt5_create_translation` is provided from `LinguistTools` package.
# But the `Qt5::LinguistTools` lib does not exist. Remove it.
if (NOT (${package} STREQUAL LinguistTools))
list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES})
# list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES})
target_link_libraries(${APP_LIBRARY} Qt5::${package})
target_link_libraries(${APP_PLUGIN} Qt5::${package})
target_link_libraries(${TARGET_NAME} Qt5::${package})
endif ()
endforeach ()
@ -588,8 +603,8 @@ target_link_libraries(${TARGET_NAME} ${LIBRARIES})
target_link_libraries(${TARGET_NAME} ${APP_PLUGIN})
if(WIN32)
find_library(LDAP_LIBRARIES NAMES ldap libldap HINTS "${LINPHONE_OUTPUT_DIR}/lib")
find_library(LBER_LIBRARIES NAMES lber liblber HINTS "${LINPHONE_OUTPUT_DIR}/lib")
find_library(LDAP_LIBRARIES NAMES ldap libldap HINTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
find_library(LBER_LIBRARIES NAMES lber liblber HINTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}")
target_link_libraries(${TARGET_NAME} wsock32 ws2_32 ${LDAP_LIBRARIES} ${LBER_LIBRARIES})
endif()
@ -604,9 +619,9 @@ set(TOOLS_DIR "${CMAKE_BINARY_DIR}/programs")
set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILDER_SIGNING_IDENTITY})
add_custom_command(TARGET ${TARGET_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/include/" "${CMAKE_INSTALL_PREFIX}/include/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/lib/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/lib/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/lib/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
add_custom_command(TARGET ${APP_PLUGIN} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_LINKER_FILE:${APP_PLUGIN}> "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/")
#add_custom_command(TARGET ${TARGET_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/include/LinphoneApp/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/")
#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/include/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/" COPYONLY)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include" DESTINATION ".")

View file

@ -1,78 +1,68 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="28"
height="28"
viewBox="0 0 28 28"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg13"
id="svg9"
sodipodi:docname="chat_delivered.svg"
inkscape:version="0.92.1 r">
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs13" />
<sodipodi:namedview
id="namedview11"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
width="80px"
inkscape:zoom="33.32"
inkscape:cx="12.5"
inkscape:cy="12.484994"
inkscape:window-width="1920"
inkscape:window-height="1043"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg9" />
<title
id="title2">imdn_read</title>
<g
id="chat_delivered"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
transform="scale(3.2)">
<circle
fill="#a7a7a7"
cx="12.5"
cy="12.5"
r="12.5"
id="circle4" />
<path
d="m 15.271856,7.7634143 c 0.682948,-0.9544274 2.010302,-1.1745055 2.96473,-0.4915581 0.954427,0.6829475 1.174505,2.010302 0.491558,2.9647298 l -5.724458,8 c -0.794734,1.110651 -2.415777,1.194038 -3.3202804,0.170796 L 5.407863,13.570566 C 4.6305873,12.691253 4.7133047,11.348323 5.5926177,10.571047 6.4719307,9.7937712 7.8148612,9.8764887 8.592137,10.755802 l 2.508159,2.837419 z"
fill="#ffffff"
fill-rule="nonzero"
id="path6" />
</g>
<metadata
id="metadata17">
id="metadata830">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>chat_delivered</dc:title>
<dc:title>imdn_read</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1149"
id="namedview15"
showgrid="false"
inkscape:zoom="9.8333333"
inkscape:cx="12"
inkscape:cy="12"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg13" />
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
<title
id="title2">chat_delivered</title>
<desc
id="desc4">Created with Sketch.</desc>
<defs
id="defs6" />
<g
id="Symbols"
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1"
transform="translate(2,2)">
<g
id="chat_delivered">
<g
id="Group-2">
<circle
id="Oval"
cx="12"
cy="12"
r="12"
style="fill:#a7a7a7" />
<path
d="M 6.939201,10.995575 C 6.4836409,10.476868 5.6938419,10.425678 5.1751355,10.881238 4.6564291,11.336798 4.6052389,12.126597 5.060799,12.645304 l 5.130651,5.841823 c 0.532252,0.606028 1.490618,0.556801 1.957975,-0.100572 L 19.018774,8.7242932 C 19.41879,8.1616401 19.286946,7.3812426 18.724293,6.9812265 18.16164,6.5812105 17.381243,6.7130538 16.981226,7.2757068 l -5.953917,8.3746382 z"
id="chat_message_delivered"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-rule:nonzero" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -1,78 +1,67 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="28"
height="28"
viewBox="0 0 28 28"
width="80"
height="80"
viewBox="0 0 80 80"
version="1.1"
id="svg3746"
id="svg9"
sodipodi:docname="chat_read.svg"
inkscape:version="0.92.1 r">
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs13" />
<sodipodi:namedview
id="namedview11"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="8.33"
inkscape:cx="14.82593"
inkscape:cy="24.84994"
inkscape:window-width="1920"
inkscape:window-height="1043"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg9" />
<title
id="title2">imdn_read</title>
<g
id="chat_read"
stroke="none"
stroke-width="1"
fill="none"
fill-rule="evenodd"
transform="scale(3.2)">
<circle
fill="#18a7af"
cx="12.5"
cy="12.5"
r="12.5"
id="circle4" />
<path
d="m 15.271856,7.7634143 c 0.682948,-0.9544274 2.010302,-1.1745055 2.96473,-0.4915581 0.954427,0.6829475 1.174505,2.010302 0.491558,2.9647298 l -5.724458,8 c -0.794734,1.110651 -2.415777,1.194038 -3.3202804,0.170796 L 5.407863,13.570566 C 4.6305873,12.691253 4.7133047,11.348323 5.5926177,10.571047 6.4719307,9.7937712 7.8148612,9.8764887 8.592137,10.755802 l 2.508159,2.837419 z"
fill="#ffffff"
fill-rule="nonzero"
id="path6" />
</g>
<metadata
id="metadata3750">
id="metadata830">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>chat_read</dc:title>
<dc:title>imdn_read</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1149"
id="namedview3748"
showgrid="false"
inkscape:zoom="19.125"
inkscape:cx="7.3157147"
inkscape:cy="4.6227334"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg3746" />
<!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
<title
id="title3735">chat_read</title>
<desc
id="desc3737">Created with Sketch.</desc>
<defs
id="defs3739" />
<g
id="Symbols"
style="fill:none;fill-rule:evenodd;stroke:none;stroke-width:1">
<g
id="chat_read"
transform="translate(2,2)">
<g
id="Group-2">
<circle
id="Oval"
cx="12"
cy="12"
r="12"
style="fill:#18a7af" />
<path
d="M 6.939201,10.995575 C 6.4836409,10.476868 5.6938419,10.425678 5.1751355,10.881238 4.6564291,11.336798 4.6052389,12.126597 5.060799,12.645304 l 5.130651,5.841823 c 0.532252,0.606028 1.490618,0.556801 1.957975,-0.100572 L 19.018774,8.7242932 C 19.41879,8.1616401 19.286946,7.3812426 18.724293,6.9812265 18.16164,6.5812105 17.381243,6.7130538 16.981226,7.2757068 l -5.953917,8.3746382 z"
id="chat_message_delivered"
inkscape:connector-curvature="0"
style="fill:#ffffff;fill-rule:nonzero" />
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2 KiB

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ Server url ikke konfigureret.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Hvordan vil du oprette din konto?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>OPRET EN %1 KONTO</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>MED ET TELEFONNUMMER</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>MED EN E-MAILADRESSE</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>BRUG</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Umuligt at oprette kontoen.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ Server URL ist nicht konfiguriert.</translation>
<translation>Nachrichten durchsuchen</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Wie würden Sie gerne Ihr Konto erstellen?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>ERSTELLE EIN %1 KONTO</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>MIT EINER TELEFONNUMMER</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>MIT EINER E-MAIL-ADRESSE</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation>Mipmap-Filterung führt bei Verkleinerung im Vergleich zu &quot;Smooth&quot; zu besserer Bildqualität, aber es ist langsamer (sowohl beim Initialisieren als auch bei der Anzeige).</translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>VERWENDEN</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Dieses Konto kann nicht hinzugefügt werden.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -902,6 +902,25 @@ Server URL not configured.</translation>
<translation>Search messages</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>How would you like to create your account?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>CREATE A %1 ACCOUNT</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>WITH A PHONE NUMBER</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>WITH AN EMAIL ADDRESS</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ URL del servidor no configurada.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>¿Cómo prefieres crear tu cuenta?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>CREAR UNA CUENTA %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>CON UN NÚMERO DE TELÉFONO</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>CON UN CORREO ELECTRÓNICO</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>USE</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Imposible añadir esta cuenta.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -902,6 +902,25 @@ URL du serveur non configurée.</translation>
<translation>Rechercher dans les messages</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Comment souhaitez-vous créer votre compte ?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>CRÉER UN COMPTE %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>AVEC UN NUMÉRO DE TÉLÉPHONE</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>AVEC UNE ADRESSE EMAIL</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2611,6 +2630,16 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation>Lorsque les images sont rétrécies, un filtre Mipmap a une meilleure qualité visuelle par rapport à un lissage standard mais nécessite plus de calculs lors de l&apos;initialisation des images et pendant le rendu.</translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2810,6 +2839,11 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation>Sans éphémères</translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>Rendben</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -892,6 +897,25 @@ A kiszolgáló URL-je nincs konfigurálva.</translation>
<translation>Üzenetek keresése</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Hogyan szeretné létrehozni a fiókját?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>%1 fiók létrehozása</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>Telefonszámmal</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>E-mail címmel</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2595,6 +2619,16 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation>A mipmap-szűrés jobb vizuális minőséget biztosít kicsinyítéskor, mint a sima, de teljesítményköltséggel járhat (mind a kép inicializálásakor, mind a renderelés során).</translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2794,6 +2828,11 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation>Elmúlók nélkül</translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2845,6 +2884,7 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>Használat</translation>
</message>
<message>
@ -2875,6 +2915,26 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Nem sikerült hozzáadni ezt a fiókot.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ URL del server non configurato.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Come ti piacerebbe creare il tuo account?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>CREA UN ACCOUNT %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>CON UN NUMERO DI TELEFONO</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>CON UN INDIRIZZO E-MAIL</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>USA</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Impossibile aggiungere questo account.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -892,6 +897,25 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation></translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>%1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation></translation>
</message>
<message>
<source>withEmailAddress</source>
<translation></translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2595,6 +2619,16 @@
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2794,6 +2828,11 @@
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2845,6 +2884,7 @@
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>使</translation>
</message>
<message>
@ -2875,6 +2915,26 @@
<source>addOtherSipAccountError</source>
<translation></translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>GERAI</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -902,6 +907,25 @@ Nesukonfigūruotas serverio url.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Kaip norėtumėte susikurti savo paskyrą?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>SUSIKURTI %1 PASKYRĄ</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>NAUDOJANT TELEFONO NUMERĮ</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>NAUDOJANT EL. PAŠTO ADRESĄ</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2617,6 +2641,16 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2816,6 +2850,11 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2867,6 +2906,7 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>NAUDOTI</translation>
</message>
<message>
@ -2897,6 +2937,26 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Nepavyko pridėti šios paskyros.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ URL do servidor não configurado.</translation>
<translation>Pesquisar mensagens</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Como você gostaria de criar sua conta?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>CRIAR UMA CONTA %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>COM UM NÚMERO DE TELEFONE</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>COM UM ENDEREÇO DE E-MAIL</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>USO</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Não foi possível adicionar esta conta.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -902,6 +907,25 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Как бы вы хотели создать аккаунт?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>СОЗДАТЬ АККАУНТ %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>С ПОМОЩЬЮ НОМЕРА ТЕЛЕФОНА</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>С ПОМОЩЬЮ EMAIL</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2617,6 +2641,16 @@
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2816,6 +2850,11 @@
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2867,6 +2906,7 @@
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>ИСПОЛЬЗОВАТЬ</translation>
</message>
<message>
@ -2897,6 +2937,26 @@
<source>addOtherSipAccountError</source>
<translation>Не удалось добавить этот аккаунт.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>OK</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -897,6 +902,25 @@ Serverwebbadressen är inte konfigurerad.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Hur vill du skapa ditt konto?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>SKAPA ETT %1-KONTO</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>MED ETT TELEFONNUMMER</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>MED E-POSTADRESS</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2606,6 +2630,16 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2805,6 +2839,11 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2856,6 +2895,7 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>ANVÄND</translation>
</message>
<message>
@ -2886,6 +2926,26 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Det gick inte att lägga till det här kontot.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>TAMAM</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -470,7 +475,6 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
<extracomment>&apos;%1 is typing...&apos; indicate that someone is composing in chat</extracomment>
<translation>
<numerusform>%1 yazıyor</numerusform>
<numerusform>%1 yazıyor</numerusform>
</translation>
</message>
<message>
@ -572,28 +576,24 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
<source>nMinute</source>
<translation>
<numerusform>%1 dakika</numerusform>
<numerusform>%1 dakika</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nHour</source>
<translation>
<numerusform>%1 saat</numerusform>
<numerusform>%1 saat</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nDay</source>
<translation>
<numerusform>%1 gün</numerusform>
<numerusform>%1 gün</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nWeek</source>
<translation>
<numerusform>%1 hafta</numerusform>
<numerusform>%1 hafta</numerusform>
</translation>
</message>
</context>
@ -897,6 +897,25 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
<translation>İletileri ara</translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Hesabınızı nasıl oluşturmak istersiniz?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>%1 HESABI OLUŞTUR</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>TELEFON NUMARASIYLA</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>E-POSTA ADRESİYLE</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -1019,28 +1038,28 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
<source>nMinute</source>
<extracomment>&apos;%1 minute&apos;</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform>%1 dakika</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nHour</source>
<extracomment>&apos;%1 hour&apos;</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform>%1 saat</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nDay</source>
<extracomment>&apos;%1 day&apos;</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform>%1 gün</numerusform>
</translation>
</message>
<message numerus="yes">
<source>nWeek</source>
<extracomment>&apos;%1 week&apos;</extracomment>
<translation type="unfinished">
<numerusform></numerusform>
<numerusform>%1 hafta</numerusform>
</translation>
</message>
</context>
@ -1238,7 +1257,7 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
<message>
<source>adminStatus</source>
<extracomment>&apos;Admin&apos; : Admin(istrator)</extracomment>
<translation type="unfinished"></translation>
<translation type="unfinished">Yönetici</translation>
<extra-one>word for admin status</extra-one>
</message>
<message>
@ -1381,7 +1400,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<message>
<source>checkForUpdates</source>
<extracomment>&apos;Check for updates&apos; : Item menu for checking updates</extracomment>
<translation type="unfinished"></translation>
<translation type="unfinished">Güncellemeleri denetle</translation>
</message>
</context>
<context>
@ -1401,7 +1420,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<message>
<source>checkForUpdates</source>
<extracomment>&apos;Check for updates&apos; : Item menu for checking updates</extracomment>
<translation type="unfinished"></translation>
<translation type="unfinished">Güncellemeleri denetle</translation>
</message>
</context>
<context>
@ -1453,7 +1472,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<message>
<source>missingConferenceURI</source>
<extracomment>&apos;You need to set the conference URI in your account settings to create a conference based chat room.&apos; : Tooltip to warn the user that a setting is missong in its configuration.</extracomment>
<translation type="unfinished"></translation>
<translation type="unfinished">Toplantı tabanlı konuşma odası oluşturmak için hesap ayarlarınızda toplantı URI&apos;si belirlemelisiniz.</translation>
</message>
<message>
<source>newChatRoomTitle</source>
@ -1489,7 +1508,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<message>
<source>adminStatus</source>
<extracomment>&apos;Admin&apos; : Admin(istrator)</extracomment>
<translation type="unfinished"></translation>
<translation type="unfinished">Yönetici</translation>
<extra-one>word for admin status</extra-one>
</message>
<message>
@ -2600,6 +2619,16 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2799,6 +2828,11 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2850,6 +2884,7 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>KULLAN</translation>
</message>
<message>
@ -2880,6 +2915,26 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<source>addOtherSipAccountError</source>
<translation>Bu hesap eklenemiyor.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation>Так</translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -902,6 +907,25 @@
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation>Як би ви воліли створити обліківку?</translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation>СТВОРИТИ ОБЛІКІВКУ %1</translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation>ЗА ДОПОМОГОЮ НОМЕРУ ТЕЛЕФОНУ</translation>
</message>
<message>
<source>withEmailAddress</source>
<translation>ЗА ДОПОМОГОЮ EMAIL</translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2617,6 +2641,16 @@
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2816,6 +2850,11 @@
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2867,6 +2906,7 @@
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>ВИКОРИСТОВУВАТИ</translation>
</message>
<message>
@ -2897,6 +2937,26 @@
<source>addOtherSipAccountError</source>
<translation>Не вдалося додати цю обліківку.</translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -7,6 +7,11 @@
<source>ok</source>
<translation></translation>
</message>
<message>
<source>aboutTranslation</source>
<extracomment>&apos;Help us translate %1&apos; : %1 is the application name</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ActivateAppSipAccountWithEmail</name>
@ -892,6 +897,25 @@
<translation></translation>
</message>
</context>
<context>
<name>CreateAppSipAccount</name>
<message>
<source>createAppSipAccountDescription</source>
<translation></translation>
</message>
<message>
<source>createAppSipAccountTitle</source>
<translation> %1 </translation>
</message>
<message>
<source>withPhoneNumber</source>
<translation></translation>
</message>
<message>
<source>withEmailAddress</source>
<translation></translation>
</message>
</context>
<context>
<name>CreateAppSipAccountWithEmail</name>
<message>
@ -2595,6 +2619,16 @@
<extracomment>&apos;Mipmap filtering gives better visual quality when scaling down compared to smooth, but it may come at a performance cost (both when initializing the image and during rendering).&apos; : Second line of a tooltip about Mipmap mode.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterLabel</source>
<extracomment>&apos;Minimal Timeline filter&apos;</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>minimalTimelineFilterTooltip</source>
<extracomment>&apos;Show a minimal version of what to display in timeline.&apos; :</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -2794,6 +2828,11 @@
<extracomment>&apos;No Ephemerals&apos; : Filter item. Selecting it will hide all chat rooms where the ephemeral mode has been enabled.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>timelineFilterConferences</source>
<extracomment>&apos;Conferences&apos; : Filter item. Selecting it will show all conferences.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>UseAppSipAccount</name>
@ -2845,6 +2884,7 @@
<name>UseOtherSipAccount</name>
<message>
<source>confirmAction</source>
<extracomment>&apos;Use&apos; : Popup confirmation for a form</extracomment>
<translation>使</translation>
</message>
<message>
@ -2875,6 +2915,26 @@
<source>addOtherSipAccountError</source>
<translation></translation>
</message>
<message>
<source>understandAction</source>
<extracomment>&apos;I understand&apos; : Popup confirmation for a warning</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningFeatures</source>
<extracomment>&apos;Some features require a Linphone account, such as group messaging or ephemeral messaging.&apos; : Warning text about features.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningThirdParty</source>
<extracomment>&apos;These features are hidden when you register with a third party SIP account.&apos; : Warning text for using third party account.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>warningContact</source>
<extracomment>&apos;To enable it in a commercial project, please contact us.&apos; : Warning text for contacting about enabling features.</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ZrtpTokenAuthentication</name>

View file

@ -33,8 +33,16 @@ if (POLICY CMP0079)
cmake_policy(SET CMP0079 NEW)
endif ()
set(LINPHONE_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../../ui")
set(LINPHONE_QML_DIR "WORK/qml_files/ui")
set(QT_PATH "${Qt5Core_DIR}/../../..")
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" \"-E\" \"copy_directory\" \"${CMAKE_CURRENT_SOURCE_DIR}/../../ui\" \"${LINPHONE_QML_DIR}\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\")")
if(NOT ENABLE_APP_WEBVIEW)
set(RM_COMMAND "rm")
if(CMAKE_VERSION VERSION_LESS 3.17)
set(RM_COMMAND "remove")
endif()
install(CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" \"-E\" \"${RM_COMMAND}\" \"-f\" \"${LINPHONE_QML_DIR}/views/App/Main/Assistant/CreateAppSipAccountWithWebView.qml\" WORKING_DIRECTORY \"${CMAKE_INSTALL_PREFIX}/..\")")
endif()
# ==============================================================================
# Build package version.
# ==============================================================================
@ -147,8 +155,10 @@ if (WIN32)
LIBRARY DESTINATION "${LIBDIR}"
RUNTIME DESTINATION "${LIBDIR}"
)
#Workaround windeployqt bug on webview plugin : folder "webview" can be in bin/ where it should be in bin/plugins. Else, we got "Webview plugin not found" => use of --plugindir
install(CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" --qmldir=${LINPHONE_QML_DIR} --plugindir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/plugins --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
install(CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" -qmldir=${LINPHONE_QML_DIR} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
#On Windows, OpenLDAP couldn't be build with static libraries. Add them in installation for deployment.
find_program(MSYS2_PROGRAM
NAMES msys2_shell.cmd
@ -216,6 +226,7 @@ elseif (APPLE)
if (NOT DEPLOYQT_PROGRAM)
message(FATAL_ERROR "Could not find the macdeployqt program. Make sure it is in the PATH.")
endif()
install(CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR} -no-strip )")
if (LINPHONE_BUILDER_SIGNING_IDENTITY)
@ -296,6 +307,10 @@ else()# Not Windows and Apple
LIBRARY DESTINATION "${LIBDIR}"
RUNTIME DESTINATION "${LIBDIR}"
)
# WEBVIEW
if(ENABLE_APP_WEBVIEW)
install(FILES "${QT_PATH}/plugins/webview/libqtwebview_webengine.so" DESTINATION "plugins/webview") #Workaround : linuxdeploy doesn't deploy it
endif()
endif ()
@ -376,6 +391,34 @@ if(${ENABLE_APP_PACKAGING})
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${PACKAGE_VERSION}-win32")
string(COMPARE EQUAL ${CPACK_GENERATOR} "NSIS" IS_NSIS)
if (${IS_NSIS})
find_program(NSIS_PROGRAM makensis)
if(NOT NSIS_PROGRAM)
if(MSVC)
set(MSVC_ARCH ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})# ${MSVC_ARCH} MATCHES "X64"
string(TOUPPER ${MSVC_ARCH} MSVC_ARCH)
if(${MSVC_ARCH} MATCHES "X64")
set(MINGW_PACKAGE_PREFIX "mingw-w64-x86_64-")
set(MINGW_TYPE "mingw64")
else()
set(MINGW_PACKAGE_PREFIX "mingw-w64-i686-")
set(MINGW_TYPE "mingw32")
endif()
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "AMD64")
set(MINGW_PACKAGE_PREFIX "mingw-w64-x86_64-")
set(MINGW_TYPE "mingw64")
else()
set(MINGW_PACKAGE_PREFIX "mingw-w64-i686-")
set(MINGW_TYPE "mingw32")
endif()
find_program(MSYS2_PROGRAM
NAMES msys2_shell.cmd
HINTS "C:/msys64/"
)
message(STATUS "Installing windows tools for nsis")
execute_process(
COMMAND "${MSYS2_PROGRAM}" "-${MINGW_TYPE}" "-here" "-full-path" "-defterm" "-shell" "sh" "-l" "-c" "pacman -Sy ${MINGW_PACKAGE_PREFIX}nsis --noconfirm --needed"
)
endif()
set(PACKAGE_EXT "exe")
# Use magic `NSIS.template.in` template from the current source directory to force uninstallation
# and ensure that linphone is not running before installation.

View file

@ -59,13 +59,13 @@ if (NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*)
endif()
endif()
if(DO_APPIMAGE)
set(ENV QML_SOURCES_PATHS="@QML_SOURCES_PATHS@")
set(ENV QML_MODULES_PATHS="@QML_MODULES_PATHS@")
set(ENV QML_SOURCES_PATHS="@LINPHONE_QML_DIR@")
set(ENV QML_MODULES_PATHS="@LINPHONE_QML_DIR@")
execute_process( COMMAND mkdir -p "WORK/Packages/AppImageDir/" WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/..")
execute_process( COMMAND cp -rf "@CMAKE_CURRENT_SOURCE_DIR@/../../ui" "WORK/Packages/AppImageDir/" WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/..")
execute_process( COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh" @EXECUTABLE_NAME@ @CPACK_PACKAGE_FILE_NAME@ @LINPHONE_BUILDER_SIGNING_IDENTITY@ @LINPHONE_BUILDER_SIGNING_PASSPHRASE@ RESULT_VARIABLE CPACK_COMMAND_RESULT WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/.." )
execute_process( COMMAND cp -rf "@LINPHONE_QML_DIR@" "WORK/Packages/AppImageDir/" WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/..")
execute_process( COMMAND "@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh" @EXECUTABLE_NAME@ @CPACK_PACKAGE_FILE_NAME@ @QT_PATH@ @LINPHONE_BUILDER_SIGNING_IDENTITY@ @LINPHONE_BUILDER_SIGNING_PASSPHRASE@ RESULT_VARIABLE CPACK_COMMAND_RESULT WORKING_DIRECTORY "@CMAKE_INSTALL_PREFIX@/.." )
if(CPACK_COMMAND_RESULT)
message(FATAL_ERROR "Failed to create AppImage package with this command : '@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh @EXECUTABLE_NAME@ @APP_PROJECT_VERSION@' at @CMAKE_INSTALL_PREFIX@/..\nMaybe the .appimage already exists and is running. Please remove the file before packaging if it is the case.")
message(FATAL_ERROR "Failed to create AppImage package with this command : '@CMAKE_CURRENT_SOURCE_DIR@/../../tools/create_appimage.sh @EXECUTABLE_NAME@ @QT_PATH@ @APP_PROJECT_VERSION@' at @CMAKE_INSTALL_PREFIX@/..\nMaybe the .appimage already exists and is running. Please remove the file before packaging if it is the case.")
endif()
endif()
if (@PERFORM_SIGNING@)

View file

@ -18,14 +18,17 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "config.h"
#include <QtGlobal>
#include <QDirIterator>
#include <QFontDatabase>
#include <QMessageBox>
#include <QQuickStyle>
#ifdef ENABLE_APP_WEBVIEW
#include <QtWebView>
#endif
#include "config.h"
#include "gitversion.h"
#include "AppController.hpp"
@ -51,12 +54,16 @@ AppController::AppController (int &argc, char *argv[]) {
QCoreApplication::setApplicationName(EXECUTABLE_NAME);
QApplication::setOrganizationDomain(EXECUTABLE_NAME);
QCoreApplication::setApplicationVersion(LINPHONE_QT_GIT_VERSION);
#ifdef ENABLE_APP_WEBVIEW
#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
mApp = new App(argc, argv);
QtWebView::initialize();
#else
QtWebView::initialize();
mApp = new App(argc, argv);
#endif
#else
mApp = new App(argc, argv);
#endif
// ---------------------------------------------------------------------------
// App creation.

View file

@ -215,7 +215,11 @@ bool AssistantModel::addOtherSipAccount (const QVariantMap &map) {
shared_ptr<linphone::Address> address = factory->createAddress(
Utils::appStringToCoreString(QStringLiteral("sip:%1").arg(domain))
);
if(!address) {
qWarning() << QStringLiteral("Unable to create address from domain `%1`.")
.arg(domain);
return false;
}
const QString &transport(map["transport"].toString());
if (!transport.isEmpty())
address->setTransport(Utils::stringToTransportType(transport));

View file

@ -26,6 +26,8 @@
#include <cstdlib>
#include <cmath>
#include "config.h"
#include "app/App.hpp"
#include "app/logger/Logger.hpp"
#include "app/paths/Paths.hpp"
@ -163,6 +165,14 @@ void SettingsModel::setAssistantSupportsPhoneNumbers (bool status) {
emit assistantSupportsPhoneNumbersChanged(status);
}
bool SettingsModel::useWebview() const{
#ifdef ENABLE_APP_WEBVIEW
return true;
#else
return false;
#endif
}
QString SettingsModel::getAssistantRegistrationUrl () const {
return Utils::coreStringToAppString(mConfig->getString(UiSection, "assistant_registration_url", Constants::DefaultAssistantRegistrationUrl));
}
@ -195,8 +205,11 @@ bool SettingsModel::isCguAccepted () const{
}
void SettingsModel::acceptCgu(const bool accept){
mConfig->setInt(UiSection, "read_and_agree_terms_and_privacy", accept);
emit cguAcceptedChanged(accept);
bool oldAccept = isCguAccepted();
if( oldAccept != accept){
mConfig->setInt(UiSection, "read_and_agree_terms_and_privacy", accept);
emit cguAcceptedChanged(accept);
}
}
// =============================================================================
@ -1361,11 +1374,7 @@ bool SettingsModel::getShowStartVideoCallButton ()const{
}
bool SettingsModel::isMipmapEnabled() const{
#ifdef __APPLE__
return !!mConfig->getInt(UiSection, "mipmap_enabled", 1);
#else
return !!mConfig->getInt(UiSection, "mipmap_enabled", 0);
#endif
}
void SettingsModel::setMipmapEnabled(const bool& enabled){

View file

@ -246,6 +246,8 @@ public:
bool getAssistantSupportsPhoneNumbers () const;
void setAssistantSupportsPhoneNumbers (bool status);
Q_INVOKABLE bool useWebview() const;
QString getAssistantRegistrationUrl () const;
void setAssistantRegistrationUrl (QString url);

View file

@ -30,3 +30,4 @@
#cmakedefine ENABLE_UPDATE_CHECK 1
#cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}"
#cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}"
#cmakedefine ENABLE_APP_WEBVIEW "${ENABLE_APP_WEBVIEW}"

View file

@ -22,10 +22,12 @@
# Arguments :
# $1 = Executable Name
# $2 = Output Filename
# $3 = Key of the code sign (optional but mendatory if code signing)
# $4 = Passphrase of the code sign (Optional)
# $3 = Qt root path (eg. "~/Qt/5.15.2/gcc_64")
# $4 = Key of the code sign (optional but mendatory if code signing)
# $5 = Passphrase of the code sign (Optional)
APP_NAME="$1"
QT_PATH="$3"
BIN_SOURCE_DIR="OUTPUT/"
@ -45,6 +47,8 @@ rm -rf "${WORK_DIR}/AppDir/usr/lib64"
mkdir -p "${WORK_DIR}/AppDir/usr/lib"
cp -f "${BIN_SOURCE_DIR}/lib"/libsoci_sqlite3* "${WORK_DIR}/AppDir/usr/lib/"
cp -f "${BIN_SOURCE_DIR}/lib"/libapp-plugin* "${WORK_DIR}/AppDir/usr/lib/"
cp -f "${BIN_SOURCE_DIR}/lib64"/libsoci_sqlite3* "${WORK_DIR}/AppDir/usr/lib/"
cp -f "${BIN_SOURCE_DIR}/lib64"/libapp-plugin* "${WORK_DIR}/AppDir/usr/lib/"
if [ -d "${BIN_SOURCE_DIR}/lib64/mediastreamer" ]; then
mkdir -p "${WORK_DIR}/AppDir/usr/plugins/"
@ -70,11 +74,14 @@ else
chmod +x "${WORK_DIR}/AppBin/linuxdeploy-plugin-qt-x86_64.AppImage"
fi
###########################################################################################
export QML_SOURCES_PATHS=${QML_SOURCES_PATHS}:${WORK_DIR}/..
export LD_LIBRARY_PATH=${QT_PATH}/lib
#export EXTRA_QT_PLUGINS=webenginecore;webview;webengine
echo "-- Generating AppDir for AppImage"
if [ -z "$3" ]; then
if [ -z "$4" ]; then
./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/AppDir -e ${WORK_DIR}/AppDir/usr/bin/${APP_NAME} --output appimage --desktop-file=${WORK_DIR}/AppDir/usr/share/applications/${APP_NAME}.desktop -i ${WORK_DIR}/AppDir/usr/share/icons/hicolor/scalable/apps/${APP_NAME}.svg --plugin qt
else
if [ -f "${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage" ]; then
@ -86,10 +93,10 @@ else
./${WORK_DIR}/AppBin/linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/AppDir -e ${WORK_DIR}/AppDir/usr/bin/${APP_NAME} --desktop-file=${WORK_DIR}/AppDir/usr/share/applications/${APP_NAME}.desktop -i ${WORK_DIR}/AppDir/usr/share/icons/hicolor/scalable/apps/${APP_NAME}.svg --plugin qt
#./linuxdeploy-x86_64.AppImage --appdir=${WORK_DIR}/ -e ${WORK_DIR}/app/bin/${APP_NAME} --output appimage --desktop-file=${WORK_DIR}/app/share/applications/${APP_NAME}.desktop -i ${WORK_DIR}/app/share/icons/hicolor/scalable/apps/${APP_NAME}.svg
echo "-- Code Signing of AppImage"
if [ -z "$4" ]; then
./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $3
if [ -z "$5" ]; then
./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $4
else
./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $3 --sign-args "--pinentry-mode loopback --passphrase $4"
./${WORK_DIR}/AppBin/appimagetool-x86_64.AppImage ${WORK_DIR}/AppDir --sign --sign-key $4 --sign-args "--pinentry-mode loopback --passphrase $5"
fi
fi

View file

@ -193,8 +193,8 @@ Item {
ActionButton {
id: sendButton
property int totalWidth: Layout.rightMargin + Layout.leftMargin + width
Layout.rightMargin: 15
Layout.leftMargin: 10
Layout.rightMargin: droppableTextArea.isEphemeral ? 20 : 15
Layout.leftMargin: droppableTextArea.isEphemeral ? 5 : 10
Layout.alignment: Qt.AlignVCenter
visible: droppableTextArea.enabled
isCustom: true
@ -209,7 +209,7 @@ Item {
iconSize: DroppableTextAreaStyle.ephemeralTimer.iconSize
anchors.right:parent.right
anchors.bottom : parent.bottom
anchors.rightMargin:-10
anchors.rightMargin:-20
}
}
}

View file

@ -36,7 +36,7 @@ Item {
mipmap: SettingsModel.mipmapEnabled
cache: Images.areReadOnlyImages
asynchronous: true
smooth: true
//anchors.centerIn: parent
anchors.fill: parent
@ -45,8 +45,8 @@ Item {
fillMode: Image.PreserveAspectFit
source: Utils.resolveImageUri(icon)
sourceSize.width: iconWidth > 0 ? iconWidth : iconSize
sourceSize.height: iconHeight > 0 ? iconHeight : iconSize
sourceSize.width: (iconWidth > 0 ? iconWidth : iconSize)
sourceSize.height: ( iconHeight > 0 ? iconHeight : iconSize)
layer {
enabled: image.colorOverwriteEnabled
effect: ColorOverlay {

View file

@ -5,65 +5,65 @@ import Linphone.Styles 1.0
// =============================================================================
Item {
id: block
property var action
readonly property alias loading: block._loading
property bool _loading: false
// ----------------------------------------------------------------------------
function execute () {
block._loading = true
action()
}
function setText(txt){
errorBlock.text = txt
}
function stop (error) {
errorBlock.text = error
block._loading = false
}
// ----------------------------------------------------------------------------
height: RequestBlockStyle.height
TextEdit {
id: errorBlock
readOnly: true
selectByMouse: true
color: RequestBlockStyle.error.color
font {
italic: true
pointSize: RequestBlockStyle.error.pointSize
}
height: parent.height
width: parent.width
horizontalAlignment: Text.AlignHCenter
padding: RequestBlockStyle.error.padding
wrapMode: Text.WordWrap
visible: !block.loading
}
BusyIndicator {
anchors {
horizontalCenter: parent.horizontalCenter
top: parent.top
}
height: RequestBlockStyle.loadingIndicator.height
width: RequestBlockStyle.loadingIndicator.width
running: block.loading
}
Column {
id: block
property var action
readonly property alias loading: block._loading
property bool _loading: false
// ----------------------------------------------------------------------------
function execute () {
block._loading = true
action()
}
function setText(txt){
errorBlock.text = txt
}
function stop (error) {
errorBlock.text = error
block._loading = false
}
// ----------------------------------------------------------------------------
//height: errorBlock.implicitHeight + busy.height// RequestBlockStyle.height
TextEdit {
id: errorBlock
readOnly: true
selectByMouse: true
color: RequestBlockStyle.error.color
font {
italic: true
pointSize: RequestBlockStyle.error.pointSize
}
height: visible ? undefined : 0
width: parent.width
horizontalAlignment: Text.AlignHCenter
padding: RequestBlockStyle.error.padding
wrapMode: Text.WordWrap
visible: !block.loading && errorBlock.text != ''
}
BusyIndicator {
id: busy
anchors {
horizontalCenter: parent.horizontalCenter
//top: parent.top
}
height: visible ? RequestBlockStyle.loadingIndicator.height : 0
width: RequestBlockStyle.loadingIndicator.width
running: block.loading
}
}

View file

@ -77,6 +77,9 @@ Row {
id: thumbnailImageSource
mipmap: SettingsModel.mipmapEnabled
source: mainRow.contentModel.thumbnail
fillMode: Image.PreserveAspectFit
sourceSize.width: 100
sourceSize.height: 100
}
}

View file

@ -8,7 +8,7 @@ import ColorsList 1.0
QtObject {
property string sectionName: 'RequestBlock'
property int height: 60
property int height: 80
property QtObject error: QtObject {
property color color: ColorsList.add(sectionName+'_error', 'error').color

View file

@ -248,9 +248,9 @@ QtObject {
property QtObject outgoing: QtObject {
property color backgroundColor: ColorsList.add(sectionName+'_outgoing_bg', 'e').color
property int areaSize: 16
property int busyIndicatorSize: 16
property int sendIconSize: 12
property int areaSize: 12
property int busyIndicatorSize: 12
property int sendIconSize: 60
property QtObject text: QtObject {
property color color: ColorsList.add(sectionName+'_outgoing_text', 'd').color

View file

@ -24,11 +24,18 @@ Item {
default property alias _content: content.data
property alias contentItem: content
property int decorationHeight: title.implicitHeight + title.anchors.topMargin
+description.implicitHeight + description.anchors.topMargin
+content.anchors.topMargin
+buttons.implicitHeight+AssistantAbstractViewStyle.info.spacing
// ---------------------------------------------------------------------------
height: (maximized?stack.height:AssistantAbstractViewStyle.content.height)
width: (maximized?stack.width:AssistantAbstractViewStyle.content.width)
anchors.horizontalCenter: maximized || !parent? undefined : parent.horizontalCenter
anchors.verticalCenter: maximized || !parent? undefined : parent.verticalCenter
// ---------------------------------------------------------------------------
// Info.

View file

@ -124,15 +124,17 @@ ColumnLayout {
Component.onCompleted: {
insert(0, {
$text: qsTr('createAppSipAccount'),
$view: 'CreateAppSipAccount',
$view: SettingsModel.useWebview() ? 'CreateAppSipAccountWithWebView' : 'CreateAppSipAccount',
$viewType: 'CreateAppSipAccount',
$props:{defaultUrl: SettingsModel.assistantRegistrationUrl, defaultLogoutUrl:SettingsModel.assistantLogoutUrl, configFilename: 'create-app-sip-account.rc'}
$props: SettingsModel.useWebview() ? {defaultUrl: SettingsModel.assistantRegistrationUrl, defaultLogoutUrl:SettingsModel.assistantLogoutUrl, configFilename: 'create-app-sip-account.rc'}
: {}
})
append({
$text: qsTr('useAppSipAccount'),
$view: 'CreateAppSipAccount',
$view: SettingsModel.useWebview() ? 'CreateAppSipAccountWithWebView' : 'UseAppSipAccount',
$viewType: 'UseAppSipAccount',
$props:{defaultUrl: SettingsModel.assistantLoginUrl, defaultLogoutUrl:SettingsModel.assistantLogoutUrl, configFilename: 'use-app-sip-account.rc'}
$props: SettingsModel.useWebview() ? {defaultUrl: SettingsModel.assistantLoginUrl, defaultLogoutUrl:SettingsModel.assistantLogoutUrl, configFilename: 'use-app-sip-account.rc'}
: {}
})
append({
$text: qsTr('useOtherSipAccount'),

View file

@ -1,167 +1,43 @@
import QtQuick 2.7
import QtWebView 1.1
import QtQuick.Controls 1.3 // Busy indicator
import Common 1.0
import Linphone 1.0 as Linphone
import App.Styles 1.0
// =============================================================================
AssistantAbstractView {
id: view
maximized:true
height: (parent?parent.height:0)
width: (parent?parent.width:0)
property string defaultUrl
property string defaultLogoutUrl
property string configFilename
property bool printed : stack.currentItem == view
onPrintedChanged: {
webviewLoader.active = printed
}
//-------------------------------
property int status : 0 // 0:nothing, -1:error, 1:ok
property bool newPage : true
// ---------------------------------------------------------------------------
// Menu.
// ---------------------------------------------------------------------------
// Note : Use opacity and not visibility to allow smooth updating (when moving visibility to true, we could show the old page)
Component{
id: webviewComponent
WebView{
id:webview
property bool isLogingOut : true
state: 'hidden'
Component.onCompleted: {if(webview.httpUserAgent != undefined) webview.httpUserAgent = Linphone.CoreManager.getUserAgent() // only available on Qt 5.15 (QtWebView 1.15)
isLogingOut = true
webview.url = view.defaultLogoutUrl
}
function getData(){// Check if account_infos exists in the page and retrieve data to make/update an account
if(webview.loading){
view.status = 0
}else {
var js = "(typeof account_infos !== 'undefined'?account_infos:'')";
webview.runJavaScript(js, function(result) {
if( result == ''){
view.status = 0
}else{
webview.state = 'hidden'
reloadTimer.stop();
console.log("[CreateAccount] SIP : " +result.sip);
console.log("[CreateAccount] Username : " +result.username);
console.log("[CreateAccount] Registrar : " +result.registrar_address);
console.log("[CreateAccount] Domain : " +result.domain);
if (Linphone.AccountSettingsModel.addOrUpdateProxyConfig( {
sipAddress: result.sip,
serverAddress: result.registrar_address,
configFilename: view.configFilename
})) {
console.log("[CreateAccount] Account created")
view.status = 1
Linphone.AccountSettingsModel.setDefaultProxyConfigFromSipAddress("sip:"+result.sip)
} else {
console.error("[CreateAccount] Cannot create account. Check logs.")
view.status = -1
}
}
});
}
}
Timer {// Check data
id:reloadTimer
interval: 1000;
running: true; repeat: true
onTriggered: {webview.getData();}
}
onLoadingChanged: {
if (loadRequest.errorString)
console.error("[CreateAccount] error on loading page : " +loadRequest.errorString);
if(loading){
view.newPage = true;
}else if(view.newPage) {
view.newPage = false;
webview.runJavaScript("document.querySelector('nav').remove(); document.querySelector('footer').remove();");
}
webview.state = (loading || isLogingOut ? 'hidden' : 'showed')
if(!loading){
if(isLogingOut){
isLogingOut = false
webview.url = view.defaultUrl
}else{
reloadTimer.stop();
webview.getData();
if(view.status == 0)
reloadTimer.start();
}
}else
reloadTimer.stop();
}
states: [
State {
name: 'hidden'
PropertyChanges { target: webview; opacity: 0 }
},
State {
name: 'showed'
PropertyChanges { target: webview; opacity: 1 }
}
]
transitions: [
Transition {
from: '*'; to: 'showed'
SequentialAnimation{
NumberAnimation{ properties: "opacity"; easing.type: Easing.OutBounce; duration: 500 }
}
},
Transition {
SequentialAnimation{
NumberAnimation{ properties: "opacity"; duration: 1000 }
}
}
]
}
}
Loader{
id: webviewLoader
active: false
anchors.fill:parent
sourceComponent: webviewComponent
AssistantAbstractView {
description: qsTr('createAppSipAccountDescription')
title: qsTr('createAppSipAccountTitle').replace('%1', Qt.application.name.toUpperCase())
}
Rectangle{
id:statusPage
anchors.fill:parent
visible: webviewLoader.item && (webviewLoader.item.loading || webviewLoader.item.isLogingOut || webviewLoader.item.state == 'hidden')
BusyIndicator{
id:busy
anchors.centerIn : parent
running:true
width:CreateAppSipAccountStyle.busy.size
height:CreateAppSipAccountStyle.busy.size
}
Icon{
visible: view.status != 0
icon: (view.status>0?"chat_read":"chat_error")
iconSize:busy.width
anchors.fill:busy
MouseArea{
anchors.fill:parent
onClicked: {
assistant.popView()
}
// ---------------------------------------------------------------------------
// Menu.
// ---------------------------------------------------------------------------
Column {
anchors.centerIn: parent
spacing: CreateAppSipAccountStyle.buttons.spacing
width: CreateAppSipAccountStyle.buttons.button.width
TextButtonA {
text: qsTr('withPhoneNumber')
height: CreateAppSipAccountStyle.buttons.button.height
width: parent.width
onClicked: assistant.pushView('CreateAppSipAccountWithPhoneNumber')
}
TextButtonA {
text: qsTr('withEmailAddress')
height: CreateAppSipAccountStyle.buttons.button.height
width: parent.width
onClicked: assistant.pushView('CreateAppSipAccountWithEmail')
}
}
}
}

View file

@ -0,0 +1,167 @@
import QtQuick 2.7
import QtWebView 1.1
import QtQuick.Controls 1.3 // Busy indicator
import Common 1.0
import Linphone 1.0 as Linphone
import App.Styles 1.0
// =============================================================================
AssistantAbstractView {
id: view
maximized:true
height: (parent?parent.height:0)
width: (parent?parent.width:0)
property string defaultUrl
property string defaultLogoutUrl
property string configFilename
property bool printed : stack.currentItem == view
onPrintedChanged: {
webviewLoader.active = printed
}
//-------------------------------
property int status : 0 // 0:nothing, -1:error, 1:ok
property bool newPage : true
// ---------------------------------------------------------------------------
// Menu.
// ---------------------------------------------------------------------------
// Note : Use opacity and not visibility to allow smooth updating (when moving visibility to true, we could show the old page)
Component{
id: webviewComponent
WebView{
id:webview
property bool isLogingOut : true
state: 'hidden'
Component.onCompleted: {if(webview.httpUserAgent != undefined) webview.httpUserAgent = Linphone.CoreManager.getUserAgent() // only available on Qt 5.15 (QtWebView 1.15)
isLogingOut = true
webview.url = view.defaultLogoutUrl
}
function getData(){// Check if account_infos exists in the page and retrieve data to make/update an account
if(webview.loading){
view.status = 0
}else {
var js = "(typeof account_infos !== 'undefined'?account_infos:'')";
webview.runJavaScript(js, function(result) {
if( result == ''){
view.status = 0
}else{
webview.state = 'hidden'
reloadTimer.stop();
console.log("[CreateAccount] SIP : " +result.sip);
console.log("[CreateAccount] Username : " +result.username);
console.log("[CreateAccount] Registrar : " +result.registrar_address);
console.log("[CreateAccount] Domain : " +result.domain);
if (Linphone.AccountSettingsModel.addOrUpdateProxyConfig( {
sipAddress: result.sip,
serverAddress: result.registrar_address,
configFilename: view.configFilename
})) {
console.log("[CreateAccount] Account created")
view.status = 1
Linphone.AccountSettingsModel.setDefaultProxyConfigFromSipAddress("sip:"+result.sip)
} else {
console.error("[CreateAccount] Cannot create account. Check logs.")
view.status = -1
}
}
});
}
}
Timer {// Check data
id:reloadTimer
interval: 1000;
running: true; repeat: true
onTriggered: {webview.getData();}
}
onLoadingChanged: {
if (loadRequest.errorString)
console.error("[CreateAccount] error on loading page : " +loadRequest.errorString);
if(loading){
view.newPage = true;
}else if(view.newPage) {
view.newPage = false;
webview.runJavaScript("document.querySelector('nav').remove(); document.querySelector('footer').remove();");
}
webview.state = (loading || isLogingOut ? 'hidden' : 'showed')
if(!loading){
if(isLogingOut){
isLogingOut = false
webview.url = view.defaultUrl
}else{
reloadTimer.stop();
webview.getData();
if(view.status == 0)
reloadTimer.start();
}
}else
reloadTimer.stop();
}
states: [
State {
name: 'hidden'
PropertyChanges { target: webview; opacity: 0 }
},
State {
name: 'showed'
PropertyChanges { target: webview; opacity: 1 }
}
]
transitions: [
Transition {
from: '*'; to: 'showed'
SequentialAnimation{
NumberAnimation{ properties: "opacity"; easing.type: Easing.OutBounce; duration: 500 }
}
},
Transition {
SequentialAnimation{
NumberAnimation{ properties: "opacity"; duration: 1000 }
}
}
]
}
}
Loader{
id: webviewLoader
active: false
anchors.fill:parent
sourceComponent: webviewComponent
}
Rectangle{
id:statusPage
anchors.fill:parent
visible: webviewLoader.item && (webviewLoader.item.loading || webviewLoader.item.isLogingOut || webviewLoader.item.state == 'hidden')
BusyIndicator{
id:busy
anchors.centerIn : parent
running:true
width:CreateAppSipAccountStyle.busy.size
height:CreateAppSipAccountStyle.busy.size
}
Icon{
visible: view.status != 0
icon: (view.status>0?"chat_read":"chat_error")
iconSize:busy.width
anchors.fill:busy
MouseArea{
anchors.fill:parent
onClicked: {
assistant.popView()
}
}
}
}
}

View file

@ -13,10 +13,8 @@ Item{
AssistantAbstractView {
id: mainItem
mainAction: requestBlock.execute
mainActionEnabled: username.text.length &&
sipDomain.text.length &&
password.text.length
property bool isValid: false
mainActionEnabled: mainItem.showWarning || isValid
//: 'I understand' : Popup confirmation for a warning
mainActionLabel: showWarning ? qsTr('understandAction').toUpperCase()
//: 'Use' : Popup confirmation for a form
@ -24,29 +22,28 @@ Item{
title: qsTr('useOtherSipAccountTitle')
width: AssistantAbstractViewStyle.content.width
height: AssistantAbstractViewStyle.content.height
width: mainStack.currentItem.implicitWidth
height: mainStack.currentItem.implicitHeight
+ (requestBlock.implicitHeight > 0 ? requestBlock.implicitHeight : 0)
+ mainItem.decorationHeight
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter
property bool showWarning : true
// ---------------------------------------------------------------------------
StackView {
id: mainStack
anchors.fill: parent.contentItem
width: AssistantAbstractViewStyle.content.width
height: AssistantAbstractViewStyle.content.height
width: currentItem.implicitWidth>0 ? currentItem.implicitWidth : currentItem.width
height: currentItem.implicitHeight>0 ? currentItem.implicitHeight : currentItem.height
initialItem: warningComponent
}
Component{
id: warningComponent
Column{
Column{
spacing: UseAppSipAccountStyle.warningBlock.spacing
anchors.fill: parent.contentItem
Text {
width: AssistantAbstractViewStyle.content.width
Text {
elide: Text.ElideRight
font.pointSize: UseAppSipAccountStyle.warningBlock.pointSize
@ -100,18 +97,28 @@ Item{
cursorShape: parent.hoveredLink
? Qt.PointingHandCursor
: Qt.IBeamCursor
}
}
}
}
}
Component {
id: formComponent
Column {
anchors.fill: parent.contentItem
width: AssistantAbstractViewStyle.content.width
height: AssistantAbstractViewStyle.content.height
property bool isValid: username.text.length &&
sipDomain.text.length &&
password.text.length
onIsValidChanged: mainItem.isValid = isValid
property alias usernameText: username.text
property alias displayNameText: displayName.text
property alias sipDomainText: sipDomain.text
property alias passwordText: password.text
function getTransport(){
return transport.model[transport.currentIndex]
}
Form {
orientation: Qt.Vertical
width: parent.width
@ -169,30 +176,33 @@ Item{
}
RequestBlock {
id: requestBlock
width: parent.width
action: (function () {
if(mainItem.showWarning) {
mainItem.showWarning = false
mainStack.replace(formComponent);
requestBlock.stop('')
}else{
if (!assistantModel.addOtherSipAccount({
username: username.text,
displayName: displayName.text,
sipDomain: sipDomain.text,
password: password.text,
transport: transport.model[transport.currentIndex]
})) {
requestBlock.stop(qsTr('addOtherSipAccountError'))
} else {
id: requestBlock
width: parent.width
anchors.top: mainStack.bottom
anchors.topMargin: UseAppSipAccountStyle.warningBlock.spacing
action: (function () {
if(mainItem.showWarning) {
mainItem.showWarning = false
mainStack.push(formComponent);
requestBlock.stop('')
window.setView('Home')
}else{
if (!assistantModel.addOtherSipAccount({
username: mainStack.currentItem.usernameText,
displayName: mainStack.currentItem.displayNameText,
sipDomain: mainStack.currentItem.sipDomainText,
password: mainStack.currentItem.passwordText,
transport: mainStack.currentItem.getTransport()
})) {
requestBlock.stop(qsTr('addOtherSipAccountError'))
} else {
requestBlock.stop('')
window.setView('Home')
}
}
}
})
}
})
}
AssistantModel {
id: assistantModel
configFilename: 'use-other-sip-account.rc'

View file

@ -0,0 +1,5 @@
<RCC>
<qresource prefix="/">
<file>ui/views/App/Main/Assistant/CreateAppSipAccountWithWebView.qml</file>
</qresource>
</RCC>