Commit Graph

1334 Commits

Author SHA1 Message Date
miruka
2d231b7af1 Properly check power levels before allowing kick 2020-05-15 20:56:23 -04:00
miruka
2a0a3765fc Add kick to room member context menu 2020-05-15 20:56:23 -04:00
miruka
bdb9a650d9 Don't color whole line for logging 2020-05-15 20:56:23 -04:00
miruka
89824326e4 Better QML logging & hide Qt 5.14 warnings 2020-05-15 20:56:23 -04:00
miruka
4f8dc98d13 Sort mentioned/unread rooms by last event date 2020-05-15 20:56:23 -04:00
miruka
74e35bd128 Fix space taken by invisible unread indicator 2020-05-15 20:56:23 -04:00
miruka
0ba8c6eecf Make all events able to increment unread/mentions 2020-05-15 20:56:23 -04:00
miruka
4f374081a7 Add indicator properties to Glass theme 2020-05-15 20:56:23 -04:00
miruka
20ff6fe02a Fix account delegate buttons spacing 2020-05-15 20:56:23 -04:00
miruka
f3aa9f0c5f Sort rooms with mentions, then unreads first 2020-05-15 20:56:23 -04:00
miruka
c787ff6f41 Dedicated theming for unread indicator
Also make default indicator background colors darker to be more readable
2020-05-15 20:56:23 -04:00
miruka
cb1a5865cc Fix unread indicator "appear" animation 2020-05-15 20:56:23 -04:00
miruka
0a1834b763 Mark rooms as read on all our accounts 2020-05-15 20:56:23 -04:00
miruka
568d4fddce Don't increment room unreads for our own events 2020-05-15 20:56:23 -04:00
miruka
e98a539433 Don't increment room unreads for past events 2020-05-15 20:56:23 -04:00
Emi Simpson
6ee20a2717 Added limited local read/unread tracking 2020-05-15 20:56:23 -04:00
miruka
b2cfc27ce2 accounts.json: support new "enabled" key
Specifying false will cause Mirage to ignore an account and not
log it in on startup.
Defaults to true when adding new accounts or if not present.
2020-05-15 20:56:23 -04:00
miruka
80ac8896d8 Pass a filesize to AsyncClient.upload()
Fixes #37
2020-05-15 20:47:33 -04:00
Mikko Rasa
9a6c4b5b30 Fix asyncio event loop init in qml_bridge.py
Depending on Python version the file may be imported in a thread and
asyncio only implicitly creates an event loop in the main thread of the
process.  Backend does things which need asyncio so we must ensure an
event loop exists before it is imported.

