1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-28 18:53:22 +02:00
Commit graph

59 commits

Author SHA1 Message Date
Ming Rui Zhang
a31fb6c0d8 conversationsadapter: make conversation filter correct when rejecting invitations
Gitlab: #471

Change-Id: I00db0c43c76f46ab934a196df1896005d936f4ff
2021-07-15 15:03:33 -04:00
Sébastien Blin
d0b5667449 systray: change systray icon when we have notifications
Also use jami.svg for regular systray icon.

Change-Id: I6325c756d10216a017eb89042ab2f6ca0e988703
2021-07-14 17:13:45 -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
Sébastien Blin
96c0084c3b conversationsadapter: use convId from request
This fix notification's actions for the notification, finding the
correct convId.

GitLab: #455
Change-Id: I9b70f723eacd930f95c2eaf01ecd52b8c5d28313
2021-07-08 12:57:33 -04:00
Andreas Traczyk
712f2c3b30 smartlist: adjust draw/filter for swarm items
Removes profile type filter entirely. Treats swarm and non-swarm
differently when accessing role data.

depends on https://review.jami.net/c/ring-lrc/+/18656 for changes to
helper function names in conversation::Info

Change-Id: Ife69d4c70072ea524fed873136fd9ec39632d6d8
2021-07-06 14:38:29 -04:00
Sébastien Blin
a1de98c551 conversationsadapter: fix buttons for trust request notification
Change-Id: Ifa7ae09d5edc274a200fcf9d934ac27fe7c71956
GitLab: #455
2021-06-29 17:40:55 -04:00
Sébastien Blin
f74a00cbf1 smartlist: use title() to avoid to depends on contact
Change-Id: I18e50cc29ce4183a1d3c89f1e30f9ddb61248278
2021-06-29 17:40:32 -04:00
Sébastien Blin
6439832824 smartlist: show all swarm and draw items
Change-Id: Ib3e01a0af51736727b8056ed9eaa8ce9170c2d6c
GitLab: #438
2021-06-29 17:36:18 -04:00
Sébastien Blin
889ca51b64 conversationsadapter: fix build
conversationModel is a unique_ptr

Change-Id: If3f85387c3f322c83abe5921705ab6e8addf8373
2021-06-25 19:14:29 -04:00
Andreas Traczyk
0234fc6f94 conversations: respond to needsSyncingSet signal
When the needsSyncingSet signal is caught, we need to update the
UI to change filter tab, reload the conversation, etc.

Change-Id: I70170d75afa50acad6e79d53fcaeb82752c38e81
2021-06-25 17:29:00 -04:00
Andreas Traczyk
8409355e93 messagesadapter: use acceptConversationRequest api
To accept incoming requests, a new acceptConversationRequest api
should be used and makePermanent is now only called for outgoing
requests.

Change-Id: I70bcfc0e323ae250641420f4fda91c6987cac720
2021-06-25 17:28:52 -04:00
Andreas Traczyk
7529e2e3ec conversations: turn off request filter when switching accounts
Change-Id: Icbf4b20ae23360262d6ed0214101c8775ac9e9d8
2021-06-25 15:48:45 -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
Andreas Traczyk
392c423bc1 conversations: fix filter setting when a conversation is selected
Set the account and request filters separately.

Change-Id: Ib7d93caa4058e086d3cbcf39ac3fb9a30097aba1
2021-06-25 15:27:34 -04:00
Andreas Traczyk
85bbcf37d6 swarm: make conversation filters great again
PENDING profile is no longer a valid filter criteria. isReqeust is
now used instead and the profile type is restricted to account
types and tracked as a separate property.

Change-Id: I4848e32f005ea7a6a8b5f2fa25d40b7e1e4d63b8
2021-06-21 13:26:24 -04:00
Ming Rui Zhang
1e7f407e3c conversationsadapter: recover avatar update for conversations
1. Remove unused conversationSmartListModel
2. Properly update conversation model by using onProfileUpdated

Change-Id: I8d6f3a3a5fea2cee38258ca0cc5bd6ca6f447395
2021-06-16 16:31:27 -04:00
Ming Rui Zhang
cdaa3cfeed conversations: selection refinement for refuseInvitation and blockConversation
1. Decline invites now auto-select the next one and de-select the
   conversion when there are no more invites
2. Block conversations behaves the same as before

Gitlab: #402

