Commit Graph

207 Commits

Author SHA1 Message Date
Tobias Fella
5e533b8e03 Implement voice & video calls 2023-06-13 15:45:30 +02:00
Tobias Fella
72c85af407 Implement creating spaces 2023-06-08 20:05:53 +00:00
Tobias Fella
09025fa16d Remove some useless checks 2023-06-06 20:47:39 +02:00
James Graham
b5c781212c Improve the handling of notifications
The aim is to put some additional filtering in place to better stop floods of old notifications. This is achieved with a couple of new filters and better tracking of old notifications.

- Make sure to paginate through all notification on initialization to ensure they are all added to old notifications. While we were not previously putting a limit on the number of returned notifications the server can and will do this when there are a very large amount.
- Find the newest timestamp for each connection on initialization and don't post any notifications with an earlier timestamp.
- Track old notifications on a per-connection basis.

Closes network/neochat#358 and network/neochat#423
2023-06-05 16:42:01 +00:00
Tobias Fella
5d16d78914 Minor cleanup in Controller::createRoom 2023-06-04 08:51:29 +00:00
Tobias Fella
f1be509d13 Fix loading 2023-05-30 17:14:33 +02:00
Tobias Fella
a94f46f904 Fix build against libQuotient 0.8 2023-05-27 13:17:02 +00:00
Tobias Fella
ae6056615d Add missing capture 2023-05-18 00:03:07 +02:00
Tobias Fella
805332c599 Don't use implicit lambda captures 2023-05-17 23:49:56 +02:00
Tobias Fella
fa8164cdba Fix notifications showing up repeatedly when multiple logged-in accounts are in the same room
What happens is roughly: The notification is received in one account and marked as received locally.
In the other account, the event is marked as "read" in the json, which makes us delete it from the
received messages. Then it is received on the first account...
2023-05-15 21:28:08 +02:00
Tobias Fella
11233bee3a Fix trayicon disconnect warning 2023-04-29 20:10:11 +02:00
James Graham
85b40ca536 Devtools Improvements
- Now has tabs setup as more features are added
- First extra tab has basic server info
- Use mobileform to make it look nicer
- For the room data tab allow the room to be changed from within devtools
- For the room data tab allow m.room.member events to be filtered out so other event types can be found easily
- For the room data tab allow viewing room account data

network/neochat#557
2023-04-29 15:20:51 +00:00
James Graham
4b879be4ea MessageEventModel plain text role
Update the message role to be named plainText and use it the message delegate for openMessageContext.
This removes the need for plainText in controller so it is removed.
2023-04-27 16:58:52 +00:00
James Graham
4af7537764 Cleanup Controller
Remove unused functions and use setQuitOnLastWindowClosed as a slot for reacting to the tray icon setting change only.
2023-04-26 19:29:16 +00:00
Tobias Fella
f60114c7f6 Refactor account labels
Move them out of NeoChatUser, where they don't make any sense
2023-04-18 08:29:24 +00:00
Tobias Fella
ac88e13e58 Update Tobias' email address 2023-02-27 19:13:48 +01:00
Tobias Fella
6b49854b12 Automatically open room after creation 2023-02-24 18:15:50 +00:00
Tobias Fella
6d9dca7da8 Show a warning when a file is too large to download
BUG: 465527
2023-02-20 17:19:19 +00:00
Tobias Fella
9df534c72c Check if connection is null when handling notifications
BUG: 465143
2023-02-16 00:30:27 +01:00
Tobias Fella
4f7d32df2b Fix compilation against Qt6 and add CI 2023-02-01 16:34:39 +00:00
Gary Wang
bc74737b0f Avoid logout when loginError caused by network error 2023-01-18 12:01:10 +08:00
James Graham
8831da956a Notifications for all accounts
- Handle notifications from all accounts not just the active one.
- When a notification from the non-active account is clicked the active account is changed over to enter the correct room.

network/neochat#121
2023-01-11 19:02:51 +00:00
Laurent Montel
c46bfe05c1 Remove duplicate headers between cpp/h files 2022-12-19 13:32:39 +01:00
Zhang Dingyuan
9e01c96476 feat: support proxy user and password 2022-12-07 11:48:17 +08:00
Tobias Fella
6347c02d8b Delete access token file infrastructure
We've never supported it and it's broken, unsecure and leads to crashes-

