1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-25 18:05:34 +02:00
Commit graph

50 commits

Author SHA1 Message Date
Ming Rui Zhang
e0737f4b70 settings: refactor for SettingsView - stage two
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
2021-09-14 16:52:45 -04:00
Ming Rui Zhang
a196513d2e settings: refactor for SettingsView - stage one
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
2021-09-14 16:52:30 -04:00
Ming Rui Zhang
66edc82b82 settingsview: LinkedDevices view refactor
1. Remove deviceModel from AccountAdapter
2. Use QSortFilterProxyModel to make sure that
   current device is always on top and the rest are
   in alphabetical order
3. Elide device name properly in DeviceItemDelegate

Change-Id: Ic66a11fb4a4a8cca65916653e0981b15c939bce6
2021-08-30 11:45:17 -04:00
Ming Rui Zhang
95315ce608 adapter: move bannedStatusChanged connection out from redundant safeInit
Gitlab: #492

Change-Id: I8bab7bc1cd1f5bdbf7c6c54e615a21690dad1585
2021-08-30 11:45:14 -04:00
Ming Rui Zhang
bbdecfaa9b wizardview: add tests & small issue fixes
1. Move accountStatusChanged and profileUpdated signals
   out from safeInit.
2. Add interrupter concept into Utils::oneShotConnect
   to avoid oneShotConnect being triggered after.
3. Add varieties of tests for wizardview including
   accounts creation tests (SIP, Jami, Rendezvous, Backup)
4. Remove uncleared stackLayoutIndex

Gitlab: #470

Change-Id: I22c04811110b277eee53610f4ae34c924316a20a
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
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
Andreas Traczyk
285316dd32 lrcinstance: remove custom setter/getter for currentAccountId
Using a custom getter setter cause the setting of the value to
require manual changed signal emission and in addition to being
error prone, this prevents the changed signal from being emitted
upon initial selection. Some excess workaround code may be removed
in following commits.

This patch also refactors the banned contact signaling as part of
an accountadapter connection cleanup.

Change-Id: I73fb751001e53e086adc7a6a8d706671c2878a77
2021-07-09 15:11:27 -04:00
Andreas Traczyk
83bb6fb082 conversations: refactor list reselection when making permanent
This should fix a race condition preventing the right conversation
from being selected after an outgoing interaction and, more rarely,
accepting an invitation.

Change-Id: Iccd1f91ba4d46285c2f1e4594122a736824b752f
2021-06-25 15:27:41 -04:00
Sébastien Blin
3d71bfa8ae swarm: first implementation to follow api changes
- 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
2021-06-11 17:47:27 -04:00
Ming Rui Zhang
9d0f84d8be accountadapter: move current account id and type properties to lrcinstance
Change-Id: I609452e83edd55a909d0f30aa6cb0daa3687ff3c
2021-05-14 15:05:20 -04:00
Ming Rui Zhang
9a5afd3918 accountcombobox: use QSortFilterProxyModel to filter out current account
Gitlab: #405

Change-Id: I364d7945739ef45319e0bb7834075ac52ec5c009
2021-05-11 14:56:30 -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
cfa10ce268 calls: fix call overlay updates
- don't query the recording state in the set time text function
- change set time text function interval from 20ms to 1000ms
- stop the account-wide time text update timer when there are
  no calls

Change-Id: Iaaabfd52a50ba61aaabade59cae4f061c562cb2d
2021-04-09 16:00:51 -04:00
Andreas Traczyk
cc3931b36e lrcinstance: represent the selected conversation as a QML property
Change-Id: I01dbfc0d6cfcf407d6636ba59b136830ee0342bc
2021-04-09 16:00:43 -04:00
Andreas Traczyk
2cc82053c9 notifications: implement libnotify on gnu/linux
Gitlab: #320
Change-Id: I39ffd7e0ba8c5160e81a6b64260f3d92ab8c619a
2021-04-07 16:06:05 -04:00
Sébastien Blin
12daccb51f
accountadapter: do not set incorrect ringtone on creation
On GNU/Linux, the ringtone is managed by the deamon. No need to
manage it (incorrectly) in the client

Change-Id: I38fe783d6bd0778f702ee6da333468c54d59d678
GitLab: #351
2021-04-06 15:38:49 -04:00
Mingrui Zhang
2e60568307 project: don't use Qt keywords for signal/slot/emit
Gitlab: #320
Change-Id: Ia2a16a05be3fd6452a39df999660a5c8440eea13
2021-04-02 15:37:43 -04:00
Andreas Traczyk
4ce208ec33 injection: remove the remaining c++ singleton classes
- refactor qml object registration
- inject AppSettingsManager and SystemTray

Gitlab: #320
Change-Id: Ic8232a290003245d09ad9452c9f5518fd260af78
2021-04-02 15:37:33 -04:00
Andreas Traczyk
e60eeff357 injection: place parent QObject as last parameter in ctors
Lrc object injection should never be a null pointer.