Change-Id: Ibd3385e40cb2329d58ea90aa3347dfa4b66a4496
2021-06-11 17:53:08 -04:00
Sébastien Blin
f0675434b9 misc: fixes
Change-Id: I83161997e655cbb626f6577cedb53d3b67786c7f
2021-06-11 17:50:47 -04:00
Sébastien Blin
11119e51f6 userprofile: add isSwarm to profile
Change-Id: I6504c20cba5b51d54d0e9947c2303108f2a2161d
2021-06-11 17:48:32 -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
Andreas Traczyk
8230fb863c adapters: handle injecting lrcinstance with zero accounts
Change-Id: I1ec652c60620cf4e7e1caad7fd00ddf1aa40d64d
2021-05-10 16:31:55 -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
de261df86f conversationadapter: use slots instead of lambdas
The UniqueConnections need slots to compare bindings. Also, member
functions are cleaner and easier to debug than lambdas.

Change-Id: I16ae3882e0f5ff0b92d1ca6c7ce383e5ceef8a79
2021-04-27 12:14:52 -04:00
Andreas Traczyk
946491a596 conversationsadapter: replace signal reconnect with unique connect
Change-Id: I34b1dca62ad5b28b49ddf319c4ea9724efd66b21
2021-04-19 10:39:25 -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
7f28ac65df notifications: add avatars to gnu/linux notifications
Gitlab: #320
Change-Id: Ib2121257af2704dd2a246b499961657b66ae944d
2021-04-07 16:06:59 -04:00
Andreas Traczyk
2cc82053c9 notifications: implement libnotify on gnu/linux
Gitlab: #320
Change-Id: I39ffd7e0ba8c5160e81a6b64260f3d92ab8c619a
2021-04-07 16:06:05 -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
ababi
d84219c6b4 misc: revise and catch exceptions thrown from lrc
Change-Id: I0e28f20ecb017267e74ef76fb922443e15e896e8
Gitlab: #308
2021-03-26 14:44:52 -04:00
ababi
dfbcfe03fc smartlist: avoid updating smartlist on conversationRemoved
Accessing smartlist on conversationRemoved can return invalid
items. Instead, only show welcome view and use modelChanged signal
for updating smartlist.

Also avoid duplicate navigation to welcome view.

Gitlab: #300

Change-Id: Ic1c192fecceeb59287267e3445fabf6afb91ffd5
2021-03-26 11:04:34 -04:00
ababi
59c8a75cc3 callview: fix conversation selection when call ends
- avoid using smartlist index change for conversation selection
when call ends (instead it can be triggered from calladapter)
- break long lines

Gitlab: #260

Change-Id: Iaa1f9269d9ba6889fb1a7e466cd586fa86263bc7
2021-03-26 10:41:20 -04:00
Ming Rui Zhang
7951764b2e misc: remove LRC singleton
GitLab: #337

Change-Id: Ifb671d38d364714818650a8154c43a5787460039
2021-03-22 15:47:14 -05: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
768ea9d601 refactor: use ApplicationWindow as the main entry point
Change-Id: I5e298e51fdc4099f0380d8a2ce2176cd66070eed
2020-12-11 17:07:10 -05:00
Ming Rui Zhang
be1419c0a6 wizardview: adapt the added best name and id logic in lrc
Note: if the Displayname/alias is the same as the username,
      it should be the only line shown

Gitlab: #129
Change-Id: I2c3dc8d304bd730a2ae114e4686c9ae899087c6b
2020-10-30 11:35:47 -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
Andreas Traczyk
66b9dd823d conversations: prevent account reselection on filterChanged event
Change-Id: Iab0a6a2316ccc3529829e9ff9cdd3ca643ccdac2
2020-10-21 15:23:26 -04:00
Andreas Traczyk
28e40f88da smartlist: select top item when return is pressed during a search
- fixes index change on re-filtering

Change-Id: I08c32857600c5f3930967a98756a3c4b8b63fe64
2020-10-15 17:06:28 -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
8a064c3a64 chatview: acquire message input focus when selecting conversation
Change-Id: I0f4ad161f0f05959c4f5a312e92f256b56c9fd57
Gitlab: #107
2020-09-29 16:34:08 -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
ababi
5f869b589f misc: avoid using magic numbers
- register SmartListModel
- acces to AccountListModel and SmartListModel registered enumerations

Change-Id: Idbc943a3b6a6f2989be7d20f5fe4259402a5adeb
2020-09-23 03:15:01 -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
Ming Rui Zhang
4e01784158 mainview: change settings responsive behavior and stacklayout page arrangement
Change-Id: I3f7e2050be74cd8cc9f6d732cc96b0f218cd1676
2020-09-16 16:40:40 -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