Commit Graph

18 Commits

Author SHA1 Message Date
Adrien Destugues 2fa1069b4f Fixup session/window creation code
- Remove some useless locking, use messages instead
- Sessions can be created locally (we need to do a new Session) or from
  incoming messages (the session is created for us but we still need to
  attach a window to it). The code was not handling all cases right
- Better detection of carbons or group chat replay sessions (not sure
  what they are but now we check the type to detect them)
2020-11-22 22:22:02 +01:00
Adrien Destugues 983900e69b Add user avatars (XEP-0084)
- Add PubSub logic so we can request and handle the avatars
- Add base64 decoding + image decoding
- Rework roster item size and drawing to fit the avatar in
- Add a cache dir to store the avatars in
2020-11-22 18:16:46 +01:00
Adrien Destugues 1cf6b66ed0 Fix several crashes.
- Access to window from wrong thread when joining a bookmarked chat
- Sending messages to group chats
2020-11-20 22:35:52 +01:00
Adrien Destugues 85db625968 Move some files from jabber/ to ui/
It helps to see which parts of the code are actively maintained
2020-08-21 19:43:43 +02:00
Adrien Destugues be4e92ca48 Fix many things in TalkManager
Use separate maps for group and normal chat, saving much confusion.
Use gloox sessions and MUC rooms as keys instead of strings.
Remove linear lookups in the map (what's the point of having a map?)
Do not create a MessageSession for MUCs as it prevents getting messages
in the MUC handler

This should fix all cases where we would accidentally create multiple
windows for the same thing.
2020-08-21 15:42:59 +02:00
Adrien Destugues f9ce5c9c7f Start conversion to single window
With more than 3 windows, things become unmanageable.

Fixes #3
2020-08-21 14:08:17 +02:00
Adrien Destugues 26be1f9cc8 Add message carbons.
Fixes #56
2020-08-13 21:42:12 +02:00
Adrien Destugues 3340944e06 More switching to MessageSession 2020-08-13 15:09:16 +02:00
Adrien Destugues 32d791ec66 Make TalkManager a MessageSessionHandler
Fixes #58
2020-08-12 21:59:16 +02:00
Adrien Destugues 6bb44ef994 Reduce use of UserID
There will be a lot more to do, but at least with this change, it is not
possible anymore to create a UserID outside of JRoster. So there should
always be a unique instance of the UserID for each roster entry. This
makes sure the state of the user is globally synchronized properly, and
no part of the code is accidentally working on a copy instead of the
real thing.
2019-09-30 16:44:01 +02:00
Adrien Destugues a81b88792d Move more useful stuff out of jabber/ 2019-09-29 22:45:22 +02:00
Adrien Destugues 7c38c7ee86 Fix setting friendly names (users and bookmarks) 2019-09-28 22:54:27 +02:00
Adrien Destugues d6cbfe4ad9 Work on bookmarks
- Remove "channels" menu and instead list group chats in the roster view
- Allow joining a group chat by double ckicking on it in the roster
- Support for bookmarks2 (XEP-0402). XEP-0048 is also implemented, but
  currently disabled.
- Joining a group chat adds it to the bookmarks with autojoin enabled,
  unless it is not an user initiated action (for example, someone else
  invited you in a room)
- Leaving a groupchat adds it to the bootkmarks, with autojoin disabled
  (so you can easily access the server-side history for it or join back)
- Bookmarks can be deleted by right click->remove in the Roster.

Fixes #32, #40
2019-09-28 21:08:36 +02:00
Adrien Destugues 07a35ed217 Implement sending messages to group chats 2019-07-14 12:26:38 +02:00
Adrien Destugues 0e349ea402 Implement some multi user chat. 2019-07-13 19:42:59 +02:00
Adrien Destugues 36b773d3ad Remove now unused SplitPane library, and implement message reception 2019-06-06 22:57:13 +02:00
julun 53b650d748 * gcc4 build fix
git-svn-id: http://svn.osdrawer.net/jabber4beos@6 337aba2b-7447-0410-a794-ebbcc98ad26d
2008-04-07 19:32:07 +00:00
xed 473de763da initial checkin
git-svn-id: http://svn.osdrawer.net/jabber4beos@1 337aba2b-7447-0410-a794-ebbcc98ad26d
2008-03-03 22:52:07 +00:00