Commit Graph

673 Commits

Author SHA1 Message Date
miruka
9b43bef935 Add profile/verification UI for room members 2020-07-10 13:14:17 -04:00
miruka
3933615f67 Fix menu/popup destruction disabling keybinds 2020-07-10 13:14:17 -04:00
miruka
b47d4d981f Implement session sign out (password auth only) 2020-07-10 13:14:17 -04:00
miruka
8a3d9affaa Fix signing out not cleaning up model data 2020-07-10 13:14:17 -04:00
miruka
0a2d274824 Add verified devices indicator to room header 2020-07-10 13:14:17 -04:00
miruka
9dc0688557 Render inline images/custom emotes
<img> tags that either have a width and height (needed for QML to render
correctly) or the data-mx-emote attribute (if they have no width/height,
we assume 32x32) will be rendered inline.

QML's support for img tags with remote src URLs seems buggy on Qt 5.15
especially, not working sometimes. We need to download and cache these
images (like done for matrix media events), and use the local path in
the img's src.
2020-07-10 13:14:17 -04:00
miruka
dc3e90ffc3 Clean up TODO.md 2020-06-26 08:52:00 -04:00
miruka
e62b53299a Update changelog and readme features 2020-06-26 08:33:22 -04:00
miruka
0c9474598c Bump version to v0.5.2 2020-06-26 07:06:56 -04:00
miruka
d058926902 Uncheck messages before clearing event list 2020-06-26 06:11:03 -04:00
miruka
78c04e6404 Fix flickable pages keyboard scrolling 2020-06-26 03:16:36 -04:00
miruka
2e610cf167 Correctly size the device list page 2020-06-26 02:51:31 -04:00
miruka
ce1373653a Improve device list footer
- Always visible
- Add a refresh button
- Will no longer make the list slowly grow
2020-06-26 02:32:25 -04:00
miruka
bcbc356a98 Implement manual key verification popup 2020-06-26 02:09:59 -04:00
miruka
d35173adc3 Correctly handle & warn about key-less devices 2020-06-25 16:10:44 -04:00
miruka
3001131ffa Fix DeviceSection number vertical alignment 2020-06-25 11:26:21 -04:00
miruka
dcc634be04 Page & popups: standardized keyboard accept/cancel 2020-06-25 10:27:24 -04:00
miruka
78affeddd9 Room settings avatar color: respond to name field 2020-06-25 10:06:03 -04:00
miruka
d5ea248ba1 Account page: spinners while profile is loading 2020-06-25 10:00:34 -04:00
miruka
da4a5ab5cd Rework HBox-based pages and account settings
- Refactor everything about HBox, and adapt all the pages and popups
  that used it

- Replace HTabContainer by HTabbedBox

- Make boxes swippable

- Make esc presses in boxes click the cancel button

- Make all boxes and popups scrollable when needed

- Replace generic apply button icons in popups

- Fix tab focus for error and invite popups

- Rework (still WIP) the account settings page:
  - Use the standard tabbed design of other pages
  - Ditch the horizontal profile layout, hacky and impossible to extend
  - Add real-time coloring for the display name field

