Commit Graph

84 Commits

Author SHA1 Message Date
Pascal Abresch 8eee06fc04 Rename BuddyInfoWindow -> ContactInfoWindow 2020-09-16 12:06:28 +02:00
Pascal Abresch de9966b748 UI: make contact info view use layout kit 2020-09-16 11:58:27 +02:00
Pascal Abresch 8fa585f3cd Cleanup: Delete RosterSuperitem 2020-09-16 11:56:41 +02:00
Pascal Abresch 673c996f44 Cleanup: BuddyView 2020-09-15 19:43:27 +02:00
Pascal Abresch fbc4f2c164 UI: make BuddyWindow use layout kit 2020-09-13 21:31:45 +02:00
Pascal Abresch 6f0fd640d7 Cleanup: Delete BetterTextView 2020-09-13 08:48:30 +02: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 b16ffcc1ec Show MUC participants affiliation
Use IRC-style characters for now, but probably an icon would be better
2020-08-21 17:34:10 +02:00
Adrien Destugues 8f57de43d4 Add a split view for roster and fix size limits 2020-08-21 16:53:59 +02:00
Adrien Destugues 44fd5c8b70 Make sure roster selection and visible talk view remain in sync 2020-08-21 16:32:34 +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 edc1764b84 Remove some dead code. 2020-08-19 15:18:06 +02:00
Adrien Destugues f183aff5c7 Remove some useless fields from main window 2020-08-17 16:32:26 +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 03775dcd95 UserID: Remove unused method 2020-08-13 12:10:21 +02:00
Adrien Destugues 924ac61f23 Let the server generate a resource
This is the recommended best practice, and allows starting multiple
Renga instances for the same account. With an hardcoded resource, they
would conflict with each other.
2020-08-13 12:08:44 +02:00
Adrien Destugues 32d791ec66 Make TalkManager a MessageSessionHandler
Fixes #58
2020-08-12 21:59:16 +02:00
Adrien Destugues b1ba1eda8b TalkWindow: make it a MessageHandler
So it can receive messages from gloox directly.
2020-08-12 21:56:54 +02:00
Adrien Destugues 0c9908c7bc Some cleanup and removal of UserID
Fixes some NULL dereferences when talking to people not in roster.
2020-08-12 14:37:19 +02:00
Adrien Destugues 997da513ac XEP-0115 is supported (by gloox internally)
This means we're core/core client compliant, yay!
2020-03-29 10:55:55 +02:00
Adrien Destugues 400c21d652 Remove "newlines allowed" from talk window
No need to allow either behavior there, use the sane defaults.

Fixes #48
2020-03-29 10:19:35 +02:00
Adrien Destugues 7ee0705cae JRoster: move (still disabled) subscription code in the gloox callbacks 2020-03-28 11:36:58 +01: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 2a53a0aa94 Update and cleanup UserID class
Reuse gloox provided data instead of copying it, whenever possible.
2019-09-30 12:21:20 +02:00
Adrien Destugues 96e2241a1c Cleanup some useless roster management things. 2019-09-30 11:49:32 +02:00
Adrien Destugues 1e81dec433 Move all roster handling into JRoster. 2019-09-30 11:33:15 +02:00
Adrien Destugues 763d92a34a Move AppLocation to support/ and remove AOL transport support 2019-09-30 11:30:32 +02:00
Adrien Destugues a77ea7ff9e Remove support for Yahoo and MSN transports.
These protocols are dead.
2019-09-29 23:10:50 +02:00
Adrien Destugues a81b88792d Move more useful stuff out of jabber/ 2019-09-29 22:45:22 +02:00
Adrien Destugues 9a3e225b35 Improve handling of invalid username/password
Go back to the main screen and highligh both fields since we don't know
which one is invalid.
2019-09-29 20:55:34 +02:00
Adrien Destugues 244cfb45d0 XEP-0077: in-band registration
Only the version with data forms is supported, not the legacy fixed
fields one. Error handling is not perfect yet and can likely be
improved.

To be tested more extensively after gloox get support for SRV records
(so we're sure to connect correctly to the server)
2019-09-29 17:13:50 +02:00
Adrien Destugues 501ac0df0e Move some classes to ui/ directory. 2019-09-29 10:44:40 +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 e2d14a545c [WIP] XEP-0077 In-Band Registration
Also includes several cleanups, refactoring, etc

TODO:
- Send back dataform to the server
- Handle OOB data
- Handle legacy fields again
- Better error handling
- Complete BOB and Media handling for captchas
- Finish support for previous/next navigation in registration wizard
  (cleanup already added views, etc)

Future considerations:
- Drop JabberSpeak.cpp completely and use GlooxHandler instead
  everywhere
2019-09-27 22:34:47 +02:00
Adrien Destugues 07a35ed217 Implement sending messages to group chats 2019-07-14 12:26:38 +02:00
Adrien Destugues cbc5f0e2ab Remove "SSL" box and support for manually overriding server
This is supposed to be handled using SRV DNS records, and is unrelated
to SSL anyways.
2019-07-14 10:28:30 +02:00
Adrien Destugues 1ac024b223 Use standard about box 2019-07-14 09:40:02 +02:00
Adrien Destugues b8c40062c7 Remove some transmport related stuff.
Transport aren't really a cool thing these days, this code is in the old
Jabber implementation anyway, and it only handles IM networks that are
largely gone. We may reimplement this later, but for now it's easier to
have this out of the way.
2019-07-14 08:24:58 +02:00
Adrien Destugues 6d06a0b5b0 Rename to Renga
I heard "Jabber for Haiku" is not a great name and the protocol isn't
called Jabber anymore these days.

TODO: replace all logos as well.
2019-07-14 08:23:57 +02:00
Adrien Destugues 0e349ea402 Implement some multi user chat. 2019-07-13 19:42:59 +02:00
Adrien Destugues 416ad13ff8 Implement "software version" iq reply. 2019-07-13 16:30:41 +02:00
Adrien Destugues a5e119a022 Remove old JID parsing code and use gloox::JID.
Should help fixing 64bit build more.
2019-07-13 15:44:27 +02:00
Adrien Destugues 8229a0c8b8 Attempt to fix 64bit build.
Should fix #28
2019-07-13 08:40:07 +02:00
Adrien Destugues cc27aecd67 Implement adding/removing contacts, and creating account 2019-06-22 14:39:29 +02:00
Adrien Destugues dfb2026af1 Migrate "SendPresence" to gloox. 2019-06-22 13:02:08 +02:00
Adrien Destugues 04c164a837 Add bookmarks retrieval
Allows to auto-join and remember conference rooms.
2019-06-21 20:55:03 +02:00
Adrien Destugues ff72b8b80f Handle "pending presence" state. 2019-06-19 20:51:32 +02:00