It works with a Pimpl which the right pttlistener.cpp depending
on the platform you are on (macOs, windows or X11). It is a
global PTT which listen to key events during calls. If the
global PTT is not supported, a local PTT is set.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1402
Change-Id: I8399800966c737bb8e8a656ecbb6af7ac7cdde8c
The current check only fails if the major and minor version are less than the minimum.
This simplifies the check even removing the major version check which is a find requirement already.
Gitlab: #1330
Change-Id: Id066953c50ef4a925713dbd9203ebe7a3a36f4a1
To be able to use an update manager for the plugins store, a refactor of windows update manager is done. The windows and macos update manager is used for updating jami. The plugins store update manager is to update plugins to the newest version.
Gitlab: #1229
Change-Id: I0541b6191401f2aa2c6d6034722796455e9c18d2
Introduces MessageParser to encapsulate text treatment for raw text messages.
The async parsing sequence is as follows:
- Markdown -> HTML (md4c)
- link coloration (tidy-html5)
- notify UI
- request link preview info from PreviewEngine for the first link
- Preview engine uses QtNetwork instead of QtWebengine
- Linkification is handled by MessageParser instead of linkify.js
QtWebengine is no longer required for message parsing.
Gitlab: #1033
Gitlab: #855
Change-Id: Ief9b91aa291caf284f08230acaf57976f80fa05b
Python2 is removed from Debian stable/unstable and
latest Ubuntu. So, we need to use a newest version of
Qt (here Qt 6.4.3).
Change-Id: I6c8b1eee644aab787d54e467f64011762ffd7548
The commit was reverted in 2b7a421e due to breaking some of the
packaging builds. This has now been rectified.
Change-Id: I3ea67962cc65f243f106fe00316634d580f51a52
This is a big time saver in the context of CI testing where we only need to supply some env vars instead.
It would also be nice to also have the env vars filled out for CMake-generated project runtime configs to prevent unnecessary deployment for development builds, but that's not done in this commit.
Change-Id: I338827cb87c9fc71c9a6b4b3076b22aa7cf7cfa3
Adds a `--with-engine` option for the resource generator script which will prevent packaging unused resources when building without webengine support.
Change-Id: If2f31284ef59166615221235427a53d0df8da2ce
- simplifies and fixes the python build script for Windows
- applies pep8 to the script also
Gitlab: #899
Change-Id: Ieb3debd08ddf1649a46208fc52362d20c504c1b1
* CMakeLists.txt: Tweak the setting of the runtime path (RPATH) to add
the 'lib' directory for local (non-system-wide) installs, to fix the
newly-surfaced issue with linking libjami for local installs.
Without this, the executable would be linked against the libjami
shared library from daemon/src/.libs for the install RPATH as well,
which for some reason as of recently gets omitted from the install
RPATH after 'make install', resulting in an error like the following
when trying to launch jami:
./install/bin/jami: error while loading shared libraries: libjami.so.0: cannot open shared object file: No such file or directory
Change-Id: If7e172b54728c72ae649fcf936a767b5d9c99488
This patch adds a parameter arch to specify architecture
to build. This parameter could be arm64, x86_64 or unified.
Change-Id: I2907e03410e0c01b8505afbe283da04b8d0291b6
This patch avoid for non-admins to try to re-add kicked members
as filtered out from the list. However kicked members are only
visible for administrators.
Change-Id: Ie01b7071c072d147bbc0f39e477cc24d7fd58b1a
- share position to different conversations at the
same time
- Be able to stop sharing positions with the current
conversation only
- UI improvements to know who is sharing and who
you are sharing to
- Watchdog
Change-Id: I1402f0d1b1fc117087988b1cc45f1fd05d2a83ac
GitLab: #888
Our qml.qrc is:
- commonly in conflict and prone to erroneous conflict resolution
- platform dependant (generation is used anyway for removing
webengine dependant resources)
- a poorly maintained hodge-podge with resources in subdirectories
that aren't grouped
- requires alteration when moving resources (if not done correctly,
without tests, results in uncaught runtime failures)
This patch uses a python script at configure time to generate the
qml.qrc resource file, and removes it from versioning.
GitLab: #749
Change-Id: Ia2b81bb5b2c29d0bf6f5a5302e76795864e93e40
Relates to <https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/882>.
This problem was discovered when attempting to build the test suite:
ld: ../src/libclient/liblibjamiclient.a(avmodel.cpp.o): undefined
reference to symbol 'xcb_get_setup'
* CMakeLists.txt: [!(APPLE or MSVC] Move xcb includes and link directives to...
* src/libclient/CMakeLists.txt [!(APPLE or MSVC]: ... here.
Change-Id: If9b6653e157081300caad8f13cafe4979a49630b
This allows invoking cmake with -DWITH_DAEMON_SUBMODULE=true to use
the daemon header files and library from the submodule. Note that it
is currently still necessary to build the daemon separately first,
either manually or using the build.py convenience script.
The goal is to eventually add support for building the daemon with
CMake in the future, so that we could add_subdirectory(${DAEMON_DIR})
in client-qt's CMakeLists.txt and have CMake take care of everything.
Change-Id: I3a16c44837e6c79616b3101fea8a6ff3defa3ab5
Now that there is no longer a second official client (jami-gnome), we
can remove this uninteresting implementation detail from the name.
Mostly automated via:
$ git grep jami-qt -l | xargs sed 's/jami-qt/jami/g' -i
* src/app/jami: Delete launcher script.
* CMakeLists.txt: Un-register it from installation.
Change-Id: I5167c29089feb4e64c12d7d01c1ce281e16c0613
This is the first in a series for cleaning up the top directory (root)
of the repository and move various files/folders into nicely organized
directory structures.
GitLab: #749
Change-Id: If59b74fff981df242bc26e62a070bdb81d7baded
* CMakeLists.txt: Prepend CMAKE_PREFIX_PATH with the location of
libavutil.pc from daemon's contrib before trying to find libavutil
using pkg-config, and remove it afterwards. Further, there is no need
to link the application executable against libavutil; the application
only needs its headers (libclient, however, does already link against
libavutil).
Change-Id: Iffa5af43bfd1bb62bc24cc94dce292f87e9ecb2a
This is libjamiclient from the jami-libclient.git repository as of
767c45b8b09806ac05cbada720864df93588c047, with the following changes:
* src/libclient/newaccountmodel.cpp:
(NewAccountModelPimpl::removeFromAccounts): The lock wait inside
'#ifdef CHK_FREEABLE_BEFORE_ERASE_ACCOUNT' was not updated when the
type of 'accounts' was changed over the years from this:
std::map<std::string, account::Info>
to this:
std::map<QString, std::pair<account::Info, std::shared_ptr<Database>>>
Basically we need to get the 'first' of the pair for 'account::Info'.
So we now do that.
* src/libclient/avmodel.cpp:
* src/libclient/callbackshandler.cpp:
* src/libclient/contactmodel.cpp:
* src/libclient/conversationmodel.cpp:
* src/libclient/database.cpp:
* src/libclient/namedirectory.cpp:
* src/libclient/newaccountmodel.cpp:
* src/libclient/newcallmodel.cpp:
* src/libclient/newdevicemodel.cpp:
* src/libclient/peerdiscoverymodel.cpp:
* src/libclient/pluginmodel.cpp:
* src/libclient/smartinfohub.cpp:
* src/libclient/vcard.h:
* src/libclient/authority/storagehelper.cpp: Replace Qt's 'foreach'
with 'Q_FOREACH' and its 'emit' with 'Q_EMIT' because in the client-qt
code base we have '-DQT_NO_KEYWORDS' to avoid conflicts with other
libraries we use.
* cmake/FindLibJami.cmake: Import cmake/FindRing.cmake from the
jami-libclient.git repository. Then, rename RING_BUILD_DIR to
LIBJAMI_BUILD_DIR (though the old name is still supported for now).
Also update other references of Ring to Jami. Further, add additional
calls to 'find_library' to make sure specified local paths for libjami
are checked before system-wide ones (in case of older/obsolete libjami
being available system-wide, which might happen on GNU/Linux systems).
* translations/lrc_*.ts: Import translation files from the libclient
repository. The message location paths were corrected by running
"sed -i 's|../src|&/libclient|g' lrc_*.ts" in 'translations/'.
.tx/config: Add section for the newly-imported libclient translations.
* CMakeLists.txt: Reformat, plus various fixes and cleanups, such as
changing indentation to 2 spaces and wrapping lines at 70 characters,
renaming the parent directory of translations from 'ring' to 'jami',
and using all lowercase function calls. Also add copyright headers.
* src/app/appsettingsmanager.cpp:
(AppSettingsManager::loadTranslations):
* src/app/utilsadapter.cpp (UtilsAdapter::supportedLang): Update to
adapt to the renaming of the parent directory of translations from
'ring' to 'jami'.
GitLab: #748
Change-Id: I86e3b0fb30e554755023e7b858b6a0d132cd59ab