Commit Graph

554 Commits

Author SHA1 Message Date
miruka
2d471b70f5 Single message text selection for mouses 2020-03-26 22:00:00 -04:00
miruka
3852357614 Start implementing new message selection system 2020-03-26 22:00:00 -04:00
miruka
710dba09ec Remove message text selection hack 2020-03-26 22:00:00 -04:00
miruka
58f34920bc Update TODO.md 2020-03-26 18:54:31 -04:00
miruka
a0e659098d Add compact mode to feature list 2020-03-23 18:15:51 -04:00
miruka
2e6488e6f9 Bump version to v0.4.1
Changelogs:

Added:

- `hideMembershipEvents` setting in config file, controls whether
  events such as "x joined the room" are shown in the timeline

- `hideProfileChangeEvents` setting in config file, controls whether
  display name and avatar change events are shown in the timeline

- Compact mode to make accounts, rooms, messages and room members
  take only one line as well as reducing vertical spacing between them.
  Set by the new `compactMode` setting in config file, and can also
  be toggled with the `keys.toggleCompactMode` keybind which defaults
  to Alt+Ctrl+C

- `keys.focusRoomAtIndex` in config file, a
  `{"<index>": "<keybind>"}` mapping which by default binds
  Alt+1-9 and Alt-0 to focus room 1 to 10 in the current account

- User ID, display names, room ID and room aliases are now
  automatically transformed to matrix.to links and will be rendered
  as mentions by clients.
  In Mirage, this results in user ID/names being colored with the
  same color seen when they send messages

- Track the number of times your user was mentioned in rooms.
  The visual counter is not yet displayed, since there currently is
  no way to mark messages as read and make the counter go down

Fixed:

- Python exceptions occuring in the asyncio loop not being printed
  in the terminal

- Extra newline shown after code blocks in messages

- Constant CPU usage due to button loading animations still being
  rendered while uneeded and invisible

Theme changes:

- Added `controls.avatar.compactSize` property
- Added `.mention` class styling to `chat.message.styleSheet`
2020-03-23 15:06:57 -04:00
miruka
38e57d2ff9 Color user mentions in local echoes too 2020-03-23 14:23:32 -04:00
miruka
b11bd8331b Fix constant CPU usage due to HButtonContent
Unload the animated HBusyIndicator when not needed
2020-03-23 14:04:00 -04:00
miruka
4fdf531631 Fix mention-related KeyError in message callback 2020-03-23 13:43:30 -04:00
miruka
3c64b33cb7 Color user mentions 2020-03-23 13:30:40 -04:00
miruka
c65d51b0e8 Update TODO.md 2020-03-22 12:06:25 -04:00
miruka
c6390238a9 Add settings to hide membership and profile events 2020-03-22 12:04:43 -04:00
miruka
ae272829c5 Fix releases link in INSTALL.md 2020-03-21 19:49:53 -04:00
miruka
60448b39e9 Fix build-appimage.sh for Pillow 0.7.0 2020-03-21 19:14:07 -04:00
miruka
abccee77ed Update TODO.md 2020-03-21 15:42:27 -04:00
miruka
23db284b8d Add building instructions for Gentoo 2020-03-20 14:11:47 -04:00
miruka
ee6ac18671 Show pages headers to go back to pane when needed 2020-03-19 20:33:46 -04:00
miruka
3df27674b2 Add real README.md and INSTALL.md 2020-03-19 19:13:08 -04:00
miruka
2511a03045 Fix event debug returning wrong event json 2020-03-19 18:49:33 -04:00
miruka
60fc2ccffc Replace console icon by reload config 2020-03-19 11:14:28 -04:00
miruka
743ff4df9f Upgrade Midnight theme with a real background 2020-03-19 02:35:50 -04:00
miruka
588dc4eec3 AppImage: compile Python with libreadline-dev 2020-03-18 19:39:37 -04:00
miruka
4ab25ada43 AppImage improvements and fixes
- No need to build manually the olm python 3 bindings, pip does it
- make clean in mirage dir if possible, since having build/ files from a
  compiling that happened from another distro can make the process fail
- Save linuxdeployqt and appimagetools outside of the mirage repo
- Lint the AppDir with the script from pkg2appimage
- From python, restore LD_LIBRARY_PATH, PYTHONHOME and PYTHONUSERBASE to
  their original values. The AppRun laucher overwrites them to properly
  launch the program, but it affects external programs too launched e.g.
  when user clicks a link.
