1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-07-15 21:15:24 +02:00
Commit graph

82 commits

Author SHA1 Message Date
Sébastien Blin
98a9eebc89 misc: update profile before members
Change-Id: Idb51e3e6cf895fe1aaf88156c0b0296bdf95b263
GitLab: #873
2022-11-10 03:39:00 -05:00
Sébastien Blin
90ae50ee5f misc: rename DRing->libjami
Change-Id: I15d382406687cc506c1456ce43286ad6b0f23529
2022-10-29 16:53:42 -04:00
Nicolas Vengeon
7a34209583 feature: documents flow in the swarmDetailsPanel
Change-Id: I24a94b9ced0ec3930a0b9e20f3fa0440e2d8fd00
Signed-off-by: Nicolas Vengeon <nicolas.vengeon@savoirfairelinux.com>
2022-10-27 09:30:01 -04:00
Sébastien Blin
47cd60fbe4 messagelistmodel: support message edition
Handle application/edited-message type to support message edition.
Previous bodies are saved in the interaction to be able to get the
original post to avoid unwanted editions.

While loading a conversation, we store the editions in a temporary
map that we link once the edited message is detected. This work
because we can't edit a message before this message exists.
PreviousBodies in interaction.h contains every previous body detected
and the client can show previous version of the message in a popup.

Deleting a message works the same way, just that any message
with an empty body is not shown.

https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/316

Change-Id: Ib158abd16ad4b629532de11694e88d86a12d72a8
2022-10-25 16:15:22 -04:00
Sébastien Blin
f2b40af3e2 misc: cleanup settings
+ Remove "Accept files from unknown senders" because since swarm
we can't get files from non contacts are the conversation is not
cloned, and non swarm files are ignored
+ Rename "ignore the swarm" to "Mute conversation" as ignore is
unclear

Change-Id: Ifced8f8efe841e2345d50530ee313e6b95b35920
2022-10-24 14:28:22 -04:00
Sébastien Blin
8e7e39c1e9 sip: search conversation filter
The URI we search can be the id of another conversation, causing
another contact to be shown.

Change-Id: Icdbc01b5466559fd6c9f77dde57338903e54ea99
2022-10-24 11:39:45 -04:00
Sébastien Blin
1a994173ec
conversationmodel: fix loading for some conversations
If there was too much following merge commits, sometimes the
conversation was not correctly loaded.
Moreover, the lastMessageUID was not correctly calculated from
time to time, leading to empty conversations in the smartlist.

Change-Id: I1224269c5df72936ae51f34211ce3f63dbf606ff
2022-10-21 09:34:54 -04:00
Sébastien Blin
ef2d588abc swarmdetailspanel: link to setConversationPreferences
Save current color, and notification's preferences

Change-Id: I3197be53bf622528aa3bc2e3f0d9aea29068e144
2022-10-17 09:17:43 -04:00
Sébastien Blin
6c8a5d7bc6
conversationmodel: fix crash if no interaction
Change-Id: Id50f7b2598e0cff7ca75f5fca13473702da5c207
2022-10-11 09:33:28 -04:00
Sébastien Blin
95f1c4d76d
messagelistmodel: use correct total size on incoming file
use the size from the daemon if the file is downloaded, else
use the size from the commit.

Change-Id: Ia4e7123558e93a1ab0879feab9a141ceefaf183a
GitLab: #833
2022-09-16 16:31:38 -04:00
Sébastien Blin
9c78604c1c mainapplication: handle jami: URIs
Asking jami to launch another instance with ./jami-qt jami:xxx
will search for "xxx" inside the application and select the
conversation if found.
This allow to support webpage with <a href="jami:username">

For GNU/Linux, in the .desktop file, x-scheme-handler/jami is
added.
For packaging, we will need to determine if the scheme is handled
automatically. For now, to test, we need to add:

x-scheme-handler/jami=jami-qt.desktop;

in "~/.config/mimeapps.list" (and jami-qt.desktop) should
be in a valid path.

