1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-06-05 16:56:05 +02:00
Commit graph

84 commits

Author SHA1 Message Date
Amin Bandali
c7fdf3ff30 misc: move application sources from 'src/' to 'src/app/'
In preparation for vendoring libjamiclient into 'src/libclient/'.

GitLab: #734
Change-Id: Ibd956abc8fe9bd454ac0e9a5a28b77a5a74174e7
2022-05-19 15:47:30 -04:00
kkostiuk
3f88ceda93 build: add option to build without Qt WebEngine
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
2022-05-03 10:11:21 -04:00
agsantos
77d8cc758d account settings: add plugins
GitLab: #539

Change-Id: I49dd030bc4e80fe30bcf7259777a2527ebd25fe2
2022-04-26 09:27:11 -04:00
Sébastien Blin
1403e8dd7d chatview: implement ContactMessageDelegate
GitLab: #670
Change-Id: Iab928c87f409713f867d47a2f87e53537af444b5
2022-03-23 15:09:11 -04:00
Sébastien Blin
c52d288c76 messagesadapter: add kick member
GitLab: #340
Change-Id: I4cfdc6392c8b6de573f8d4471b7b5501f393379b
2022-03-23 13:50:53 -04:00
Sébastien Blin
76896e7971
chatview: add the swarm details page in a stackview
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
2022-03-23 13:45:32 -04:00
Sébastien Blin
55daffe328 misc: introduces EditableLineEdit
GitLab: #685
Change-Id: I6c284150b18ea7a866b063411b25e50f3afae559
2022-03-23 12:46:14 -04:00
Sébastien Blin
3f18e6edbc
conversation: add swarm pages
GitLab: #340
Change-Id: I4a4ebfbebb880161e93fc0a086eec13ffb1ba285
2022-03-23 12:45:51 -04:00
Andreas Traczyk
e7cc0497ce video: use QVideoSink/VideoOutput and QVideoFrame instead of QImage
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
2022-03-08 11:49:43 -05:00
Sébastien Blin
07b05f0123 settingsmenu: make it dynamically translatable
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
2022-02-01 10:00:19 -05:00
Andreas Traczyk
b0fd803245 mainapplication: isolate window mode logic in a top-level component
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
2022-01-11 09:49:01 -05:00
Ming Rui Zhang
da18924f90 misc: add KeyboardShortcutTable back
Change-Id: Iee0e9c955b426de4a7d757a3bc892287761265ca
2021-12-21 14:21:36 -05:00
Ming Rui Zhang
1b259f9a2b settingsview: ui fixes
1. JamiSwitch add tooltip (wip)
2. PushButton add preferredHeight/preferredWidth (bug?)
3. UsernameLineEdit use ResponsiveImage
4. SettingsView fix settings menu
5. Move LogsView to window
6. ToggleSwitch use JamiSwitch

Change-Id: I07a455639e88550a7f0e40963550f8f842827370
2021-12-21 14:21:36 -05:00
Ming Rui Zhang
5b267c9a46 dialog: use popup dialogs to replace the existing Qt.labs.platform ones
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
2021-12-21 14:21:36 -05:00
Ming Rui Zhang
3c7d03220f accountMigration: use the existing loader mechanism to avoid crash
1. Avoid direct window declaration under ApplicationWindow
2. UI refactor

Change-Id: I7991e22d3f85b1c17d85475000ab8b8c2fbc3391
2021-12-21 14:21:36 -05:00
Ming Rui Zhang
be41f0e7a6 misc: Qt 6.2.0 initial migration
Remove unsupported QtQuick One component and it will be
added back in the following patches

Change-Id: Iad206a880096cf956a4220a81dca85a993721fbd
2021-12-21 14:21:36 -05:00
Sébastien Blin
f69df3416c messages: add read receipt support
Change-Id: Ide4b1336a13972a9291cb1e9e2bf881b32b97198
GitLab: #468
2021-11-04 13:35:55 -04:00
Sébastien Blin
4bfe269029
datatransfer: add context menu to open location, export to downloads
Change-Id: I90fcbc735f084ab37abfa3b466b97cf56c640247
2021-10-27 16:38:46 -04:00
Ming Rui Zhang
3185df0837
messageListView: add typing indicator
Gitlab: #552