Fixes #15
2020-05-15 15:10:05 +03:00
miruka
4bae3cf90e Fix AttributeError with matrix-nio 0.11+ 2020-05-14 13:58:34 -04:00
miruka
8b8829af86 Use asyncio.Task.current_task for python 3.6 2020-04-26 13:49:44 -04:00
miruka
4961042bde Fix error on <a> tags without a href attribute 2020-04-07 09:57:32 -04:00
miruka
e0e33649a2 Stricter user/room/message ID mention parsing
Fixes issues like this entire string being linkified:
"! foo:example.org"
2020-04-06 08:30:47 -04:00
miruka
3e10a6d530 Don't show popup when focusing unredactable event 2020-04-03 12:58:15 -04:00
miruka
aa4cd5bd2c Bump version to v0.4.3 2020-04-03 07:56:42 -04:00
miruka
5f38788434 Focus reason field by default in RedactPopup 2020-04-03 07:53:36 -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
0e04eafebd Redaction local echo for our other accounts 2020-04-03 07:53:36 -04:00
miruka
5cb013838b Be able to redact our other account's events 2020-04-03 07:53:36 -04:00
miruka
8af63a304f Redact local echo: same text as redaction event 2020-04-03 07:53:36 -04:00
miruka
d991d04a8c Fix copying event when no selection or focused 2020-04-03 07:53:36 -04:00
vSLG
af861ac13a Add redact echo before we receive RedactionEvent 2020-04-03 07:53:36 -04:00
miruka
f8fe5d812b Imrpove redacted events text 2020-04-03 07:53:36 -04:00
miruka
38cc0b1bc7 Ensure last event to delete is ours 2020-04-03 07:53:36 -04:00
miruka
6d270029ad Remove message keybind: don't bind ctrl+del
Ctrl+Del has a special function for deleting words in text, don't
override that
2020-04-03 07:53:36 -04:00
miruka
5ea339ea33 Add keybinds for message removal 2020-04-03 07:53:36 -04:00
miruka
379a7232df Add useless thing to console 2020-04-03 07:53:36 -04:00
miruka
05319af858 Redaction code adjustments + theme addition 2020-04-03 07:53:36 -04:00
vSLG
e60a7f6dac Make "Remove" option conditional in context menu
Refactor code in the backend so things can work
better
2020-04-03 07:53:36 -04:00
vSLG
fc878e7537 Fix event redaction and remove junk code 2020-04-03 07:53:36 -04:00
vSLG
db1afc980e Add RedactionEvent support on backend 2020-04-03 07:53:36 -04:00
vSLG
b3f1075507 Add redacting event via context menu 2020-04-03 07:53:36 -04:00
miruka
554f5d6013 Fix need to press Esc twice to exit popups/menus 2020-04-03 07:53:36 -04:00
miruka
e33c202376 panes toggleFocus(): more reliable focus detection 2020-04-03 07:53:36 -04:00
miruka
70f67f01ac DebugConsole: don't reset target on toggle() 2020-04-03 07:53:36 -04:00
miruka
4602366b9c debugConsole: add toggle() conveniance function 2020-04-03 07:53:36 -04:00
miruka
f838bdf96d focusRoomAtIndex binds: default to cmd+num on OSX 2020-04-03 07:53:36 -04:00
miruka
5ad042f44b Properly force default QML style
The "mysterious segfault" was caused by KDE and its components hijacking
the base QtQuick Controls.
Use a more reliable method that changing env variables to force
QML to use the fusion or default style, which has the base controls we
expect.
2020-04-03 07:53:36 -04:00
miruka
ad937573cf Rewrite HTile and adapt components using it
Rewrite HTile in a more standard way, hopefully fixing the
mysterious segfault on some systems
2020-04-03 07:53:36 -04:00
miruka
6e63569ad7 Add leaveRoom and forgetRoom keybinds 2020-04-03 07:53:36 -04:00
miruka
2a648d7f59 Add invite to room keybind 2020-04-03 07:53:36 -04:00
miruka
790229e188 Make DebugConsole keyboard-scrollable again 2020-04-03 07:53:36 -04:00
miruka
22be0bf5f0 MIRAGE_CONFIG_DIR and MIRAGE_DATA_DIR env vars
Allow overriding the default path where config files and user data are
found
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
6850ef26f5 Show details when login fails with unknown error 2020-03-29 11:48:04 -04:00
miruka
eafd65d490 Fix compact mode being enabled by default 2020-03-28 11:04:43 -04:00
miruka
4185a30a6e theme_parser: translate hard tabs to spaces 2020-03-28 07:48:27 -04:00
miruka
c64179fcbd Fix "AbstractButton" problem with Qt 5.14 2020-03-27 10:36:50 -04:00
miruka
311a53f8f4 "Unselect" → "Deselect" 2020-03-27 07:06:38 -04:00
miruka
4c76ffd88b Bump version to v0.4.2 2020-03-27 05:40:23 -04:00
miruka
ff8fd01eb1 Fix copying selected non-message events 2020-03-27 05:38:29 -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
3f69710813 Allow copying text from non-message events 2020-03-27 04:58:49 -04:00
miruka
936c49127d Add keyboard controls for message focus/selection 2020-03-27 04:49:01 -04:00
miruka
6ca10e1f2b Customizable unselectAllMessage keybind 2020-03-27 03:53:25 -04:00
miruka
ba86414ddf Implement shift+click/A-B message selection 2020-03-26 23:24:37 -04:00
miruka
e696c16fc8 Remove old drag-scrolling hack code 2020-03-26 22:22:07 -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
a61f1d5d04 Make selection look better 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
f148837fae Remove Invite/LeftBanner avatar radius 2020-03-26 21:59:33 -04:00
miruka
ca92abe689 Merge branch 'dev' 2020-03-24 16:02:23 -04:00
Rinigus
d17c6334da Add pen as an input device to the right click handler 2020-03-24 19:52:48 +02:00
miruka
379a851a62 alertOnMessageForMsec: correctly handle 0 value
If 0: don't show any alert
If -1: show alert indefinitly until user focuses the window
2020-03-24 11:31:32 -04:00
Rinigus
5058e3c13e Fix activation of right-click on touch devices 2020-03-24 16:43:31 +02:00
miruka
684ddd364c Don't ignore case when linkifying display names 2020-03-24 04:12:09 -04:00
miruka
3dc81700c1 Correct mailto: linkifying in some special cases
adresses where the host ends with a digit or where the host is only one
character
2020-03-24 04:08:00 -04:00
miruka
0e191f11d0 Member ev. processing: don't assume any key exists 2020-03-24 03:56:31 -04:00
miruka
be43f68059 Support $id:server message ID mentions 2020-03-23 17:17:15 -04:00
miruka
bed0dbf998 Add setting to ignore unknown events 2020-03-23 16:58:31 -04:00
miruka
d34e2ab2b6 Render room id/alias mentions bold by default 2020-03-23 16:53:11 -04:00
miruka
831dca3723 EventContent: avoid some false name detection 2020-03-23 16:50:12 -04:00
miruka
bd53993b90 Ignore mention links with no text 2020-03-23 16:34:51 -04:00
miruka
469992b650 Fix avatar size for one line events like m.emote 2020-03-23 16:10:13 -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
db1cd13977 Glass.qpl: add .mention to styleSheet 2020-03-23 14:32:43 -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
919edb52ad Fix /me messages having names on their own lines 2020-03-23 13:49:19 -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
688f36b7f1 Event: add [(text, link)] mentions attributes 2020-03-23 15:39:14 -04:00
miruka
8e7cd7bde9 Add data-mention attributes to mention links 2020-03-23 15:23:01 -04:00
miruka
3084745522 Remove extra newline from <pre> elements 2020-03-23 15:11:29 -04:00
miruka
a20cfcffe5 Add special CSS classes to mention links 2020-03-23 15:02:31 -04:00
miruka
710668da5d Disable unread mention counter *for now*
There's currently no way to make it go down, read room markers need to
be implemented first.
2020-03-23 00:50:58 -04:00
miruka
0682990666 Fix compact mode msg names on their own lines 2020-03-23 00:48:39 -04:00
miruka
ef2504ecae Visual unread mentions counter 2020-03-22 23:55:48 -04:00
miruka
367fff8f4a Fix mentions incorrectly linked for outgoing html 2020-03-22 23:00:30 -04:00
miruka
b1144572aa Fix loop exceptions not printed in terminal 2020-03-22 20:58:24 -04:00
miruka
8d5bc45ceb Safer linkifying for user display names 2020-03-22 20:58:05 -04:00
miruka
8fd7ce4e14 Safer linkifying for user ID, room ID, room alias
Don't replace anything in already existing links or <code>.
2020-03-22 19:40:43 -04:00
miruka
2fbfac5e0d Proper user ID, name, room ID, alias linkifying 2020-03-22 17:38:28 -04:00
miruka
f858e505a6 Linkify typed usernames/id in markdown 2020-03-22 16:21:29 -04:00
miruka
9f52fa86fa Add Alt+1-0 keybinds to switch to a room at index 2020-03-22 14:08:27 -04:00
miruka
53dfd08131 Add toggleCompactMode keybind, re-rename setting 2020-03-22 13:30:03 -04:00
miruka
18c16ca486 Rename compact mode setting → compactModeByDefault 2020-03-22 13:24:38 -04:00
miruka
d29b393ad2 Less vertical spacing between msgs in compact mode 2020-03-22 13:20:16 -04:00
miruka
ce7c986e5b Compact mode for messages 2020-03-22 13:05:35 -04:00
miruka
5d513f84fa Add compact mode for sidepanes + setting 2020-03-22 12:50:51 -04:00
miruka
c6390238a9 Add settings to hide membership and profile events 2020-03-22 12:04:43 -04:00
miruka
f13327b073 Config files loaded data accessible from Python 2020-03-22 12:01:22 -04:00
miruka
f54075b7e0 Improve default device name
The number returned by platform.version() is only meaningful in a
long-time scenario on Windows. Also make the function clearer.
2020-03-21 23:39:57 -04:00
miruka
2dd275c618 Update minimum Pillow requirement to 7.0.0
- Includes fix for security issue CVE-2019-16865 before 6.2.0
- Default rescale algorithm is now bilinear, or nearest for palette
  images. No need to pass lanczos on our own.
