mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-04-21 13:42:05 +02:00
packaging: add global installation support for linux
- avoid using fixed paths and find LRC either when globally installed or located in custom directory - add installation rules for binaries, .desktop files, .appdata.xml, logo and doc - add support for generating and copying runtime files (webresources and translations) - add launcher script (client qt/gnome/kde selector) - add uninstall support - add missing sources (moderatorlistmodel) - update README Gitlab: #160, #230, #263, #264 Change-Id: I3fee77a917be038072a20c7f99b510f9a8bf65b4
This commit is contained in:
parent
b55be608f3
commit
69db8684a1
16 changed files with 1206 additions and 70 deletions
204
CMakeLists.txt
204
CMakeLists.txt
|
@ -12,24 +12,11 @@ set(CMAKE_AUTORCC ON)
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
|
||||||
set(SRC_DIR ${CMAKE_SOURCE_DIR}/src)
|
set(SRC_DIR ${PROJECT_SOURCE_DIR}/src)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
|
||||||
|
|
||||||
set(QML_RESOURCES ${CMAKE_SOURCE_DIR}/resources.qrc)
|
set(QML_RESOURCES ${PROJECT_SOURCE_DIR}/resources.qrc)
|
||||||
set(QML_RESOURCES_QML ${CMAKE_SOURCE_DIR}/qml.qrc)
|
set(QML_RESOURCES_QML ${PROJECT_SOURCE_DIR}/qml.qrc)
|
||||||
|
|
||||||
if(NOT DEFINED LRC)
|
|
||||||
set(LRC ${CMAKE_CURRENT_SOURCE_DIR}/../install/lrc)
|
|
||||||
set(LRCPATH ${LRC}/include/libringclient)
|
|
||||||
set(LRCLIBDIR ${LRC}/lib)
|
|
||||||
else()
|
|
||||||
set(LRCPATH ${LRC}/src)
|
|
||||||
if (NOT DEFINED LRCBUILD)
|
|
||||||
set(LRCLIBDIR ${LRC}/build)
|
|
||||||
else()
|
|
||||||
set(LRCLIBDIR ${LRCBUILD})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(QML_LIBS
|
set(QML_LIBS
|
||||||
Qt5::Quick
|
Qt5::Quick
|
||||||
|
@ -80,7 +67,8 @@ set(COMMON_SOURCES
|
||||||
${SRC_DIR}/qmlregister.cpp
|
${SRC_DIR}/qmlregister.cpp
|
||||||
${SRC_DIR}/utilsadapter.cpp
|
${SRC_DIR}/utilsadapter.cpp
|
||||||
${SRC_DIR}/dbuserrorhandler.cpp
|
${SRC_DIR}/dbuserrorhandler.cpp
|
||||||
${SRC_DIR}/xrectsel.c)
|
${SRC_DIR}/xrectsel.c
|
||||||
|
${SRC_DIR}/moderatorlistmodel.cpp)
|
||||||
|
|
||||||
set(COMMON_HEADERS
|
set(COMMON_HEADERS
|
||||||
${SRC_DIR}/avatarimageprovider.h
|
${SRC_DIR}/avatarimageprovider.h
|
||||||
|
@ -130,7 +118,8 @@ set(COMMON_HEADERS
|
||||||
${SRC_DIR}/qtutils.h
|
${SRC_DIR}/qtutils.h
|
||||||
${SRC_DIR}/utilsadapter.h
|
${SRC_DIR}/utilsadapter.h
|
||||||
${SRC_DIR}/dbuserrorhandler.h
|
${SRC_DIR}/dbuserrorhandler.h
|
||||||
${SRC_DIR}/xrectsel.h)
|
${SRC_DIR}/xrectsel.h
|
||||||
|
${SRC_DIR}/moderatorlistmodel.h)
|
||||||
|
|
||||||
find_package(PkgConfig REQUIRED)
|
find_package(PkgConfig REQUIRED)
|
||||||
pkg_check_modules(LIBNM libnm)
|
pkg_check_modules(LIBNM libnm)
|
||||||
|
@ -140,66 +129,169 @@ if(LIBNM_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(QT5_VER AND QT5_PATH)
|
if(QT5_VER AND QT5_PATH)
|
||||||
string(REPLACE "." ";" VERSION_LIST ${QT5_VER})
|
string(REPLACE "." ";" VERSION_LIST ${QT5_VER})
|
||||||
list(GET VERSION_LIST 0 QT5_VER_MAJOR)
|
list(GET VERSION_LIST 0 QT5_VER_MAJOR)
|
||||||
list(GET VERSION_LIST 1 QT5_VER_MINOR)
|
list(GET VERSION_LIST 1 QT5_VER_MINOR)
|
||||||
list(GET VERSION_LIST 2 QT5_VER_PATCH)
|
list(GET VERSION_LIST 2 QT5_VER_PATCH)
|
||||||
|
|
||||||
if ((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14))
|
if((${QT5_VER_MAJOR} GREATER_EQUAL 5) AND (${QT5_VER_MINOR} GREATER_EQUAL 14))
|
||||||
message(STATUS "Using custom Qt version")
|
message(STATUS "Using custom Qt version")
|
||||||
find_package(Qt5 ${QT5_VER} REQUIRED
|
find_package(Qt5 ${QT5_VER} REQUIRED COMPONENTS
|
||||||
COMPONENTS
|
Core
|
||||||
Core
|
Quick
|
||||||
Quick
|
QuickWidgets
|
||||||
QuickWidgets
|
Network
|
||||||
Network
|
Svg
|
||||||
Svg
|
QuickControls2
|
||||||
QuickControls2
|
WebEngine
|
||||||
WebEngine
|
DBus
|
||||||
DBus
|
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
||||||
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
find_package(Qt5LinguistTools ${QT5_VER}
|
||||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
|
PATHS ${QT5_PATH} NO_DEFAULT_PATH)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
find_package(Qt5 REQUIRED
|
find_package(Qt5 REQUIRED COMPONENTS
|
||||||
COMPONENTS
|
Core
|
||||||
Core
|
Quick
|
||||||
Quick
|
QuickWidgets
|
||||||
QuickWidgets
|
Network
|
||||||
Network
|
Svg
|
||||||
Svg
|
QuickControls2
|
||||||
QuickControls2
|
WebEngine
|
||||||
WebEngine
|
DBus)
|
||||||
DBus)
|
find_package(Qt5LinguistTools)
|
||||||
|
endif()
|
||||||
|
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
|
||||||
|
|
||||||
|
# If LRC is not globally installed, it's path should be specified
|
||||||
|
# by setting variable LRC. If library is not inside LRC + suffixes
|
||||||
|
# lib, build or build-local, it's path should be set with LRCLIB.
|
||||||
|
if(DEFINED LRC)
|
||||||
|
if(EXISTS ${LRC}/include/libringclient)
|
||||||
|
set(LRC_SRC_PATH ${LRC}/include/libringclient)
|
||||||
|
else()
|
||||||
|
set(LRC_SRC_PATH ${LRC}/src)
|
||||||
|
endif()
|
||||||
|
if(NOT DEFINED LRCLIB)
|
||||||
|
set(LRCLIB ${LRC})
|
||||||
|
endif()
|
||||||
|
find_library(ringclient ringclient
|
||||||
|
PATHS ${LRCLIB}
|
||||||
|
PATH_SUFFIXES lib build build-local NO_DEFAULT_PATH)
|
||||||
|
message("Will expect lrc library in ${LRCLIB} (including \
|
||||||
|
subdirs /lib, /build and /build-local)")
|
||||||
|
set(LRC_LIB_NAME ${ringclient})
|
||||||
|
else()
|
||||||
|
find_package(LibRingClient REQUIRED)
|
||||||
|
if (LibRingClient_FOUND)
|
||||||
|
set(LRC_SRC_PATH ${LIB_RING_CLIENT_INCLUDE_DIR})
|
||||||
|
set(LRC_LIB_NAME ${LIB_RING_CLIENT_LIBRARY})
|
||||||
|
else()
|
||||||
|
message("lrc not found!")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
|
message("Will expect lrc headers in ${LRC_SRC_PATH}")
|
||||||
${SRC_DIR}
|
|
||||||
${LRCPATH}
|
|
||||||
${LIBNM_INCLUDE_DIRS})
|
|
||||||
|
|
||||||
link_libraries(${LIBNM_LIBRARIES})
|
include_directories(${PROJECT_SOURCE_DIR}
|
||||||
|
${SRC_DIR}
|
||||||
|
${LRC_SRC_PATH}
|
||||||
|
${LIBNM_INCLUDE_DIRS})
|
||||||
|
|
||||||
add_executable(${PROJECT_NAME}
|
add_executable(${PROJECT_NAME}
|
||||||
${SRC_DIR}/main.cpp
|
${SRC_DIR}/main.cpp
|
||||||
${COMMON_HEADERS}
|
${COMMON_HEADERS}
|
||||||
${COMMON_SOURCES}
|
${COMMON_SOURCES}
|
||||||
${QML_RESOURCES}
|
${QML_RESOURCES}
|
||||||
${QML_RESOURCES_QML})
|
${QML_RESOURCES_QML}
|
||||||
|
${LRC_SRC_PATH}/webresource.qrc)
|
||||||
|
|
||||||
message(${LRCLIBDIR})
|
|
||||||
find_library(ringclient ringclient ${LRCLIBDIR} NO_DEFAULT_PATH)
|
find_library(ringclient ringclient ${LRCLIBDIR} NO_DEFAULT_PATH)
|
||||||
find_library(qrencode qrencode)
|
find_library(qrencode qrencode)
|
||||||
find_library(X11 X11)
|
find_library(X11 X11)
|
||||||
|
|
||||||
target_link_libraries(jami-qt
|
target_link_libraries(jami-qt
|
||||||
${QML_LIBS}
|
${QML_LIBS}
|
||||||
${ringclient}
|
${LRC_LIB_NAME}
|
||||||
${qrencode}
|
${qrencode}
|
||||||
${X11}
|
${X11}
|
||||||
)
|
${LIBNM_LIBRARIES})
|
||||||
|
|
||||||
if(ENABLE_TESTS)
|
if(ENABLE_TESTS)
|
||||||
message("Add Jami tests")
|
message("Add Jami tests")
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Installation rules
|
||||||
|
install(TARGETS jami-qt
|
||||||
|
RUNTIME DESTINATION bin)
|
||||||
|
|
||||||
|
# install .desktop in XDG desktop dir so that it is recognized by the system
|
||||||
|
install(FILES ${PROJECT_SOURCE_DIR}/jami-qt.desktop
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
|
||||||
|
|
||||||
|
# logos
|
||||||
|
install(FILES images/jami.svg
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/scalable/apps)
|
||||||
|
|
||||||
|
install(FILES images/jami-48px.png
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/icons/hicolor/48x48/apps
|
||||||
|
RENAME jami.png)
|
||||||
|
|
||||||
|
install(FILES images/jami-32px.xpm
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/pixmaps
|
||||||
|
RENAME jami.xpm)
|
||||||
|
|
||||||
|
install(FILES jami-qt.appdata.xml
|
||||||
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/share/metainfo)
|
||||||
|
|
||||||
|
# install jami launcher that selects between clients
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
"${PROJECT_SOURCE_DIR}/src/jami"
|
||||||
|
DESTINATION
|
||||||
|
${CMAKE_INSTALL_PREFIX}/bin
|
||||||
|
PERMISSIONS
|
||||||
|
WORLD_READ
|
||||||
|
OWNER_WRITE
|
||||||
|
OWNER_READ
|
||||||
|
GROUP_READ
|
||||||
|
OWNER_EXECUTE
|
||||||
|
GROUP_EXECUTE
|
||||||
|
WORLD_EXECUTE)
|
||||||
|
|
||||||
|
# add a target to generate API documentation with Doxygen
|
||||||
|
find_package(Doxygen)
|
||||||
|
if(DOXYGEN_FOUND)
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile @ONLY)
|
||||||
|
add_custom_target(doc
|
||||||
|
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc
|
||||||
|
COMMENT "Generating API documentation with Doxygen" VERBATIM)
|
||||||
|
|
||||||
|
# create doc/README.md symlink to README since Doxygen doesn't understand file with no extension
|
||||||
|
add_custom_command(
|
||||||
|
TARGET doc
|
||||||
|
PRE_BUILD
|
||||||
|
COMMAND ln -sf ${CMAKE_CURRENT_SOURCE_DIR}/README ${CMAKE_CURRENT_SOURCE_DIR}/doc/README.md)
|
||||||
|
endif(DOXYGEN_FOUND)
|
||||||
|
|
||||||
|
|
||||||
|
# translations
|
||||||
|
if(Qt5LinguistTools_FOUND)
|
||||||
|
message("Releasing and copying translation files")
|
||||||
|
file(GLOB TS_FILES ${PROJECT_SOURCE_DIR}/translations/*.ts)
|
||||||
|
qt5_add_translation(QM_FILES ${TS_FILES})
|
||||||
|
add_custom_target(translations ALL DEPENDS ${QM_FILES})
|
||||||
|
install(FILES ${QM_FILES}
|
||||||
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/share/libringclient/translations")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# uninstall
|
||||||
|
configure_file(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
|
IMMEDIATE @ONLY)
|
||||||
|
|
||||||
|
add_custom_target(uninstall
|
||||||
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
||||||
|
|
21
README.md
21
README.md
|
@ -71,6 +71,9 @@ Then, you can build daemon, lrc and client-qt with:
|
||||||
|
|
||||||
And you will have the daemon in `daemon/bin/dring` and the client in `client-qt/build-local/jami-qt`. You also can run it with
|
And you will have the daemon in `daemon/bin/dring` and the client in `client-qt/build-local/jami-qt`. You also can run it with
|
||||||
|
|
||||||
|
If you use a Qt version that is not wide-system installed you need to specify its path after the `--qt` flag, i. e., `./make-ring.py --install --qt /home/<username>/Qt/5.15.0/gcc_64
|
||||||
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
./make-ring.py --run --qt
|
./make-ring.py --run --qt
|
||||||
```
|
```
|
||||||
|
@ -81,10 +84,23 @@ And you will have the daemon in `daemon/bin/dring` and the client in `client-qt/
|
||||||
cd client-qt
|
cd client-qt
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
${YOUR_QT5_gcc64_PATH}/bin/qmake ../jami-qt.pro
|
cmake .. -DQT5_VER=5.15.0 -DQT5_PATH=/home/<username>/Qt/5.15.0/gcc_64 -DLRC=<path_to_lrc> -DCMAKE_INSTALL_PREFIX=<installation_path>
|
||||||
make -j9
|
make -j
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Variables `QT5_VER` and `QT5_PATH` are used to specify version and path for a custom installation of Qt.
|
||||||
|
|
||||||
|
If lrc library is installed in a custom directory you can set its path with the variable LRC. Additionally you can specify built library location with `LRCLIB` (otherwise it will seach inside LRC with the suffixes `/lib`, `/build` and `/build-local`).
|
||||||
|
|
||||||
|
After the build has finished, you are finally ready to launch jami-qt in your build directory.
|
||||||
|
|
||||||
|
If you want to install it to the path provided by `CMAKE_INSTALL_PREFIX` you can run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
make install
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
If you want more details, or separately build other projects you can check [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions).
|
If you want more details, or separately build other projects you can check [this page](https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions).
|
||||||
|
|
||||||
## Building On Native Windows
|
## Building On Native Windows
|
||||||
|
@ -184,7 +200,6 @@ Only 64-bit MSVC build can be compiled.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd client-windows
|
cd client-windows
|
||||||
pandoc -f markdown -t html5 -o changelog.html changelog.md
|
|
||||||
python make-client.py -d
|
python make-client.py -d
|
||||||
python make-client.py -b
|
python make-client.py -b
|
||||||
powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1
|
powershell -ExecutionPolicy Unrestricted -File copy-runtime-files.ps1
|
||||||
|
|
41
cmake/cmake_uninstall.cmake.in
Normal file
41
cmake/cmake_uninstall.cmake.in
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# Taken from:
|
||||||
|
# https://cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
|
||||||
|
#
|
||||||
|
# Copyright (C) 2021 Savoir-faire Linux Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
|
||||||
|
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||||
|
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||||
|
foreach(file ${files})
|
||||||
|
message(STATUS "Uninstalling $ENV{DESTDIR}${file}")
|
||||||
|
if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
exec_program(
|
||||||
|
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||||
|
OUTPUT_VARIABLE rm_out
|
||||||
|
RETURN_VALUE rm_retval
|
||||||
|
)
|
||||||
|
if(NOT "${rm_retval}" STREQUAL 0)
|
||||||
|
message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}")
|
||||||
|
endif(NOT "${rm_retval}" STREQUAL 0)
|
||||||
|
else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
message(STATUS "File $ENV{DESTDIR}${file} does not exist.")
|
||||||
|
endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
endforeach(file)
|
|
@ -195,7 +195,7 @@ def compile_and_copy_web_resources():
|
||||||
print(bcolors.FAIL + "No rcc found!" + bcolors.ENDC)
|
print(bcolors.FAIL + "No rcc found!" + bcolors.ENDC)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
lrc_web_resources_path = globalVar.lrc_path + os.sep + 'webresource.qrc'
|
lrc_web_resources_path = globalVar.lrc_path + os.sep + "src" + os.sep + 'webresource.qrc'
|
||||||
|
|
||||||
execute_cmd(rcc + ' -binary ' + lrc_web_resources_path +
|
execute_cmd(rcc + ' -binary ' + lrc_web_resources_path +
|
||||||
' -o ' + globalVar.output_path + os.sep + 'webresource.rcc')
|
' -o ' + globalVar.output_path + os.sep + 'webresource.rcc')
|
||||||
|
|
10
doc/Doxyfile
Normal file
10
doc/Doxyfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
PROJECT_NAME = "jami-qt"
|
||||||
|
PROJECT_NUMBER =
|
||||||
|
INPUT = /home/ababi/ring-project/client-qt
|
||||||
|
RECURSIVE = YES
|
||||||
|
EXCLUDE = /home/ababi/ring-project/client-qt/build-local
|
||||||
|
FILE_PATTERNS = *.cpp *.h *.c *.md
|
||||||
|
INPUT_ENCODING = UTF-8
|
||||||
|
USE_MDFILE_AS_MAINPAGE = /home/ababi/ring-project/client-qt/doc/README.md
|
||||||
|
EXTRACT_ALL = YES
|
||||||
|
EXTRACT_LOCAL_CLASSES = YES
|
10
doc/Doxyfile.in
Normal file
10
doc/Doxyfile.in
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
PROJECT_NAME = "@CMAKE_PROJECT_NAME@"
|
||||||
|
PROJECT_NUMBER = @PROJECT_VERSION@
|
||||||
|
INPUT = @PROJECT_SOURCE_DIR@
|
||||||
|
RECURSIVE = YES
|
||||||
|
EXCLUDE = @PROJECT_BINARY_DIR@
|
||||||
|
FILE_PATTERNS = *.cpp *.h *.c *.md
|
||||||
|
INPUT_ENCODING = UTF-8
|
||||||
|
USE_MDFILE_AS_MAINPAGE = @PROJECT_SOURCE_DIR@/doc/README.md
|
||||||
|
EXTRACT_ALL = YES
|
||||||
|
EXTRACT_LOCAL_CLASSES = YES
|
21
doc/jami-qt.1
Normal file
21
doc/jami-qt.1
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
.\" Manpage for jami-qt.
|
||||||
|
.TH man 8 "08 April 2021" "1.0" "jami-qt man page"
|
||||||
|
.SH NAME
|
||||||
|
jami-qt \- Qt client for jami.net
|
||||||
|
.SH SYNOPSIS
|
||||||
|
jami-qt [options]
|
||||||
|
.SH DESCRIPTION
|
||||||
|
jami-qt is a qt client for jami.net
|
||||||
|
.SH OPTIONS
|
||||||
|
.B \-v, \-\-version
|
||||||
|
Display the version and exit.
|
||||||
|
.TP
|
||||||
|
.B \-d, \-\-debug
|
||||||
|
Enable debug.
|
||||||
|
.TP
|
||||||
|
.B \-h, \-\-help
|
||||||
|
Display help text and exit.
|
||||||
|
.SH SEE ALSO
|
||||||
|
dring(1)
|
||||||
|
.SH AUTHOR
|
||||||
|
Alexandre Viau (alexandre.viau@savoirfairelinux.net)
|
392
images/jami-32px.xpm
Normal file
392
images/jami-32px.xpm
Normal file
|
@ -0,0 +1,392 @@
|
||||||
|
/* XPM */
|
||||||
|
static char * jami_xpm[] = {
|
||||||
|
"32 32 357 2",
|
||||||
|
" c None",
|
||||||
|
". c #2B5B92",
|
||||||
|
"+ c #202654",
|
||||||
|
"@ c #262F5E",
|
||||||
|
"# c #252C5A",
|
||||||
|
"$ c #252F5D",
|
||||||
|
"% c #2865A0",
|
||||||
|
"& c #2767A2",
|
||||||
|
"* c #2569A5",
|
||||||
|
"= c #26305F",
|
||||||
|
"- c #293868",
|
||||||
|
"; c #2B4070",
|
||||||
|
"> c #2B3D6D",
|
||||||
|
", c #2B3E6E",
|
||||||
|
"' c #256BA6",
|
||||||
|
") c #2868A3",
|
||||||
|
"! c #2171AF",
|
||||||
|
"~ c #2073B2",
|
||||||
|
"{ c #1C77B7",
|
||||||
|
"] c #197ABA",
|
||||||
|
"^ c #284172",
|
||||||
|
"/ c #2C4172",
|
||||||
|
"( c #2D4879",
|
||||||
|
"_ c #2E4C7E",
|
||||||
|
": c #2E4B7D",
|
||||||
|
"< c #2E4E7F",
|
||||||
|
"[ c #2E4C7D",
|
||||||
|
"} c #2C5183",
|
||||||
|
"| c #1A7AB8",
|
||||||
|
"1 c #2074B0",
|
||||||
|
"2 c #256CA8",
|
||||||
|
"3 c #1A79B9",
|
||||||
|
"4 c #177CBC",
|
||||||
|
"5 c #147EBF",
|
||||||
|
"6 c #127FC1",
|
||||||
|
"7 c #1080C2",
|
||||||
|
"8 c #265A90",
|
||||||
|
"9 c #2D497A",
|
||||||
|
"0 c #2E4779",
|
||||||
|
"a c #2D4172",
|
||||||
|
"b c #2D5487",
|
||||||
|
"c c #2D5386",
|
||||||
|
"d c #27649A",
|
||||||
|
"e c #0D85C3",
|
||||||
|
"f c #1380BD",
|
||||||
|
"g c #1A7AB7",
|
||||||
|
"h c #2173AF",
|
||||||
|
"i c #266CA7",
|
||||||
|
"j c #117FC2",
|
||||||
|
"k c #1080C3",
|
||||||
|
"l c #0F80C3",
|
||||||
|
"m c #0F81C4",
|
||||||
|
"n c #0E81C4",
|
||||||
|
"o c #1F6EAB",
|
||||||
|
"p c #2E4B7C",
|
||||||
|
"q c #2E4678",
|
||||||
|
"r c #2C4070",
|
||||||
|
"s c #2C4A7C",
|
||||||
|
"t c #2D568A",
|
||||||
|
"u c #1F79B3",
|
||||||
|
"v c #0A8ECC",
|
||||||
|
"w c #0B8AC8",
|
||||||
|
"x c #0E85C3",
|
||||||
|
"y c #147FBD",
|
||||||
|
"z c #1B79B6",
|
||||||
|
"A c #2074B1",
|
||||||
|
"B c #0E81C5",
|
||||||
|
"C c #147DBE",
|
||||||
|
"D c #2D4577",
|
||||||
|
"E c #2C3E6F",
|
||||||
|
"F c #2B4576",
|
||||||
|
"G c #2D568B",
|
||||||
|
"H c #138FCC",
|
||||||
|
"I c #0A94D3",
|
||||||
|
"J c #0A91CF",
|
||||||
|
"K c #0A8DCB",
|
||||||
|
"L c #0B89C7",
|
||||||
|
"M c #0E84C2",
|
||||||
|
"N c #1180C2",
|
||||||
|
"O c #137EC0",
|
||||||
|
"P c #157DBE",
|
||||||
|
"Q c #275D93",
|
||||||
|
"R c #293B6A",
|
||||||
|
"S c #2B4E81",
|
||||||
|
"T c #2C4F82",
|
||||||
|
"U c #26679C",
|
||||||
|
"V c #0B9AD9",
|
||||||
|
"W c #0B98D7",
|
||||||
|
"X c #0B96D5",
|
||||||
|
"Y c #0A94D2",
|
||||||
|
"Z c #0B8DCB",
|
||||||
|
"` c #1E76B5",
|
||||||
|
" . c #2172B0",
|
||||||
|
".. c #2368A2",
|
||||||
|
"+. c #273261",
|
||||||
|
"@. c #294374",
|
||||||
|
"#. c #2A4577",
|
||||||
|
"$. c #1B86C1",
|
||||||
|
"%. c #0D9BDB",
|
||||||
|
"&. c #0C9BDB",
|
||||||
|
"*. c #0C99D9",
|
||||||
|
"=. c #0B96D4",
|
||||||
|
"-. c #1C77B6",
|
||||||
|
";. c #1F73B1",
|
||||||
|
">. c #2075B2",
|
||||||
|
",. c #2079B6",
|
||||||
|
"'. c #207EBA",
|
||||||
|
"). c #2080BC",
|
||||||
|
"!. c #1D85C1",
|
||||||
|
"~. c #1980B9",
|
||||||
|
"{. c #1980BA",
|
||||||
|
"]. c #187FB8",
|
||||||
|
"^. c #187BB4",
|
||||||
|
"/. c #1973AD",
|
||||||
|
"(. c #2069A2",
|
||||||
|
"_. c #275D94",
|
||||||
|
":. c #26669C",
|
||||||
|
"<. c #0F9CDC",
|
||||||
|
"[. c #0E9CDC",
|
||||||
|
"}. c #0D9CDC",
|
||||||
|
"|. c #0C9BDA",
|
||||||
|
"1. c #0B99D9",
|
||||||
|
"2. c #0A93D1",
|
||||||
|
"3. c #1092D0",
|
||||||
|
"4. c #0E98D8",
|
||||||
|
"5. c #0E9DDD",
|
||||||
|
"6. c #109EDE",
|
||||||
|
"7. c #0F9DDD",
|
||||||
|
"8. c #0B99D8",
|
||||||
|
"9. c #0A95D3",
|
||||||
|
"0. c #0E85C2",
|
||||||
|
"a. c #1C78B5",
|
||||||
|
"b. c #2769A4",
|
||||||
|
"c. c #1D8ECC",
|
||||||
|
"d. c #0F9EDE",
|
||||||
|
"e. c #158AC9",
|
||||||
|
"f. c #1C78B9",
|
||||||
|
"g. c #1181BF",
|
||||||
|
"h. c #0B8BC9",
|
||||||
|
"i. c #0A93D2",
|
||||||
|
"j. c #0B98D8",
|
||||||
|
"k. c #1083C1",
|
||||||
|
"l. c #1E76B3",
|
||||||
|
"m. c #2676B0",
|
||||||
|
"n. c #119EDD",
|
||||||
|
"o. c #0E9BDB",
|
||||||
|
"p. c #1C78B7",
|
||||||
|
"q. c #1D77B7",
|
||||||
|
"r. c #2074B2",
|
||||||
|
"s. c #1F75B2",
|
||||||
|
"t. c #1083C0",
|
||||||
|
"u. c #0B8CCA",
|
||||||
|
"v. c #1C94D1",
|
||||||
|
"w. c #168ECD",
|
||||||
|
"x. c #2073B1",
|
||||||
|
"y. c #2669A4",
|
||||||
|
"z. c #2769A5",
|
||||||
|
"A. c #1D77B4",
|
||||||
|
"B. c #0B97D6",
|
||||||
|
"C. c #137FBD",
|
||||||
|
"D. c #1F85C1",
|
||||||
|
"E. c #109DDD",
|
||||||
|
"F. c #1C7BB9",
|
||||||
|
"G. c #1C78B8",
|
||||||
|
"H. c #2072B1",
|
||||||
|
"I. c #2768A3",
|
||||||
|
"J. c #2C598E",
|
||||||
|
"K. c #266BA7",
|
||||||
|
"L. c #1B79B7",
|
||||||
|
"M. c #0D86C4",
|
||||||
|
"N. c #0A8FCD",
|
||||||
|
"O. c #0A96D4",
|
||||||
|
"P. c #0C9ADA",
|
||||||
|
"Q. c #0A92D0",
|
||||||
|
"R. c #157FBD",
|
||||||
|
"S. c #1196D4",
|
||||||
|
"T. c #178DCB",
|
||||||
|
"U. c #1D77B6",
|
||||||
|
"V. c #2C588C",
|
||||||
|
"W. c #246EAA",
|
||||||
|
"X. c #197BB9",
|
||||||
|
"Y. c #0C87C5",
|
||||||
|
"Z. c #0A90CE",
|
||||||
|
"`. c #0C9AD9",
|
||||||
|
" + c #149EDD",
|
||||||
|
".+ c #1697D4",
|
||||||
|
"++ c #1790CD",
|
||||||
|
"@+ c #1486C3",
|
||||||
|
"#+ c #1285C3",
|
||||||
|
"$+ c #0E9ADA",
|
||||||
|
"%+ c #2866A1",
|
||||||
|
"&+ c #2D578B",
|
||||||
|
"*+ c #2370AC",
|
||||||
|
"=+ c #177DBA",
|
||||||
|
"-+ c #1095D4",
|
||||||
|
";+ c #198AC6",
|
||||||
|
">+ c #207EB7",
|
||||||
|
",+ c #2674AA",
|
||||||
|
"'+ c #2A6FA5",
|
||||||
|
")+ c #2D679A",
|
||||||
|
"!+ c #2D598D",
|
||||||
|
"~+ c #2D5488",
|
||||||
|
"{+ c #2C5A8F",
|
||||||
|
"]+ c #2A6097",
|
||||||
|
"^+ c #1A7CB5",
|
||||||
|
"/+ c #24679E",
|
||||||
|
"(+ c #2070AB",
|
||||||
|
"_+ c #1B78B7",
|
||||||
|
":+ c #28669F",
|
||||||
|
"<+ c #2172AF",
|
||||||
|
"[+ c #147FBC",
|
||||||
|
"}+ c #157FBB",
|
||||||
|
"|+ c #216EA5",
|
||||||
|
"1+ c #285689",
|
||||||
|
"2+ c #2C4272",
|
||||||
|
"3+ c #2C4171",
|
||||||
|
"4+ c #2B5C91",
|
||||||
|
"5+ c #29639A",
|
||||||
|
"6+ c #27679F",
|
||||||
|
"7+ c #256BA4",
|
||||||
|
"8+ c #236EA9",
|
||||||
|
"9+ c #2172AD",
|
||||||
|
"0+ c #1F75B1",
|
||||||
|
"a+ c #187DBA",
|
||||||
|
"b+ c #1380BE",
|
||||||
|
"c+ c #0F8ECA",
|
||||||
|
"d+ c #273B6A",
|
||||||
|
"e+ c #2A3969",
|
||||||
|
"f+ c #2C4071",
|
||||||
|
"g+ c #294E81",
|
||||||
|
"h+ c #265E95",
|
||||||
|
"i+ c #2469A5",
|
||||||
|
"j+ c #28659E",
|
||||||
|
"k+ c #2D5689",
|
||||||
|
"l+ c #236FAA",
|
||||||
|
"m+ c #285D93",
|
||||||
|
"n+ c #2D4D7F",
|
||||||
|
"o+ c #2A5B90",
|
||||||
|
"p+ c #1C79B5",
|
||||||
|
"q+ c #197BB8",
|
||||||
|
"r+ c #167EBB",
|
||||||
|
"s+ c #1082C0",
|
||||||
|
"t+ c #0F85C2",
|
||||||
|
"u+ c #0D87C4",
|
||||||
|
"v+ c #1683C1",
|
||||||
|
"w+ c #225E91",
|
||||||
|
"x+ c #2A3A6A",
|
||||||
|
"y+ c #2A3C6D",
|
||||||
|
"z+ c #2D4A7C",
|
||||||
|
"A+ c #2C5488",
|
||||||
|
"B+ c #2D5588",
|
||||||
|
"C+ c #2E568B",
|
||||||
|
"D+ c #1B7AB5",
|
||||||
|
"E+ c #0B93D1",
|
||||||
|
"F+ c #1C71AA",
|
||||||
|
"G+ c #2B3F6F",
|
||||||
|
"H+ c #2C4374",
|
||||||
|
"I+ c #2D4B7E",
|
||||||
|
"J+ c #2C5C94",
|
||||||
|
"K+ c #2B5C95",
|
||||||
|
"L+ c #29639B",
|
||||||
|
"M+ c #0E90CE",
|
||||||
|
"N+ c #0B94D2",
|
||||||
|
"O+ c #0C97D5",
|
||||||
|
"P+ c #0C98D6",
|
||||||
|
"Q+ c #0C99D7",
|
||||||
|
"R+ c #1195D3",
|
||||||
|
"S+ c #266DA8",
|
||||||
|
"T+ c #256CA7",
|
||||||
|
"U+ c #2B4B7D",
|
||||||
|
"V+ c #2D4576",
|
||||||
|
"W+ c #2D4778",
|
||||||
|
"X+ c #2D487A",
|
||||||
|
"Y+ c #2E4A7C",
|
||||||
|
"Z+ c #2C5B92",
|
||||||
|
"`+ c #2A6099",
|
||||||
|
" @ c #2A5D95",
|
||||||
|
".@ c #2A5F98",
|
||||||
|
"+@ c #2A609A",
|
||||||
|
"@@ c #2179B4",
|
||||||
|
"#@ c #0D9AD8",
|
||||||
|
"$@ c #0D9BD9",
|
||||||
|
"%@ c #0E9BD9",
|
||||||
|
"&@ c #0E9CDA",
|
||||||
|
"*@ c #0E9CDB",
|
||||||
|
"=@ c #1691CE",
|
||||||
|
"-@ c #2B588D",
|
||||||
|
";@ c #2C568B",
|
||||||
|
">@ c #2A5F99",
|
||||||
|
",@ c #2D4678",
|
||||||
|
"'@ c #2B4475",
|
||||||
|
")@ c #294576",
|
||||||
|
"!@ c #274779",
|
||||||
|
"~@ c #264F83",
|
||||||
|
"{@ c #2275B1",
|
||||||
|
"]@ c #1B8AC5",
|
||||||
|
"^@ c #0F9DDB",
|
||||||
|
"/@ c #0F9DDC",
|
||||||
|
"(@ c #1B88C3",
|
||||||
|
"_@ c #2E4D7F",
|
||||||
|
":@ c #2E4A7D",
|
||||||
|
"<@ c #2E5488",
|
||||||
|
"[@ c #2E5083",
|
||||||
|
"}@ c #2D4475",
|
||||||
|
"|@ c #2A3D6D",
|
||||||
|
"1@ c #1B72AC",
|
||||||
|
"2@ c #1F75B4",
|
||||||
|
"3@ c #1496D4",
|
||||||
|
"4@ c #109EDD",
|
||||||
|
"5@ c #1E81BA",
|
||||||
|
"6@ c #2E4A7B",
|
||||||
|
"7@ c #2E487A",
|
||||||
|
"8@ c #2E5487",
|
||||||
|
"9@ c #1D74B1",
|
||||||
|
"0@ c #117FC1",
|
||||||
|
"a@ c #187BBB",
|
||||||
|
"b@ c #1F74B2",
|
||||||
|
"c@ c #2373AF",
|
||||||
|
"d@ c #119CDC",
|
||||||
|
"e@ c #1F7DB6",
|
||||||
|
"f@ c #2E4778",
|
||||||
|
"g@ c #2D4375",
|
||||||
|
"h@ c #2D4173",
|
||||||
|
"i@ c #2E4F81",
|
||||||
|
"j@ c #2E5285",
|
||||||
|
"k@ c #2E5589",
|
||||||
|
"l@ c #1B77B5",
|
||||||
|
"m@ c #127FC0",
|
||||||
|
"n@ c #197ABB",
|
||||||
|
"o@ c #1F7CB8",
|
||||||
|
"p@ c #1C81BB",
|
||||||
|
"q@ c #2B3C6C",
|
||||||
|
"r@ c #2A3767",
|
||||||
|
"s@ c #2D4374",
|
||||||
|
"t@ c #2E497A",
|
||||||
|
"u@ c #2A5A90",
|
||||||
|
"v@ c #187ABA",
|
||||||
|
"w@ c #0F80C4",
|
||||||
|
"x@ c #1A7ABA",
|
||||||
|
"y@ c #1C83C0",
|
||||||
|
"z@ c #0B97D5",
|
||||||
|
"A@ c #1489C5",
|
||||||
|
"B@ c #245081",
|
||||||
|
"C@ c #272F5E",
|
||||||
|
"D@ c #252D5C",
|
||||||
|
"E@ c #26629B",
|
||||||
|
"F@ c #137EBF",
|
||||||
|
"G@ c #2270AE",
|
||||||
|
"H@ c #1574AC",
|
||||||
|
"I@ c #1B78B8",
|
||||||
|
"J@ c #147DBF",
|
||||||
|
"K@ c #0D87C5",
|
||||||
|
"L@ c #1182BF",
|
||||||
|
"M@ c #167DBB",
|
||||||
|
"N@ c #1E77B3",
|
||||||
|
"O@ c #236FAB",
|
||||||
|
"P@ c #2669A3",
|
||||||
|
" ",
|
||||||
|
" . + @ # $ % ",
|
||||||
|
" & * = - ; > > , ' ) ",
|
||||||
|
" ! ~ { ] ^ / ( _ : < [ [ [ } | 1 2 ) ",
|
||||||
|
" 3 4 5 6 7 8 9 _ : 0 a b c c c c d e f g h i ",
|
||||||
|
" 6 j k l m n o _ p q r s t t t t t u v w x y z A ",
|
||||||
|
" m m B B m m C _ D E F G G G G G G H I J K L M f ",
|
||||||
|
" m l k N O P Q > R S T T T T T U V W X Y J Z ",
|
||||||
|
" 6 5 4 3 ` ...+.@.#.#.#.#.#.#.$.%.&.*.W =.Y ",
|
||||||
|
" -.;.>.,.'.).!.~.{.].^./.(._.:.<.[.}.%.|.1.W ",
|
||||||
|
" 2.3.4.}.5.6.7.[.%.8.9.v 0.a.b.c.d.7.5.[.}.&.e.f. ",
|
||||||
|
" g.h.i.W &.}.7.6.7.[.&.j.I Z k.l.m.n.d.6.d.7.5.o.p.f.q.r. ",
|
||||||
|
" s.t.u.I W &.[.7.6.7.}.&.W Y u.g.1 v.[.5.7.d.6.d.w.q.f.q.x.y. ",
|
||||||
|
"z.A.M v 9.8.&.[.7.6.7.}.|.B.2.w C.D.o.%.}.[.5.7.E.F.G.G.q.H.I.J.",
|
||||||
|
"K.L.M.N.O.*.%.[.7.6.5.}.P.B.Q.L R.S.W *.&.}.}.[.T.` G.G.U. .& V.",
|
||||||
|
"W.X.Y.Z.X `.}.5.d.d.7.n. +.+++@+#+J I X W `.&.$+>.U.G.G.U. .%+&+",
|
||||||
|
"*+=+L J X -+;+>+,+'+)+!+~+&+{+]+f L K Q.9.X W ^+/+(+_+f.U.! :+t ",
|
||||||
|
"<+[+}+|+1+2+3+3+2+4+5+6+7+8+9+0+a+b+e w v Q.c+d+e+3+f+g+h+i+j+k+",
|
||||||
|
"l+m+n+n+n+n+n+n+n+o+p+q+r+f s+t+u+v+g b+M.w w+x+y+z+n+n+n+n+A+B+",
|
||||||
|
"C+C+C+C+C+C+C+C+C+C+D+L h.Z v Z.Q.E+,.A q+F+G+/ H+I+C+C+C+C+C+ ",
|
||||||
|
" J+K+K+K+K+K+K+K+L+M+N+=.=.O+P+Q+R+S+T+U+V+W+X+Y+Z+K+K+J+ ",
|
||||||
|
" `+ @.@+@+@+@+@@@#@$@%@&@&@*@*@=@-@9 Y+[ _ _ ;@>@ ",
|
||||||
|
" _ ,@'@)@!@~@{@]@^@^@/@/@/@/@7.(@_@_ _ _ : :@ ",
|
||||||
|
" <@[@: }@|@1@2@T+3@E.4@4@6.6.6.6.5@: Y+6@7@0 ",
|
||||||
|
" G t 8@[@9@0@a@b@c@d@7.7.7.7.5.5.[.e@f@V+g@h@ ",
|
||||||
|
" i@j@k@J.l@m l m@n@x.o@[.[.}.}.}.%.&.&.p@H+q@e+r@ ",
|
||||||
|
" s@t@u@v@w@B m l O x@! y@&.P.`.1.8.W B.z@A@B@C@D@ ",
|
||||||
|
" E@-.P 7 m B m k F@3 G@W X O.9.Y 2.J Z.v u.H@ ",
|
||||||
|
" ! I@J@7 m B m k 5 J v u.w L K@x t.L@ ",
|
||||||
|
" 3 F@k m B b+M@q+a.N@ ",
|
||||||
|
" a@O l O@y.P@ ",
|
||||||
|
" "};
|
BIN
images/jami-48px.png
Normal file
BIN
images/jami-48px.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.8 KiB |
358
images/jami.svg
Normal file
358
images/jami.svg
Normal file
|
@ -0,0 +1,358 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 21.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Calque_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 116.3 116.3" style="enable-background:new 0 0 116.3 116.3;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:url(#SVGID_1_);}
|
||||||
|
.st1{fill:url(#SVGID_2_);}
|
||||||
|
.st2{fill:url(#SVGID_3_);}
|
||||||
|
.st3{fill:url(#SVGID_4_);}
|
||||||
|
.st4{fill:url(#SVGID_5_);}
|
||||||
|
.st5{fill:url(#SVGID_6_);}
|
||||||
|
.st6{opacity:0.4;fill:url(#SVGID_7_);enable-background:new ;}
|
||||||
|
.st7{fill:url(#SVGID_8_);}
|
||||||
|
.st8{fill:url(#SVGID_9_);}
|
||||||
|
.st9{fill:url(#SVGID_10_);}
|
||||||
|
.st10{fill:url(#SVGID_11_);}
|
||||||
|
.st11{fill:url(#SVGID_12_);}
|
||||||
|
.st12{fill:url(#SVGID_13_);}
|
||||||
|
.st13{fill:url(#SVGID_14_);}
|
||||||
|
.st14{fill:url(#SVGID_15_);}
|
||||||
|
.st15{fill:url(#SVGID_16_);}
|
||||||
|
.st16{opacity:0.2;fill:url(#SVGID_17_);enable-background:new ;}
|
||||||
|
.st17{fill:url(#SVGID_18_);}
|
||||||
|
.st18{fill:url(#SVGID_19_);}
|
||||||
|
.st19{opacity:0.25;fill:url(#SVGID_20_);enable-background:new ;}
|
||||||
|
.st20{fill:url(#SVGID_21_);}
|
||||||
|
.st21{fill:url(#SVGID_22_);}
|
||||||
|
.st22{opacity:0.2;fill:url(#SVGID_23_);enable-background:new ;}
|
||||||
|
.st23{fill:url(#SVGID_24_);}
|
||||||
|
</style>
|
||||||
|
<g>
|
||||||
|
<g>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="69.0328" y1="454.9245" x2="64.4435" y2="449.5703" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<polygon class="st0" points="54.9,55.8 62,55.6 58.4,62.2 "/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="108.534" y1="457.2333" x2="108.534" y2="494.0327" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="7.040000e-02" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="0.2165" style="stop-color:#2E5589"/>
|
||||||
|
<stop offset="0.3608" style="stop-color:#2B5E97"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#29629C"/>
|
||||||
|
<stop offset="0.6392" style="stop-color:#2B5E97"/>
|
||||||
|
<stop offset="0.7835" style="stop-color:#2E5589"/>
|
||||||
|
<stop offset="0.9296" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st1" d="M85.5,57.5c26.1,4.2,29.8,10.7,29.8,10.7c0,0.4,0,0.8,0,1.2c0,0.2-0.1,0.4-0.2,0.7c-0.1,0.3-2.7,5.7-19.6,9.3
|
||||||
|
L85.5,57.5z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="26.7686" y1="496.8278" x2="38.7091" y2="475.5678" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#252B59"/>
|
||||||
|
<stop offset="8.590000e-02" style="stop-color:#2B3A69"/>
|
||||||
|
<stop offset="0.2267" style="stop-color:#2E4A7C"/>
|
||||||
|
<stop offset="0.3658" style="stop-color:#2E5487"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#2D578C"/>
|
||||||
|
<stop offset="0.6342" style="stop-color:#2E5487"/>
|
||||||
|
<stop offset="0.7733" style="stop-color:#2E4A7C"/>
|
||||||
|
<stop offset="0.9141" style="stop-color:#2B3A69"/>
|
||||||
|
<stop offset="1" style="stop-color:#252B59"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st2" d="M19.8,78.5c-5.9,15.7-2.9,20.6-2.7,21c0.1,0.2,0.2,0.4,0.4,0.5c0.4,0,0.8-0.1,1.2-0.2c0,0,10.7-0.5,23.2-18.3
|
||||||
|
L19.8,78.5z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="60.8512" y1="424.6486" x2="41.0872" y2="401.5905" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#181844"/>
|
||||||
|
<stop offset="2.840000e-02" style="stop-color:#1E1E4C"/>
|
||||||
|
<stop offset="0.1353" style="stop-color:#283261"/>
|
||||||
|
<stop offset="0.2468" style="stop-color:#2D4172"/>
|
||||||
|
<stop offset="0.3647" style="stop-color:#2E4A7C"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#2E4D7F"/>
|
||||||
|
<stop offset="0.6177" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="0.8125" style="stop-color:#273160"/>
|
||||||
|
<stop offset="1" style="stop-color:#181844"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st3" d="M58.8,18.6C44.5,2.9,37.5,3.8,37.1,3.9c-0.2,0-0.5,0.1-0.7,0.2c-0.5,0.2-1,1.8-1,1.8s-3,8.7,9.1,31.9
|
||||||
|
L58.8,18.6z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="99.9721" y1="499.3526" x2="84.7036" y2="450.1664" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#181844"/>
|
||||||
|
<stop offset="2.840000e-02" style="stop-color:#1E1E4C"/>
|
||||||
|
<stop offset="0.1353" style="stop-color:#283261"/>
|
||||||
|
<stop offset="0.2468" style="stop-color:#2D4172"/>
|
||||||
|
<stop offset="0.3647" style="stop-color:#2E4A7C"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#2E4D7F"/>
|
||||||
|
<stop offset="0.6177" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="0.8125" style="stop-color:#273160"/>
|
||||||
|
<stop offset="1" style="stop-color:#181844"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st4" d="M71.2,78.8C90.6,101,97.4,99.8,97.4,99.8c0.4,0.1,0.9,0.2,1.3,0.2c0.2-0.1,0.3-0.3,0.4-0.5
|
||||||
|
c0.3-0.4,5.8-9.4-12.8-41.8L71.2,78.8z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="31.6447" y1="457.2331" x2="31.6447" y2="494.0317" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="7.040000e-02" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="0.2165" style="stop-color:#2E5589"/>
|
||||||
|
<stop offset="0.3608" style="stop-color:#2B5E97"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#29629C"/>
|
||||||
|
<stop offset="0.6392" style="stop-color:#2B5E97"/>
|
||||||
|
<stop offset="0.7835" style="stop-color:#2E5589"/>
|
||||||
|
<stop offset="0.9296" style="stop-color:#2D4576"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st5" d="M46.1,82.2c-40-1.7-44.8-11.6-45-12.1C1.1,69.9,1,69.7,1,69.5c0.1-0.7,1.5-2,1.5-2s10.6-6.5,28.3-10
|
||||||
|
L46.1,82.2z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_7_" gradientUnits="userSpaceOnUse" x1="51.8906" y1="421.1236" x2="66.337" y2="421.1236" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st6" d="M57.6,17.4c-5,5.4-9.6,11.2-13.8,17.2h1c3.1-3.9,10.8-13.7,13.4-16.5L57.6,17.4z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_8_" gradientUnits="userSpaceOnUse" x1="70.9709" y1="436.4003" x2="70.9709" y2="401.6908" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#252B59"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#2D578C"/>
|
||||||
|
<stop offset="0.6934" style="stop-color:#2D5588"/>
|
||||||
|
<stop offset="0.8038" style="stop-color:#2E4F80"/>
|
||||||
|
<stop offset="0.8932" style="stop-color:#2D4474"/>
|
||||||
|
<stop offset="0.971" style="stop-color:#283463"/>
|
||||||
|
<stop offset="1" style="stop-color:#252B59"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st7" d="M73.8,35.4C84.2,10.7,80.2,5,80.2,5c-0.1-0.3-0.2-0.7-0.3-1c-0.2-0.1-0.4-0.1-0.7-0.2
|
||||||
|
c-0.5-0.1-11.4-1.5-34.4,30.7L73.8,35.4z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_9_" gradientUnits="userSpaceOnUse" x1="39.2669" y1="503.7654" x2="102.6764" y2="407.9172" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="8.239999e-02" style="stop-color:#177EBC"/>
|
||||||
|
<stop offset="0.1675" style="stop-color:#0E91D1"/>
|
||||||
|
<stop offset="0.2527" style="stop-color:#10A2E1"/>
|
||||||
|
<stop offset="0.337" style="stop-color:#18ACEA"/>
|
||||||
|
<stop offset="0.42" style="stop-color:#24B1ED"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#28B1ED"/>
|
||||||
|
<stop offset="0.58" style="stop-color:#24B1ED"/>
|
||||||
|
<stop offset="0.663" style="stop-color:#18ACEA"/>
|
||||||
|
<stop offset="0.7473" style="stop-color:#10A2E1"/>
|
||||||
|
<stop offset="0.8325" style="stop-color:#0E91D1"/>
|
||||||
|
<stop offset="0.9176" style="stop-color:#177EBC"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st8" d="M58,97.4c-14.2,15.4-21,14.5-21.4,14.5c-0.6-0.2-1.2-0.5-1.7-0.8l-17.3-11c7.3-1.6,16.3-10.2,25.7-21.3
|
||||||
|
L58,97.4z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_10_" gradientUnits="userSpaceOnUse" x1="33.568" y1="505.6873" x2="58.683" y2="483.2007" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||||
|
<stop offset="8.220001e-02" style="stop-color:#246EAB"/>
|
||||||
|
<stop offset="0.1808" style="stop-color:#1B79B9"/>
|
||||||
|
<stop offset="0.3007" style="stop-color:#1080C2"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#0E81C5"/>
|
||||||
|
<stop offset="0.6993" style="stop-color:#1080C2"/>
|
||||||
|
<stop offset="0.8192" style="stop-color:#1B79B9"/>
|
||||||
|
<stop offset="0.9178" style="stop-color:#246EAB"/>
|
||||||
|
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st9" d="M58.6,98c-14.2,15.4-21,14.5-21.4,14.5c-0.6-0.2-1.2-0.5-1.7-0.8L17.6,100c7.3-1.6,16.9-9.6,26.3-20.7
|
||||||
|
L58.6,98z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_11_" gradientUnits="userSpaceOnUse" x1="31.3212" y1="407.2591" x2="89.6399" y2="504.4568" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||||
|
<stop offset="1.760000e-02" style="stop-color:#2A6199"/>
|
||||||
|
<stop offset="0.1407" style="stop-color:#1C79B7"/>
|
||||||
|
<stop offset="0.2631" style="stop-color:#0A8CCA"/>
|
||||||
|
<stop offset="0.3837" style="stop-color:#0B97D4"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#0E9AD8"/>
|
||||||
|
<stop offset="0.6163" style="stop-color:#0B97D4"/>
|
||||||
|
<stop offset="0.7369" style="stop-color:#0A8CCA"/>
|
||||||
|
<stop offset="0.8593" style="stop-color:#1C79B7"/>
|
||||||
|
<stop offset="0.9824" style="stop-color:#2A6199"/>
|
||||||
|
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st10" d="M20.7,38c-6.3-16.2-3.2-21.3-3-21.6c0.4-0.5,0.9-0.9,1.4-1.2l17.3-11c-1.5,7.1,2.3,18,8.2,30.7L20.7,38z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_12_" gradientUnits="userSpaceOnUse" x1="94.4028" y1="503.8655" x2="56.9038" y2="456.6339" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||||
|
<stop offset="2.570000e-02" style="stop-color:#2A6199"/>
|
||||||
|
<stop offset="0.2053" style="stop-color:#1C79B7"/>
|
||||||
|
<stop offset="0.384" style="stop-color:#0A8CCA"/>
|
||||||
|
<stop offset="0.5599" style="stop-color:#0B97D4"/>
|
||||||
|
<stop offset="0.7296" style="stop-color:#0E9AD8"/>
|
||||||
|
<stop offset="0.7925" style="stop-color:#0B97D4"/>
|
||||||
|
<stop offset="0.8577" style="stop-color:#0A8CCA"/>
|
||||||
|
<stop offset="0.9239" style="stop-color:#1C79B7"/>
|
||||||
|
<stop offset="0.9905" style="stop-color:#2A6199"/>
|
||||||
|
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st11" d="M57.2,57.2c-8.7,0-17.4,0.7-26,1.9c0.3,0.5,4.3,7.2,7.2,11.7c27.8,42.8,40.8,41.1,41.4,41
|
||||||
|
c0.6-0.2,1.2-0.5,1.7-0.8l17.3-11C87,97.5,70.6,78.2,57.2,57.2z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_13_" gradientUnits="userSpaceOnUse" x1="40.2175" y1="431.0724" x2="32.9164" y2="404.7886" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2C5D95"/>
|
||||||
|
<stop offset="8.220001e-02" style="stop-color:#246EAB"/>
|
||||||
|
<stop offset="0.1808" style="stop-color:#1B79B9"/>
|
||||||
|
<stop offset="0.3007" style="stop-color:#1080C2"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#0E81C5"/>
|
||||||
|
<stop offset="0.6993" style="stop-color:#1080C2"/>
|
||||||
|
<stop offset="0.8192" style="stop-color:#1B79B9"/>
|
||||||
|
<stop offset="0.9178" style="stop-color:#246EAB"/>
|
||||||
|
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st12" d="M20.1,38.5c-6.3-16.2-3.2-21.3-3-21.6c0.4-0.5,0.9-0.9,1.4-1.2L36.5,4.1c-1.5,7.1,1.7,18.6,7.6,31.2
|
||||||
|
L20.1,38.5z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_14_" gradientUnits="userSpaceOnUse" x1="122.9025" y1="448.7971" x2="9.1479" y2="448.7971" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="1.280000e-02" style="stop-color:#256BA7"/>
|
||||||
|
<stop offset="0.1121" style="stop-color:#0B83C3"/>
|
||||||
|
<stop offset="0.2115" style="stop-color:#1797D8"/>
|
||||||
|
<stop offset="0.3099" style="stop-color:#25A3E2"/>
|
||||||
|
<stop offset="0.4066" style="stop-color:#27ABE7"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#2AAEEA"/>
|
||||||
|
<stop offset="0.5934" style="stop-color:#27ABE7"/>
|
||||||
|
<stop offset="0.6901" style="stop-color:#25A3E2"/>
|
||||||
|
<stop offset="0.7885" style="stop-color:#1797D8"/>
|
||||||
|
<stop offset="0.8879" style="stop-color:#0B83C3"/>
|
||||||
|
<stop offset="0.9872" style="stop-color:#256BA7"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st13" d="M85.5,59.6c13.5,1.9,24.7,4.7,29.8,9.8V48.9c0-0.6-0.1-1.3-0.2-1.9c-0.1-0.3-2.7-5.6-19-9.1L85.5,59.6z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_15_" gradientUnits="userSpaceOnUse" x1="90.2941" y1="447.1362" x2="122.8074" y2="448.8884" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2E5284"/>
|
||||||
|
<stop offset="6.100000e-03" style="stop-color:#2E5486"/>
|
||||||
|
<stop offset="9.120000e-02" style="stop-color:#29649D"/>
|
||||||
|
<stop offset="0.1876" style="stop-color:#236FAD"/>
|
||||||
|
<stop offset="0.3049" style="stop-color:#1D77B6"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#1C78B9"/>
|
||||||
|
<stop offset="0.6951" style="stop-color:#1D77B6"/>
|
||||||
|
<stop offset="0.8124" style="stop-color:#236FAD"/>
|
||||||
|
<stop offset="0.9088" style="stop-color:#29649D"/>
|
||||||
|
<stop offset="0.9939" style="stop-color:#2E5486"/>
|
||||||
|
<stop offset="1" style="stop-color:#2E5284"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st14" d="M85.5,58.8c13.5,1.9,24.7,5.5,29.8,10.6V48.1c0-0.6-0.1-1.3-0.2-1.9c-0.1-0.3-2.7-5.6-19-9.1L85.5,58.8z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_16_" gradientUnits="userSpaceOnUse" x1="9.0577" y1="447.1912" x2="67.7186" y2="447.1912" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="2.250000e-02" style="stop-color:#256BA7"/>
|
||||||
|
<stop offset="0.1971" style="stop-color:#0B83C3"/>
|
||||||
|
<stop offset="0.3718" style="stop-color:#1797D8"/>
|
||||||
|
<stop offset="0.5447" style="stop-color:#25A3E2"/>
|
||||||
|
<stop offset="0.7147" style="stop-color:#27ABE7"/>
|
||||||
|
<stop offset="0.8788" style="stop-color:#2AAEEA"/>
|
||||||
|
<stop offset="0.9015" style="stop-color:#27ABE7"/>
|
||||||
|
<stop offset="0.9249" style="stop-color:#25A3E2"/>
|
||||||
|
<stop offset="0.9487" style="stop-color:#1797D8"/>
|
||||||
|
<stop offset="0.9728" style="stop-color:#0B83C3"/>
|
||||||
|
<stop offset="0.9969" style="stop-color:#256BA7"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st15" d="M73.2,35.1c-3-0.1-9.5-0.4-15.1-0.4C7.1,34.7,1.4,46.5,1.2,47C1,47.6,1,48.3,1,48.9v20.6
|
||||||
|
c5-5,15.9-7.7,29.2-9.7c8.6-1.2,17.2-1.9,25.9-2c1.6,0,3.2,0,4.8,0C60.8,57.8,76.3,35.2,73.2,35.1z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_17_" gradientUnits="userSpaceOnUse" x1="50.3126" y1="432.0108" x2="28.2664" y2="428.9106" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st16" d="M44.1,33.5c-10.7,0.5-18.4,1.3-24.8,3.1l0.3,0.8c0.6-0.1,1.3-0.3,1.9-0.4c7.7-1.2,15.4-2,23.1-2.3L44.1,33.5
|
||||||
|
z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_18_" gradientUnits="userSpaceOnUse" x1="72.7451" y1="450.8669" x2="10.4435" y2="442.1056" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||||
|
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st17" d="M73.2,34.3c-3-0.1-9.5-0.4-15.1-0.4c-51.1,0-56.7,11.8-57,12.4C1,46.8,1,47.5,1,48.1v21.4
|
||||||
|
c5-5,15.9-8.5,29.2-10.5c8.6-1.2,17.2-1.9,25.9-2c1.6,0,3.2,0,4.8,0C63.2,57.1,76.3,34.4,73.2,34.3z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_19_" gradientUnits="userSpaceOnUse" x1="101.6202" y1="407.733" x2="71.9933" y2="458.7571" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="0.1238" style="stop-color:#177EBC"/>
|
||||||
|
<stop offset="0.2516" style="stop-color:#0E91D1"/>
|
||||||
|
<stop offset="0.3797" style="stop-color:#10A2E1"/>
|
||||||
|
<stop offset="0.5064" style="stop-color:#18ACEA"/>
|
||||||
|
<stop offset="0.631" style="stop-color:#24B1ED"/>
|
||||||
|
<stop offset="0.7513" style="stop-color:#28B1ED"/>
|
||||||
|
<stop offset="0.7911" style="stop-color:#24B1ED"/>
|
||||||
|
<stop offset="0.8324" style="stop-color:#18ACEA"/>
|
||||||
|
<stop offset="0.8743" style="stop-color:#10A2E1"/>
|
||||||
|
<stop offset="0.9167" style="stop-color:#0E91D1"/>
|
||||||
|
<stop offset="0.959" style="stop-color:#177EBC"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st18" d="M58.2,58.8C72.1,37.9,82.4,16,79.8,4.1l17.3,11c0.5,0.3,1,0.7,1.4,1.2c0.3,0.5,7.1,11.7-20.7,54.5
|
||||||
|
c-2,3.2-3.9,6.9-4.6,7.2c-4.1-4-12.6-15.6-14.7-18.5C58.3,59.1,58.2,58.8,58.2,58.8z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_20_" gradientUnits="userSpaceOnUse" x1="105.3445" y1="433.3988" x2="94.5575" y2="453.6416" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st19" d="M96.6,37.2c-3.1,7.8-6.8,15.3-11.1,22.4l1.3,0.2c5.5-9.5,8.7-16.5,10.9-22.4L96.6,37.2z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_21_" gradientUnits="userSpaceOnUse" x1="100.6479" y1="408.8533" x2="70.927" y2="464.6275" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||||
|
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st20" d="M78.5,71.4c27.8-42.8,21-54,20.7-54.5c-0.4-0.5-0.9-0.9-1.4-1.2L79.8,4.1c2.5,11.8-7.4,34.6-21.2,55.5
|
||||||
|
c4.6,7.1,9.4,14,14.5,19.9C74.1,78.3,76.7,74.3,78.5,71.4z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_22_" gradientUnits="userSpaceOnUse" x1="102.9539" y1="410.1097" x2="72.9714" y2="466.375" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2867A2"/>
|
||||||
|
<stop offset="3.820000e-02" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="0.1177" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.2081" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.3177" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||||
|
<stop offset="0.6823" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.7919" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.8823" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.9618" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="1" style="stop-color:#2867A2"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st21" d="M72.6,80.2c0.1-0.1,0.2-0.1,0.2-0.2c-5.3-6.2-10.2-12.8-14.7-19.7c-0.1,0.1-0.2,0.2-0.2,0.4
|
||||||
|
C57.9,60.6,67.6,75.9,72.6,80.2z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_23_" gradientUnits="userSpaceOnUse" x1="54.5637" y1="474.0854" x2="62.254" y2="494.9197" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2B3B6A"/>
|
||||||
|
<stop offset="1" style="stop-color:#2B3B6A"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st22" d="M58.2,98.4C57.9,98.1,47.7,86.1,43.1,79l-0.8,0.9C46.9,86.6,52,93,57.6,99L58.2,98.4z"/>
|
||||||
|
|
||||||
|
<linearGradient id="SVGID_24_" gradientUnits="userSpaceOnUse" x1="69.1674" y1="452.6575" x2="78.2209" y2="509.0225" gradientTransform="matrix(1 0 0 1 -8.0854 -395.1333)">
|
||||||
|
<stop offset="0" style="stop-color:#2E5284"/>
|
||||||
|
<stop offset="2.440000e-02" style="stop-color:#2C5C92"/>
|
||||||
|
<stop offset="8.880000e-02" style="stop-color:#2075B1"/>
|
||||||
|
<stop offset="0.1599" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.2403" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.3378" style="stop-color:#0E9CDA"/>
|
||||||
|
<stop offset="0.5" style="stop-color:#109EDE"/>
|
||||||
|
<stop offset="0.6718" style="stop-color:#0C9BDB"/>
|
||||||
|
<stop offset="0.7751" style="stop-color:#0A94D2"/>
|
||||||
|
<stop offset="0.8603" style="stop-color:#0B86C4"/>
|
||||||
|
<stop offset="0.9351" style="stop-color:#2174B1"/>
|
||||||
|
<stop offset="1" style="stop-color:#2C5D95"/>
|
||||||
|
</linearGradient>
|
||||||
|
<path class="st23" d="M72.9,79.9c-5.3-6.2-10.2-12.8-14.7-19.7c-0.5-0.8-1.1-1.6-1.6-2.4c-8.7,0-17.4,0.7-26,1.9
|
||||||
|
c0.3,0.5,4.3,7.2,7.2,11.7c27.8,42.8,40.8,41.1,41.4,41c0.6-0.2,1.2-0.5,1.7-0.8L98.8,100C91.4,98.4,82.1,90.6,72.9,79.9z"/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 20 KiB |
89
jami-qt.appdata.xml
Normal file
89
jami-qt.appdata.xml
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!-- Copyright 2015-2020 Savoir-faire Linux -->
|
||||||
|
<component type="desktop-application">
|
||||||
|
<id>net.jami.Jami</id>
|
||||||
|
<metadata_license>CC-BY-SA-3.0</metadata_license>
|
||||||
|
<project_license>GPL-3.0+</project_license>
|
||||||
|
<name>Jami</name>
|
||||||
|
<summary>Privacy-oriented voice, video, chat, and conference platform</summary>
|
||||||
|
<icon type="stock">jami</icon>
|
||||||
|
<description>
|
||||||
|
<p>
|
||||||
|
An end-to-end encrypted secure and distributed voice, video, and
|
||||||
|
chat communication platform that requires no central server and
|
||||||
|
leaves the power of privacy and freedom in the hands of users.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Jami supports the following key features:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>One-to-one conversations</li>
|
||||||
|
<li>File sharing</li>
|
||||||
|
<li>Audio calls and conferences</li>
|
||||||
|
<li>Video calls and conferences</li>
|
||||||
|
<li>Screen sharing in video calls and conferences</li>
|
||||||
|
<li>Recording and sending audio messages</li>
|
||||||
|
<li>Recording and sending video messages</li>
|
||||||
|
<li>Functioning as a SIP phone software</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Client applications for GNU/Linux, Windows, macOS, iOS, Android,
|
||||||
|
and Android TV are available, making Jami an interoperable and
|
||||||
|
cross-platform communication framework.
|
||||||
|
</p>
|
||||||
|
</description>
|
||||||
|
|
||||||
|
<url type="homepage">https://jami.net/</url>
|
||||||
|
<url type="bugtracker">https://git.jami.net/savoirfairelinux/jami-client-qt/issues</url>
|
||||||
|
<url type="translate">https://www.transifex.com/savoirfairelinux/jami</url>
|
||||||
|
|
||||||
|
<!-- Maximum caption length is 60 characters -->
|
||||||
|
<!-- Officially GIF is not an allowed video format, but it appears to work nonetheless -->
|
||||||
|
<screenshots>
|
||||||
|
<screenshot type="default">
|
||||||
|
<caption>Send Audio, Video and Chat messages</caption>
|
||||||
|
<image type="source" width="1310" height="650">https://dl.jami.net/media-resources/screenshots/jami_linux_audiovideo.png</image>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<caption>Easily share desktop contents</caption>
|
||||||
|
<image type="source" width="1016" height="659">https://dl.jami.net/media-resources/screenshots/jami_linux_screenshare.png</image>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<caption>Crystal clear audio calls between Jami users</caption>
|
||||||
|
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/audio-call_web.webm</video>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<caption>Conference calls with an unlimited participants</caption>
|
||||||
|
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/conference_web.webm</video>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<caption>Encrypted and secure text messaging, no servers</caption>
|
||||||
|
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/chat_web.webm</video>
|
||||||
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<caption>Send files of all sizes</caption>
|
||||||
|
<video container="webm" codec="vp9" width="600" height="400">https://dl.jami.net/media-resources/gifs_features/conversiongif_webm/files-share_web.webm</video>
|
||||||
|
</screenshot>
|
||||||
|
</screenshots>
|
||||||
|
|
||||||
|
<launchable type="desktop-id">jami-qt.desktop</launchable>
|
||||||
|
|
||||||
|
<provides><binary>jami-qt</binary><binary>jami</binary></provides>
|
||||||
|
|
||||||
|
<categories>
|
||||||
|
<category>Network</category>
|
||||||
|
<category>P2P</category>
|
||||||
|
<category>InstantMessaging</category>
|
||||||
|
<category>FileTransfer</category>
|
||||||
|
</categories>
|
||||||
|
|
||||||
|
<translation type="gettext">jami-client-qt</translation>
|
||||||
|
|
||||||
|
<content_rating type="oars-1.1">
|
||||||
|
<content_attribute id="social-chat">intense</content_attribute>
|
||||||
|
<content_attribute id="social-audio">intense</content_attribute>
|
||||||
|
</content_rating>
|
||||||
|
|
||||||
|
<requires><id>net.jami.daemon</id></requires>
|
||||||
|
|
||||||
|
</component>
|
11
jami-qt.desktop
Normal file
11
jami-qt.desktop
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Jami
|
||||||
|
GenericName=Jami
|
||||||
|
Comment=Jami is a secured and distributed communication software
|
||||||
|
Exec=jami-qt %u
|
||||||
|
Icon=jami
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Network;Telephony;
|
||||||
|
Keywords=Qt;chat;talk;im;message;voip;
|
10
jami-qt.desktop.autostart
Normal file
10
jami-qt.desktop.autostart
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Desktop Entry]
|
||||||
|
Name=Jami
|
||||||
|
GenericName=Jami
|
||||||
|
Comment=Jami is a secured and distributed communication software
|
||||||
|
Exec=jami-qt
|
||||||
|
Icon=jami
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Qt;Network;Telephony;
|
37
jami-qt.pro
37
jami-qt.pro
|
@ -95,29 +95,48 @@ unix {
|
||||||
QMAKE_CXXFLAGS += -std=c++17
|
QMAKE_CXXFLAGS += -std=c++17
|
||||||
}
|
}
|
||||||
|
|
||||||
INCLUDEPATH += ../src
|
# Client source path
|
||||||
|
INCLUDEPATH += $$PWD/src
|
||||||
|
|
||||||
isEmpty(LRC) {
|
# Default LRC path
|
||||||
LRC=$$PWD/../install/lrc
|
isEmpty(LRC) { LRC=$$PWD/../install/lrc }
|
||||||
|
|
||||||
|
# Check if LRC is installed or in project dir
|
||||||
|
exists($${LRC}/include/libringclient) {
|
||||||
INCLUDEPATH += $${LRC}/include/libringclient
|
INCLUDEPATH += $${LRC}/include/libringclient
|
||||||
LIBDIR = $${LRC}/lib
|
message(Will expect lrc headers in $${LRC}/include/libringclient)
|
||||||
} else {
|
} else {
|
||||||
INCLUDEPATH += $${LRC}/src
|
INCLUDEPATH += $${LRC}/src
|
||||||
isEmpty(LRCBUILD) {
|
message(Will expect lrc headers in $${LRC}/src)
|
||||||
LIBDIR = $${LRC}/build
|
}
|
||||||
|
|
||||||
|
# TODO: subdirs should be added as suffixes to $${LRC}
|
||||||
|
isEmpty(LRCLIB) {
|
||||||
|
exists($${LRC}/lib) {
|
||||||
|
LRCLIB = $${LRC}/lib
|
||||||
} else {
|
} else {
|
||||||
LIBDIR = $${LRCBUILD}
|
LRCLIB = $${LRC}/build-local
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
QMAKE_RPATHDIR += $${LIBDIR}
|
|
||||||
|
|
||||||
LIBS += -L$${LIBDIR} -lringclient
|
# Include LRC lib path if custom installation
|
||||||
|
contains(LRCLIB, .*/usr.*) {
|
||||||
|
LIBS += -lringclient
|
||||||
|
message(Will expect lrc library in /usr)
|
||||||
|
} else {
|
||||||
|
QMAKE_RPATHDIR += $${LRCLIB}
|
||||||
|
LIBS += -L$${LRCLIB} -lringclient
|
||||||
|
message(Will expect lrc library in $${LRCLIB})
|
||||||
|
}
|
||||||
|
|
||||||
LIBS += -lqrencode
|
LIBS += -lqrencode
|
||||||
LIBS += -lX11
|
LIBS += -lX11
|
||||||
|
|
||||||
CONFIG += link_pkgconfig
|
CONFIG += link_pkgconfig
|
||||||
PKGCONFIG += libnm
|
PKGCONFIG += libnm
|
||||||
|
|
||||||
|
# TODO: set global installation like cmake (correct
|
||||||
|
# installation paths, desktop files, autostart...)
|
||||||
isEmpty(PREFIX) { PREFIX = /tmp/$${TARGET}/bin }
|
isEmpty(PREFIX) { PREFIX = /tmp/$${TARGET}/bin }
|
||||||
target.path = $$PREFIX/bin
|
target.path = $$PREFIX/bin
|
||||||
INSTALLS += target
|
INSTALLS += target
|
||||||
|
|
68
src/jami
Normal file
68
src/jami
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Copyright (C) 2015-2021 Savoir-faire Linux Inc.
|
||||||
|
# Author: Emmanuel Lepage Vallee <emmanuel.lepage@savoirfairelinux.com>
|
||||||
|
# Author: Stepan Salenikovich <stepan.salenikovich@savoirfairelinux.com>
|
||||||
|
# Author: Albert Babí <albert.babi@savoirfairelinux.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
HAS_KDE=0
|
||||||
|
HAS_GNOME=0
|
||||||
|
HAS_QT=0
|
||||||
|
|
||||||
|
if type "ring-kde" > /dev/null 2> /dev/null; then
|
||||||
|
HAS_KDE=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if type "jami-gnome" > /dev/null 2> /dev/null; then
|
||||||
|
HAS_GNOME=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if type "jami-qt" > /dev/null 2> /dev/null; then
|
||||||
|
HAS_QT=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# client-qt always top priority
|
||||||
|
if [ $HAS_QT == "1" ]; then
|
||||||
|
jami-qt $*
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# No clients installed
|
||||||
|
if [ $HAS_KDE == "0" ] && [ $HAS_GNOME == "0" ]; then
|
||||||
|
echo "Jami not found" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Only one client is installed
|
||||||
|
if [ $HAS_KDE == "1" ] && [ $HAS_GNOME == "0" ]; then
|
||||||
|
ring-kde $*
|
||||||
|
exit $?
|
||||||
|
elif [ $HAS_KDE == "0" ] && [ $HAS_GNOME == "1" ]; then
|
||||||
|
jami-gnome $*
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Both clients installed: run KDE client if KDE wm is running
|
||||||
|
# else use the Gnome client.
|
||||||
|
if [ -z "$(ps aux | grep kwin | grep -v grep)" ]; then
|
||||||
|
jami-gnome $*
|
||||||
|
exit $?
|
||||||
|
else
|
||||||
|
ring-kde $*
|
||||||
|
exit $?
|
||||||
|
fi
|
|
@ -293,7 +293,7 @@ Rectangle {
|
||||||
messageWebView.runJavaScript(UtilsAdapter.getStyleSheet(
|
messageWebView.runJavaScript(UtilsAdapter.getStyleSheet(
|
||||||
"chatwin",
|
"chatwin",
|
||||||
UtilsAdapter.qStringFromFile(
|
UtilsAdapter.qStringFromFile(
|
||||||
":/chatview-windows.css")))
|
":/chatview-qt.css")))
|
||||||
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
||||||
":/linkify.js"))
|
":/linkify.js"))
|
||||||
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
messageWebView.runJavaScript(UtilsAdapter.qStringFromFile(
|
||||||
|
|
Loading…
Add table
Reference in a new issue