Change-Id: I0a4dc3b61a22aafb40d8a301033c59d2cc02bc79
2021-10-21 10:34:50 -04:00
Ming Rui Zhang
fa313b002c messageListView: add ScrollToBottomButton
Gitlab: #551

Change-Id: Iea2d90248a8c16cf96d9e97f72bdf98e0f6f13a0
2021-10-07 14:29:41 -04:00
Ming Rui Zhang
44fdbb8378 messages: divide up MessageDelegate and use DelegateChooser
1. GeneratedMessageDelegate, TextMessageDelegate and
   DataTransferMessageDelegate
2. DelegateChooser in MessageListView

Change-Id: I5a3718f59e74b3499afc4abfa2826bab6cf442c8
2021-10-06 15:57:56 -04:00
Andreas Traczyk
e85d4506de chatview: implement side-by-side styling
+ fix multiline richtext
+ add SBS msg bubbles
+ limit timestamp visibility
+ render link previews
+ render data transfer interactions

Gitlab: #467
Change-Id: I80b6db33d786180d479730213855b9816bea4793
2021-10-06 15:55:24 -04:00
Sébastien Blin
fe9745ce23 messagewebviewheader: clean code
+ Change name to ChatviewHeader as no webview
+ Avoid anchors hell and use a RowLayout

Change-Id: Iff4bbeabc70cfa496a7a208ee5da0c9ea1b6ff08
2021-10-06 15:51:59 -04:00
Trevor Tabah
2e67dc1bd8 chatview: replace web chat view with qml listview
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
2021-10-06 15:51:20 -04:00
Andreas Traczyk
53c1c4b83b misc: remove VideoCallPageContextMenuDeviceItem(unused)
Change-Id: I42d84f9e80e87f5e17ed5e1c40811009660fdf8b
2021-08-23 18:46:17 -04:00
Andreas Traczyk
a45754ed8c conversations: provide descriptive help banner for read-only convs
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
2021-08-13 10:21:15 -04:00
Sébastien Blin
7531305be2 account: add support for sendReadReceipt
Change-Id: Iba44d7b7618c61db01d37477aee0a73ead094ca8
GitLab: https://git.jami.net/savoirfairelinux/ring-daemon/-/issues/599
2021-08-09 09:30:27 -04:00
Ming Rui Zhang
576da3e087 wizardview: add key navigations
Gitlab: #470

Change-Id: I2ec5c4a4b490895ea32fef64baf1e7c5b85cf9d5
2021-08-05 12:48:04 -04:00
Ming Rui Zhang
234ee7a2e9 wizardview: refactor account creation ui and enhance flow
1. Use MaterialToolTip in MaterialButton
2. Add BubbleLabel and BackButton
3. Add WizardViewStepModel
4. Focus re-visit

Gitlab: #470

Change-Id: I818da76c4b97cb08d2b6df6b2c8e2752d7a522f2
2021-07-29 10:48:39 -04:00
Andreas Traczyk
1a61af02f3 resources: remove unused images and icons
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
2021-07-20 21:57:27 -04:00
Sébastien Blin
417a0fe042 generalsettings: add file transfer settings
+ Auto accept files from trusted sources (default: true)
+ Auto accept files from untrusted sources (default: false)
+ Size limit (default: 20Mb)

Change-Id: I0e1068e3996786b23ba9a7797d02b7f8bb0f89d1
GitLab: #160
2021-07-14 10:20:07 -04:00
Ming Rui Zhang
b3d853a0d1 messagewebview: QML invition page implementation
Gitlab: #469

Change-Id: I661185530ee3703527fd85a7022b42a3bcb7f579
2021-07-12 17:42:30 -04:00
Andreas Traczyk
4bda330637 swarm: simplify and update avatar update mechanism
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
2021-07-12 17:29:48 -04:00
Ming Rui Zhang
f8d5ab7fe7 messagewebview: chatview message bar qml replacement - logic completion
Functionalities checklist:
  1. Emoji picker refinement
  2. DropArea on messageWebView
  3. Record box
  4. Send message button visibility
  5. TextArea paste (can paste image, files directly)
  6. TextArea content draft
  7. TextArea - Enter key -> Send message
  8. TextArea - Shift + Enter key -> New line
  9. TextArea - Composing indicator
  10. TextArea - Placeholder text

