1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-14 11:45:40 +02:00
Commit graph

257 commits

Author SHA1 Message Date
Andreas
a194e86d7a screenshare: fix bug on certain wayland systems
Fixed logic error which was causing screen sharing to stop working on certain Wayland environments.

GitLab: #1676

Change-Id: Idf3beb97a53d2eb88e082cee710be56c90c6df05
2024-09-26 21:34:39 -04:00
François-Simon Fauteux-Chapleau
7243b10e81 interaction: move Info implementation to a cpp file
This fixes the no-libwrap build, which was broken by commit
96c00ff019 due to an additional header
file included in interaction.h

GitLab: #1828
Change-Id: Ic3490a64fdc1514e0b6533a380cb7115568ae9f1
2024-08-23 11:13:30 -04:00
François-Simon Fauteux-Chapleau
96c00ff019 interaction: set body and transferStatus of DATA_TRANSFER messages
This patch adds code in the interaction::Info::init function so that the
"body" and "transferStatus" fields are always set when an Info struct is
constructed for a message of type DATA_TRANSFER.

This removes some code duplication in conversationmodel.cpp, where these
fields were being set as an extra step after construction in three
different places.

It also fixes a bug in the ConversationModelPimpl::slotMessageUpdated
function, which did *not* set the "body" of DATA_TRANSFER messages. The
body was therefore empty instead of containing a file path, which is
what caused the image preview bug described in the following issue:
GitLab: #1671

The patch also reverts a change that was made in the
MessageListModel::update function by commit
d2eba1d91e. This change was a workaround
for the above bug, but it is no longer necessary (and it broke message
deletion, which relies on the body of the deleted message being set to
the empty string).
GitLab: #1825

Change-Id: I5848b93a12c1ef7b3735c5c6db6b32a9bbc4041d
2024-08-22 11:48:48 -04:00
ovari123
c8716d1113 misc: unify terminology
Start audio call
Start video call
https://git.jami.net/savoirfairelinux/jami-client-qt/-/issues/1730#note_51880

GitLab: #1730

Change-Id: I976a6ca890c4b28501da9754cbbee012a2993d73
2024-08-21 15:06:15 -04:00
Adrien Béraud
89354a07e1 conversation model: split logic for SIP and Jami
GitLab: #1794
Change-Id: Ief688df6778fe2758882ff1538371def8ba75d64
2024-07-26 15:46:50 -04:00
Andreas Traczyk
d2eba1d91e chatview: fix datatransfer messages not showing
99254f8d02 introduced 2 issues:
- transfer messages not notifying the UI
- some file URLs being erased after loading the conversation
This commit addresses both of them.

Gitlab: #1671
Change-Id: I67a003ea1149c27e749efffe496f4c9ce86615ea
2024-07-22 12:10:25 -04:00
Adrien Béraud
78389d8c28 data transfer model: fix warning
Change-Id: Ia4fcc47c9f033a8f136d6f6de0fc4bb666a1cdfc
2024-07-18 14:52:28 -04:00
Sébastien Blin
99254f8d02 messagelistmodel: add support for file deletion
+ Add button to delete messages on file transfer
+ Show "Deleted media" on deleted files.
+ Update last interaction
+ Update icon for saving file, we're in 2024, no more floppy disk

Change-Id: I607b1a6beda443db85c60d8cf95a9aae29ce1f7c
GitLab: #1287
2024-07-10 16:00:39 -04:00
Adrien Beraud
9379af23ec callmodel: don't send profile
profile was not saved at reception anymore, this was wasting bandwidth

Change-Id: I3cbc1f1683a1e5a4b14616404cde5e27e07623e5
2024-06-21 14:30:53 -04:00
Andreas Traczyk
406a251c85 accountmodel: improve handling for account list reordering
This update fixes an issue where a stale account list might be used
in AccountListModel by synchronizing list invalidation with a newly
introduced signal (accountsReordered). This change prevents a data race
that could occur due to the asynchronous nature of setting the account
order over D-Bus, or when queuing the signal handling for
accountsChanged, which is emitted only once the reordering is saved.

As a result, QAbstractItemModel mutations are now performed within AccountListModel instead of in the UI.