BUG: 460407
2022-11-29 23:43:35 +00:00
Tobias Fella
99ad4130d9 Disable DropArea in flatpak
The droparea doesn't support flatpak and dropping something leads to a crash

BUG: 455990
2022-11-26 15:30:11 +01:00
Tobias Fella
03f4234483 Modernize AboutData registration 2022-11-26 00:59:17 +01:00
James Graham
c0b29afc47 Fix logout
Fix the account editor setting page and the controller logout function so that you can logout without crashing.
2022-11-20 16:55:50 +00:00
Tobias Fella
c58d8b58ff Implement basic developer tools 2022-11-16 23:45:45 +00:00
Tobias Fella
cd461628ab Account switcher fixes, part 1
- Make account index notifyable
- Give login window a title
- Fix height of account list
2022-11-14 02:30:06 +01:00
Tobias Fella
0e782c4a93 Implement viewing and responding to polls 2022-11-14 01:40:44 +01:00
Tobias Fella
90cbe37a92 Create new Account Switcher 2022-11-13 15:54:42 +00:00
Gary Wang
6ecc18d985 Add proxy config with Socks5 and HTTP proxy support
Resolve https://invent.kde.org/network/neochat/-/issues/547

This patch attempts to add proxy config support to NeoChat so people could set a HTTP or Socks5 proxy for anonymity or privacy/censorship-circumvention reason.

Currently this will only allows setting proxy type, host and port (which should be usable for most of the cases). Settings in that page needs to be applied by clicking the Apply button so the proxy setting won't accidentally get changed.

Proxy is disabled (use System Default option) by default.
2022-11-13 15:13:28 +00:00
Tobias Fella
3eb1080129 Don't crash when creating a DM 2022-11-10 22:52:35 +01:00
Tobias Fella
c34d99a234 Use correct preprocessor definition 2022-10-27 21:03:31 +02:00
Tobias Fella
e2faba153f Ifdef E2EE notifications 2022-10-24 13:02:19 +02:00
Tobias Fella
813a8003c6 Fix notifications for encrypted events
BUG: 459935
2022-10-23 22:12:15 +00:00
Tobias Fella
bbf76e1e64 Fix disconnects 2022-10-23 23:23:56 +02:00
Tobias Fella
1c9575ccfd Fix notifications with libquotient 0.7 2022-10-17 21:14:03 +02:00
Tobias Fella
785a82df93 Fix inline images not showing up
Work around QTBUG 93281

See https://bugreports.qt.io/browse/QTBUG-93281 for details
2022-10-17 18:54:59 +00:00
Tobias Fella
22448ea9ae Clean up includes 2022-10-08 19:03:49 +02:00
Tobias Fella
c007961ef6 Fix some compilation warnings 2022-09-23 00:21:08 +02:00
Tobias Fella
d70a8a652a Always use system-style includes for libQuotient 2022-09-09 00:16:39 +02:00
Nicolas Fella
55847cb9cc Refactor window handling code
Currently when we want to show/raise the window in reaction to the tray icon/notification being clicked etc we do this by emitting a signal on the controller.
This is connected to in main.qml, which does some things, then calls back to controller to do more things.

This is quite convoluted. Instead introduce a new class WindowController that is responsible for all things window, in particular showing/raising and config saving
2022-09-05 19:27:55 +00:00
Nicolas Fella
4cf5b516d0 Extract code for obtaining a window from the QML engine into a function 2022-09-05 19:27:55 +00:00
Tobias Fella
25226aa61f Don't save connection state when destructing the controller
This causes neochat to crash and is done automatically by the connections

BUG: 458353
2022-08-26 22:00:38 +02:00
Tobias Fella
f004f9e3c8 Fix build 2022-08-26 12:52:46 +02:00
Tobias Fella
b1581a54d1 Allow sending encrypted messages if build supports it 2022-07-14 16:59:37 +02:00
Tobias Fella
2bcd7118f4 Ensure that text isn't formatted in context menu 2022-07-09 23:01:13 +02:00
Tobias Fella
e0df553a72 Remove unused imports & includes 2022-07-08 13:16:07 +02:00