- Implement a device list in account settings (Sessions, still WIP)
2020-06-25 08:49:27 -04:00
miruka
3314489a26 Make room settings pane scrollable
The new Base/ButtonLayout components will be used in the near future to
refactor other HBox-based components
2020-06-05 05:42:12 -04:00
miruka
cfee1b1e4b Fix cursor shape over text fields/areas
Fix only applies if kinetic scrolling is enabled, need WheelHandler (Qt
5.14+) otherwise
2020-06-05 01:54:42 -04:00
miruka
43ed7b2eb9 Update highlighted room when adding new chat 2020-06-05 01:07:39 -04:00
miruka
106bb3546f Topic text areas: focus next item on tab 2020-06-03 04:58:09 -04:00
miruka
7f72373afe Implement editing & saving room settings 2020-06-03 04:52:33 -04:00
miruka
6772f14c24 Use a text area instead of field for room topic 2020-06-02 21:52:16 -04:00
miruka
ccd2308427 Fix new added account's order 2020-06-02 21:11:04 -04:00
miruka
241c16932f Immediatly update cached profile after changing it 2020-06-02 21:09:21 -04:00
miruka
eb2c98f67f Handle MatrixNotFound errors, not UserNotFound
UserNotFound doesn't exist anymore
2020-06-02 20:19:09 -04:00
miruka
e676473f82 HLabeledTextField → extensible HLabeledItem 2020-06-02 20:14:55 -04:00
miruka
fed613359f Update CHANGELOG.md 2020-06-01 09:48:07 -04:00
miruka
dce3328037 Use new nio server-backed room unread counts 2020-05-31 19:06:25 -04:00
miruka
8215993abe TODO.md: update Qt 5.15 new features of interest 2020-05-30 23:08:21 -04:00
miruka
7c83b1c167 Remove uneeded dependencies for AppImage building
Pillow 0.7+ no longer requires separate installation of libraries like
libjpeg, zlib, etc, for common desktop architectures at least
(which is why we keep them in the INSTALL.md manual install commands).
2020-05-30 23:08:21 -04:00
miruka
01d3b6b489 Remove usage of HScrollableTextArea 2020-05-30 23:08:21 -04:00
miruka
a91a0c18f7 Refactor Composer
- Have a simple HTextArea component instead of HScrollTextArea
- Split composer parts between multiple files
2020-05-30 23:08:21 -04:00
miruka
ee58b0cee4 Update TODO.md 2020-05-28 13:59:25 -04:00
miruka
ab6a9d0225 Update TODO.md 2020-05-23 03:19:12 -04:00
miruka
855672481f Improve some python documentation and add an intro 2020-05-22 17:27:57 -04:00
miruka
3d474502e7 Update TODO.md 2020-05-22 08:31:45 -04:00
miruka
b3b12014ee Workaround collapsing large account ListView bug 2020-05-22 07:31:00 -04:00
miruka
1fea162fac Give up finding last event to respond to after 1k 2020-05-22 00:18:44 -04:00
miruka
6c7335e5db Add keybind to open links in messages
Ctrl+O by default.
Opens externally all links in selecteds, focused or the last
message that has links.
Can't open files (media events) yet.
2020-05-22 00:10:45 -04:00
miruka
bbd845c040 Use kwargs when calling nio.AsyncClient.upload() 2020-05-21 20:52:42 -04:00
miruka
921f75827d Use pdb if remote_pdb isn't installed 2020-05-21 20:50:43 -04:00
miruka
fb975fad71 Remove unused Backend.await_model_item() 2020-05-21 20:46:08 -04:00
miruka
8c9b5267e9 Update and add missing new docstrings 2020-05-21 20:45:15 -04:00
miruka
5ae71cb7ce Work around ModelStore binding loop 2020-05-21 01:26:12 -04:00
miruka
b30ce33494 Fix default media_mime for media events 2020-05-21 01:05:31 -04:00
miruka
96e61f15ce Set a more useful minimum size for main pane
144px min for a pane that's still useful.
Also set `collapseSidePanesUnderWindowWidth` config option to `450`
instead of `400` by default now.
2020-05-21 01:04:24 -04:00
miruka
07701ae880 Remove uvloop support, causes issues 2020-05-20 23:56:19 -04:00
miruka
a48b1cedd0 Don't limit width of messages with code blocks 2020-05-20 11:08:02 -04:00
miruka
8823077a1c Composer: on escape, cancel any response 2020-05-20 07:19:02 -04:00
miruka
d6846b08d9 Fix debugFocusedMessage keybind 2020-05-20 07:12:00 -04:00
miruka
87fa18fbcd Fix missing event text in plaintext reply fallback 2020-05-20 07:09:24 -04:00
miruka
aa8d3cf8d3 Add reply GUI controls 2020-05-20 05:19:06 -04:00
miruka
63af4be1e2 Defer fetching user profiles for events
Previously, events for which the sender, target (state_key) or remover
was missing from the room members would have their profile fetched
from network when registering the event into models.