2020-03-18 19:12:38 -04:00
miruka
977e75e95e Bundle default theme fonts 2020-03-15 19:08:12 -04:00
miruka
bbc4a9bb17 Fix HMenuItem icon colors 2020-03-15 19:08:12 -04:00
miruka
64d67234ab Fix room settings background 2020-03-15 19:08:12 -04:00
miruka
b85236d514 Slightly reduce "typing" icon size 2020-03-13 13:04:36 -04:00
miruka
9d7bffcee8 Ignore alias in room with no permission to talk 2020-03-13 12:47:01 -04:00
miruka
298043b3cb Prevent saving alias taken by other account 2020-03-13 12:10:47 -04:00
miruka
8c1c3ef05c Add explanation tooltip for composer alias 2020-03-13 11:35:05 -04:00
miruka
190eb58187 Write user files and media atomically 2020-03-13 04:36:22 -04:00
miruka
9d3e2dbfc4 Fix quotes in room subtitles 2020-03-13 03:55:04 -04:00
miruka
7e5896f52b Fix MediaCache asyncio Semaphore early import bug 2020-03-13 02:46:21 -04:00
miruka
247eb15281 Rename MainPaneToolBar to BottomBar 2020-03-12 17:15:36 -04:00
miruka
77d877047b Update docstrings 2020-03-12 14:41:00 -04:00
miruka
9bad0132d6 Make upload cancelling instant without visual hack 2020-03-12 13:28:30 -04:00
miruka
abf7251f75 TODO.md cleanups and clarifications 2020-03-10 21:28:32 -04:00
miruka
59296dd22c Change name and bump version 2020-03-10 10:41:27 -04:00
miruka
8d594e3e83 Fix room at index 0 not highlightable 2020-03-10 06:07:55 -04:00
miruka
f9f558cd34 Fix Thumbnail.from_bytes() 2020-03-09 17:33:07 -04:00
miruka
24180fc346 GUI-report important errors that occur during sync
Important = "isn't a server 5xx error"
2020-03-09 13:08:09 -04:00
miruka
46f3f15694 Fix cached thumbnails extensions 2020-03-09 12:10:04 -04:00
miruka
382235875c Upload thumbnails with the correct extension 2020-03-09 10:10:21 -04:00
miruka
61cc87cf18 Show max file size on upload button tooltip 2020-03-09 09:57:53 -04:00
miruka
ca8dd65f34 Disable buggy composer backspace override 2020-03-09 08:09:58 -04:00
miruka
0fa16400df Error msg for bad invites in non-federated room 2020-03-09 07:59:23 -04:00
miruka
1f76ceb1e3 Add Qt 5.15 future features to TODO 2020-03-09 05:55:57 -04:00
miruka
c618fb8ba3 Don't upload thumbnail if heavier than original 2020-03-08 08:10:27 -04:00
miruka
e1b26d1ec7 Show thumbnail uploading progress when uploading 2020-03-08 08:05:41 -04:00
miruka
d1e42a72a0 Fix upload pause/cancel 2020-03-08 07:34:38 -04:00
miruka
46232e3fb1 Button icon.cache only exists for Qt 5.13+ 2020-03-07 13:08:18 -04:00
miruka
4636a36154 AccountRoomsList highlight delegate scrolling 2020-02-13 05:36:28 -04:00
miruka
ce0a868579 Refix Event.source, JSONify dicts for ListModel 2020-02-12 14:14:09 -04:00
miruka
ae780345e8 Make "Filter members" work again 2020-02-12 08:15:54 -04:00
miruka
8a29143b60 Working Event.event_type & source fields 2020-02-12 06:19:49 -04:00
miruka
9990fecc74 Begin yet another model refactor
Use native ListModel which require a lot of changes, but should be
much faster than the old way which exponentially slowed down to a crawl.
Also fix some popup bugs (leave/forget).

