1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-14 12:35:23 +02:00
Commit graph

52 commits

Author SHA1 Message Date
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
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
Sébastien Blin
0dd3a39721 conversationsadapter: do not listen to signals when in settings
Change-Id: Iba3e67431c817362c3242af9d56c8985c2e62534
Gitlab: #21
2020-09-03 13:59:50 -04:00
Sébastien Blin
def680ab6e chatview: avoid to refill model for new interactions
Change-Id: I80141d22295964d1a7d3571ea2bde6b2d74faf9c
Gitlab: #24
Gitlab: #57
2020-09-03 13:57:20 -04:00
Ming Rui Zhang
2c9c452b36 misc: replace non-exist updateSmartList function to setAccount
Change-Id: I692b11c88fbd4a957dfe9775ea44d63b8e34b190
2020-09-01 14:57:23 -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