Change-Id: I115ad2927b74264dd396aa55b77a8f003dcd746b
2021-07-09 12:04:32 -04:00
Ming Rui Zhang
14620f8bc8 messagewebview: chatview message bar qml replacement - ui
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
2021-07-09 10:06:42 -04:00
Andreas Traczyk
767f1003a2 participant-controls: refactor menu layouts
Gitlab: #441
Change-Id: I1d34c7e766d73026d4c6617592a85ce3a75cc4fa
2021-06-02 17:58:23 -04:00
Ming Rui Zhang
e1fbb3a7d4 misc: refinement for various context menus and share actions
Change-Id: I4e6fff2c74ce6ace1464fa6a4569e4b3fbfae68b
2021-06-01 14:11:44 -04:00
Trevor Tabah
3142776c32 settings: add troubleshooting dialog
Add a dialog to get logs from daemon.

Gitlab: #406
Change-Id: I25dd7084165660e0a03c4694d0225bbcf0f1a9d6
2021-05-28 14:46:03 -04:00
Ming Rui Zhang
77aae84786 call: add call status indicator when adding new participants into a conference
Gitlab: #410

Change-Id: Iff3b06b123363478794fd7e419db3d2d0ae10bb7
2021-05-27 17:21:55 -04:00
Andreas Traczyk
abde3cbac0 calloverlay: implement new action button design
- 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
2021-05-27 13:58:29 -04:00
Andreas Traczyk
3cca2e7078 calloverlays: cleanup main and participant fadeout mechanisms
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
2021-05-26 16:15:50 -04:00
agsantos
580f0f2d4c callview: squash audio and video ongoing views
some callstack cleanup

GitLab: #414
Change-Id: Id746e9f1085959103f5774266ffa17d2669871f7
2021-05-25 09:28:27 -04:00
agsantos
9f155d9922 callview: redesign changes in incoming and outcoming call views
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
2021-05-25 09:20:29 -04:00
Andreas Traczyk
e64a9e7ee7 sidepanel: improve smartlist interface with underlying models
Minor cosmetic changes to the account combo box, search bar, filter
tabs, and smartlist.

Change-Id: Ie8173504859b325374e42f0dbb4e0ae75f3ed740
Gitlab: #373
Gitlab: #374
Gitlab: #388
2021-05-07 15:41:28 -04:00
Andreas Traczyk
0d6d94d124 accountcombobox: cleanup and simplify qml layer
- 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
2021-05-06 14:39:09 -04:00
Andreas Traczyk
9741f326a5 smartlist: refactor filter tab QML
- remove some code duplication and MouseAreas

Change-Id: I2650aa94d302ab53dd7f389077f20d0ed3a62abd
Gitlab: #241
2021-04-22 12:05:54 -04:00
Andreas Traczyk
3f476205fa misc: change application fullscreen mechanism
Use a simpler fullscreen mechanism that maintains the primary
application window as a fullscreen container for the call view.

GitLab: #339
Change-Id: Ib67ac4798c77117aea0830eece485e229680684d
2021-04-15 13:40:58 -04:00
Andreas Traczyk
ac87d33d9f misc: put lrcinstance implementation into cpp file
Change-Id: I46c4e17124b2c0cbf6e92c696d3d47e1b0ad2d0d
2021-04-09 16:00:33 -04:00
Ming Rui Zhang
9843980c56 linkeddevice: ui refinement and remove infoLineEdit
Gitlab: #359

Change-Id: I996caeca53eb71baa5127f2f32b5b97681a6002d
2021-04-07 15:49:44 -04:00
Ming Rui Zhang
0af0f47fe2 textedit: add missing context menus for text entry fields
Gitlab: #359

Change-Id: Iefe2dbde96e0613540b237571997c456231bb78c
2021-04-07 15:49:44 -04:00