miruka
9bd739a0db
Fix focus and simplify popup-opener menu items
...
Introduce a HmenuItemPopupSpawner component that takes care of reacting
to onTriggered signals and calling the utils.makePopup() function.
The combination of this new component used in HMenu to open a HPopup
now correctly takes and restore focus to the right element when closed.
2019-12-20 10:30:50 -04:00
miruka
d9b7118f45
load_past_events: raise instead of logging errors
2019-12-20 09:30:57 -04:00
miruka
5e26188dfe
Fix & improve EventImage thumbnail sizes
2019-12-20 09:12:16 -04:00
miruka
be6292a521
RoomPane leave more space for chat in small window
2019-12-20 07:38:42 -04:00
miruka
5857f4e398
Better defined maximum sizes for the panes
2019-12-19 19:27:39 -04:00
miruka
535e380f40
Remove unused theme supported*PlusSpacing
2019-12-19 19:04:07 -04:00
miruka
aaa8411cb9
Room.last_event: be an Event instead of dict
2019-12-19 16:52:21 -04:00
miruka
cdd119405e
backend.py: remove some unused imports
2019-12-19 16:31:01 -04:00
miruka
090c53898c
Fix width for messages with text + image previews
...
The width of the images weren't taken into consideration to calculate
the message xOffset, resulting in these messages being pushed way past
what they should be and looking very thin
2019-12-19 16:03:00 -04:00
miruka
be0541f2d9
Improve HRepeater width properties
2019-12-19 16:00:37 -04:00
miruka
2229b41af1
New way to open debug consoles
...
Replace broken old utils.debug(...) (since the utils.js → Utils.qml
transition) with a declarative approach:
a console can now be opened with by placing a `DebugConsoleLoader {}`
anywhere.
mainUI has a default console opened by F1/alt-shit-c when no other
console is loaded.
2019-12-19 14:11:13 -04:00
miruka
fb1f9c62e5
Add SPDX ID LGPL v3+ license headers
2019-12-19 07:46:16 -04:00
miruka
d3ee39bf7b
Have a separate PageLoader component from UI
2019-12-18 17:04:18 -04:00
miruka
a1f89ca9c4
Fix utils.guess_mime / uploading with 0 byte files
2019-12-18 16:52:39 -04:00
miruka
e6541cd767
Document model.py
2019-12-18 16:41:51 -04:00
miruka
1f41e2ffaa
Document Backend attrs, adapt to new ModelStore
2019-12-18 16:24:43 -04:00
miruka
36359b05fa
Transfer.qml: fix typo
2019-12-18 16:24:36 -04:00
miruka
6fa2d91b69
Simplify and document ModelStore
2019-12-18 16:24:25 -04:00
miruka
5f1044e96a
Document model items
2019-12-18 15:00:34 -04:00
miruka
934d6a79a2
Document nio_callbacks.py, small code improvements
2019-12-18 14:24:55 -04:00
miruka
d9b27eff9f
Document media_cache.py
2019-12-18 13:43:31 -04:00
miruka
c6938903b8
Document matrix_client.py
2019-12-18 13:16:15 -04:00
miruka
05a331382e
Improve pyotherside_events.py doc
2019-12-18 10:39:38 -04:00
miruka
d89c83af5b
Document theme_parser.py
2019-12-18 09:50:53 -04:00
miruka
845fa40ed8
Improve docs for utils.py
2019-12-18 09:42:56 -04:00
miruka
d7045644f1
Rename and document html filtering stuff
2019-12-18 09:33:22 -04:00
miruka
cfcc190473
Rename QmlBridge to QMLBridge
2019-12-18 08:49:03 -04:00
miruka
ab46ac15e7
Document errors module
2019-12-18 08:46:36 -04:00
miruka
61cd3b2f55
Rename config_files module → user_files + document
2019-12-18 08:41:02 -04:00
miruka
23be12fb60
Document backend & qml_bridge + minor code changes
2019-12-18 08:14:35 -04:00
miruka
87b262ebee
Move backend.__about__ stuff into __init__
2019-12-18 06:55:05 -04:00
miruka
9e372d01d5
Python backend "App" becomes QmlBridge
...
Is now strictly about setting up asyncio/uvloop and providing the
functions for QML to interact with it and call backend coroutines.
The appdirs attribute is moved to Backend.
2019-12-18 06:44:18 -04:00
miruka
5d7d66f99b
Have a QML Future object instead of JS dict
2019-12-18 06:16:24 -04:00
miruka
d675b3a40b
Fix HDrawer import versions
2019-12-18 05:02:37 -04:00
miruka
717c5078c7
Move QML Python stuff to its own subfolder
2019-12-18 05:00:27 -04:00
miruka
f4d7636df6
Move Chat/ dir under Pages/
2019-12-18 04:53:08 -04:00
miruka
2bdf21d528
Rename some filers and folder for clarity
2019-12-18 04:45:09 -04:00
miruka
127f724357
Comment C++ files
2019-12-18 04:32:32 -04:00
miruka
12c7e44d8a
Turn event_handlers.js into EventHandlers.qml
2019-12-17 18:10:18 -04:00
miruka
705fb31f88
Fix Utils.flickToBottom()
2019-12-17 18:07:15 -04:00
miruka
2cb64c5346
Turn utils.js into a Utils.qml QtObject
...
When a .js module is used, every single file that imports it creates
its own duplicated environment in memory for that module.
Instead, use a simple QtObject with all the functions, and declare it in
Window.qml so that it is available to all children everywhere in the
app.
2019-12-17 17:59:53 -04:00
miruka
c16731b239
Fix "transfered" → "transferred" spelling
2019-12-17 17:43:32 -04:00
miruka
b0cf708246
Differentiate invited members in room pane
2019-12-17 09:46:18 -04:00
miruka
216514f19c
Don't desaturate disabled button icons
2019-12-17 08:55:04 -04:00
miruka
c99ca8de44
Show progress bar when loading past room events
2019-12-17 08:54:46 -04:00
miruka
026c049d62
Improve message delegate code, fix multiple issues
...
- Fix the ListView not auto-scrolling like it should when message
delegates changed height, such as when images were loaded
- Fix messed up delegate positions overlapping each others when
movements happen
- Fix previous/nextItem binding broken due to imperative modification
- Fix "messageBodyWidth" binding loop
2019-12-17 03:45:00 -04:00
miruka
b3e3fd7bc6
EventFile: be as tall as the message avatars
2019-12-16 18:28:51 -04:00
miruka
1d43d522e6
Strip file:// prefix from copied downloaded paths
2019-12-16 18:22:25 -04:00
miruka
ce23d2c992
Reactivate EventFile for video and audio events
...
Temporary solution until the media player is ready
2019-12-16 18:19:06 -04:00
miruka
45ff9bba99
EventFile now downloadable
2019-12-16 18:05:09 -04:00
miruka
8215d127c8
Move EventImage.download() to EventMediaLoader
2019-12-16 17:48:58 -04:00
miruka
011b870d0b
Don't show EventFile for video/audio links
2019-12-16 17:42:05 -04:00
miruka
1ec8ed466f
Implement crude encrypted EventImage downloading
...
When a message image is clicked in an encrypted room, the full file will
be download (no GUI indication for now, just a print in terminal) and
opened when ready.
Before downloading, copying the image address via right click will put
the full image mxc:// URL in clipboard. After downloading, it will be
the local downloaded image path instead.
2019-12-16 17:36:14 -04:00
miruka
5dbf06ba6c
Fix multiple accounts local echo issues
...
- Messages should now always be in the order they were sent in when
sending from multiple accounts to a same slow room
- Fixed dead lock that occured when sending a message
from account A, then from account B, then from account A, in a
room slow enough so that all of them would be in local echo transition
at the same time.
2019-12-16 10:53:26 -04:00
miruka
423c657fea
Disable HListView animation debug prints
2019-12-16 07:35:39 -04:00
miruka
817ae905fe
Backend._any_clients(): only pick a healthy client
...
When selecting a random client for get_profile(), thumbnail(), or
download() requests, ignore those that aren't currently syncing.
Also warn if we still can't find a healthy client after 30s.
2019-12-16 07:02:42 -04:00
miruka
5b4146c854
Fix main pane not updating on Account changes
...
The pane only updated on Room model changes. If an account with no
joined rooms was added, it would be invisible until a client restart.
2019-12-16 07:01:19 -04:00
miruka
9da0b12e45
Resume accounts faster on client startup
2019-12-16 05:14:26 -04:00
miruka
7d8f67bfe2
Retry if initial profile retrieval on login fails
2019-12-16 05:03:57 -04:00
miruka
18822b9102
Remove unused ImportError.qml
2019-12-16 04:51:52 -04:00
miruka
b307b596d2
Animators are buggy crap, drop them
2019-12-16 04:42:41 -04:00
miruka
aad317126a
Fix sign out
2019-12-16 04:11:46 -04:00
miruka
5765638466
Fix click on room setting buttons not working
2019-12-15 15:23:15 -04:00
miruka
88df501f13
Remove now unused pane properties in theme
2019-12-15 15:11:51 -04:00
miruka
5e3a621f8b
Respect uiScale for panes
2019-12-15 15:10:50 -04:00
miruka
52956954e5
Fix filter field overflowing at some sizes/zooms
2019-12-15 14:56:40 -04:00
miruka
a9507bdbeb
Change HListView transitions to run on scale
2019-12-15 14:36:24 -04:00
miruka
5a3eb2c2e5
Disable room pane buttons startup animation
...
Looks weird
2019-12-15 13:04:51 -04:00
miruka
2cfe76fd8e
Wrap image progress bars in loaders, fix cpu usage
2019-12-15 13:02:40 -04:00
miruka
2d501dca5a
Use a Loader for HTile context menus
2019-12-15 05:37:14 -04:00
miruka
59260e108a
makeObject(): accept a component as first argument
2019-12-15 05:26:36 -04:00
miruka
986b117fbc
Prevent HDrawer resizer events from being stolen
2019-12-15 03:45:46 -04:00
miruka
a8dbd9185a
Update matrix client update() usage
2019-12-14 17:40:31 -04:00
miruka
73dfcce8a7
Prevent crash in loading past evnts
2019-12-14 13:50:21 -04:00
miruka
47c53644e7
Fix/improve transfer speed-related stuff
2019-12-14 13:49:31 -04:00
miruka
c5ed3be031
RoomPane flickable: ignore unimplemented views
2019-12-13 18:04:31 -04:00
miruka
c6295225fb
Make tab keybinds work on room pane views
2019-12-13 17:59:58 -04:00
miruka
d8639db8ee
Fix HSwipeView binding loop
2019-12-13 17:55:41 -04:00
miruka
17452ea69b
Update TODO
2019-12-13 17:37:31 -04:00
miruka
ff7393b7c3
HSplitView with state saving and default props
2019-12-13 17:19:47 -04:00
miruka
51c68cf998
Fix Room.given_name possibly being None
2019-12-13 17:18:36 -04:00
miruka
df76efa359
Italicize room name in leave/forget poups
...
Like for the invite popup now
2019-12-13 17:11:01 -04:00
miruka
843389693e
Add room name to invite popup
2019-12-13 17:08:59 -04:00
miruka
a493b0cf61
Add "invite members" to room context menu
2019-12-13 17:04:56 -04:00
miruka
55506dd10e
Disable the room settings save button for now
2019-12-13 16:40:48 -04:00
miruka
c8ce50a01c
Fix Room.plain_topic accidentally set to None
2019-12-13 15:09:13 -04:00
miruka
8a4c160df6
Working cancel button in settings
2019-12-13 10:14:54 -04:00
miruka
0ab7a008cf
Add default... + reset() to field, area & checkbox
2019-12-13 09:56:52 -04:00
miruka
407396e01e
Put RoomPane inside a loader
2019-12-13 09:53:11 -04:00
miruka
bd8fa997c4
CreateRoom: Room names must not exceed 255 bytes
2019-12-13 09:22:29 -04:00
miruka
d240de702f
Implement (read-only for now) room settings
2019-12-13 09:22:13 -04:00
miruka
f8d5260fd7
Update some icons
2019-12-13 08:31:40 -04:00
miruka
c191adfd0b
Rename "Find someone" page to "Direct chat"
2019-12-13 07:17:11 -04:00
miruka
dff7be33f9
AddChat: Simplify EncryptCheckBox subtitle
2019-12-13 07:03:36 -04:00
miruka
621a4e415a
HTextField: disabledText and opacity handling
2019-12-13 06:29:58 -04:00
miruka
4cd4386abe
Improve HScrollableTextArea disabled handling
...
Don't hide text if no disabledText is explicitely set, set opacity
using theme.disableElementsOpacity
2019-12-13 06:24:58 -04:00
miruka
2ca79a212f
Increase chechbox indicator opacity when disabled
2019-12-13 06:21:30 -04:00
miruka
37023638c0
Hide avatar tooltip if avatar already big enough
2019-12-13 06:21:12 -04:00
miruka
82e4dff2ab
Fix left rooms appearing as joined rooms
2019-12-12 10:33:52 -04:00
miruka
438b0d26a4
Don't share room members models between accounts
...
Is unsafe and creates subtile bugs, like "invite member → member
declines → member disappears from the member list, then reappears a
second after" (race condition)
2019-12-12 10:11:24 -04:00
miruka
707ac61ff6
Support and sort invited room members
2019-12-12 10:03:39 -04:00
miruka
4b13b75617
Restore previous focus after HPopup closed
2019-12-12 08:39:26 -04:00
miruka
1bd012c871
Restore focus to previous element on HMenu closed
2019-12-12 08:36:51 -04:00
miruka
2769d60fdc
Add copy room/user ID context menus
2019-12-12 08:32:50 -04:00
miruka
6813a2c9b4
Fix double click on event to open console
2019-12-12 08:20:26 -04:00
miruka
1ecd383791
Hide avatar tooltips for broken thumbnails
2019-12-11 15:16:14 -04:00
miruka
5bef84064d
Don't show MemberDelegate subtitle if same as name
2019-12-11 15:12:21 -04:00
miruka
c4ee77ca15
Disable composer/upload button when no permission
2019-12-11 13:54:18 -04:00
miruka
c2b7b458f9
Use the "Binding on ..." syntax whenever possible
2019-12-11 13:03:33 -04:00
miruka
e694f1739b
Trim some text fields
2019-12-11 12:46:43 -04:00
miruka
001c643406
Implement inviting to room
2019-12-11 12:42:59 -04:00
miruka
fd2f8c9828
Reorder HButton props
2019-12-11 11:44:59 -04:00
miruka
ed3a3726e1
Don't call onError() for python CancelledError
2019-12-11 10:51:04 -04:00
miruka
1f12a19b48
Utils.makePopup(): allow setting different parent
2019-12-11 07:54:42 -04:00
miruka
e4f1cb6545
BoxPopup: more reliable implicitWidth (margins)
2019-12-11 07:54:13 -04:00
miruka
1c7015bbd2
Prevent HDrawer from being in front of an HPopup
2019-12-11 07:53:27 -04:00
miruka
d56b590edc
Rate-limit config files writing
2019-12-10 17:59:04 -04:00
miruka
3c4c92dbc0
Save/load composer text
2019-12-10 17:04:03 -04:00
miruka
98c2efb773
Unified API to save/restore state properties
2019-12-10 16:29:49 -04:00
miruka
2cd177dc13
Add text remembering ability to HTextField
2019-12-10 15:32:42 -04:00
miruka
888df282a8
Rename side pane stuff to main pane
2019-12-10 15:17:41 -04:00
miruka
3a3e0e9dbb
Rename some chat components
2019-12-10 15:03:05 -04:00
miruka
f65425957b
Builtin ability to remember size for HDrawer
2019-12-10 15:01:56 -04:00
miruka
8c8ba221d3
HDrawer resizer: use MouseArea's pressed prop
2019-12-10 14:23:14 -04:00
miruka
0578844eef
Rename some HDrawer props for more clarity
2019-12-10 14:19:25 -04:00
miruka
29cf78fe18
SidePane: default size if no custom one in state
2019-12-10 14:10:01 -04:00
miruka
ad6f111793
Fix & improve keyboard and mousewheel flicking
2019-12-10 11:49:46 -04:00
miruka
e70a1d459b
Correct SidePane behavior when no accounts present
2019-12-10 04:18:17 -04:00
miruka
b32d88cd95
Fix users that left a room not deleted from model
2019-12-09 15:34:29 -04:00
miruka
852b5818a2
Fix Chat loading spinner position
2019-12-09 15:34:13 -04:00
miruka
bd8bf6120e
Fix taking focus for chat
2019-12-09 14:13:38 -04:00
miruka
2e780d7c6a
HDrawer: provide real visible size prop→fix issues
2019-12-09 13:54:05 -04:00
miruka
6627c6341a
Fix DebugConsole retained history size
2019-12-09 13:51:50 -04:00
miruka
9c70e08668
Restore focus to previous item on console exit
2019-12-09 13:34:56 -04:00
miruka
37d8d5c68d
History persistence for DebugConsole
2019-12-09 13:21:12 -04:00
miruka
718aef8414
Make DebugConsole keyboard-scrollable
2019-12-09 13:00:42 -04:00
miruka
6e6fa0ad35
Improve console size, add variables info
2019-12-09 12:56:25 -04:00
miruka
f5b0cbb204
Make new console when needed & destroy old console
2019-12-09 12:32:46 -04:00
miruka
f125b6d60e
Minor DebugConsole improvements
...
Startup animation, top position by default, add F1 shortcut
2019-12-09 12:27:40 -04:00
miruka
9b9cf274ac
DebugConsole: take active focus on startup
2019-12-09 12:20:58 -04:00
miruka
e7abcced5f
Fix a HDrawer weird size issue
2019-12-09 12:16:23 -04:00
miruka
7d50e8c6a8
HDrawer: enable behaviors based on orientation
2019-12-09 12:10:04 -04:00
miruka
66e3a07401
RoomSidePane header buttons background
2019-12-09 12:03:35 -04:00
miruka
13d3f19997
Replace all ==/!= by ===/!==
2019-12-09 11:35:50 -04:00
miruka
3b78d12f9c
Rename HTabbedBoxes to HTabContainer
2019-12-09 09:29:57 -04:00
miruka
7ecdefa7f3
Set x/y only on DebugConsole, not HDrawer
2019-12-09 08:11:46 -04:00
miruka
a5e01fd3b9
Rename HDrawer "width" props, add horizontal prop
2019-12-09 08:10:03 -04:00
miruka
99034c7587
Make DebugConsole use HDrawer
...
Also add some help, commands to quicly set the position, and support
vertical orientations for HDrawer
2019-12-09 08:01:01 -04:00
miruka
5609ae2817
Refactor Chat/RoomSidePane
2019-12-09 05:25:31 -04:00
miruka
06a6a4c08d
Rewrite SidePane using QQC Drawer
...
Cleaner approach, gets rid of the HPage swipe view hack, better
performances, a lot less complex
2019-12-08 14:43:41 -04:00
miruka
5326726c4f
Improve default window size for small screens
2019-12-08 14:40:56 -04:00
miruka
9a074e6097
Improve bad event types messages
2019-12-08 12:46:25 -04:00
miruka
c2f5a5bcbc
Use normal QtQuick.Shortcut
2019-12-08 12:43:39 -04:00
miruka
793db51a60
Improve add-account.svg
2019-12-08 10:32:25 -04:00
miruka
93a6d706b8
Rename "Recovery" page to "Reset"
2019-12-08 05:31:02 -04:00
miruka
77a1d854c2
Add signin remember checkbox info
2019-12-08 05:30:30 -04:00
miruka
c3570c9d82
Update recovery/register texts
2019-12-08 05:30:04 -04:00
miruka
c3f1ca95f9
Increase HBox spacing
2019-12-08 05:29:37 -04:00
miruka
f58e2cbf7a
Change add account icon, prevent checkbox overflow
2019-12-08 05:08:59 -04:00
miruka
b267ef6562
SignIn screen tweaks
...
- Put the server field after user & pass, it makes more sense to have
the default focused field at the start
- Hide the currently unimplemented login method selection
- Rename Recovery tab to Reset (shorter)
2019-12-08 03:49:17 -04:00
miruka
f5fde35482
Remove checkbox default padding
2019-12-08 03:49:07 -04:00
miruka
455801a641
Use new way to cancel current login for signin btn
2019-12-07 18:45:03 -04:00
miruka
6f589dbda5
Implement cancelling python coros from QML
...
This was needed to implement the cancel button featue on the login
screen
2019-12-07 18:33:33 -04:00
miruka
4a93a24f74
cancel_previous(): use @functools.wraps
2019-12-07 17:09:13 -04:00
miruka
7deb21c182
Rename "logout" things to "sign out" + update icon
2019-12-07 12:45:20 -04:00
miruka
0f1a6c7df1
Add temporary Recovery box
2019-12-07 12:39:56 -04:00
miruka
f75d44a0dd
Add temporary "unimplemented" Register box
2019-12-07 12:39:35 -04:00
miruka
a2ffaf4a67
More consistant spacing for HBox & SignIn
2019-12-07 11:05:46 -04:00
miruka
956dc52174
Simplify box, tabs and popups size handling
2019-12-07 10:59:43 -04:00
miruka
7235611d54
Refactor SignIn, adjustments to HCheckBox & HBox
2019-12-07 09:38:36 -04:00
miruka
150744ab8a
main.cpp: put setAttribute before creating app
2019-12-07 09:05:57 -04:00
miruka
28b3727e88
New HTabbedBoxes component, base AddChat on it
2019-12-07 08:56:32 -04:00
miruka
883d1c095b
Smooth box size transition between AddChat tabs
2019-12-07 08:18:18 -04:00
miruka
099a98a5da
Click anywhere on errored upload bar to close it
2019-12-06 18:47:34 -04:00
miruka
54395fff44
Fix upload icon height
2019-12-06 18:40:39 -04:00
miruka
737e102629
Color upload icon but not text on pause/error
2019-12-06 18:37:18 -04:00
miruka
74efce589b
Remove periods at the end of room info events
2019-12-06 18:23:25 -04:00
miruka
4ada039384
Upload UI/code improvements
2019-12-06 16:44:25 -04:00
miruka
54df551b08
Rename theme "uploadsBar" to "fileTransfer"
2019-12-06 09:22:38 -04:00
miruka
150a783c28
Split UploadBars into a new FileTransfer/ dir
2019-12-06 09:20:34 -04:00
miruka
8ae4bbb6cf
Fix uplaod item delete, pause and cancel bugs
2019-12-06 08:59:35 -04:00
miruka
e51f1f2c79
Implement upload pause function
2019-12-06 08:44:45 -04:00
miruka
d354480840
Work around Qt hover bug for tooltips
2019-12-06 08:21:48 -04:00
miruka
d70260d007
Add visual upload pause button, not working yet
2019-12-06 07:10:22 -04:00
miruka
6c92f4cad1
Hide tooltips when window not hovered anymore
2019-12-06 07:07:40 -04:00
miruka
d893c4f534
SidePane: consider uiScale for manualSize
2019-12-05 10:59:29 -04:00
miruka
97cf7b6dcd
EventImage: respect uiScale
2019-12-05 10:51:57 -04:00
miruka
a555ad0e19
Upload stats
2019-12-05 10:00:23 -04:00
miruka
3aff20006c
Handle OSError happening in send_file()
2019-12-05 09:51:31 -04:00
miruka
b3f93b969c
Fix RoomMessageUnknown not seen as general event
2019-12-04 18:27:56 -04:00
miruka
9d89409379
Support UnknownEvent and UnknownEncryptedEvent
2019-12-04 18:20:30 -04:00
miruka
2fe8c80aa5
Enable high DPI scaling
2019-12-04 11:49:20 -04:00
miruka
c3dfb523b6
Don't bind ctrl+backspace to zoom reset
...
ctrl+backspace is used to delete previous word in a text field
2019-12-04 10:06:00 -04:00
miruka
b25f3f3e51
FindSomeone: reject invalid user ID
2019-12-04 10:00:29 -04:00
miruka
a992b51ac5
Fix being able to make room with inexistant user
2019-12-04 09:43:04 -04:00
miruka
470b031a6f
Standardize usage of period in UI sentences
2019-12-04 09:32:07 -04:00
miruka
915c96f174
Fix power icons position when room pane collapsed
2019-12-04 09:17:13 -04:00
miruka
34e0ec7c7d
Implement UI zooming
2019-12-04 09:08:38 -04:00
miruka
87a81ed1a7
Use real UUIDs for pendingCoroutines
2019-12-04 06:22:04 -04:00
miruka
26e63e4ab2
Use new nio AsyncClient.mxc_to_http()
...
Has the correct behavior for all servers,
e.g. mxc://privacytoosl.io/id → https://chat.privacytools.io/ ...
2019-12-02 06:42:48 -04:00