Commit Graph

937 Commits

Author SHA1 Message Date
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
miruka
3919b964ca Add ability to cancel uploads 2019-12-02 05:06:21 -04:00
miruka
ae009c7412 Serialize Python UUIDs to strings for QML 2019-12-02 04:40:29 -04:00
miruka
bbb872e5dc Improve HButton behavior on small fixed size 2019-12-02 04:40:01 -04:00
miruka
92bfb02446 UploadBars: tooltip and expand text on error/click 2019-12-02 03:19:43 -04:00
miruka
e4aa3b6572 Handle upload errors 2019-12-02 02:57:47 -04:00
miruka
08694388dd Serialize Python types to their __name__ attribute 2019-12-01 12:21:37 -04:00
miruka
3e214dc26b Don't use Animators for ListView transitions
They're buggy
2019-12-01 11:24:20 -04:00
miruka
9e9737d8ad Don't use HOpacityAnimator in ListView, flickering 2019-11-30 16:27:34 -04:00
miruka
df0020e62c Fix EventImageTextBubble shown when no text 2019-11-30 15:03:07 -04:00
miruka
c5a8be9ef9 Use new HScaleAnimator instead of HNumberAnimation 2019-11-30 14:59:48 -04:00
miruka
29cdc0f3f8 Use HRotationAnimator instead of HNumberAnimation 2019-11-30 14:37:04 -04:00
miruka
68d7c11c58 Add HX/YAnimator, used instead of HNumberAnimation 2019-11-30 11:45:24 -04:00
miruka
6a442da16f Use OpacityAnimators instead of NumberAnimations 2019-11-30 11:41:19 -04:00
miruka
d1e1ed07dd Hide EventImage bubbles on hover 2019-11-30 11:15:54 -04:00
miruka
db36ab6a74 No html styling in processedEventText() + cleanups 2019-11-30 08:20:41 -04:00
miruka
c8095f4874 EventContent: rename eventSender to senderText 2019-11-30 08:01:00 -04:00
miruka
2fd2806514 Support RoomMessageNotice events 2019-11-30 07:10:48 -04:00
miruka
3b2ab048fb Rework import keys pass confirmation
- Show button as loading until the import is done, *then* close popup
- Remove the dedicated backend password checking function, we can use
  import_keys() directly now
- Handle all the possible errors that could be thrown from python
2019-11-30 05:55:27 -04:00
miruka
a09e811e56 Remove old import dialog cruft 2019-11-30 05:55:27 -04:00
miruka
580f92e0be Color member name on hover in sidepane 2019-11-30 05:55:27 -04:00
miruka
a01de1f3d6 Add power icons for room members 2019-11-30 05:55:23 -04:00
miruka
a35526a0b5 Show higher power-level room members first 2019-11-30 04:04:24 -04:00
miruka
61c2919c7f Sort members and undated rooms case-insensitively 2019-11-30 03:59:44 -04:00
miruka
710dd56109 Correct "Empty room" display 2019-11-27 10:04:55 -04:00
miruka
81ce4635fc Linkify alias in m.room.alias events 2019-11-27 06:30:42 -04:00
miruka
f187a5f0ab Handle m.room.avatar, improve name/topic/alias
- Display the new room's avatar as an EventImage
- Show "x removed the room's avatar" if it's set to none
- Show "x removed the room's y" for empty name/topic/canonical alias
  events instead of "x changed the y to ''"
