miruka
b610a404af
Clear selection if event list loses focus
2019-09-06 15:06:35 -04:00
miruka
522d078d7b
Accept ctrl-c to copy selected messages
2019-09-06 15:06:35 -04:00
miruka
131a20e9c5
Add context menu to copy selected messages
2019-09-06 15:06:35 -04:00
miruka
016f76167f
Initial implementation of message selection
2019-09-06 15:06:35 -04:00
miruka
5eaa877554
Avoid import harmless error messages at the end
2019-09-05 17:51:38 -04:00
miruka
970b0c82d3
Disable long press to open context menu
...
Interferes with drag-scrolling for HTileDelegate
2019-09-02 19:35:18 -04:00
miruka
1c41b91ef2
Remove old .pylintrc
2019-09-01 15:58:28 -04:00
miruka
a0509465e6
live-reload: allow specifying a component to load
2019-08-31 21:52:45 -04:00
miruka
9aff5450db
Reduce icons brightness
2019-08-30 20:30:39 -04:00
miruka
ca2ecc75bb
Make uvloop dependency optional
2019-08-30 20:24:13 -04:00
miruka
446dc776b0
Make make install
work
2019-08-30 20:13:38 -04:00
miruka
cc4a33bb04
Write to disk merged base + user config files
2019-08-30 19:43:58 -04:00
miruka
92f6274458
Use QtGraphicalEffects.LinearGradient
...
Instead of using a Rectangle and its gradient prop, since there's no
need for the rotation/scale hack and it gives better quality.
2019-08-30 19:21:51 -04:00
miruka
e506a70767
Fix random shortcuts getting triggered
...
Caused the "window bounces when typing text" bug
2019-08-30 19:06:42 -04:00
miruka
8a7e140163
Improve README instructions
2019-08-30 17:05:22 -04:00
miruka
546761f591
Fix sidePane toolBar id/property name
2019-08-30 13:48:24 -04:00
miruka
6a540f6397
Add keybinds to scroll page up/down
2019-08-30 13:06:54 -04:00
miruka
927323909d
Rename "greentext" to "quote"
2019-08-30 12:29:01 -04:00
miruka
720eb78fe8
Fix displaying local echo html formatting
2019-08-30 11:53:55 -04:00
miruka
aec83c66f3
Fix apply button loading on profile change
2019-08-30 11:42:01 -04:00
miruka
8a2053fcaf
Fix collapsing account with keyboard
...
When collapsing the account and the current page/focus is a room of this
account, switch focus to the account.
2019-08-30 11:24:47 -04:00
miruka
244fc12465
Fix using up/down arrows when focusing sidepane
...
Pause the HTileDelegates setCurrentTimer when the SidePane has focus.
2019-08-30 10:56:38 -04:00
miruka
4587599cf5
Fix sending typing state when no configured alias
2019-08-30 10:49:41 -04:00
miruka
f0612c2a51
Fix daybreak not showing before RoomCreateEvent
2019-08-30 10:33:17 -04:00
miruka
a987cf48e6
Don't add profile events to the timeline (for now)
2019-08-30 10:09:09 -04:00
miruka
19cbfc9cfe
Fix html_filter.py for html_sanitizer 1.7.3
2019-08-30 00:07:41 -04:00
miruka
73af3bd2c5
Reduce button hover/highlight overlay opacity
2019-08-28 19:44:52 -04:00
miruka
ff9f8127d7
UI gradient background, adjust some colors
2019-08-28 19:34:50 -04:00
miruka
1806ac6ac0
Color "upload profile picture" icon
...
Also fix hover zone to span the entire avatar rectangle
2019-08-28 18:47:04 -04:00
miruka
e1da7be253
Gray out disabled button icons
2019-08-28 18:32:16 -04:00
miruka
6cda69ad67
Restore icon colors
2019-08-28 18:21:13 -04:00
miruka
21b44bcf66
Add animated icon to ImportingKeys box
2019-08-28 13:50:29 -04:00
miruka
f8a392883b
Retry decrypting megolm events after a key import
2019-08-28 13:23:12 -04:00
miruka
ce3404a516
Show import keys error in the UI
2019-08-28 11:42:52 -04:00
miruka
f65c0176ba
Better error handling and fixes for key import
2019-08-27 23:51:38 -04:00
miruka
399a35dacb
Rename SendBox to Composer
2019-08-27 23:03:52 -04:00
miruka
ebfebbeae1
Improve import keys password popup
2019-08-27 22:43:57 -04:00
miruka
05b248e31a
Make config file reloading work again
2019-08-27 20:06:58 -04:00
miruka
eb11e7a13a
Disable invite and room sidepane expand icon
...
Their functions are not implemented yet.
2019-08-27 19:51:25 -04:00
miruka
410a42bc59
Show EditAccount page loading until profile ready
2019-08-27 15:07:08 -04:00
miruka
6cb7589cca
Loading icon for accounts until synced
2019-08-27 15:00:50 -04:00
miruka
bf3847dd66
Animate button loading
2019-08-27 14:11:33 -04:00
miruka
f5e52aed4e
Fix qrc resources not working
2019-08-25 15:39:00 -04:00
miruka
3749d1e135
Allow pressing escape to cancel in edit profile
2019-08-22 10:22:21 -04:00
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
6b64800ed7
Fix highlight not set when logging in new account
2019-08-21 17:55:27 -04:00
miruka
b8d43ecfec
Add account logout feature via context menu
2019-08-21 17:45:05 -04:00
miruka
26b01be23c
Add accept invite to room context menu
2019-08-21 16:38:34 -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
437324bd64
Improve HMenu/HMenuItem style
2019-08-21 16:23:22 -04:00
miruka
6067c8ec96
Add room context menu with Leave/Decline invite
2019-08-21 14:58:57 -04:00
miruka
d2938f8730
Don't linkify image links for outgoing html
2019-08-21 14:14:44 -04:00
miruka
7624ce5fcb
hsluv/hsl(a) functions: wrap around hue
2019-08-21 12:32:14 -04:00
miruka
1886303481
Fix member filtering
2019-08-21 12:17:12 -04:00
miruka
8ef3a6dc33
Fix expand icon size and startup highlight
...
Remove "hide hover highlight when keyboard pressed" feature, too hacky.
2019-08-21 06:02:00 -04:00
miruka
bdf7a63e6f
Increase sign in login method icons size
2019-08-21 04:43:37 -04:00
miruka
46e685847f
Replace HInteractiveRectangle by HTiledelegate
2019-08-21 04:39:07 -04:00
miruka
4abf57c8d4
Make HCheckBox themable
2019-08-20 18:31:20 -04:00
miruka
e012cf6e31
Highlight HButton when tab-focused
2019-08-20 17:43:59 -04:00
miruka
ce128d5ab5
Refactor HButton
2019-08-20 17:41:24 -04:00
miruka
c865de6dc7
Fix wrong collapse keybind: Alt+Shift+(R → L)
2019-08-20 13:01:22 -04:00
miruka
d427465425
Don't animate highlight rectangle sliding on click
2019-08-19 18:32:43 -04:00
miruka
de4d984ded
Use smart case for filters
2019-08-19 18:25:00 -04:00
miruka
109082c8d8
Use a Loader instead of StackView for pageStack
2019-08-19 15:38:45 -04:00
miruka
99bbe7f3ee
Keep the highlighted ListView item centered
2019-08-19 14:46:40 -04:00
miruka
af14038909
Rename filterRooms keybind to FocusSidePane
2019-08-19 13:58:31 -04:00
miruka
6ec193d554
obj.__dict__ calls → obj.serialized or vars(obj)
2019-08-19 11:52:52 -04:00
miruka
4349643345
filter_string is now a class property
...
- Support serializing class properties instead of just dataclass fields
- filter_string is now a property that's always up-to-date
- Account display names matching the current SidePane filter are shown
2019-08-19 11:34:51 -04:00
miruka
165c1b797e
Repair room filter, performance improvements
...
Chnaging delegate heights is a terrible idea that leads to graphic bugs.
Handle filtering (both room and accounts) and collapsing from a function
that sets the JsonListModel source.
2019-08-19 10:28:49 -04:00
miruka
2865d86d19
Refactor SidePane ListView in a flat way
...
Also adjust some colors (accentBackground)
TODO: Repair Filter rooms field
2019-08-18 03:35:28 -04:00
miruka
2e89dcae9e
Add shortcut to focus filter rooms field
2019-08-17 15:58:32 -04:00
miruka
d98b215c0f
Fix plain text messages newlines being ignored
2019-08-17 14:51:04 -04:00
miruka
717680bf0c
No leading 0 for RoomDelegate last event time
...
To save some pixels
2019-08-17 14:22:32 -04:00
miruka
72b5954ce3
Simplify startup and improve its animation
...
- Remove Python.loadingAccounts/willLoadAccounts
- Fix HPage SwipeView bug that caused its inner SidePane to steal focus
- Use overshoot for animation
- Get rid of sidepane flickering
- Set default HNumberAnimation easing.type to OutQuad, specify InOutQuad
for HCheckBox
2019-08-17 14:14:18 -04:00
miruka
1ab79347e9
Refactor HInterfaceBox and SignIn page
...
- Cleaned up code
- Sizes are standardized
- New HCheckBox component
- Replace RememberAccount page by a checkbox on the SignIn page
- The page can now be flicked if it's not tall enough to display
everything
- HNumberAnimation now has an overshoot property that will set the right
easing type, overshoot and adapt the animation factor/duration.
- HImage can now be colorized
2019-08-17 13:04:43 -04:00
miruka
28b5fbd267
Disable login button until ID & password entered
2019-08-16 16:44:28 -04:00
miruka
c7adb5b02f
Show error messages on login screen
2019-08-16 16:30:18 -04:00
miruka
da4bb55f43
RoomDelegate last event time year
2019-08-16 13:44:44 -04:00
miruka
e8b173163d
Add icon to RoomDelegate for invited rooms
2019-08-16 12:55:54 -04:00
miruka
cf8ae13eae
Set local echoes as room last events
2019-08-16 12:23:34 -04:00
miruka
c76ebe4fe2
Improve some texts
2019-08-16 09:47:44 -04:00
miruka
653934be71
Fix declining invitation being ignored
2019-08-16 02:12:37 -04:00
miruka
34edf923d0
Fix past events loading error for invited room
2019-08-15 11:46:40 -04:00
miruka
e027c56047
Add/improve ModelStore and Model __str__
2019-08-15 09:57:58 -04:00
miruka
5f72397afe
HLoader component, use Loader.asynchronous prop
2019-08-11 23:25:22 -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
ef36cc6e7a
Add missing dependencies to README
2019-07-25 19:19:39 -04:00
miruka
858c9f337d
Add decryption keys import in account settings
2019-07-25 02:43:52 -04:00
miruka
93a6867735
Set own messages color
2019-07-25 00:10:07 -04:00
miruka
a2469bd994
Don't use user theme in debug mode
2019-07-24 18:46:13 -04:00
miruka
b6290ad3c9
Fix SignIn circle buttons colors
2019-07-24 18:41:40 -04:00
miruka
6638a66578
Finish replacing light-thin icons
2019-07-24 18:25:12 -04:00
miruka
de11b53c4e
Copy default theme to user data dir if not exist
2019-07-24 18:14:43 -04:00
miruka
efa4ad0ae0
Add keybinds to config file
2019-07-24 17:05:27 -04:00
miruka
2be23128b1
Fix button hover overlay colors
2019-07-24 16:44:35 -04:00
miruka
cb25c30cb9
Fix EditAccount currentSpacing
2019-07-24 16:41:32 -04:00
miruka
921a0586cf
Add background image variable to theme
2019-07-24 14:58:16 -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
ab2a73dbfc
Set html style for code
2019-07-21 18:17:51 -04:00
miruka
2bd8514e9b
Label link colors
2019-07-21 17:50:01 -04:00
miruka
6e65376612
markdown: don't parse "> ..." as blockquote
2019-07-21 16:08:40 -04:00
miruka
f7d286cdc2
Save/load which accounts are collapsed
2019-07-21 09:26:47 -04:00
miruka
71f78feec6
Define UIState config file
2019-07-21 06:05:01 -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
cf54c0a29f
Never show our own users in typing bar
2019-07-20 02:33:02 -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
a10a395e0b
Only send a formatted_body if it's truly needed
2019-07-19 18:13:04 -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
93bc2ff5a9
Add multiaccount write-as alias account setting
2019-07-18 21:58:21 -04:00
miruka
9decd58992
Use aiofiles for image provider file writes
2019-07-18 20:44:17 -04:00
miruka
d597e1dda8
Refactor Backend and config file operations
2019-07-18 20:30:41 -04:00
miruka
a842981406
Improve README
2019-07-18 18:35:47 -04:00
miruka
67efde9116
Show own events on right only under certain width
2019-07-18 06:33:09 -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
f5d747cbc4
Fix wrong avatar for unamed rooms
2019-07-18 02:36:08 -04:00
miruka
4c0b947d1a
Handle nio.ThumbnailError cases
...
Return a 1x1 transparent PNG for now.
2019-07-18 02:08:01 -04:00
miruka
44a998f31b
Rename HHighlightRectangle → HInteractiveRectangle
2019-07-18 01:56:58 -04:00
miruka
d8295302a5
HTextField active color, HColorAnimation + factor
2019-07-18 01:53:28 -04:00
miruka
fa61e8f0e3
Standard way of knowing if window "is wide"
2019-07-18 01:18:06 -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
96745902f3
Move header definition from EditAccount to HPage
2019-07-16 12:53:52 -04:00
miruka
a813b1c715
HPage with SwipeView to show reduced side pane
2019-07-16 12:37:11 -04:00
miruka
29e21bc7c2
Fix avatar upload overlay overflow at small size
2019-07-16 11:48:57 -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
4b2cbffc83
Auto-set maximumLineCount for elide in HLabel
2019-07-16 04:47:56 -04:00
miruka
6ae37dc31f
Always center button text (for now)
2019-07-16 04:41:26 -04:00
miruka
aef777d853
Fix image selection and overlay bugs
2019-07-16 04:37:39 -04:00
miruka
73ecbaad10
Add upload avatar hover overlay
...
Also fix name colors and always use fit-crop mode for avatars.
2019-07-15 20:10:43 -04:00
miruka
62056b6124
Avatar change working
2019-07-15 16:14:08 -04:00
miruka
751a27157c
Add account settings page
...
Display name change working
2019-07-13 20:15:20 -04:00
miruka
6916039546
Add "Edit Account" interface skeleton
2019-07-13 05:34:58 -04:00
miruka
cb0d7e8a77
Highlight account and room delegates
2019-07-12 17:07:45 -04:00
miruka
a2ae569511
Split HButton into HBaseButton and HButton
2019-07-10 15:00:57 -04:00
miruka
62ec4a9ae8
Caught up to the old backend
...
Lines before (PyQt):
Language files blank comment code
Python 21 787 114 2076
QML 49 393 14 1689
JavaScript 2 59 3 177
SUM: 72 1239 131 3942
Lines now (pyotherside, asyncio):
Language files blank comment code
QML 59 516 159 1962
Python 11 306 53 739
JavaScript 5 64 24 211
C++ 1 6 2 18
SUM: 76 892 238 2930
2019-07-08 13:32:53 -04:00
miruka
7f7a7621cf
Cleanup TODO.md
2019-07-08 12:52:07 -04:00
miruka
4314767ac2
Fix creating UserUpdated events from nio rooms
2019-07-08 12:28:49 -04:00
miruka
0f6474532b
Add LGPL license headers
2019-07-07 23:53:08 -04:00