2020-03-21 18:56:47 -04:00
miruka
5b5fda4477 Update github links 2020-03-21 15:20:57 -04:00
miruka
412d92dc25 Background: remove top left black shadow 2020-03-21 15:07:41 -04:00
miruka
73f14cac8e Fix room pane header buttons onClicked 2020-03-21 15:02:37 -04:00
miruka
373ce6b925 Make EventContent.contentText not readonly
For debugging (really)
2020-03-21 14:56:44 -04:00
miruka
ac85935236 Animate avatar placeholder colors 2020-03-21 14:56:44 -04:00
miruka
e67624020b Default background: less blur, redone screenshots 2020-03-21 14:56:36 -04:00
miruka
6662628b4e Really cancel key import when clicking "Cancel" 2020-03-21 12:43:16 -04:00
miruka
cb020ad479 Center account-room list to highlight on startup 2020-03-21 10:21:32 -04:00
miruka
d0a19852b7 generate_thumbnail: Catch+log any kind of error 2020-03-20 13:51:32 -04:00
miruka
ee6ac18671 Show pages headers to go back to pane when needed 2020-03-19 20:33:46 -04:00
miruka
27ee961c52 Remove dead debug TapHandler in AccountRoomsList 2020-03-19 19:14:47 -04:00
miruka
2511a03045 Fix event debug returning wrong event json 2020-03-19 18:49:33 -04:00
miruka
03251f019e Really fix icon-only buttons alignment 2020-03-19 11:37:05 -04:00
miruka
6ece4624ca Increase required width to show all events on left 2020-03-19 11:14:28 -04:00
miruka
b6b2e35221 Fix invite to room button alignment 2020-03-19 11:14:28 -04:00
miruka
aaf34a9312 Better example placeholder text for composer alias 2020-03-19 11:14:28 -04:00
miruka
ba955008fc Improve main pane list reactions to mouse events 2020-03-19 11:14:28 -04:00
miruka
e86c5d7163 Fix "loading past messages" busy indicator width 2020-03-19 11:14:28 -04:00
miruka
60fc2ccffc Replace console icon by reload config 2020-03-19 11:14:28 -04:00
miruka
e5c3afa219 Remove gray line at the bottom of tabs 2020-03-19 11:14:28 -04:00
miruka
2ef75faa71 Use HBusyIndicator as button loading indicator 2020-03-19 11:14:28 -04:00
miruka
effc268cac Remove text field border animation 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
9186386369 Fix UI image hidden behind gradient 2020-03-19 00:13:38 -04:00
miruka
fe40d117b2 Fix room pane default size 2020-03-19 00:13:19 -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
2f46656827 Add button in reduced room pane to go back to chat 2020-03-17 21:21:29 -04:00
miruka
3c0f6f60c6 Add button to go back to chat in reduced main pane 2020-03-17 18:38:52 -04:00
miruka
adc6fc4af5 Fix visible room header overflow in small window 2020-03-17 18:19:26 -04:00
miruka
9585465461 No background for room header pane buttons 2020-03-17 18:06:19 -04:00