Gitlab: #1638 (Account list in popup is incorrect after selection)
Change-Id: I7ed6eeb45eb319f21e40554f3d023ad24e139a6f
2024-06-10 10:29:24 -04:00
Andreas Traczyk
3225f90ce8 misc: deploy and use ringtones on macOS
Gitlab: #1619
Change-Id: I7c19dfa4556f4f9dae827a1d0c967c9ebce7cc86
2024-06-04 12:36:41 -04:00
Sébastien Blin
df3e76a1cf interaction: split status and transferStatus
This allow to show the correct sending/sent/state for the interaction
separated from the status of the dataTransfer. Else, we see a sent
check for a file even if the peer didn't receive the file

Change-Id: I15b9f0abc6a26a2ffd007be26827e9a37e859bca
2024-05-31 14:38:26 -04:00
Sébastien Blin
c5e15d26a0 contactmodel: cache profiles for non contacts profile
If we're a member of a group swarm, we will receive profiles from
non contact (the other members of a conversation).
This patch try to get from cache before calling getContact() to be
able to retrieve profiles from non contacts if stored by the daemon

Change-Id: I864f1d5dd9f65232751e170b930606d23241d283
2024-05-31 10:22:12 -04:00
Sébastien Blin
77e019b02b accountmodel: re-add save profile for JAMS account
JAMS account still use AccountProfileReceived

Change-Id: I010d459564a9230b7f06f4be55de668ec3526abd
2024-05-31 10:22:03 -04:00
Sébastien Blin
e56a966de1 contactmodel: fix account avatar on link device
We do not need to write an empty profile since the daemon fully
manages the profile. Just update it from cache when new profile
is detected

GitLab: #1627
Change-Id: I31035f0666925d13f339f387e614f148b0eece8b
2024-05-29 10:08:10 -04:00
Sébastien Blin
acc0c97234 contactmodel: fix contact initialization when linking a new device
getContacts() is called before sync is finished. This should be
done like conversations, after first initializing.
This fix the presence showing after sync.

GitLab: #1627
Change-Id: I4ec9b7e34b5bd93b9ae4437e6c6719dbc3b78a98
2024-05-29 10:08:10 -04:00
Kateryna Kostiuk
3673b0646c conversations: hide call view when swarm call is finished.
In the current implementation, the chatViewContainer of callStackView
is not destroyed for a swarm conference call because there are no
signals for call changes.This patch ensures chatViewContainer is used
when there is no call.

GitLab: #1625
Change-Id: Iefc39b747d92543244d30aa987eda134ff0a03f3
2024-05-24 14:39:20 -04:00
Sébastien Blin
28c1cbbb34 call-swarm: follow daemon changes
Change-Id: I32e83c2ccf82be78fbdd6e9932105228dd6dee8b
2024-05-21 08:48:01 -04:00
François-Simon Fauteux-Chapleau
77eddcd962 callmodel: fix bug in getProposed function
GitLab: #1607
Change-Id: I49062e2e02b4d8f39221243dcef49298117e2f9e
2024-05-17 13:22:48 -04:00
François-Simon Fauteux-Chapleau
a676ad395a callmodel: don't turn video on when accepting a call in audio
The function which is responsible for muting the camera when accepting
a call in audio assumes that the call's mediaList has already been
initialized, but this wasn't actually the case. This caused a bug where
the 'Accept in audio' button behaved exactly like the 'Accept in video'
button.

GitLab: #1621
Change-Id: I26251f51862cf5cd9b6d4daaf15270943c0e3c4e
2024-04-25 12:10:28 -04:00
Andreas Traczyk
588a8abdac misc: remove some mac-specific compiler warnings
Change-Id: I507637344e781273974fac2482e67556b4473ed3
2024-04-15 21:55:37 -04:00
Andreas Traczyk
8a149b6c4f callview: use dynamic loading for call views
This commit replaces a StackLayout with a Loader allowing us to load initial and ongoing call views dynamically based on the current conversation's call state.

This may fix several issues related to conversation loading including a possible uncaught binding loop based on observing CurrentConversation.id changes.

- small header clean up