Change-Id: Ibbb6e8942f1873d81a57640bdf6f839885981be3
GitLab: #655
2022-09-16 11:06:42 -04:00
Sébastien Blin
a2cba16f80 conversationmodel: cleanup duplicate code
Change-Id: Icfb1669e4c810b2ef74c3787f0f086646f17fb8d
2022-08-24 13:15:30 -04:00
Sébastien Blin
6f18afbaac chatview: add ability to reply to a specific message
https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/318
Change-Id: I79916422b90c6eb12252c96bb12e209188a81f94
2022-08-24 12:59:38 -04:00
Sébastien Blin
71a4b4a252 revert: readstatus: major cleanup
This patch introduced some issues with file transfer

Change-Id: I6e4852f1f1c0eb1e1f820de8a1ecc8e2a6b28695
2022-08-24 11:17:06 -04:00
Sébastien Blin
72288798c9 readstatus: major cleanup
+ Update status for swarm
+ Show read status like android (right if 1 reader, under the bubble
if more)
+ Display a sending status

Change-Id: I653e3573c4dc75950cc274dd01859d9335e0177f
2022-08-19 13:35:33 -04:00
Sébastien Blin
ce3afea995 chatview: display signaled back-end errors
A signal exists for showing errors to the user to make failing cases
more explicit. With this patch, errors detected are displayed to
the end user so that they know that an error occured and what
kind of error occured.

Change-Id: Ib2d4d4fdb171235e0598de0f1c190b8fd0fcc336
2022-08-15 15:33:32 -04:00
Sébastien Blin
3164f8708b conversationmodel: fix wrong ordering for messages
Change-Id: Ida8cba2ea8d386abf3e5ff2bc024069860bfcda0
2022-08-11 16:32:46 -04:00
Sébastien Blin
ce7089a7a4 datatransfer: remove path for non swarm conversations
Change-Id: I48a4a03910400c004da7b760923303636eba42e6
GitLab: https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/524
2022-08-09 11:58:31 -04:00
Sébastien Blin
1881ffb45f swarm: transform non swarm to swarm conversations
+ Remove readOnly from conversation's as it was never used
and not necessary in multi swarm as you can re-add members anyway
so it's never read only.
+ Makes non swarm conversations just readable.
Users can save whatever they want and replace old non migrated
conversations to new swarm.

Change-Id: I8aa2521bc524b6159d7ba0b613834438e293e09e
2022-08-08 11:37:47 -04:00
Sébastien Blin
d74cc97395 swarm: compress avatar to send in conversation's request
As it's sent over the DHT, the max value is 64k, also, even if sent
as a SIP message (if member was already connected and we add a new
non 1:1 swarm with this contact), the sendSIPMessage will fail due
to a too large message (PJSIP_EMSGTOOLONG).

Change-Id: I7908809fe2c3f6e08f9a4b9c6f8aac654ab86c42
2022-08-03 10:18:41 -04:00
Sébastien Blin
c99b409d46 conversationmodel: listen for profile changes
Change-Id: I76b0fe1d35fa38ffe82812bc1c97b2565ceb9318
2022-07-21 13:51:30 -04:00
Sébastien Blin
d9432163f6 conversationmodel: let the daemon manage the removal
Change-Id: I00e8fd2552aa1e08c03ef8e7dada4629ebdd619d
2022-07-18 11:46:59 -04:00
Sébastien Blin
35b92aa3a4
misc: cleanup
Change-Id: Ie8124ce30e81ae47c92837dfe339a494139f7f36
2022-07-13 09:17:17 -04:00
Sébastien Blin
d9aee635a7 misc: drop 'new' prefix from model names
Change-Id: Idc960c96e4647dbb6f8c1d64f545fe25c80bbaa5
2022-07-12 10:43:59 -04:00
Sébastien Blin
21431c80c9 conversationmodel: avoid loading loop if no messages
Also avoid any potential crash if for whatever reason no interactions
is detected

Change-Id: I7738e3f39cd626ef4fc64612f71d55e73d567fa2
2022-07-11 11:43:30 -04:00
Sébastien Blin
54687078a7 conversationmodel: avoid duplicated requests when receiving a call
Because the call and the conversation's requests are not related,
we can receive a call before the conversation's request. In this
case, a duplicate was created when accepting the call.
Moreover, accepting a call is now separated from accepting a contact,
like the android client (and accepting a conversation needs an explicit
action from the user).

Change-Id: I7c3eb34b7e121b63f1b8c99d084a5165054670d5
2022-07-11 11:03:29 -04:00
Sébastien Blin
5cf6125fd0 chatviewheader: show description with title
For multiple swarms, the description will be shown from the profile,
for core dialogs, the best Id is used.

