+ Use Vulkan if we can create a Vulkan instance.
+ Log the window's effective graphics backend.
GitLab: #630
Change-Id: I1e114a3a7388b84766361afda351d1ea4a4c0322
+ Removes the console log management code which is present in jamid
using https://review.jami.net/c/jami-daemon/+/21251.
+ Adds back file logging which has been partially broken since
the log monitoring feature was added.
Change-Id: I07681b1c8d48702678596fbc302c21f87284b6e4
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
+ Refactors some window management logic in LayoutManagar.qml.
+ Refactors app start to support both a minimized start and a start
URI. The start URI should force visibility.
+ StartMinimized now starts the application in a closed-to-tray
state, instead of a minimized state.
+ The close-to-tray feature now saves the previous windowed state.
+ InstanceManager handles URI transfer to secondary instances.
This commit does not implement URI handling. The original
implementation supported only calls via a user infohash as the URI
parameter. A new and flexible protocol should be defined to support
multiple Jami features.
Gitlab: #655
Change-Id: I2c47028930e4e9d7ccca94d9362545df14b98160
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
Move installTranslator into the settings manager and add a settings
in the SystemSettings to be able to dynamically change the language
of jami-qt.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1342
Change-Id: I4f720fa50d5e313356dbdf1b8acb4e98d74401e4
The running instance may be ephemeral and end up discarded after being
checked by InstanceManager. In this case, we shouldn't initialize large
components.
Gitlab: #654
Change-Id: I30c7dcdba6a56ab3a1a84a9efd3424e266b6f6ce
Save virtual desktop geometry and window visibility state settings
and set them for the application window when loading.
Gitlab: #604
Change-Id: I053716d9c7b5d23e1bd7f33a1c41aedefb6cf9c8
remove useless isFullscreen (visibility already stores this and
it's not possible to go from fullscreen to minimized anyway).
Also --minimized was ignored
GitLab: #413
Change-Id: I610f17ce7ae5b2852aae5b40dc504174fa657c2d
Every models (like UtilsAdapter for example) owns a pointer of
LRCInstance. So, when the MainApplication is destroyed, the QmlEngine
and all structures owning a pointer of LRCInstance MUST be destroyed
before LRCInstance to avoid any segfault
GitLab: #631
Change-Id: Id30aaca325fe7172188bba468acd73525e62a34a
logs from the daemon should not be shown by default, but only in
debug mode, so makes --quiet usable, but only with --debug
Change-Id: Ia7da32e31e034650d184dfae06c9157e13102906
+ 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
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
gen-resources.py should be used to generate resources.qrc and
JamiResources.qml. Steps to add an image resource:
- add the resource file to the appropriate path under resources/
- run gen-resources.py
- use the newly available resource
Note: only icons and images will be represented by Qml properties.
The resource file generation may be made to run during CMake
configuration in a subsequent commit.
Some unused components were also removed during the refactor.
Gitlab: #477
Change-Id: I8e7f13d465031666be2bbadd5f29f9afc94d210d
1. Adjust QML main setup
2. Add resources.qrc for test and Qt Creator display
3. Change LRCInstance and ScreenInfo to QML Singletons
4. Move QML type registration entirely to qmlregister
Change-Id: I5c8a854173a2ec1f85ffa971707af262fa344505
Replaces live updates to the avatar preview when editing the alias
field on the profile page during account creation.
Gitlab: #466
Change-Id: I93dd4611949ab0e76f9cea78f9d7aaa1949daa13
Implements a leaner avatar caching system. The avatar component
listens for uid filtering its id, which may be:
- conversation id
- account id
- contact uri
In response to the uid change, a the image source is updated with
a new image url invoking a fresh QQuickImageProvider query. With
this design, only the avatarregistry's uid mapping needs to be
updated when profiles are changed, and no longer should specific
avatar components receive manual source updates.
Gitlab: #466
Change-Id: Ie5313f5c187a0977ca51b890dd92187480a42537
Note: other parts of the client, lrc, daemon, and scripts, use
muteDring still and should be changed to something more generic.
Change-Id: If9253d6bd8d53f379bc9d5209b49b0c3af92edc2
- use QString for interactionId
- swarm conversations: use loadConversationMessages and
subscribe to newMessagesAvailable signal
- avoid displaying "merge" and empty "data transfer" messages
- link composing status
Change-Id: Ic524bb786b2ff0471f03b1bb02d41d6da38e716a
On some desktop environments on GNU/Linux, left-clicking on the tray
icon does not execute the restore action. In some environments, such
as Ubuntu and some other GNOME-based environments, double-clicking the
icon does that, but that's counter-intuitive and not obvious at all to
the user. So, we add a 'Show Jami' menu item for the system tray
context menu, similar to how jami-gnome did, so the user can clearly
see it as a possible action.
Change-Id: I1e12ba02190c12cf40d293d61e1f023380fbfcf9
Only do so on non-Windows platforms, though; apparently this is not a
common pattern for desktop applications on Windows.
Change-Id: Ie1f8f4dd087d4e2798be4d102eb1d421fa9490f7
Also rename 'Exit' to 'Quit' in the tray icon context menu for
non-Windows platforms for more standard/consistent terminology.
Change-Id: Id39bd308f17e56466ffb6b9c4929789646334b5e
- correct translations (.qm) install path for cmake
- use JAMI_INSTALL_PREFIX to fetch translations
- create "share/ring/translations" inside build dir to store .qm files
Change-Id: I127cbad1d4b00a628d79e9654ed471f456a550e8
- in order to start the daemon, LRCInstance has to be initializated before rising the error and displaying the popup.
Gitlab: #245
Change-Id: I4a6cd4f38f5c93f65bc157e7d2ffff7f16e6aff8