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
This allow the swarm details page to be resizable.
Also adds the add members list into this view.
Presence and filtering for ContactPicker is also
fixed.
GitLab: #670
Change-Id: I4bf4369eba1d30dff3931575cd8ebd7eb2c7aee0
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
Components.onCompleted is not called after engine_->retranslate(),
causing the menu to not change. Doing a model for 4 buttons is
overkill, so just do the menu.
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1342
Change-Id: I412230cc2152948666e37fe11824ee347bf55644
Logic for fullscreen/windowed mode switching is scattered within
the main ApplicationWindow and other components. Ideally,
components that need to transition to fullscreen, can make a dumb
request to module in charge of making the necessary checks and
carrying out the mode change.
This patch introduces the LayoutManager used to isolate this logic.
Change-Id: I0e5b932617d2b88eda1533f25a5d55fc1c66c438
Dialog in Qt.labs.platform which is used to be native in Qt 5.15
cannnot be accessed in Qt 6.2 for now, use popup dialogs instead
1. Add tittle
2. DropShadow revisit
3. Dim properly
Change-Id: I8804ae0c30e3450c9a800d9a1c3946ff0bf44b46
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
Adds a new chat view footer to describe for read-only conversations
to describe the concept and provide options to remove the contact
or restart a new conversation with the contact.
Gitlab: #475
Change-Id: I6ca0e8dfbf49f17a6ff93a2744c552b76d923773
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
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
1. New emoji picker by customizing emoji.js
2. New message bar ui (textarea, buttons, tooltips)
3. New pending files transfer container
4. Use MaterialToolTip for all PushButton
Change-Id: I05d0531c65c019ced42b04668a780919c8a4fac3
- minor cosmetic changes to the call view overlay
- add the ability to change audio/video input during a call
from the call screen overlay
Gitlab: #411
Change-Id: Id6bbb2278d807f3bd7ad1478db405669088584ce
Unfortunately, QQuickMouseArea force accepts all move events by
design, which makes passthrough events tricky to catch. In-call
overlays for conference participants should be a layer below the
main overlay. So, using QML MouseAreas makes correctly implementing
both overlay fade mechanisms with passthrough for participant menus
too complex. To properly implement the signal relay mechanism we
would need to listen to all the child components with MouseAreas
and relay the positionChanged events to parenting MouseAreas.
To avoid the complexity, we can install an event filter for the
main overlay and listen to global mouse move events that are
contained in it's geometry.
Additionally, we can use Control components instead of transparent
Rectangles to access a hovered property which can be used to
prevent the fade out, and effectively freeze the visibility of menu
components.
Gitlab: #420
Gitlab: #421
Gitlab: #423
Change-Id: I7f05d2bc79ad6a8db0951b7b59e52f671fdf4798
Lrc verifies if we should call refuse or hangup, so now we can unify the call ending function in client.
GitLab: #408
Change-Id: I35f7ca282c6e49e669d849a140772600e501711a
Minor cosmetic changes to the account combo box, search bar, filter
tabs, and smartlist.
Change-Id: Ie8173504859b325374e42f0dbb4e0ae75f3ed740
Gitlab: #373
Gitlab: #374
Gitlab: #388
- remove some faulty hover state management, excessive text metrics
objects. Split the code up too and increase declarativeness.
- fix the rendering of account avatars in the dropdown list
- make the 'add account' item always visible
- make the popup modal with transparent overlay
Gitlab: #388
Change-Id: If0e5f95d1250ee77902c518469878bdb678c8b9d
Use a simpler fullscreen mechanism that maintains the primary
application window as a fullscreen container for the call view.
GitLab: #339
Change-Id: Ib67ac4798c77117aea0830eece485e229680684d