Change-Id: Ib574c751673fd35e223ce2447cee74bce7dfbf3e
Gitlab: #337
2021-04-02 15:37:33 -04:00
Ming Rui Zhang
7951764b2e misc: remove LRC singleton
GitLab: #337

Change-Id: Ifb671d38d364714818650a8154c43a5787460039
2021-03-22 15:47:14 -05:00
Ming Rui Zhang
9c073f6327 accountadapter: respond to profileUpdated signals
Gitlab: #297

Change-Id: Iaff41075edc683bd976ff69cfd8f7a80547771cc
2021-03-02 14:31:51 -05:00
ababi
7450350348 settings: add support for default and local moderators
- add configurable list of default moderators
- add option for enabling local moderators
- indicate when participant is locally muted on moderation overlay
- small typo fixes

Change-Id: I1669c903be3c3a3f2344f1d95d8b618e62b9d412
2021-01-15 18:37:18 +01:00
Mingrui Zhang
9ef94561a5 lrc: avoid excessive copying of conversation info objects
1. Container View api
2. use optional conversation info ref api

Change-Id: I38aa57edc1fbf304ea0ef95d48000e0495c409ee
2021-01-07 14:09:31 -05:00
Ming Rui Zhang
d61a9a9da9 misc: prevent inconsistent include path
Gitlab: #229

Change-Id: I4c9188f7406b790f87d19413a3a4a4d6ac904719
2020-12-30 15:07:29 -05:00
Andreas Traczyk
c472fe83ae video: fix rendering on linux
Change-Id: If6a2deda08663f7edf9fa527bc1c592f60e6a371
2020-12-10 09:46:52 -05:00
Ming Rui Zhang
0de0f6ecb0 avatar: save the original source of the avatar instead of the cropped
Change-Id: I0e92189f9661ada19ae62025a3114541e41ea587
2020-12-07 17:17:48 -05:00
Ming Rui Zhang
f62a36ac54 wizardview: make user avatar in profile page change accordingly
Gitlab: #161
Change-Id: I79d8f5e28f2025bd685ea760cd813eeca2e60c8b
2020-11-18 13:49:21 -05:00
Ming Rui Zhang
1ab09e4af9 settings: use route set in account config to save SIP account proxy option
Change-Id: I95b0c80968c51e22662a0c0187adfe07fff1584c
2020-11-18 11:25:26 -05:00
Ming Rui Zhang
f47ae0fa62 settingsview: fix banned contact list model refresh issue
A small fix to prevent username registration line edit receiving
signal when there is no input is also in since adding banned contact
back will trigger lookupAddress.

Gitlab: #152
Change-Id: I30afb42eab5903aefb7dd19e9f7a5ad77183e866
2020-10-30 11:35:50 -04:00
Ming Rui Zhang
173cf2be50 migration: use image provider to show avatar image
1. Use avatarimageprovider
2. Remove redundant base64 code

Change-Id: I2a2517890e95b4a9f9a363fbea2251d6d5dd1c8f
2020-10-30 11:35:39 -04:00
ababi
95df47c717 misc: fix contact request UI issues
- switch between "conversations" - "invitations" smartlists according to call origin
- "Accept Request" button from msg's view header: hide on contact accepted, set on view load according to userType
- correct requests smartlist item selection on tab switch
- accept incoming call from pending contact makes conversation permanent

Gitlab: #74

Change-Id: Iadfef0d7e4032002d8007a4f18a9eae27f7ba230
2020-10-07 17:06:13 -04:00
ababi
2df280c3fb mainview: UI call management refactor
- AccountAdapter::navigateToWelcomePageRequired is no longer required since subscription to property change in QML
- avoid unnecessary CallAdapter signals for UI management. Listen to BehaviorController and avoid duplicated / unnecessary signals.
- avoid duplicated code:
  - account selection only in AccountAdapter::changeAccount and ConversationsAdapter::selectConversation
  - simplification of ConversationsAdapter::selectConversation
  - conversation UI always managed by ConversationsAdapter -> ConversationSmartListItemDelegate
- smartlistmodel: no need to show callstack for outgoing calls in state ENDED

Gitlab: #86
Gitlab: #87
Gitlab: #88

Change-Id: I7025d4292914939f5a78aee1c4742104b370641d
2020-10-07 17:06:13 -04:00
Andreas Traczyk
4fd0c33450 avsettings: use a more declarative approach for the level meter
- prevents a slurry of calls to stop/startAudioMeter

Gitlab: #120
Gitlab: #124
Change-Id: I6118baab1a3f3e08e72a60a35682ce753e05e2eb
2020-10-02 13:43:52 -04:00
Ming Rui Zhang
b869a34a48 misc: fix qml warnings
1. When there is no contact, some properties in smart list view could be null
2. When creating new accounts from no accounts, adding a new contact and
   switch accounts will cause "Contact out of range". This is caused by
   smartlist model account id does not update at that time. Instead,
   use current account id always.