Not working yet: side pane keyboard controls, proper highlight,
room & member filtering, local echo replacement
2020-01-06 03:41:14 -04:00
miruka
35fd57be56 Improve HDrawer complience/behavior with zoom 2019-12-26 11:09:40 -04:00
miruka
fc7f7256a1 Fix RoomPane buttons background static height 2019-12-26 10:51:41 -04:00
miruka
f977d9acf2 GUI popup for uncaught asyncio loop exceptions 2019-12-26 10:17:54 -04:00
miruka
511681ae4d Report uncaught Python exceptions with a GUI popup 2019-12-26 09:24:54 -04:00
miruka
eff64fabd6 Catch any nio.ErrorResponse to raise MatrixErrors 2019-12-26 08:16:04 -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
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
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
aaa8411cb9 Room.last_event: be an Event instead of dict 2019-12-19 16:52:21 -04:00
miruka
934d6a79a2 Document nio_callbacks.py, small code improvements 2019-12-18 14:24:55 -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
d7045644f1 Rename and document html filtering stuff 2019-12-18 09:33:22 -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
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
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
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
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
7d8f67bfe2 Retry if initial profile retrieval on login fails 2019-12-16 05:03:57 -04:00
miruka
5765638466 Fix click on room setting buttons not working 2019-12-15 15:23:15 -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
2cfe76fd8e Wrap image progress bars in loaders, fix cpu usage 2019-12-15 13:02:40 -04:00
miruka
09d94e7390 Update TODO 2019-12-15 03:54:54 -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
17452ea69b Update TODO 2019-12-13 17:37:31 -04:00
miruka
a493b0cf61 Add "invite members" to room context menu 2019-12-13 17:04:56 -04:00
miruka
8a4c160df6 Working cancel button in settings 2019-12-13 10:14:54 -04:00
miruka
5dc228f197 Improve TODO.md & add section about Qt future 2019-12-12 11:48:16 -04:00
miruka
82e4dff2ab Fix left rooms appearing as joined rooms 2019-12-12 10:33:52 -04:00
miruka
707ac61ff6 Support and sort invited room members 2019-12-12 10:03:39 -04:00
miruka
1ecd383791 Hide avatar tooltips for broken thumbnails 2019-12-11 15:16:14 -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
001c643406 Implement inviting to room 2019-12-11 12:42:59 -04:00
miruka
3c4c92dbc0 Save/load composer text 2019-12-10 17:04:03 -04:00
miruka
2cd177dc13 Add text remembering ability to HTextField 2019-12-10 15:32:42 -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
852b5818a2 Fix Chat loading spinner position 2019-12-09 15:34:13 -04:00
miruka
13d3f19997 Replace all ==/!= by ===/!== 2019-12-09 11:35:50 -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
455801a641 Use new way to cancel current login for signin btn 2019-12-07 18:45:03 -04:00
miruka
f75d44a0dd Add temporary "unimplemented" Register box 2019-12-07 12:39:35 -04:00
miruka
883d1c095b Smooth box size transition between AddChat tabs 2019-12-07 08:18:18 -04:00
miruka
d70260d007 Add visual upload pause button, not working yet 2019-12-06 07:10:22 -04:00
miruka
2fe8c80aa5 Enable high DPI scaling 2019-12-04 11:49:20 -04:00
miruka
470b031a6f Standardize usage of period in UI sentences 2019-12-04 09:32:07 -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
e4aa3b6572 Handle upload errors 2019-12-02 02:57:47 -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
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
2fd2806514 Support RoomMessageNotice events 2019-11-30 07:10:48 -04:00
miruka
710dd56109 Correct "Empty room" display 2019-11-27 10:04:55 -04:00
miruka
5a70adcc93 Use ES6 template strings 2019-11-18 03:57:13 -04:00
miruka
fc2fb605e3 Prefer using own client for fetching own profile 2019-11-14 16:20:30 -04:00
miruka
fccae0e191 Update TODO 2019-11-12 09:58:41 -04:00
miruka
9f3bb1aa4d set_avatar_from_file: raise if file isn't an image 2019-11-12 09:48:11 -04:00
miruka
73541ad7a5 download/thumbnail don't need authentification 2019-11-12 09:10:00 -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
484e9e595d Rename EditAccount to AccountSettings 2019-11-10 09:07:35 -04:00
miruka
14ba4b50b5 Avatars on FindSomeone/JoinRoom pages 2019-11-09 15:19:10 -04:00
miruka
b53acb3113 Implement pageLoader history + CreateRoom cancel 2019-11-08 15:56:20 -04:00
miruka
7bed1eca30 AddChat page 2019-11-08 10:17:23 -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
4a6f634f7a Allow picking multiple files to upload 2019-11-06 17:13:15 -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
3acd3ba66a Show broken image icon when image fails to load 2019-11-06 16:09:32 -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
4c15b7dc62 Fix SVG uploads, fix entire Upload model deleted 2019-11-06 07:50:31 -04:00
miruka
e45f2c9d2d Fix thumbnail API error when QML gives float sizes 2019-11-06 06:51:55 -04:00
miruka
078cf61b7e Show an uploads bar in chats when uploading files 2019-11-06 06:28:48 -04:00