Change-Id: Idfc723d8b39f19aafb026c19f26590910b5c26cd
2024-04-15 13:24:01 -04:00
Andreas Traczyk
ff7acf9932 localvideo: refactor preview component device control
Change-Id: Ibcd88c5a3c73a0e67f94d70bc420845aa7b8c822
2024-03-12 16:33:21 -04:00
Adrien Béraud
ee7818eefb AccountListModel: avoid calling getAccountList when unneeded
Gitlab: #1459
Change-Id: I962f38935acd8e97895587076a448125213fc4bc
2024-02-29 09:24:35 -05:00
Sébastien Blin
79b19aec01 conversation: use account config for send typing indicator
git.jami.net/savoirfairelinux/jami-daemon/-/issues/951

Change-Id: I0d952d6916ad5c4a8c51cbb80998f46665af9141
2024-02-29 09:13:06 -05:00
Sébastien Blin
4c92cb9936 chatview: add check for last sent message
Change-Id: I233d5df05432371adf6b2bdf8e8de25bd7e65058
2024-02-29 09:12:58 -05:00
Sébastien Blin
1c81553245 conversationmodel: do not add wrong call to wrong conversation
GitLab: #1578
Change-Id: Ibe980844acf1b44afb0ea6aa0e105ffa99e5c36f
2024-02-29 09:12:32 -05:00
Sébastien Blin
5c2fec53da conversationmodel: avoid to emit needsHost multiple time
Only do it for current account, this avoid to emit needsHost() for
all accounts with the same conversation

GitLab: #1579
Change-Id: I147b2f72fd4c1000949500309eae1970cdbd033f
2024-02-29 09:12:03 -05:00
Andreas Traczyk
610c27f751 contactmodel: refactor profile loading
Loading the profile elements from disk is now deferred to consumption. Implements a basic caching mechanism for the displayname and avatar elements.

Gitlab: #1459
Change-Id: Ic5aeec6649c198f617b9269409ded647c7536b8f
2024-02-28 14:53:28 -05:00
Sébastien Blin
a0b583aa8d misc: update some strings
Change-Id: I635c527b8a5b83b91f70008ce6471af8f72f6aa9
2024-02-27 15:19:26 -05:00
Sébastien Blin
1ec2d5f27b conversationmodel: fix insert last interaction for conv request
GitLab: #1571
Change-Id: I848c6f8e1867f552a55105a4d528f51a59676ce4
2024-02-21 15:54:42 -05:00
Sébastien Blin
78724c2a7b call: clarify call messages if call fails
Change-Id: I0dca1ef919cb6f60e53c57c3a3ccf81c2333c231
2024-02-21 15:53:04 -05:00
Sébastien Blin
08f3339693
accountconfig: avoid duplication between dhtPort and DHT.port
Also show it in advanced settings

Change-Id: I8de880657530c4a957846ca334332f7ccf79ef8c
2024-02-21 09:03:36 -05:00
Sébastien Blin
402515365d presence: follow daemon changes for presence indicator
Change-Id: Ie82a15da023ab97f133c8beadb8ddeb81b67666f
2024-02-20 12:47:11 -05:00
Sébastien Blin
d40e884a1f misc: remove wrong logs
Change-Id: I4010660c6bef3af553019deb9bcabc65a4b484fc
2024-02-19 16:55:27 -05:00
Sébastien Blin
5371dac882 misc: use BUILD_TESTING like the daemon and update instructions
Change-Id: I5e92e47ada4c4225c68065179245d96723397575
2024-02-19 16:32:04 -05:00
Sébastien Blin
0f62829588 misc: remove legacy mocking inclusion
Change-Id: Ie187f459b136c36fbb65c21fdaa4f05958244474
2024-02-19 16:31:55 -05:00
Sébastien Blin
39da97396c contactmodel: fix add on second request
GitLab: #1572
Change-Id: If588d22b80ea2f77b21f2ddd081ba32fdffefc7c
2024-02-19 13:50:59 -05:00
Sébastien Blin
406edda453 conversationmodel: fix status update for messages other than text
Change-Id: I0f1cb45a6cca9c8e95366c81a9d7813c740e2987
2024-02-19 13:26:08 -05:00
Andreas Traczyk
6b3efff7cc misc: use logical or instead of bitwise
No impact on logic. Just clarifies intention and allows short-circuiting.