Change-Id: Ic42ec33c4932908caff2ebca2814903f95c12a10
2020-09-26 10:51:02 -04:00
Andreas Traczyk
87a4602b9a notifications: implement incoming message notifications
- Note: adds forcing the main window to the top to overcome a
  Qt/QML bug which prevents this from working when activating
  from a notification window source.

Change-Id: Ib5a93d3937fe5a4de0229f7aeae8469d1ffdfba3
2020-09-17 17:32:40 -04:00
Sébastien Blin
3e1f151f83 rendezvous: add option to create rendez-vous in wizard
Change-Id: I766c5bf59b86d1d1b728c0c270f50839aed1d50c
2020-09-11 15:59:32 -04:00
Andreas Traczyk
eacf5bb458 misc: apply clang-formatting
Change-Id: I9d2ec496aa8d6cc0a41f9096ad153308c3308e8b
2020-09-10 18:00:08 -04:00
Andreas Traczyk
ae058405a5 qml interop: remove clientwrapper
The clientwrapper class masks granular object registration within
qml, and encourages code duplication between viewmodels(adapters)
and code lasagnafication and the misuse of declarative Qml.

Change-Id: I85fef214363e62e54fc0681282323ea4861000d6
Gitlab: #66
2020-09-10 14:55:07 -04:00
Andreas Traczyk
88816940fb qml interop: refactor and remove utilsadapter from clientwrapper
- Separate utilsadapter into files and expose it to Qml so it can
  be used without passing through clientwrapper.

Change-Id: I7c351d7191cd166521b6e0a685ea9d4a9731f165
Gitlab: #66
2020-09-10 14:54:58 -04:00
Ming Rui Zhang
2e0e250a2c wizardview: logic refinement for account creation and minor UI changes
1. Add spinner button and logic when waitting for account created to
prevent reclicking the buttons

2. Add back button when creating accounts in main view.

3. Fix the look up username bug

4. Change some buttons to blue styled

5. Change back button to back arrow

6. Add autofocus when entering certain page

Gitlab: #59
Change-Id: I3cada8c07a6605f091001db75a2913cde379c41b
2020-09-10 14:12:17 -04:00
Andreas Traczyk
eb53a622b7 qml interop: start replacing QMetaObject::invokeMethod with signals
It seems concurrent calls to invokeMethod using qml component
object pointers can lead to access violations. These method
invocations can be replaced with a signal/slot mechanism.

This patch replaces only the invocations in conversationsadapter
and accountsadapter that are known to be problematic for now.

Some code cleanup is done for QmlAdapterBase derived classes.

Gitlab: #61
Change-Id: I72f47c9229a9bf42299ae52822c3a1a8c04eb423
2020-09-03 16:25:59 -04:00
Andreas Traczyk
84dec083e2
mainview: support close to systray
- Introduces a C++/Qml common mechanic for accessing system settings
- Refactors a good chunk of application wide settings management code
- Refactors the onboarding and quit-suppression logic
- Makes a first stab at cleaning the Qml object registration
- Removes some 'ClientWrapper' use
- Fixes some file name spelling errors and inconsistencies

Gitlab: #51
Gitlab: #53
Change-Id: I3dd1085aca72a38827ec004e347bd91106be2bcb
2020-09-03 12:23:14 -04:00
Sébastien Blin
acb1cf0c00 settingsview: fix alignments and homogeneize items
Change-Id: I8ea60715a14b481da5c4d4d0078dc8de7df28eec
2020-09-01 15:03:32 -04:00
Ming Rui Zhang
b07f7afe92 mainview: fix crash when deleting account
Fix the deletion crash issue and remove redundant account changed
signals.

Gitlab: #17
Change-Id: I1858fa051fd5171e1261dbc35d361631dc3ea01d
2020-08-28 12:35:26 -04:00
ababi
69f5dfcd2a mainview: fix account selection
- avoid duplicate call of LRC's setTopAccount()
- welcome view displays always the first account on the list, so passing the index is not necessary
- conversationsadapter and messagesadapter no longer listen to currentAccountChanged signal since there is a specific function for the setup

Gitlab: #12
Change-Id: Iac932d2596bf59c7528d83be799342ccefeea6b0
2020-08-27 18:51:06 -04:00
ababi
0b68664220 conversations: support new APIs for user search
Gitlab: #4
Change-Id: I7570099c20d2d406e538aea4c366ba7d85777686
2020-08-25 09:35:39 +02:00
Yang Wang
c2ea0b1f94 setting: fix hardware accel crash
Change-Id: If001b758642fc8a1289506760650997dd9b20462
2020-08-24 11:21:12 -04:00
Sébastien Blin
1f91576a0b
client-qml: add initial commit
Change-Id: I32bfdd2a618aa7ac6181da2697e241667b010aab
2020-08-03 13:27:42 -04:00