miruka
85aaf7bcce
Don't copy combined invisible names
2019-09-06 15:07:19 -04:00
miruka
9936a7e2ee
Fix ctrl-c behavior
2019-09-06 15:07:19 -04:00
miruka
5ce71834f9
Fix clicking a link breaking scroll shortcuts
2019-09-06 15:07:19 -04:00
miruka
24a976e3ee
Fix clicking on eventList top/bot making it scroll
2019-09-06 15:06:35 -04:00
miruka
6a346264be
Improve multiple clicks message selection
...
- Triple click selects the message body without date or name
- Quadruple click (yes) selects the entire message with name and date
- Quadruple click on the name label does the same
2019-09-06 15:06:35 -04:00
miruka
32fde57ba7
Make message display names selectable
2019-09-06 15:06:35 -04:00
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
f5cbbd0a44
Reduce needed width to show room times
...
Also remove excess spacing between the title and time
2019-09-06 14:04:18 -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
28d8721fe2
Fix HShortcutHandler not processing shortcuts
2019-08-31 15:34:05 -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
6953250e50
Adjust padding for Buttons, TextFields, TextAreas
2019-08-30 18:10:25 -04:00
miruka
a6aec2d5bf
Fix HButton size on KDE
2019-08-30 17:37:13 -04:00
miruka
a40b274c7d
Explicitely unset font.pointSize
...
Avoid warnings on desktop environments
2019-08-30 17:04:42 -04:00
miruka
aec83c66f3
Fix apply button loading on profile change
2019-08-30 11:42:01 -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
37e762d241
Remove hard-coded colors and cleanup SVG icons
...
Also remove old filled icons pack, and rename the "light-thin" pack to just
"thin".
2019-08-28 16:30:48 -04:00
miruka
18120f5216
Add HProgressBar component
2019-08-28 14:28:20 -04:00
miruka
3a5d8bff9e
Remove HInteractiveRectangle and HRateLimiter
2019-08-28 12:02:53 -04:00
miruka
b1e1ea30d2
Rename HInterfaceBox component to HBox
2019-08-28 11:56:05 -04:00
miruka
7c3ed5ca14
Use HInterfaceBox for ImportExportKeys
2019-08-28 11:54:25 -04:00
miruka
f65c0176ba
Better error handling and fixes for key import
2019-08-27 23:51:38 -04:00
miruka
97b1608bcb
Ensure opacity/rotation of button icon is reset
...
After loading finished
2019-08-27 22:59:26 -04:00
miruka
560981a97e
Remove uneeded HRectangle component
2019-08-27 22:46:31 -04:00
miruka
77dbc3a502
Fix accent and input colors
2019-08-27 22:44:41 -04:00
miruka
9b83b91d9d
Remove unused HScalingBox component
2019-08-27 22:44:20 -04:00
miruka
ebfebbeae1
Improve import keys password popup
2019-08-27 22:43:57 -04:00
miruka
0a0e11e1f4
Rework the LoadingScreen and HBusyIndicator
2019-08-27 19:47:58 -04:00
miruka
6cb7589cca
Loading icon for accounts until synced
2019-08-27 15:00:50 -04:00
miruka
0c0ede8b40
Disable buttons when they're loading
2019-08-27 14:21:10 -04:00
miruka
bf3847dd66
Animate button loading
2019-08-27 14:11:33 -04:00
miruka
9077ea3925
Fix timer setting current AccountsRoomList index
2019-08-23 10:53:54 -04:00
miruka
2ff65af6ab
Prevent alt+letter from writting text in fields
2019-08-22 14:31:13 -04:00
miruka
a47351a5ad
Adapt auto-repeat shortcuts to new system
2019-08-22 14:16:49 -04:00
miruka
8de26c11a1
HShortcutHandler & HShortcut components
...
Provide more powerful shortcuts handling than what's available with
QML's Shortcut component, notably being able to react differently to key
presses, releases and auto-repeats.
2019-08-22 13:03:26 -04:00
miruka
627a186700
Add tooltips to buttons and room invite button
2019-08-22 09:27:41 -04:00
miruka
6b64800ed7
Fix highlight not set when logging in new account
2019-08-21 17:55:27 -04:00
miruka
7331c1fa1c
MenuItem: don't take space when not visible
2019-08-21 16:41:52 -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
ed96409645
Split HButton components, add HMenu/HMenuItem
2019-08-21 15:45:13 -04:00
miruka
6067c8ec96
Add room context menu with Leave/Decline invite
2019-08-21 14:58:57 -04:00
miruka
9332eadbbf
Use hsluv instead of hsla for avatar colors
2019-08-21 12:35:55 -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
1f5b46c257
Merge HListView and HFixedListView components
2019-08-21 05:02:37 -04:00
miruka
6e3924ca4e
Add ListView highlight color to theme
2019-08-21 04:58:53 -04:00
miruka
bd94cc3625
Fix button icon position
2019-08-21 04:52:34 -04:00
miruka
713aaf3635
Set padding for HCheckBox
2019-08-21 04:46:40 -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
7e7852b51e
Hide hover highlight when moving with keybinds
2019-08-20 14:39:37 -04:00
miruka
57b13131a0
Fix ListView transition bugs?
2019-08-19 20:50:14 -04:00
miruka
aba01d54e8
Rate-limit next/previous room activation
2019-08-19 18:17:59 -04:00
miruka
99bbe7f3ee
Keep the highlighted ListView item centered
2019-08-19 14:46:40 -04:00
miruka
5e5a658173
Add keybinds to go to previous/next room
2019-08-19 13:09:05 -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
3cc39210b4
Work in progress keybard sidepane navigation
2019-08-17 20:29:56 -04:00
miruka
1663b166c7
HInteractiveRectangle: add missing pressed effect
2019-08-17 17:05:52 -04:00
miruka
7319c8d7b4
Highlight currently select account/room delegate
2019-08-17 16:59:13 -04:00
miruka
c5d5768f2e
Adjust RoomDelegates opacity when filtering
...
Accounts with no matching rooms to show will have their opacity reduced.
2019-08-17 15:30:25 -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
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
858c9f337d
Add decryption keys import in account settings
2019-07-25 02:43:52 -04:00
miruka
b6290ad3c9
Fix SignIn circle buttons colors
2019-07-24 18:41:40 -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
72eff47012
Adjust/fix header, fields and buttons colors
2019-07-24 16:21:34 -04:00
miruka
29107ca7f2
Hide tooltips when they're not hovered anymore
...
Fix hovered avatar staying visible when cursor goes outside of window
(in most cases)
2019-07-24 15:59:34 -04:00
miruka
3439a74dab
Add color animation to HBusyIndicator
2019-07-24 15:34:29 -04:00
miruka
ec27ecf498
Initial themes implementation, new default theme
2019-07-24 02:14:34 -04:00
miruka
2bd8514e9b
Label link colors
2019-07-21 17:50:01 -04:00
miruka
5b421f02d8
Avoid some more avatar errors when forgetting room
2019-07-21 07:48:56 -04:00
miruka
853bb350b4
Make EditAccount show a spinner until ready
...
Instead of crashing if userInfo is not yet available.
statusMessage is removed for now from UserUpdated events,
and the users model items will have a "loading" property.
2019-07-21 07:14:16 -04:00
miruka
d033ea84e8
Add scrollbars to flickable and listviews
2019-07-20 15:07:31 -04:00
miruka
db3a9efe8a
Hide status field for now, adjust big font size
2019-07-19 00:12:23 -04:00
miruka
4f1884b121
Animate button enabled state change
2019-07-18 21:43:18 -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
50930aec36
Fix profile cancel button not restoring avatar
2019-07-18 18:48:32 -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
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
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
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
5cc701113e
Fix banners, adapt to app width
2019-07-16 08:10:37 -04:00
miruka
d2dfafb4e7
Standardize spacings
2019-07-16 05:29:47 -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
eeea0af4cd
Change every QtQuick import versions to 2.12
2019-07-13 05:39:01 -04:00
miruka
6dab79ae9a
Remove uneeded HEntityButton
2019-07-12 19:01:27 -04:00
miruka
cc937b38c4
Replace MouseAreas by input handlers
2019-07-12 18:02:14 -04:00
miruka
cb0d7e8a77
Highlight account and room delegates
2019-07-12 17:07:45 -04:00
miruka
a2136dfe3c
Rename HButton to HUIButton
2019-07-10 15:03:05 -04:00
miruka
a2ae569511
Split HButton into HBaseButton and HButton
2019-07-10 15:00:57 -04:00
miruka
d091f3bcb6
Propagate mouse click events on avatars
2019-07-09 23:49:59 -04:00
miruka
7e4cee31c7
Prevent avatar tooltip from going out of bound
2019-07-09 23:42:03 -04:00
miruka
eeca8b639d
HToolTip component, enter/exit fade effect
2019-07-09 22:51:52 -04:00
miruka
3dd16ba072
Add avatar tooltips
2019-07-09 22:48:59 -04:00
miruka
9af9e88b0d
Support room avatars
2019-07-09 21:54:53 -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
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
683ee3e1cf
Add HUserAvatar and HRoomAvatar components
2019-07-07 00:24:23 -04:00
miruka
03d9079d63
Show LeftBanner with a generic left text
2019-07-06 23:43:51 -04:00
miruka
708488545e
Change some property types
2019-07-06 17:59:19 -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
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
c95308106b
Increase small font size (12 → 13)
2019-07-05 03:27:32 -04:00
miruka
57577ba8b8
Fix arrows and other keys not working in sendbox
2019-07-05 03:16:52 -04:00
miruka
83694d387b
Prevent HRichLabel from stealing any mouse event
2019-07-05 01:54:29 -04:00
miruka
13266303ff
Fix room subtitle not passing click events
2019-07-04 19:23:40 -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
5fa2892fda
Move various functions in QML code to new utils.js
2019-07-03 22:31:29 -04:00
miruka
441c9d0c1d
Have different background for events and messages
2019-07-02 23:48:36 -04:00
miruka
06c823aa67
Build system, messages support and more
2019-07-02 13:59:52 -04:00
miruka
933341b7e6
Implement avatar hue from name
2019-06-28 18:39:00 -04:00
miruka
a1b4d8900f
New backend work
...
Models, account connection, fetching user profiles,
show connected accounts in sidebar
2019-06-28 18:12:45 -04:00
miruka
3344debbbf
Start rewriting backend with pyotherside+asyncio
2019-06-27 02:31:03 -04:00