This could cause very slow past events loading times for rooms, since
the event registering function (which contained the profile retrieval
directives) is run sequentially event-by-event.

Missing profiles are now lazy-loaded when events come into the
user's view in the QML timeline.
2020-05-20 03:42:40 -04:00
miruka
bc5549195b Improve HTMLProcessor performance (mentions)
- Try to autolink usernames only for outgoing messages
- Improve and add some missing docstrings

Fixes the very slow loading/python "freezing" for rooms with a huge
number of members.
2020-05-20 00:59:30 -04:00
miruka
ef9b880152 Register room members only when needed 2020-05-17 15:29:23 -04:00
miruka
71640b5c5a Mention kick/ban feature in README 2020-05-15 20:56:23 -04:00
miruka
dfd7d509a4 Fix item losing its parent model when filtered out 2020-05-15 20:56:23 -04:00
miruka
631e2bc107 Highlight index 1 when filtering rooms 2020-05-15 20:56:23 -04:00
miruka
ad7bce657c Merge RoomList & AccountBar account delegates code 2020-05-15 20:56:23 -04:00
miruka
4546a2f88c Set room as read when focusing it by ctrl+tab 2020-05-15 20:56:23 -04:00
miruka
008d4e6670 Update TODO 2020-05-15 20:56:23 -04:00
miruka
2cc24d0235 Updates and minor adjustment on glass theme 2020-05-15 20:56:23 -04:00
miruka
fd3fe06d15 Add keybinds to go to account at specific indice 2020-05-15 20:56:23 -04:00
miruka
6f1f82f82d Change unfocus/deselect & debug message keybinds
unfocus/deselect → ctrl+D, because escape conflicts with any text field
that must handle escape