Change-Id: Ieb7d5f143c1a85c4c629a5a8a03850fa1ebddf63
2022-07-11 10:53:49 -04:00
Sébastien Blin
300ac17db3 contactmodel: rework ban status
And do not ban contact when removing conversation.

Change-Id: Ia76c76b265dd2a9d7d3cc8e2f869bf74fd3cbe63
2022-07-05 11:02:49 -04:00
Sébastien Blin
5921740321 avatarregistry: avoid un-necessary updates
Only update the avatar when the profile changes.

Change-Id: I2b12d31f7a2e379093fe8e900233ebfbd8ab8974
2022-06-30 15:18:22 -04:00
Sébastien Blin
dc28cd5d9d conversationmodel: do not recreate non swarm conversation if removed
Change-Id: Ibc769db225bf9baa47b01b86c1eec4468b23786a
GitLab: #757
2022-06-20 16:17:17 -04:00
Sébastien Blin
b70c0fe571
conversationmodel: avoid any potential infinite loop
if we have no new messages while loading, we shiould detect it.

https://git.jami.net/savoirfairelinux/jami-daemon/-/issues/738

Change-Id: Ibfb4965cf9742253cd3d272009f7a0422fb04ac9
2022-06-14 09:03:49 -04:00
Amin Bandali
e0b3b4adec misc: vendor libjamiclient into 'src/libclient/'
This is libjamiclient from the jami-libclient.git repository as of
767c45b8b09806ac05cbada720864df93588c047, with the following changes:

* src/libclient/newaccountmodel.cpp:
(NewAccountModelPimpl::removeFromAccounts): The lock wait inside
'#ifdef CHK_FREEABLE_BEFORE_ERASE_ACCOUNT' was not updated when the
type of 'accounts' was changed over the years from this:
std::map<std::string, account::Info>
to this:
std::map<QString, std::pair<account::Info, std::shared_ptr<Database>>>
Basically we need to get the 'first' of the pair for 'account::Info'.
So we now do that.

* src/libclient/avmodel.cpp:
* src/libclient/callbackshandler.cpp:
* src/libclient/contactmodel.cpp:
* src/libclient/conversationmodel.cpp:
* src/libclient/database.cpp:
* src/libclient/namedirectory.cpp:
* src/libclient/newaccountmodel.cpp:
* src/libclient/newcallmodel.cpp:
* src/libclient/newdevicemodel.cpp:
* src/libclient/peerdiscoverymodel.cpp:
* src/libclient/pluginmodel.cpp:
* src/libclient/smartinfohub.cpp:
* src/libclient/vcard.h:
* src/libclient/authority/storagehelper.cpp:  Replace Qt's 'foreach'
with 'Q_FOREACH' and its 'emit' with 'Q_EMIT' because in the client-qt
code base we have '-DQT_NO_KEYWORDS' to avoid conflicts with other
libraries we use.

* cmake/FindLibJami.cmake: Import cmake/FindRing.cmake from the
jami-libclient.git repository.  Then, rename RING_BUILD_DIR to
LIBJAMI_BUILD_DIR (though the old name is still supported for now).
Also update other references of Ring to Jami.  Further, add additional
calls to 'find_library' to make sure specified local paths for libjami
are checked before system-wide ones (in case of older/obsolete libjami
being available system-wide, which might happen on GNU/Linux systems).

* translations/lrc_*.ts: Import translation files from the libclient
repository.  The message location paths were corrected by running
"sed -i 's|../src|&/libclient|g' lrc_*.ts" in 'translations/'.

.tx/config: Add section for the newly-imported libclient translations.

* CMakeLists.txt: Reformat, plus various fixes and cleanups, such as
changing indentation to 2 spaces and wrapping lines at 70 characters,
renaming the parent directory of translations from 'ring' to 'jami',
and using all lowercase function calls.  Also add copyright headers.

* src/app/appsettingsmanager.cpp:
(AppSettingsManager::loadTranslations):
* src/app/utilsadapter.cpp (UtilsAdapter::supportedLang): Update to
adapt to the renaming of the parent directory of translations from
'ring' to 'jami'.

GitLab: #748
Change-Id: I86e3b0fb30e554755023e7b858b6a0d132cd59ab
2022-06-08 16:28:57 -04:00