2019-11-27 06:18:06 -04:00
miruka
e57ffdae3f Room.__lt__(): use tuple comparison 2019-11-26 16:18:48 -04:00
miruka
2754fff0df Fix set_avatar_from_file() 2019-11-26 15:52:04 -04:00
miruka
2b288bdfc6 Import/export keys improvements 2019-11-23 11:14:14 -04:00
miruka
1d3ca08957 Reintroduce (reduced) event list cacheBuffer
This is needed until we have proper url preview support
2019-11-22 10:36:59 -04:00
miruka
6eff9e0513 Animate HBox apparition 2019-11-22 10:35:53 -04:00
miruka
66d7428da2 Don't disable loading tab buttons 2019-11-22 04:51:55 -04:00
miruka
301384dc57 Fix collapse buttons always disabled 2019-11-22 04:50:40 -04:00
miruka
60c64ad96f Fix logout 2019-11-22 04:27:20 -04:00
miruka
5a70adcc93 Use ES6 template strings 2019-11-18 03:57:13 -04:00
miruka
2123f5a66f Improve upload code, based on nio PR #76 2019-11-17 13:31:00 -04:00
miruka
25ce08891d Fix which EventImage url gets opened/copied 2019-11-16 08:06:56 -04:00
miruka
fc2fb605e3 Prefer using own client for fetching own profile 2019-11-14 16:20:30 -04:00
miruka
f727645342 Fix progress bar indeterminate ←→ normal switching 2019-11-12 18:22:57 -04:00
miruka
7e5bd5299e Fix logout not properly stopping the sync task 2019-11-12 18:19:48 -04:00
miruka
c2590abe12 Fix saved_accounts.add bad arguments 2019-11-12 18:12:41 -04:00
miruka
ea980e0241 Show coro uuid when logging py exception from QML 2019-11-12 18:12:08 -04:00
miruka
c4a65b0cff Remove big cacheBuffer from EventList 2019-11-12 10:00:32 -04:00
miruka
9f3bb1aa4d set_avatar_from_file: raise if file isn't an image 2019-11-12 09:48:11 -04:00
miruka
5f04628178 No need to str(path) anymore for model item Upload 2019-11-12 09:46:29 -04:00
miruka
37f5f5973c Clarify upload data type, guess_mime seek on end 2019-11-12 09:37:21 -04:00
miruka
47bfad1d72 Move Size type alias to utils 2019-11-12 09:26:43 -04:00
miruka
ef391d1eb1 Make utils function accept Path, str, bytes and IO 2019-11-12 09:24:58 -04:00
miruka
5832c3ca2d Raise on init if homeserver url is missing scheme 2019-11-12 09:13:45 -04:00
miruka
73541ad7a5 download/thumbnail don't need authentification 2019-11-12 09:10:00 -04:00
miruka
4cc2ebf6e3 Use exceptions for get_profile 2019-11-12 08:47:03 -04:00
miruka
6558bdc87f Put custom exceptions in their own file 2019-11-12 08:38:43 -04:00
miruka
290d3e9f6b Simplify Backend.get_profile 2019-11-12 08:34:08 -04:00
miruka
3ebb11aa69 Raise on room send error instead of logging 2019-11-12 07:45:54 -04:00
miruka
5a04bbaa93 Remove leftover debug console call 2019-11-11 11:07:38 -04:00
miruka
a7e505a387 Document utils.py 2019-11-11 09:26:35 -04:00
miruka
746a9259db SignIn: cancel previous task when clicking button 2019-11-11 09:12:31 -04:00
miruka
c9ddd4ee80 Change error msg when server URL may be invalid 2019-11-11 06:57:33 -04:00
miruka
7f48c1b35d Properly handle login errors with new exceptions 2019-11-11 06:39:11 -04:00
miruka
de7053f196 Improve MatrixError.from_nio, use it for upload() 2019-11-11 06:08:31 -04:00
miruka
dbdb7b9bb0 Make thumbnail min/max size configurable via theme 2019-11-11 05:43:17 -04:00
miruka
deedc8c7aa Fix EventFile sizing/elliding 2019-11-11 05:34:46 -04:00
miruka
4b76725006 Bring back EventFile (also for video/audio for now) 2019-11-11 05:26:32 -04:00
miruka
717b18fede Fix HPage and EventList flickTarget conflict 2019-11-10 09:38:16 -04:00
miruka
f2ab84c754 Add tab navigation shortcuts (for AddChat) 2019-11-10 09:28:57 -04:00
miruka
484e9e595d Rename EditAccount to AccountSettings 2019-11-10 09:07:35 -04:00
miruka
e3165d0a7c HPage: fix header text vertical centering 2019-11-10 08:58:47 -04:00
miruka
c0adf8353b Add account settings keybinds 2019-11-10 08:54:45 -04:00
miruka
e32747d434 Keybinds: remove old sidepane workaround binds 2019-11-10 08:50:50 -04:00
miruka
4920ef8155 Keybinds: Alt(+Shift)+N for add new chat/account 2019-11-10 08:49:51 -04:00
miruka
f552a16d51 HPage: set shortcuts.flickTarget on init
This makes any HPage by default keyboard-scrollable, notably
the new AddChat pages.
2019-11-10 08:44:36 -04:00
miruka
35a3ae2558 Change default collapse keybind to Alt+O 2019-11-10 08:36:54 -04:00
miruka
e2a7b690b3 Keybind: collapse first account if none selected 2019-11-10 08:34:05 -04:00
miruka
5d4840dcd8 Add shortcut to add new chats 2019-11-10 08:32:17 -04:00
miruka
14ba4b50b5 Avatars on FindSomeone/JoinRoom pages 2019-11-09 15:19:10 -04:00
miruka
72c480471a Add encryption check box to FindSomeone page 2019-11-09 14:57:46 -04:00
miruka
793024434f Set icon for starting direct chat 2019-11-09 14:29:19 -04:00
miruka
de59948214 When leaving room, try to go to previous page 2019-11-09 14:25:48 -04:00
miruka
46ff911bfa Add FindSomeone page 2019-11-09 14:20:53 -04:00
miruka
0aedc1a7d0 Prevent "failed to convert null" qt warning 2019-11-09 13:41:12 -04:00
miruka
b34387ad79 Implement enabling encryption when creating room 2019-11-09 13:38:21 -04:00
miruka
e7283f48f1 Create/JoinRoom: fix clickButtonOnEnter 2019-11-09 11:18:49 -04:00
miruka
35a4030cc0 Hide previous errors when clicking accept buttons 2019-11-09 11:15:24 -04:00
miruka
02888eb63d Change join/create room button icons 2019-11-09 11:10:25 -04:00
miruka
66fe230044 JoinRoom: enable join button if field is not empty 2019-11-09 10:48:48 -04:00
miruka
fa25c101ff Fix HRepeater childrenImplicitWidth property 2019-11-09 10:48:05 -04:00
miruka
5d4b699104 CreateRoom: show message if creation fails 2019-11-09 10:39:43 -04:00
miruka
c34676e5a0 Turn JoinRoom field red on error 2019-11-09 10:34:54 -04:00
miruka
e95a23ef90 Handle JoinRoom errors, error clases overhaul 2019-11-09 10:20:16 -04:00
miruka
dbcca17192 Add JoinRoom page 2019-11-09 09:52:16 -04:00
miruka
a9a99e4a65 Add ctrl+tab keybind to go to last page 2019-11-08 16:01:09 -04:00
miruka
b53acb3113 Implement pageLoader history + CreateRoom cancel 2019-11-08 15:56:20 -04:00
miruka
ad34d2d171 Implement room creation functions 2019-11-08 15:32:12 -04:00
miruka
bfbeb83ce5 Size CreateRoom box correctly if window too small 2019-11-08 10:31:07 -04:00
miruka
37e6ced259 Readd nio_callbacks.py 2019-11-08 10:20:48 -04:00
miruka
0ebbbc4a27 HCheckBox: fix bad default subtitle text value 2019-11-08 10:17:23 -04:00
miruka
2f20361f5c AddChat: make SwipeView non-interactive
Prevent accidentally switching tab by pressing left/right arrow (?)
2019-11-08 10:17:23 -04:00
miruka
8742b7803c Tabs theme, even/odd color, no gaps between tabs 2019-11-08 10:17:23 -04:00
miruka
8c111904a5 AddChat: move create room tab to last position 2019-11-08 10:17:23 -04:00
miruka
11c8af7c19 Show the creator or future room's avatar 2019-11-08 10:17:23 -04:00
miruka
d6fd518334 Add HTabButton component 2019-11-08 10:17:23 -04:00
miruka
7bed1eca30 AddChat page 2019-11-08 10:17:23 -04:00
miruka
45951554a5 Add "+" button to account delegates 2019-11-08 10:17:23 -04:00
miruka
83ff9bf61d Put all nio callbacks in a new separate class 2019-11-08 10:17:23 -04:00
miruka
693ae1c78e Put all nio callbacks in a new separate class 2019-11-08 10:13:50 -04:00
miruka
eee2162575 Serialize Path objects to QML
- media_cache.get_(thumbnail/media) now return a Path instead of str
- When converted to strings in the serialization, the "file://" prefix
  is prepended. This fixes problems when the app is built in release
  mode with QRC resources.