Change-Id: If18f9d28cf4f4ead58a4f94b0ba0e4514ac9eea1
2024-02-16 08:14:42 -05:00
Sébastien Blin
d5349490f5 conversation: follow daemon changes for sending status
cf jami-docs/developer/delivery-status
+ Basically this patch uses the new SwarmMessage.status to show
current interaction status.
+ setRead only updates the status if the interaction is newer (else,
because signal are not guaranteed to be ordered, this can cause the
lastDisplayed_ to be incorrect).
+ Some old code is removed and unused signal
+ MessageReceived updates status if needed

GitLab: #1487
Change-Id: I4d4d5dce8dc12ab638e89e3f8431810b29a72087
2024-02-15 16:15:51 -05:00
Andreas Traczyk
7650f45d6f misc: libclient: remove legacy account database migration mechanism
Removes all migration mechanisms and support for database versions that haven't been used for several years. Also cleans up some includes.

Change-Id: Iaf071a455f77dd4daa57f16f9924703961aa64e0
2024-02-15 15:16:00 -05:00
Andreas Traczyk
b38e216721 ongoingcallpage: local-preview: add a hide-preview feature
Gitlab: #1555
Change-Id: Ifa196b91fed4d13d1cd0acf535cc3e1802c22a29
2024-02-15 10:46:49 -05:00
Andreas Traczyk
3d3b4612df chat-view: fix loading data transfer items
- Avoids manually building local file URIs which was causing long load times for conversations on Windows.

- Fixes an issue where missing images were caused by a interaction updates erasing the message bodies.

Change-Id: I4c65f73cf9f46da5a9ae899940cb205cb34ffae2
2024-02-13 17:06:26 -05:00
Andreas Traczyk
38b7880d5f misc: improve logging for the client and libclient projects
- Declares global logging categories for libclient and the app
- Introduces some macros for categorized logging
- Removes the noisy namedirectory logs by default
- Logs file/line number URIs in debug mode

Change-Id: I9dadadc6e93ef91cc70d206b7225aeb7a06f8773
2024-02-12 11:14:17 -05:00
Sébastien Blin
e054fc9592 misc: fix missing account avatar
Change-Id: I69acb78e60e04f74382561e130185a1aca8064d6
2024-02-08 15:31:01 -05:00
lcoursodon
24edba9a2f Qt: migration to 6.6.1
This commit makes the necessary changes to migrate from Qt 6.5.3 to
Qt 6.6.1 and fixes the following issues:

- EditedPopup.qml: "layout polish loop" and "recursive rearrange"
  errors (GitLab: #1510) as well as an unreported bug where text was
  clipped instead of elided

- BaseContextMenu.qml: QML warning ("Created graphical object was not
  placed in the graphics scene.")

The daemon is also bumped in order to include a patch for a build issue
on openSUSE Leap (GitLab: #1552).

GitLab: #1466
Change-Id: I12df2f84067ebe961368879e08ff7ef275d93395
2024-02-06 08:48:30 -05:00
François-Simon Fauteux-Chapleau
c8b52262bc Fix empty notification when missing a call
When a user misses a call, they receive a message saying so in the chat
and get a notification for that message, but the notification's body was
empty instead of matching the message's content.

Change-Id: I24971d1d0a976ea3ab15ac30c4e9ed33fdf3d760
2024-01-29 16:18:00 -05:00
François-Simon Fauteux-Chapleau
95e36ef89b tests/qml: fix various issues with the MessageOptions test
This commit fixes three issues related to tst_MessageOptions.qml:
1) There was no test to check that the call to createSIPAccount() at the
   beginning of test_createMessageOptionsPopup() actually succeeded
2) The created account was not deleted at the end of the test
3) The test would occasionally crash due to an uncaught
   std::out_of_range exception thrown by the
   AccountModelPimpl::slotAccountDetailsChanged function. I've modified
   the function to issue a warning instead, which makes it consistent
   with AccountModelPimpl::slotVolatileAccountDetailsChanged and avoids
   throwing an exception from a Qt slot (which is considered undefined
   behavior according to the Qt documentation)

Change-Id: I4d939b29f27ee27de673aea7046997ef756fbcee
2024-01-18 21:21:22 -05:00
Sébastien Blin
a4300308dc contactmodel: check if removed before adding
Change-Id: I61b3773539bf6a0774ea487e4f5aae74bd2bc635
2024-01-04 09:45:16 -05:00