debug message → ctrl+shift+D instead of ctrl+D
2020-05-15 20:56:23 -04:00
miruka
974478f576 Add keybinds for previous/next unread/mention room 2020-05-15 20:56:23 -04:00
miruka
922f12e9f9 Highlight correct account/room on startup 2020-05-15 20:56:23 -04:00
miruka
eacee59f9e Fix Room delegate opacity for left rooms 2020-05-15 20:56:23 -04:00
miruka
bd3c78a73a Make theme file closer to what it was in 0.4.3 2020-05-15 20:56:23 -04:00
miruka
fe18b725a5 Use an horizontal bar for accounts 2020-05-15 20:56:23 -04:00
miruka
45790dc57c Remove unused old model stuff 2020-05-15 20:56:23 -04:00
miruka
4d3c26abd4 Gather both Accounts and Rooms in all_rooms model 2020-05-15 20:56:23 -04:00
miruka
e90312803b Fix event delegates extra bottom space 2020-05-15 20:56:23 -04:00
miruka
05325d21bd Fix current account highlighting 2020-05-15 20:56:23 -04:00
miruka
7aa0e7fad6 Remove 429 workaround (fixed in nio #138) 2020-05-15 20:56:23 -04:00
miruka
200f25d23e Python filter for AccountsBar 2020-05-15 20:56:23 -04:00
miruka
0e49b5f972 Write-lock when refiltering 2020-05-15 20:56:23 -04:00
miruka
54b5f7b8f2 Fix HFilter find functions 2020-05-15 20:56:23 -04:00
miruka
592a9fe8e7 Have id field on ModelItem base class 2020-05-15 20:56:23 -04:00
miruka
5b2c131fd1 Filtering → hide accounts with no matching rooms 2020-05-15 20:56:23 -04:00
miruka
7042df003f Fix clicking on room in filtered list 2020-05-15 20:56:23 -04:00
miruka
37042f6365 Theming for account unread/mention indicator 2020-05-15 20:56:23 -04:00
miruka
9f7d30f248 Add account total unread/mentions indicator 2020-05-15 20:56:23 -04:00
miruka
9ebd8644c8 Dedicated MessageIndicator.qml (unread/mentions) 2020-05-15 20:56:23 -04:00
miruka
c352275089 Maybe fix the DelegateModel + ListView.add bug 2020-05-15 20:56:23 -04:00
miruka
bf20b7864d Fix compact mode with new pane 2020-05-15 20:56:23 -04:00
miruka
36a214bf1a Fix main pane minimum size 2020-05-15 20:56:23 -04:00
miruka
69a525d317 Replace SortFilterProxyModel by DelegateModel 2020-05-15 20:56:23 -04:00
miruka
19fe1c4e7b Buggy room filtering 2020-05-15 20:56:23 -04:00
miruka
fcf88209f2 Single room list approach, account bar scrolls 2020-05-15 20:56:23 -04:00
miruka
bbc462239c Improve accounts bar appearance 2020-05-15 20:56:23 -04:00
miruka
9b3127b7c3 New pane theming 2020-05-15 20:56:23 -04:00
miruka
93c7fadeed Rename RoomPane and AccountBar components 2020-05-15 20:56:23 -04:00
miruka
65103eaaba Add keybinds to switch accounts 2020-05-15 20:56:23 -04:00
miruka
72c96b3ba5 Start restructuring how the account/room pane work 2020-05-15 20:56:23 -04:00
miruka
fd8cf4ad8d Optimize model field replacements 2020-05-15 20:56:23 -04:00
miruka
2cbedaa892 HLoader as room delegates test 2020-05-15 20:56:23 -04:00
miruka
48a5f54e54 Update TODO 2020-05-15 20:56:23 -04:00
miruka
2cc3f27247 Add Ban to member context menu
Also don't try to load past messages in rooms we've left/been
kicked/banned from.
2020-05-15 20:56:23 -04:00
miruka
3e10a6d530 Don't show popup when focusing unredactable event 2020-04-03 12:58:15 -04:00
miruka
1e049a0159 Unselect before unfocusing messages with keybind 2020-04-03 07:53:36 -04:00
miruka
b48e663007 Cancel sending events when removing local echoes 2020-04-03 07:53:36 -04:00
miruka
f8fe5d812b Imrpove redacted events text 2020-04-03 07:53:36 -04:00
miruka
5ea339ea33 Add keybinds for message removal 2020-04-03 07:53:36 -04:00
miruka
05319af858 Redaction code adjustments + theme addition 2020-04-03 07:53:36 -04:00
miruka
4602366b9c debugConsole: add toggle() conveniance function 2020-04-03 07:53:36 -04:00
miruka
af57218ac6 Update TODO.md 2020-04-03 07:53:36 -04:00
miruka
2a648d7f59 Add invite to room keybind 2020-04-03 07:53:36 -04:00
miruka
1038678a2f Refactor global shortcuts, simplify debug consoles
- Move out all shortcuts from their central file to the component they
  actually belong to

- Get rid of DebugConsoleLoader and the multiple consoles handling mess,
  have only one global console
2020-04-03 07:53:36 -04:00
miruka
78b7cb4a4a Update TODO.md 2020-03-27 07:12:57 -04:00
miruka
c03bf32a7b Theme color for eventList highlight 2020-03-27 05:09:49 -04:00
miruka
af6cdc9013 Rename HListView checking-related functions 2020-03-27 05:05:25 -04:00
miruka
ba86414ddf Implement shift+click/A-B message selection 2020-03-26 23:24:37 -04:00
miruka
4a780e20f4 Make HMenu modal
Prevents accidentally triggering TapHandlers when clicking outside of
the menu to exit it.
2020-03-26 22:00:35 -04:00
miruka
43c018d0a4 Improve "Copy text" text and availability 2020-03-26 22:00:00 -04:00
miruka
18f53829d9 Make composer/eventList ctrl-c work again 2020-03-26 22:00:00 -04:00
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