2019-11-07 04:02:41 -04:00
miruka
a8f4a00e5e Remove old broken __main__.py 2019-11-07 03:53:59 -04:00
miruka
acd69108e8 Common func for ModelItem/POSEvent value serializ 2019-11-07 03:43:05 -04:00
miruka
4a6f634f7a Allow picking multiple files to upload 2019-11-06 17:13:15 -04:00
miruka
6953239bc3 Add shortcut to send file from path in clipboard 2019-11-06 17:03:34 -04:00
miruka
25a86bc484 Add shortcut to send file 2019-11-06 16:45:33 -04:00
miruka
5c6b6ef68a Have a dedicated SendFilePicker component 2019-11-06 16:45:30 -04:00
miruka
c6bb41573f Add uploadsBar section to theme 2019-11-06 16:14:48 -04:00
miruka
67cffa854d EventImage: fix empty bubble in the corner 2019-11-06 16:11:12 -04:00
miruka
3acd3ba66a Show broken image icon when image fails to load 2019-11-06 16:09:32 -04:00
miruka
8383b6d3e4 Add radial progress bars to images 2019-11-06 15:47:18 -04:00
miruka
96839ea69a Add forked RadialBar module 2019-11-06 15:30:51 -04:00
miruka
8eca875499 Use new HCircleProgressBar for HBusyIndicator 2019-11-06 14:30:31 -04:00
miruka
f9fd8055f2 Add HCircleProgressBar 2019-11-06 13:49:48 -04:00
miruka
3cbbd6042b Show upload file size instead of index/upcount 2019-11-06 11:03:08 -04:00
miruka
28dd35fc1b Indeterminate progress bar styling 2019-11-06 10:08:55 -04:00
miruka
6cdd6de1b3 Show local echo icon on pure media events 2019-11-06 09:48:27 -04:00
miruka
18e184d1f0 Cache local media on upload, fix media local echo 2019-11-06 09:43:05 -04:00
miruka
1de82492dd media_cache: remove leftover pdb call 2019-11-06 09:03:50 -04:00
miruka
de41e859be Fix picking same file twice not working 2019-11-06 08:55:47 -04:00
miruka
487446046f Fix upload avatar overlay shown after picking one 2019-11-06 08:52:23 -04:00
miruka
4b47b0f7ec Remove useless UploadStatus.Success 2019-11-06 07:52:43 -04:00
miruka
4c15b7dc62 Fix SVG uploads, fix entire Upload model deleted 2019-11-06 07:50:31 -04:00
miruka
ace79a169c UploadsBar: fix qsTr.arg(arg1, arg2) call 2019-11-06 07:45:28 -04:00
miruka
e45f2c9d2d Fix thumbnail API error when QML gives float sizes 2019-11-06 06:51:55 -04:00
miruka
93a4015369 EventImage: set prop correctly if no thumbnail
Fix cases where a m.image event doesn't have a thumbnail but we tried to
download one anyway, resulting in a DownloadFailed exception.
2019-11-06 06:34:52 -04:00
miruka
92d3390106 Fix CryptDict redefined in media_cache.py 2019-11-06 06:30:17 -04:00
miruka
078cf61b7e Show an uploads bar in chats when uploading files 2019-11-06 06:28:48 -04:00