- 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
This patch allows building the project without Qt WebEngine, by
disabling (for the time being) the features that depend on it:
the emoji picker, link previews, and media file previews in the
chatview.
Co-authored-by: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com>
Co-authored-by: Amin Bandali <amin.bandali@savoirfairelinux.com>
Change-Id: I74751b0cc6f22c61a6fd7281ca3207e0fdbb2212
+ Use Vulkan if we can create a Vulkan instance.
+ Log the window's effective graphics backend.
GitLab: #630
Change-Id: I1e114a3a7388b84766361afda351d1ea4a4c0322
Removes the rendermanager and framewrapper objects along with any
QQuickPaintedItem-based QML render widget classes. This simplifies
the video widget stack implementation.
The new mechanism uses the VideoOutput component of QtMultimedia.
By accessing the VideoOutput's QVideoSink object, we update the
mapped buffer data of a sink's QVideoFrame when new frames are
published. Updates to frames and component sink subscriptions are
managed by a new class called VideoProvider.
Gitlab: #500
Also https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/536
Change-Id: I2391a32294922ea435ab80ac1f876c004ff6c21e
- fix translations path
- generate .lproj folders for supported languages to be recognized by
QLocale. https://bugreports.qt.io/browse/QTBUG-72491
Gitlab: #578
Change-Id: Ic4c3b74c654a1c00de71c31c9debe397990870f7
Sometimes deploy failed with qmlimportscanner error. For better
control macdeployqt will be called manually for release
builds.
Gitlab: #578
Change-Id: Ic3a781cb4680499bbb7e479e31764f3f35e29800
To coordinate the MSI installer with Jami's close-to-tray feature,
a custom action was used to kill QtWebEngineProcess and Jami, prior
to the file installation step. The close-to-tray feature makes it
so the only way to terminate the app is via the systray context
menu.
This patch harnesses the IPC mechanism used by the run-guard, and
adds a command-line option('--term') used to signal the secondary
process and provoke graceful termination.
The benefits are:
- the app can save data before closing
- system tray icons aren't left dangling after updates
- QtWebEngineProcess is guaranteed to be terminated during install
Gitlab: #654
Gitlab: #543
Change-Id: I79421eeab49c9ec0826010af99a364471bb81d1a
+ Check early for Qt6 and remove module list duplication.
+ Add qrencode-win32 as a submodule. Remove unused libqrencode
submodule(GNU/Linux and macOS use package dependencies).
+ Remove unused ReleaseCompile option.
REQUIRES adjustments to:
- https://jenkins.jami.net/view/clients/job/client-qt-msvc-tests
(JenkinsFile ??)
Gitlab: #601
Change-Id: Ied65c9aaead86009d70f68705f8592950dab2dfa
FindPython3 sets a different variable than the old FindPythonInterp,
namely it sets Python3_EXECUTABLE instead of PYTHON_EXECUTABLE.
Change-Id: I423bf0b9eb68d9fea42f8f51b72154a01449f095
This reverts commit a2e8238be5.
Reason for revert: breaks build on systems that symlink
/usr/bin/python to Python 2 rather than Python 3 -- for example,
Ubuntu 18.04.
Change-Id: Ia58fb4d9b337e65d0a7118ecbaa7e22e4b4619c2
Introduces a primitive QML ListView based chat view lacking
features present in the previous web chat view, that will be added
in subsequent commits(styling, preview/media/link/file-transfer
message type support, etc.).
Gitlab: #467
Change-Id: Iedc40f6172a6cdacc48cda6f4187053fbf226713
1. Remove redundant functions in AvAdapter
2. Add CurrentDevice for video device treatment
Audio device treatment should be improved in the next
stage
3. Add QSortFilterProxyModel to all video list models and
manage them together to avoid redundant function calls
4. Video device call action should be responsive to device
change as well
Gitlab: #508
Change-Id: I3df949a08bc19042b73f033139cd6ab06925c0b6
1. Add account config QML properties and use them
in settings directly to avoid manual update
2. Rough clean up for video/audio settings
3. Remove settingsAdapter entirely and split the
responsibility
Change-Id: Icf81b91d5a3a0dd9f2a52824159cd222367b801f
First I added glib to cmake this fixed the glib.h not found error.
Then I got build errors from the missing GIO include as seen in the linked issue.
After adding the #include <gio/gio.h> the linker failed to find the gio library.
After adding the gio check to cmake all build issues were solved.
GitLab: #504
Change-Id: Iac537e10261f2e9dfa61029c4591e000851a378c
Provides observable property representations of a conversation info
structure. Is updated when the selected conversation Id changes.
This object is only exposed in this commit, and will be used in
subsequent commits to introduce a more declarative approach in the
UI code.
Change-Id: I25be0f6b82cf9341b67fbf04fdeb04bffbf8ab24