Commit Graph

1078 Commits

Author SHA1 Message Date
miruka
74d21224ab Hide account icons when MainPane gets too small 2019-12-22 09:35:21 -04:00
miruka
ab786173d9 MainPane: leave more space to chat in small window 2019-12-22 09:35:21 -04:00
miruka
e9efca76d4 HDrawer: snap around default size when resize-drag 2019-12-22 09:35:21 -04:00
miruka
b4df752f8a Improve MembersView when RoomPane collapsed 2019-12-22 09:35:21 -04:00
miruka
44e5de02f8 font color → span mx color for outgoing HTML
Also remove HTML_PROCESSOR `filter_inline` and `from_markdown_inline`
methods. `filter` and `from_markdown` now take an `inline` argument.
2019-12-22 09:35:21 -04:00
miruka
335d931b0a Turn markdown color names into hex codes
Not all clients may know the same color names or even support them, hex
codes are unambiguous.
2019-12-22 09:35:15 -04:00
miruka
b0d77d74a9 Add custom markdown syntax for coloring text
<color>(text to color) where color can be a SVG color name,
3 characters hex or 6 characters hex code.

Can be used to send colored message from the composer. Other clients
that follow the matrix spec should be able to display them (e.g. riot,
even if it can't send them)
2019-12-20 14:44:31 -04:00
miruka
be61a34ec0 Event context menu entry to open debug console
Replaces the hidden double-click-on-empty-space feature
2019-12-20 10:39:10 -04:00
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