miruka
3082c64666
Show user ID as member tile subtitle
...
Also move member styling in theme to the right place
2019-08-22 05:42:48 -04:00
miruka
b8d43ecfec
Add account logout feature via context menu
2019-08-21 17:45:05 -04:00
miruka
076ff743ad
Add forget to room context menu
...
Also show Leave only if not already left, and rename forget-room.svg to
room-forget.svg
2019-08-21 16:29:44 -04:00
miruka
ed96409645
Split HButton components, add HMenu/HMenuItem
2019-08-21 15:45:13 -04:00
miruka
1886303481
Fix member filtering
2019-08-21 12:17:12 -04:00
miruka
46e685847f
Replace HInteractiveRectangle by HTiledelegate
2019-08-21 04:39:07 -04:00
miruka
ce128d5ab5
Refactor HButton
2019-08-20 17:41:24 -04:00
miruka
109082c8d8
Use a Loader instead of StackView for pageStack
2019-08-19 15:38:45 -04:00
miruka
36dd6457ea
Change focus filter rooms keybind to (Alt/Ctrl)+S
2019-08-19 13:18:45 -04:00
miruka
98803e8c23
Hide PyOtherSide error when EventList is destroyed
2019-08-19 13:14:25 -04:00
miruka
543f7ac747
Smarter adjust of messages line height
...
Increase line height is the message is multiline, except if there's an
<img> tag in it (due to a bug in Qt, workaround will be to implement
proper images support)
2019-08-18 03:25:56 -04:00
miruka
d0e77eb061
Increase messages line height again to 1.3
2019-08-17 23:54:32 -04:00
miruka
43f8f4131d
Slightly increase messages line height
2019-08-17 15:49:33 -04:00
miruka
0c493f88d8
Don't set alert if window already focused
2019-08-16 14:44:45 -04:00
miruka
2bb3952225
Show last event time in RoomDelegate
...
Also respect locale for message times
2019-08-16 12:07:22 -04:00
miruka
653934be71
Fix declining invitation being ignored
2019-08-16 02:12:37 -04:00
miruka
8baf336cf9
Room subtitle: show member but not profile events
...
Instead of not showing any kind of RoomMemberEvent.
2019-08-16 01:51:42 -04:00
miruka
729235fe6a
When a room is left, set UI state to default page
2019-08-16 01:31:46 -04:00
miruka
69a3f4377d
Show Default.qml from forget room button callback
2019-08-16 01:26:32 -04:00
miruka
6a7376d498
Update LeftBanner, fix forget button crash
2019-08-15 13:00:15 -04:00
miruka
3270c6dd19
Have inviter display name and avatar for rooms
2019-08-15 12:13:41 -04:00
miruka
947c706638
Improve "nothing events to show yet" message
2019-08-15 11:56:28 -04:00
miruka
34edf923d0
Fix past events loading error for invited room
2019-08-15 11:46:40 -04:00
miruka
5f72397afe
HLoader component, use Loader.asynchronous prop
2019-08-11 23:25:22 -04:00
miruka
fbd7c45fe4
Fix MemberDelegate v padding when collapsed
2019-08-11 23:01:14 -04:00
miruka
3c35616eaa
Remove copyright headers in code
2019-08-11 08:34:36 -04:00
miruka
67dde68126
Big performance refactoring & various improvements
...
Instead of passing all sorts of events for the JS to handle and manually
add to different data models, we now handle everything we can in Python.
For any change, the python models send a sync event with their
contents (no more than 4 times per second) to JS, and the QSyncable
library's JsonListModel takes care of converting it to a QML ListModel
and sending the appropriate signals.
The SortFilterProxyModel library is not used anymore, the only case
where we need to filter/sort something now is when the user interacts
with the "Filter rooms" or "Filter members" fields. These cases are
handled by a simple JS function.
We now keep separated room and timeline models for different accounts,
the previous approach of sharing all the data we could between accounts
created a lot of complications (local echoes, decrypted messages
replacing others, etc).
The users's own account profile changes are now hidden in the timeline.
On startup, if all events for a room were only own profile changes, more
events will be loaded.
Any kind of image format supported by Qt is now handled by the
pyotherside image provider, instead of just PNG/JPG.
SVGs which previously caused errors are supported as well.
The typing members bar paddings/margins are fixed.
The behavior of the avatar/"upload a profile picture" overlay is fixed.
Config files read from disk are now cached (TODO: make them reloadable
again).
Pylint is not used anymore because of all its annoying false warnings
and lack of understanding for dataclasses, it is replaced by flake8 with
a custom config and various plugins.
Debug mode is now considered on if the program was compiled with
the right option, instead of taking an argument from CLI.
When on, C++ will set a flag in the Window QML component.
The loading screen is now unloaded after the UI is ready, where
previously it just stayed in the background invisible and wasted CPU.
The overall refactoring and improvements make us now able to handle
rooms with thousand of members and no lazy-loading, where previously
everything would freeze and simply scrolling up to load past events
in any room would block the UI for a few seconds.
2019-08-11 08:27:53 -04:00
miruka
efa4ad0ae0
Add keybinds to config file
2019-07-24 17:05:27 -04:00
miruka
ec27ecf498
Initial themes implementation, new default theme
2019-07-24 02:14:34 -04:00
miruka
9397687122
Parse theme from a custom simpler format
2019-07-23 03:14:02 -04:00
miruka
cb1b95766c
Remove indents in sendbox with backspace
2019-07-22 18:06:34 -04:00
miruka
4c7815554c
Auto-indent new line in sendbox
2019-07-21 19:12:32 -04:00
miruka
67e06aa739
Remove debug print
2019-07-21 18:26:53 -04:00
miruka
5a1d974702
SendBox: insert 4 space on tab instead of huge \t
2019-07-21 18:23:45 -04:00
miruka
843d40ca26
Fix > parsing and local echo
2019-07-21 17:41:43 -04:00
miruka
459880903d
Message stylesheet; turn "> ..." into greentext
2019-07-21 16:53:34 -04:00
miruka
c0b51b574c
ui-settings: Rename write_aliases to writeAliases
2019-07-21 08:57:17 -04:00
miruka
246058e647
Make Chat show spinner until ready
...
Like EditAccount, instead of crashing if the room isn't loaded yet.
2019-07-21 08:38:49 -04:00
miruka
41eea44fff
Add keyboard shortcuts to flick the events list
2019-07-20 18:08:58 -04:00
miruka
1ffca37021
Fix sendbox modifier+enter for newline not working
2019-07-20 14:37:21 -04:00
miruka
7a959115ef
Have bottom padding again for DayBreak
2019-07-20 02:27:17 -04:00
miruka
3e1e924147
Fix messed up delegate positions on new message
2019-07-20 02:21:12 -04:00
miruka
0488a7dde8
Fix nameLabel binding loop
2019-07-20 01:35:25 -04:00
miruka
cea586120e
Rework how messages and events are handled
...
- No more translatable, content_type, show_name_line attrs for
TimelineEventReceived.
Since they are UI concerns, they are handled directly in QML.
- Refactor the EventDelegate and get rid of errors when new items
are added to the timeline
- Messages, events and emotes all combine correctly.
- No more 28px wide avatars for events, to make them uniform with
messages.
2019-07-20 01:30:58 -04:00
miruka
ecc2c099f1
Add /me command
2019-07-19 20:55:52 -04:00
miruka
db3a9efe8a
Hide status field for now, adjust big font size
2019-07-19 00:12:23 -04:00
miruka
2cf0864b18
Implement multi-account writing for sendbox
2019-07-18 23:50:23 -04:00
miruka
519d3610ef
Change HTextField borders, SignIn disable buttons
...
By default now, fields have a transparent border if not focused and
accent-color border if focused.
Set `bordered: false` for no border at all.
The register and forgot buttons on the SignIn screen are now disabled,
since their functions aren't implemented yet.
2019-07-18 20:39:13 -04:00
miruka
4d32adaa41
Animate event side change
2019-07-18 07:22:41 -04:00
miruka
67efde9116
Show own events on right only under certain width
2019-07-18 06:33:09 -04:00
miruka
1fa8b70359
ES5 → 7: Use for in/of and let
2019-07-18 05:18:13 -04:00
miruka
8a38274280
Make all JS functions and variables camelCase
...
According to conventions.
2019-07-18 04:48:34 -04:00
miruka
240885c32a
Fix bad icon_names → icon-names
2019-07-18 04:23:23 -04:00
miruka
ea02ce2316
ES5 → 7: Use enhanced object properties
...
http://es6-features.org/#PropertyShorthand
Instead of doing {"foo": foo, "bar": bar, ...}, we can just do
{foo, bar} now.
The function parameters of EventHandlers have all been renamed to
camelCase to make use of this, as the JS style conventions intend.
Other functions will follow in a later commit.
2019-07-18 04:17:35 -04:00
miruka
4920ff6212
ES5 → 7: Use function default parameters
2019-07-18 03:35:30 -04:00
miruka
8f53d2e018
Qt 5.12 ES5 → 7: Use "() =>" and array.includes
2019-07-18 03:13:34 -04:00
miruka
f5d747cbc4
Fix wrong avatar for unamed rooms
2019-07-18 02:36:08 -04:00
miruka
44a998f31b
Rename HHighlightRectangle → HInteractiveRectangle
2019-07-18 01:56:58 -04:00
miruka
902ac250b0
Fix file names to respect conventions
...
Important markdown/text files: UPPERCASE.ext
QML module dirs, qml files: PascalCase
Python module dirs, py files, js files: snake_case
Everything else (including icons): hyphen-case
2019-07-17 13:40:28 -04:00
miruka
332b6f1c0d
Big improvements on sidepane auto/manual sizing
...
See gui-tests.md for the expected sidepane behaviors.
2019-07-17 13:34:56 -04:00
miruka
e173253f74
Sidebar size fixes
2019-07-16 17:08:06 -04:00
miruka
5cc701113e
Fix banners, adapt to app width
2019-07-16 08:10:37 -04:00
miruka
1abec4cf2c
Remove some useless Layout.maximumWidth props
2019-07-16 05:55:07 -04:00
miruka
d2dfafb4e7
Standardize spacings
2019-07-16 05:29:47 -04:00
miruka
d302a5cf5f
Rename bottomElementsHeight to baseElementsHeight
2019-07-16 05:13:19 -04:00
miruka
d5dd1292ff
wrap/elide: use Layout.fillWidth when possible
2019-07-16 05:08:27 -04:00
miruka
7f46bafc9e
Use HRowLayout for typingMembersBar
2019-07-16 04:54:12 -04:00
miruka
4b2cbffc83
Auto-set maximumLineCount for elide in HLabel
2019-07-16 04:47:56 -04:00
miruka
751a27157c
Add account settings page
...
Display name change working
2019-07-13 20:15:20 -04:00
miruka
eeea0af4cd
Change every QtQuick import versions to 2.12
2019-07-13 05:39:01 -04:00
miruka
3a05d9bd60
Fix side panes spacing animation
2019-07-12 18:17:02 -04:00
miruka
338986f022
Highlighting and cleanup for MemberDelegate
2019-07-12 18:15:06 -04:00
miruka
a2136dfe3c
Rename HButton to HUIButton
2019-07-10 15:03:05 -04:00
miruka
eb9f02df31
Fix text overflowing from compacted HButton
2019-07-10 15:00:34 -04:00
miruka
e2696ea928
Prevent TypingMembersBar text from overflowing
2019-07-10 00:18:50 -04:00
miruka
2ced310ce1
Add initial support for user avatar thumbnails
2019-07-09 21:46:21 -04:00
miruka
0f6474532b
Add LGPL license headers
2019-07-07 23:53:08 -04:00
miruka
8dccfffc8b
Drop kwargs support for callCoro/callClientCoro
2019-07-07 23:38:37 -04:00
miruka
4f0ba24373
Send typing notifications from sendbox
2019-07-07 23:28:10 -04:00
miruka
d26f087df9
More checks to avoid errors on forgetting room
2019-07-07 22:49:28 -04:00
miruka
2170b16175
Rename users.getUser to users.find
2019-07-07 22:41:32 -04:00
miruka
b02fc11903
Remove forgotten rooms from the view
2019-07-07 22:19:45 -04:00
miruka
47327c64cf
Working filter field for room members
2019-07-07 05:50:42 -04:00
miruka
1af8c97734
Sort the room members
2019-07-07 05:25:03 -04:00
miruka
ea600a1450
Reintroduce RoomSidePane with members list
2019-07-07 05:15:18 -04:00
miruka
a47e6b5c07
When room changes category, affect the Chat too
2019-07-07 02:35:22 -04:00
miruka
683ee3e1cf
Add HUserAvatar and HRoomAvatar components
2019-07-07 00:24:23 -04:00
miruka
064fb6e9a2
Remove now uneeded Chat/utils.js
2019-07-06 23:58:41 -04:00
miruka
1ec660807e
Rename Chat "sender" prop to "senderInfo"
2019-07-06 23:46:06 -04:00
miruka
03d9079d63
Show LeftBanner with a generic left text
2019-07-06 23:43:51 -04:00
miruka
cf04f8ad2f
Display Left rooms, shorter onSyncResponse func
2019-07-06 22:35:42 -04:00
miruka
708488545e
Change some property types
2019-07-06 17:59:19 -04:00
miruka
34d68af51f
Rename SendBox root id
2019-07-06 17:56:04 -04:00
miruka
d83508742c
Replace HStyle singleton by global Theme in Window
2019-07-06 17:50:55 -04:00
miruka
6db870a372
HNumberAnimation component for standard duration
2019-07-06 17:42:04 -04:00
miruka
7b92264ef6
Animate TypingMembersBar
2019-07-06 17:35:51 -04:00
miruka
388967c737
Improve TypingMembersBar
2019-07-06 17:29:45 -04:00
miruka
ecd7768c70
Change how our own messages are displayed
...
Avatar and name won't be shown for our messages
(the avatar is still visible in sendbox), but they will have a different
background color.
Also make bottom UI elements 36px tall, for avatars to match size with
the rest of the UI.
2019-07-05 21:38:32 -04:00
miruka
4c4603691f
Working typing users bar
2019-07-05 19:54:16 -04:00
miruka
ee4e6470a9
Invite banner (callbacks not implemented yet)
2019-07-05 16:48:30 -04:00
miruka
57577ba8b8
Fix arrows and other keys not working in sendbox
2019-07-05 03:16:52 -04:00
miruka
ecba7c47ec
Past events loading (with two bugs)
2019-07-05 03:12:27 -04:00
miruka
55e14e96bc
Ensure msgs are sent in right order, fix echo bug
...
bug: only one local echo message delegate could be seen because all
echo eventId were the same
2019-07-04 21:37:20 -04:00
miruka
07438150db
Optimize model upsert, ensure right type for roles
2019-07-04 18:41:08 -04:00
miruka
22dfd83d32
Rename avatar/nameHue funcs to avatar/nameColor
2019-07-04 16:56:34 -04:00
miruka
fde7f4aee6
Move models to their own files
2019-07-04 16:01:44 -04:00
miruka
63645b73a5
RoomDelegate subtitle, take only 1 arg for getUser
2019-07-04 00:28:13 -04:00
miruka
5fa2892fda
Move various functions in QML code to new utils.js
2019-07-03 22:31:29 -04:00
miruka
8ac731149d
Sending messages and local echo
2019-07-03 21:20:49 -04:00
miruka
441c9d0c1d
Have different background for events and messages
2019-07-02 23:48:36 -04:00
miruka
c8347647b9
Fix messages and non-messages getting combined
2019-07-02 23:32:39 -04:00
miruka
f0c5afe8c7
Rename RoomEventList components
2019-07-02 22:29:09 -04:00
miruka
9d5701da19
Add support for non-message room events
2019-07-02 22:24:21 -04:00
miruka
06c823aa67
Build system, messages support and more
2019-07-02 13:59:52 -04:00
miruka
3344debbbf
Start rewriting backend with pyotherside+asyncio
2019-06-27 02:31:03 -04:00