gajim merge requestshttps://dev.gajim.org/gajim/gajim/-/merge_requests2024-03-28T09:13:57Zhttps://dev.gajim.org/gajim/gajim/-/merge_requests/1024imprv: Allow drag'n'dropping http URIs2024-03-28T09:13:57ZNicocoimprv: Allow drag'n'dropping http URIsThis commit makes it possible to drag'n'drop images (and other content types) from firefox (and probably other apps) to send them in a chat.
This does not trigger the file upload dialog but instead sends the URL in a `<oob>` tag (if it ...This commit makes it possible to drag'n'drop images (and other content types) from firefox (and probably other apps) to send them in a chat.
This does not trigger the file upload dialog but instead sends the URL in a `<oob>` tag (if it is not a link to a web page). This is a rather small change but I believe this is very nice UX/QoL change.https://dev.gajim.org/gajim/gajim/-/merge_requests/1023feat: Support for Message Displayed Synchronization2024-03-26T17:01:40ZNicocofeat: Support for Message Displayed SynchronizationThis depends on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/84
This uses the current implementation of read state in gajim, ie, it only works when receiving events for the latest message in a chat. This could be improved ...This depends on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/84
This uses the current implementation of read state in gajim, ie, it only works when receiving events for the latest message in a chat. This could be improved but is out of scope of this MR.
Fixes: https://dev.gajim.org/gajim/gajim/-/issues/11785https://dev.gajim.org/gajim/gajim/-/merge_requests/1013Draft: Implement Send Voice Messages2024-03-03T21:43:43ZmesoniumDraft: Implement Send Voice MessagesVery much POC and WIP at this stage. Only tested and only works under Linux with PulseAudio right now.Very much POC and WIP at this stage. Only tested and only works under Linux with PulseAudio right now.https://dev.gajim.org/gajim/gajim/-/merge_requests/1008Draft: feat: Support for XEP-0424 (Message Retraction)2024-02-18T06:52:33ZNicocoDraft: feat: Support for XEP-0424 (Message Retraction)Implements: https://dev.gajim.org/gajim/gajim/-/issues/11399
Relies on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/82
To do:
- [ ] Figure out how to make retraction persistent across gajim restarts - depends on https://...Implements: https://dev.gajim.org/gajim/gajim/-/issues/11399
Relies on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/82
To do:
- [ ] Figure out how to make retraction persistent across gajim restarts - depends on https://dev.gajim.org/gajim/gajim/-/merge_requests/966
- [X] Implement outgoing retractions for group chats - works because the room echoes it
- [X] Implement outgoing retractions for direct chats - the stanza is emitted but the UI is not updated
- [ ] What do we do when we receive a retraction for a message we might later fetch via MAM? `*`
- [ ] ???
`*` Maybe we just expect tombstone support from the server?https://dev.gajim.org/gajim/gajim/-/merge_requests/1007Draft: feat: Support for message threads2024-02-21T22:19:06ZNicocoDraft: feat: Support for message threadsImplements: #11058 (and #11271)
This MR adds support for threads [like cheogram does](https://invidious.protokolla.fi/watch?v=apazJINa1UI).
A video of what it looks like:
![gajim-identicons-2024-02-14_14.45.08](/uploads/05e2c7ede693b5...Implements: #11058 (and #11271)
This MR adds support for threads [like cheogram does](https://invidious.protokolla.fi/watch?v=apazJINa1UI).
A video of what it looks like:
![gajim-identicons-2024-02-14_14.45.08](/uploads/05e2c7ede693b5116d9c041460133939/gajim-identicons-2024-02-14_14.45.08.mp4)
Check-list:
- [x] Convince @lovetox that this is a good idea
- [ ] Make threads collapsable
- [ ] Convince @lovetox that identicons are a good idea
- [ ] Add a hint next to the message input box to specify that we are going to post in a given thread (…the identicon?)
- [ ] Change the identicon generation algorithm so that it matches Cheogram's (see below)
- [ ] Remove empty date rows in conversation view
- [ ] Figure out how to get the size of the message row icons and un-hardcode the 10×10px size
The identicons generated from the thread ID are different than those from Cheogram ([implementation here](https://paste.sr.ht/~singpolyma/bf63cfa4726ef6114f04b12ffc467d510d56cffe))
![cheogram-identicons](/uploads/2908de8e61ba2e9e5ff48ba3cfd20027/cheogram-identicons.png)
<img src="/uploads/efd48a194627415495c39b76f5319ed6/cheogram-identicons.png" width="400">https://dev.gajim.org/gajim/gajim/-/merge_requests/1005Draft: Use an encryption default for MUCs. Closes #117492024-02-07T09:36:02ZMarcin MielniczukDraft: Use an encryption default for MUCs. Closes #11749https://dev.gajim.org/gajim/gajim/-/merge_requests/1003feat: XEP-0317 (Hats)2024-02-02T21:31:20ZNicocofeat: XEP-0317 (Hats)Depends on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/80
The UI parts are very ugly, but I'd like to make sure the feature is accepted before doing boring GUI work… Let me know what you maintainers think!
![Screenshot_2...Depends on https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/80
The UI parts are very ugly, but I'd like to make sure the feature is accepted before doing boring GUI work… Let me know what you maintainers think!
![Screenshot_20240119_223927](/uploads/94c2d21f6b7b6ca32ded8356d28f2ae2/Screenshot_20240119_223927.png)https://dev.gajim.org/gajim/gajim/-/merge_requests/1001feat: Feedback on affiliation change failures2024-03-06T15:15:00ZNicocofeat: Feedback on affiliation change failuresFixes: https://dev.gajim.org/gajim/gajim/-/issues/11724Fixes: https://dev.gajim.org/gajim/gajim/-/issues/11724https://dev.gajim.org/gajim/gajim/-/merge_requests/999feat: Use XEP-0172 nickname in MUC presences2024-03-28T09:08:08ZNicocofeat: Use XEP-0172 nickname in MUC presencesThis relies on this patch in nbxmpp: https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/79
With some explanation [here](https://wiki.soprani.ca/CheogramApp/Nickname)This relies on this patch in nbxmpp: https://dev.gajim.org/gajim/python-nbxmpp/-/merge_requests/79
With some explanation [here](https://wiki.soprani.ca/CheogramApp/Nickname)https://dev.gajim.org/gajim/gajim/-/merge_requests/998feat: Use XEP-0172 nickname in message stanzas2024-03-06T15:15:08ZNicocofeat: Use XEP-0172 nickname in message stanzasFixes: https://dev.gajim.org/gajim/gajim/-/issues/11476
Let's close it faster than dino ;) https://github.com/dino/dino/issues/796Fixes: https://dev.gajim.org/gajim/gajim/-/issues/11476
Let's close it faster than dino ;) https://github.com/dino/dino/issues/796https://dev.gajim.org/gajim/gajim/-/merge_requests/992feat: Allow adjusting user interface font size via hotkeys2023-10-29T11:02:29ZDaniel Brötzmannfeat: Allow adjusting user interface font size via hotkeysPrimary - plus/keypad plus = increase font size
Primary - minus/keypad minus = decrease font size
Primary - 0/keypad 0 = reset font size
Fixes #11343Primary - plus/keypad plus = increase font size
Primary - minus/keypad minus = decrease font size
Primary - 0/keypad 0 = reset font size
Fixes #11343https://dev.gajim.org/gajim/gajim/-/merge_requests/980WIP: feat: display markers for MUCs2024-02-02T08:44:05ZNicocoWIP: feat: display markers for MUCsUses the "read marker row" for MUCs.
Implements: https://dev.gajim.org/gajim/gajim/-/issues/11275
![Screenshot_20231002_181336](/uploads/31a5a4dcd43963413155e7799ba01b78/Screenshot_20231002_181336.png)
A limitation though, this is onl...Uses the "read marker row" for MUCs.
Implements: https://dev.gajim.org/gajim/gajim/-/issues/11275
![Screenshot_20231002_181336](/uploads/31a5a4dcd43963413155e7799ba01b78/Screenshot_20231002_181336.png)
A limitation though, this is only shown for the last message row. So, you only know who has read this latest message that was read by at least one person.https://dev.gajim.org/gajim/gajim/-/merge_requests/920feat: Allow muting chat notifications2023-04-02T15:53:14ZDaniel Brötzmannfeat: Allow muting chat notificationsFixes #9015Fixes #9015https://dev.gajim.org/gajim/gajim/-/merge_requests/891Draft: feat: Add XEP-0444: Message Reactions2023-06-15T19:52:15ZDaniel BrötzmannDraft: feat: Add XEP-0444: Message ReactionsDraft of a [XEP-0444: Message Reactions](https://xmpp.org/extensions/xep-0444.html) implementation.
What has been done so far:
* [x] ReactionsBar widget, which displays reactions and lets you add or remove own reactions
What needs to...Draft of a [XEP-0444: Message Reactions](https://xmpp.org/extensions/xep-0444.html) implementation.
What has been done so far:
* [x] ReactionsBar widget, which displays reactions and lets you add or remove own reactions
What needs to be done:
* [ ] Database storage (data structure, ...)
* [ ] Handling of incoming reactions
* [ ] Handling for outgoing reactions
* [ ] Menu item for adding a reaction
* [ ] Determining support
_For demonstration purposes, a ReactionsBar is added to every message._
![9176bbbd-608e-4492-a288-6983a76c4f27](/uploads/94093fc10134b1c3f11b5d4598eff7fe/9176bbbd-608e-4492-a288-6983a76c4f27.png)https://dev.gajim.org/gajim/gajim/-/merge_requests/881feat: Add support for XEP-0461: Message Replies2023-10-23T09:51:14ZDaniel Brötzmannfeat: Add support for XEP-0461: Message RepliesImplementation of [XEP-0461: Message Replies](https://xmpp.org/extensions/xep-0461.html)
Currently compatible with Dino's and Movim's implementation (after https://github.com/movim/movim/pull/1128). It is planned to update XEP-0461 with...Implementation of [XEP-0461: Message Replies](https://xmpp.org/extensions/xep-0461.html)
Currently compatible with Dino's and Movim's implementation (after https://github.com/movim/movim/pull/1128). It is planned to update XEP-0461 with a properly specified fallback namespace, see https://github.com/xsf/xeps/pull/1188.
What needs to be fixed:
* [ ] Correcting a reply works once. After re-opening the chat, the corrected reply is gone (no text).
* [ ] If a replied-to message gets corrected by others, it's not reflected in the ReferredMessageWidget instantly
* [ ] Clicking [view message] in reply-mode only works if you previously focused the ConversationView.
Depends on gajim/python-nbxmpp!65
Closes #11075
![image](/uploads/a21f0d387ed20da39ee462d95284629f/image.png)https://dev.gajim.org/gajim/gajim/-/merge_requests/878Integrate OMEMO plugin2023-04-09T18:13:41ZDaniel BrötzmannIntegrate OMEMO pluginMerge the OMEMO plugin into Gajim’s core.
What needs to be done:
* [x] OMEMO module
* [x] Sending messages
* [x] Sending files
* [x] Add `OMEMO_TEMP_DL` namespace to Gajim’s Caps
* [x] Type annotations
* [x] GUI
* [x] Add key...Merge the OMEMO plugin into Gajim’s core.
What needs to be done:
* [x] OMEMO module
* [x] Sending messages
* [x] Sending files
* [x] Add `OMEMO_TEMP_DL` namespace to Gajim’s Caps
* [x] Type annotations
* [x] GUI
* [x] Add key management widget: OMEMOTrustManager
* [x] Integrate OMEMOTrustManager into AccountsWindow, ContactInfo, and GroupChatDetails
* [x] Adapt dependencies for OMEMO (`axolotl`, Windows packaging, Gajim’s dependencies for Flatpak)
* [x] `_before_sendmessage` checks
* [x] `muc-added` signal handling
* [x] new/undecided fingerprint and encryption error handling
* [x] Exchange all python-axolotl references with omemo-dr
* [x] Add omemo-dr debian nightly
Issues which will be closed by this MR are listed in https://dev.gajim.org/gajim/gajim-plugins/-/milestones/2#tab-issues1.8.0https://dev.gajim.org/gajim/gajim/-/merge_requests/876feat: Preview: Add audio preview controls and visualization2022-12-08T12:16:03Zmesoniumfeat: Preview: Add audio preview controls and visualizationThis MR introduces major changes and bug fixes to the audio player:
| Before | After |
| ------ | ------ |
| ![Screenshot_Before](/uploads/68006381df25abc91bbd0ec02ff21211/Screenshot_Before.png) | ![Screenshot_New2](/uploads/893962d7151...This MR introduces major changes and bug fixes to the audio player:
| Before | After |
| ------ | ------ |
| ![Screenshot_Before](/uploads/68006381df25abc91bbd0ec02ff21211/Screenshot_Before.png) | ![Screenshot_New2](/uploads/893962d71517077978af64996b75185a/Screenshot_New2.png) |
Visually the audio widget has gained some new features. It's now possible to fast forward and rewind by 10 s and to alter the playback speed, either via buttons or by a slider.
Most prominent is the new visualization of the RMS peaks, which do not only enhance the aesthetics but also helps to differentiate between several audio messages and improves the orientation when seeking for a special point of the playback.
While playing back and seeking by dragging the slider, the audio won't scrub anymore and the playback continues. In order to still see the current playback progress, a different color (light blue in the screenshot above) is chosen for the area which will be jumped forward or backward in time, when releasing the slider.
It's now also possible to jump in time by single clicking into the seekbar or by using the mouse wheel and the timestamp label can now be toggled to display the elapsed or remaining time.
In the backend the audio pipeline has been changed, which removes the former delay at the beginning of the first playback of an audio.
When starting a playback of an audio message, all other playbacks are stopped immediately now.
Last but not least, progression and settings of each audio preview are now saved within a session.https://dev.gajim.org/gajim/gajim/-/merge_requests/863change: Add FileTransferSelector as a central page for sending files2022-11-24T22:34:54ZDaniel Brötzmannchange: Add FileTransferSelector as a central page for sending filesThis MR introduces a new `FileTransferSelector` page within the ChatFunctionPage.
This new page gets opened whenever a file transfer action is invoked by the user:
* click on 'Send File' button
* click on 'Send File Directly / Upload F...This MR introduces a new `FileTransferSelector` page within the ChatFunctionPage.
This new page gets opened whenever a file transfer action is invoked by the user:
* click on 'Send File' button
* click on 'Send File Directly / Upload File' in the chat menu
* drag and drop
* pasting image from clipboard
Files will be previewed in a list, and further files can be added there via file selector or drag and drop.
A suitable transfer method will be chosen, if the user's preferred method can't be used. The `FileTransferSelector` makes use of the `ResourceSelector` widget, if Jingle is chosen as transfer method.
Fixes #9511
![image](/uploads/a18361fdbce38bc8351b6f7721702e78/image.png)https://dev.gajim.org/gajim/gajim/-/merge_requests/857feat: Add action to copy multiple messages2022-11-14T15:13:33ZDaniel Brötzmannfeat: Add action to copy multiple messagesThis adds selection for multiple message rows and a "Copy Text" action.
Fixes #10975This adds selection for multiple message rows and a "Copy Text" action.
Fixes #10975https://dev.gajim.org/gajim/gajim/-/merge_requests/810feat: Add ChatActionProcessor2022-06-06T08:38:13ZDaniel Brötzmannfeat: Add ChatActionProcessorChatActionProcessor is a Popover, which shows suggestions for autocompleting chat commands or emojis.
Generally, actions are toggled with the following characters:
* Chat command auto complete is toggled by beginning a message with `/`...ChatActionProcessor is a Popover, which shows suggestions for autocompleting chat commands or emojis.
Generally, actions are toggled with the following characters:
* Chat command auto complete is toggled by beginning a message with `/`
* Emoji auto complete is toggled by starting a word with `:`
Fixes #10626