Commit Graph

2026 Commits

Author SHA1 Message Date
miruka
1c3099d440 Improve positive/middle/negativeBackground colors
Make them a bit lighter, and use these background colors
for presence orbs and room header device verified status instead
of text colors
2020-07-10 13:27:35 -04:00
miruka
70351fb16f Disable AddChat pages content while offline 2020-07-10 13:15:01 -04:00
miruka
9caaf41eae Disable some account settings while offline 2020-07-10 13:15:01 -04:00
miruka
e34bfd48a7 Disable leave/forget keybinds while offline 2020-07-10 13:15:01 -04:00
miruka
12b6b74881 Disable room context menu entries while offline
Except "Copy room ID"
2020-07-10 13:15:01 -04:00
miruka
7580686598 Add MatriwClient.pause_while_offline() 2020-07-10 13:15:01 -04:00
miruka
5b9e84a9f7 Delay redacting events until we're online 2020-07-10 13:15:01 -04:00
miruka
e5b67c722e Disable inviting members while offline 2020-07-10 13:15:01 -04:00
miruka
291168ccdb Disable member kick/ban while offline 2020-07-10 13:15:01 -04:00
miruka
f018b9567b Fix offline → online not sending pending message 2020-07-10 13:15:01 -04:00
miruka
79fdc710c3 Fix & improve send_file handling of offline account
- Show a transfer stuck at 0kb uploaded in the GUI instead of waiting to
  be online to show anything

- Fix getting online not making the upload start
2020-07-10 13:15:01 -04:00
miruka
e5a196dcf8 Clear default member list highlight on focus loss 2020-07-10 13:15:01 -04:00
miruka
27b914b0bf Tell user when not loading history due to offline 2020-07-10 13:14:59 -04:00
miruka
8d93433a8e Fix case for ZeroDate and PresenceOrder
Only top-level types should have CaseLikeThis, general top-level
variables should be LIKE_THAT.
2020-07-10 13:14:18 -04:00
miruka
f03ac77595 Improve Presence docstring 2020-07-10 13:14:18 -04:00
miruka
7af13441a0 Fix AccountDelegate properties in wrong place 2020-07-10 13:14:18 -04:00
miruka
435bbdaf22 Fix highlight when ctrl-tabbing to AddNewChat page 2020-07-10 13:14:18 -04:00
miruka
0ea23dcb6f Fix room list highlight when adding new account
- Unset highlight when going to the add new account page
- After login, highlight the account related to the profile page that
  gets switched to
2020-07-10 13:14:18 -04:00
miruka
199940ab19 Fix room list highlight when going to account page
Correctly set it when going to an account settings or add chat page by
using the account context menu, the add chat button or keybinds.
2020-07-10 13:14:18 -04:00
vslg
5abdc1f779 Fix changes requested (#101)
- Fix code formatting issues.
- Document `Presence`.
- Improve `Presence.__lt__()` performance by
  defining a dict outside the method.
- Make presence ball radius relative to uiScale
  and configurable from theme.
2020-07-10 13:14:18 -04:00
vslg
43df8fd60b Bug fix and minor improvements
Improvements:
- Add instant feedback upon setting a different
  presence for account (local echo)
- Sort room members by power level and then
  presence
- Periodically update members' `last_acitve_at`
  field on the room pane
- Move status message field up on account context
  menu, and put invisible before offline again

Bug fix:
- Do not try to override presence set from
  another client, accept it
2020-07-10 13:14:18 -04:00
vslg
a3c9ac20c6 Make offline presence to stop sync
Setting the presence of an account to offline
will make the client to end sync task and will
prevent messages from being sent.

Setting it to online again or any other presence
will start sync task again.

Left:
- Local echo to presence change
- UI Control to affect all members presence
- Block more requests to be sent (e.g. member
  actions)
2020-07-10 13:14:18 -04:00
vslg
3fa35b88c9 Add offline icon and fix theme colors 2020-07-10 13:14:18 -04:00
vslg
edc8e04ce7 Bug fix and minor improvements
Bug fixes:
- Do not send typing notice and set room read
  markers when the account is invisible
- Fix typing on set_presence
- Allow users to unset status message by setting
  it to blank
- Escape html tags of status message on
  SubtitleLabel of MemberDelegate

Improvements:
- Display user ID and status message on a tooltip
  by hovering account or room member name
2020-07-10 13:14:18 -04:00
vslg
a1f38fe8d8 Add support for status message, use new icons 2020-07-10 13:14:18 -04:00
vslg
91ed600997 Check server presence support and comment code 2020-07-10 13:14:18 -04:00
vslg
d5e0a3340d Use presence events to update Account presence 2020-07-10 13:14:18 -04:00
vslg
a1e5a1981d Fix presence not being updated after loaded once 2020-07-10 13:14:18 -04:00
vslg
0eda6eb278 Add account presences to account context menu 2020-07-10 13:14:18 -04:00
vslg
6e202c3e27 Fix outdated presence for lazy loaded members 2020-07-10 13:14:18 -04:00
vslg
59198da3b0 Add presence theme options 2020-07-10 13:14:18 -04:00
vslg
8644ddaad4 Add offline presence text 2020-07-10 13:14:18 -04:00
vslg
215557e353 Add presence circle on members avatar and account 2020-07-10 13:14:18 -04:00
miruka
512c08fe0a Members: show last active time and status message
Left:

- Something like "Active" should be shown instead of a relative time
  when the member is considered currently active by the matrix server,
  but an "Active" text takes too much space

- Show a colored circle in the bottom right corner of avatars to
  indicate if they're online, away, or offline

- Reduce opacity of offline members, but is there a way to know if
  the server has presence disabled? For servers like matrix.org,
  Riot shows the entire list of members with half opacity at all time,
  we want to avoid that

- Setting our status text with a text field in AccountDelegate
  context menu, similar to the DeviceDelegate's context menu

- Setting our online/away/invisible/offline status from
  AccountDelegate context menu

- Replace the useless "Mirage x.y.z" button in the top left of the UI
  with a control to affect all accounts's status
2020-07-10 13:14:18 -04:00
miruka
50e17e950d Store member presence information 2020-07-10 13:14:18 -04:00
miruka
e91a1f93e0 Fix errors related to button.loading 2020-07-10 13:14:18 -04:00
miruka
2cf7b91829 Don't try to highlight first item on menu open()
It's imprevisible where the menu is gonna open and this which item is
gonna be under the mouse cursor. Also to match the behavior of other
programs.
2020-07-10 13:14:18 -04:00
miruka
e2bc0cbd84 Improve context menu cursor workaround
- Close menu instead of clicking item, to match behavior of other
  programs

- Now work on all edges of the menu, not just top
2020-07-10 13:14:18 -04:00
miruka
d4a0434bd9 Disable "Select all" when no text in field/area 2020-07-10 13:14:18 -04:00
miruka
9a943120a8 Show how many devices will be deleted in popup 2020-07-10 13:14:18 -04:00
miruka
099c20c138 Add keyboard navigation for account device list
Enter/Return/Menu: open device menu
Space: toggle check device
Escape: uncheck all
Alt+R/F5: refresh device list
Alt+S/Delete: sign out checked or all sessions
2020-07-10 13:14:18 -04:00
miruka
612ded755a Add context menu for text fields and areas 2020-07-10 13:14:18 -04:00
miruka
657b700fcd Context menu initial cursor position workaround
Workaround for this: when opening a context menu at cursor position,
cursor will be in the menu's border instead of first menu item,
forcing the user to move the mouse for the click to do anything.
2020-07-10 13:14:18 -04:00
miruka
9612470c9c Highlight first item when opening context menu 2020-07-10 13:14:18 -04:00
miruka
3e92b882c9 Open event context menu on menu keypress 2020-07-10 13:14:18 -04:00
miruka
affd0d0bd3 Improve member list highlighted item behavior
- When focusing the "Filter members" field, highlight the first item if
  none already is

- When pressing esc in the field, clear any highlight
2020-07-10 13:14:17 -04:00
miruka
08f15b6a01 Support menu key for room/member lists currentItem
Allow opening context menu for AccountDelegate, RoomDelegate and
MemberDelegate by selecting an item with up/down (when focusing filter
field) and pressing the menu key.
2020-07-10 13:14:17 -04:00
miruka
10eeb662af HTile: handle menu key press, open context menu 2020-07-10 13:14:17 -04:00
miruka
c35894e4c8 HTile: trigger leftClicked() on enter/return/space
This makes it possible to activate any tab-focused HTile with the
keyboard.
2020-07-10 13:14:17 -04:00
miruka
cfde6cb633 Room filter field: forward keys to room list
The room list can handle up/down presses out of the box, no need to
define handlers for these on the filter field.
2020-07-10 13:14:17 -04:00
miruka
92cbc4b006 Add keyboard controls for members list & profile 2020-07-10 13:14:17 -04:00
miruka
dc2a7b8ee1 HMenuItem: always use onTriggered, not onClicked 2020-07-10 13:14:17 -04:00
miruka
b6500add68 Remove useless imports in HAvatar and HNoticePage 2020-07-10 13:14:17 -04:00
miruka
7c213a5317 Verify/blacklist devices for all our accounts 2020-07-10 13:14:17 -04:00
miruka
b0e2533bb9 Auto-verify/blacklist accounts within same client 2020-07-10 13:14:17 -04:00
miruka
9edfba8f18 Fix hovering media not changing mouse cursor shape 2020-07-10 13:14:17 -04:00
miruka
8623edc420 Fix typing notice not sent when composer cleared
Make sure to send a "we're not typing anymore" notice to the server when
the composer is cleared, e.g. when sending a message.
2020-07-10 13:14:17 -04:00
miruka
ea0a7517e4 Reload member device list after trust/blacklisting 2020-07-10 13:14:17 -04:00
miruka
963b022f3d Reload member device list when they change 2020-07-10 13:14:17 -04:00
miruka
8771ae2aae Ignore EventHandlers members not starting by "on" 2020-07-10 13:14:17 -04:00
miruka
789e9c7da8 Close verif. page when verifying/blacklisting 2020-07-10 13:14:17 -04:00
miruka
d566727698 Make close profile/verification icon thinner 2020-07-10 13:14:17 -04:00
miruka
dbfe04458c Set HStackView transitions that make sense 2020-07-10 13:14:17 -04:00
miruka
4db69424b8 Put MemberDeviceSection in its own component 2020-07-10 13:14:17 -04:00
miruka
9b43bef935 Add profile/verification UI for room members 2020-07-10 13:14:17 -04:00
miruka
4ccb774411 nio_callbacks: HTML-escape unsafe event values 2020-07-10 13:14:17 -04:00
miruka
0dbc9ce659 Fix mention CSS for display names containing < > 2020-07-10 13:14:17 -04:00
miruka
2674702a59 Fix field/area left/right press with selected text
Fix bug in HTextField & HTextArea: when all text was selected, pressing
left or right arrow keys to go to the beginning or end and deselect
didn't respond.
2020-07-10 13:14:17 -04:00
miruka
24e657d193 Protect field/area text binding if no default text 2020-07-10 13:14:17 -04:00
miruka
4752abf6e5 Add a batch set_fields method to Model 2020-07-10 13:14:17 -04:00
miruka
5476e00b9b Fix missing parentheses in marker update condition 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
83047cf800 Add Utils.chunk() to split arrays in n-sized chunk 2020-07-10 13:14:17 -04:00
miruka
196d57701a Cancel device delete when popup closed 2020-07-10 13:14:17 -04:00
miruka
d701e5ea77 Improve "Sign out checked" text 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
d0c4022fa4 Fix plaintext reply source body formatting 2020-07-10 13:14:17 -04:00
vslg
3d4bfa7413 Do not use .keys() 2020-07-10 13:14:17 -04:00
vslg
d2229554a9 Do not replace existing session (#63) 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
90a7a3a6cf Add kineticScrollingMaxSpeed setting 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
1a32c26b4d Don't animate "Loading messages..." when invisible 2020-07-03 15:00:07 -04:00
miruka
8a31f8a9d9 Fix responding to our own event sending wrong ID 2020-06-27 10:08:27 -04:00
miruka
b9f5ec4b72 Fix parsing user/room ID and alias with dashes
Properly highlight IDs and aliases where the server part contains a
dash, e.g. "@test:example-abc.org".
2020-06-27 06:20:09 -04:00
miruka
fedcc17c44 Correctly clear room local highlights 2020-06-26 16:26:15 -04:00
miruka
c9cc38e971 Fix QLocale error when compiling on old gcc 2020-06-26 09:56:46 -04:00
miruka
33d09c320b Fix unhandled enter on sign in and add chat pages 2020-06-26 09:28:58 -04:00
miruka
2d410bb7cc Themes: rename section scrollbar → scrollBar 2020-06-26 08:21:24 -04:00
miruka
1a93190ee2 Improve account settings avatar font size 2020-06-26 07:24:37 -04:00
miruka
475b07793d Rename Account/Room → AccountDelegate/RoomDelegate 2020-06-26 07:20:24 -04:00
miruka
0c9474598c Bump version to v0.5.2 2020-06-26 07:06:56 -04:00
miruka
604daed5fe Increase button focusline height to avoid problems 2020-06-26 06:56:29 -04:00
miruka
980e258df8 Always parent popups to window 2020-06-26 06:41:15 -04:00
miruka
74784803f5 Refresh device list: use HListView.uncheckAll() 2020-06-26 06:11:36 -04:00
miruka
d058926902 Uncheck messages before clearing event list 2020-06-26 06:11:03 -04:00
miruka
7f66ebb786 Re-add local highlights similar to 0.5.0 2020-06-26 05:59:16 -04:00
miruka
aa8dbce3a7 Re-add local unread "counter" similar to 0.5.0 2020-06-26 05:59:11 -04:00
miruka
213867750d Add unimplemented auth popup for deleting devices 2020-06-26 04:30:47 -04:00
miruka
088462c4f9 Better icons and details text for password popups 2020-06-26 04:06:01 -04:00
miruka
d40852a11c HListView: add checkedIndice property 2020-06-26 03:47:55 -04:00
miruka
a22c8ba3ad Account: remove line break after "User ID:" 2020-06-26 03:19:58 -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
eca801df4c Fix laggy device list loading 2020-06-26 02:36:40 -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
cddf4ac2fe Reload section item counts on verify/blacklist 2020-06-26 02:20:12 -04:00
miruka
edc73c6952 Implement blacklisting from verification key popup 2020-06-26 02:16:00 -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
a15a101ce0 Fix error popup focusOnItemTab 2020-06-25 14:54:03 -04:00
miruka
308771f0bf Limit max device name length to 255 2020-06-25 12:37:05 -04:00
miruka
ee5675bc9b Add apply button to device renaming field 2020-06-25 12:36:36 -04:00
miruka
51327d810b Implement device renaming 2020-06-25 12:11:11 -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
476888ca84 Fix guest access event text, always said "allowed" 2020-06-25 10:11:42 -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
470b0f0de2 Implement HLabeledItem loading mode 2020-06-25 09:46:26 -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
72bd78c77e Don't keyboard-focus invisible HMenuItems 2020-06-24 16:47:51 -04:00
miruka
b9f8740954 Move room date formatting logic to utils function 2020-06-24 08:14:54 -04:00
miruka
2d8dbb172d Use fancy focus lines for buttons 2020-06-23 09:18:42 -04:00
miruka
07013d0ed4 Unify text field/area focus line into a component 2020-06-23 08:44:58 -04:00
miruka
8b0f408f34 Fix text field/area leaking arrow presses
Prevent leaking arrow presses to parent elements when the carret
is at the beginning or end of the text.
2020-06-23 06:17:52 -04:00
miruka
ad36fc72f4 Fix Connections deprecation warning on Qt 5.15
Adopt the correct behavior to get rid of
"QML Connections: Implicitly defined onFoo properties in Connections
 are deprecated. Use this syntax instead:
 function onFoo(<arguments>) { ... }"
2020-06-22 14:11:56 -04:00
miruka
ae37e13c6e Use new scrollbars for scrollviews (ie text areas) 2020-06-22 13:57:49 -04:00
miruka
783a711799 Customized themable scrollbars 2020-06-22 13:48:55 -04:00
miruka
f2f4643189 Remove event list scrollbar padding 2020-06-22 13:10:48 -04:00
miruka
e756bd2909 Set a minimum size for scrollbars 2020-06-19 12:03:04 -04:00
miruka
926f77fa91 Add MatrixClient.devices_info() method 2020-06-12 23:09:17 -04:00
miruka
bbdc16c5c9 Merge clipboard.h and clipboard.cpp 2020-06-12 14:10:11 -04:00
miruka
715a6ca530 Merge utils.h and utils.cpp 2020-06-12 14:09:47 -04:00
miruka
451abfdf25 Support MIRAGE_CACHE_DIR env variable 2020-06-11 21:50:26 -04:00
miruka
d4350f6e86 Borders for HTextArea 2020-06-06 21:54:13 -04:00
miruka
8d3ac9cd48 HTextField: support radius, have a fancier border 2020-06-06 21:45:01 -04:00
miruka
e685b0a8b7 Prefer using own account to fetch own profile 2020-06-05 08:11:40 -04:00
miruka
0f679956ec Fix topic text area inside scrollview 2020-06-05 06:33:55 -04:00
miruka
f632b4e332 Bump version to v0.5.1 2020-06-05 06:26:44 -04:00
miruka
1f441a488e Fix HFlickableColumnPage bottom padding 2020-06-05 05:53:49 -04:00
miruka
e5d64f76b7 Limit max height of room settings topic area 2020-06-05 05:48:25 -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
48faac9a32 HFlickable: interactive even if nothing to scroll 2020-06-05 05:40:43 -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
b81dea9bc2 Fix KeyError when forgetting a room 2020-06-05 01:39:17 -04:00
miruka
43468c25e3 Update account unread count when forgetting room 2020-06-05 01:16:27 -04:00
miruka
43ed7b2eb9 Update highlighted room when adding new chat 2020-06-05 01:07:39 -04:00
miruka
5402a332d2 Fix updating read receipt
- Find the last event that wasn't sent by us to update the marker to,
  instead of picking whichever is the most recent

- Use the proper event ID instead of ID that could be a local echo

- Wait for the current marker update request to complete before trying
  to send a new one
2020-06-04 23:12:03 -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
00ee534150 HLabeledItem: base label/icons opacity on item's 2020-06-03 04:50:19 -04:00
miruka
9f51b3c1ca Fix field and text area defaultText binding
Break the binding when the field is focused, recreate it when focus is
lost, properly recreate it when using reset() function.
2020-06-03 04:50:10 -04:00
miruka
a6529b040c Fix handling topics containing \n, \t or <text> 2020-06-02 22:03:22 -04:00
miruka
6772f14c24 Use a text area instead of field for room topic 2020-06-02 21:52:16 -04:00
miruka
76f0c5626f Separate window urgency hint setting for mentions 2020-06-02 21:42: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
5bf1a90242 Separate MatrixClient function to get our profile
Side-effect: don't endlessly retry anymore when getting the profile
fails for some reason
2020-06-02 20:40:44 -04:00
miruka
8ec715eab7 Improve "user not found" error messages 2020-06-02 20:30:04 -04:00
miruka
bb7178a5c4 Handle bad gateway error when starting direct chat 2020-06-02 20:24:53 -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
fdaf7089ab Hide popup for Python 3.7 pointless SSLError 2020-06-02 19:07:12 -04:00
miruka
283d2235dc Don't wait for server to zero unread counters 2020-06-01 18:59:49 -04:00
miruka
835d1c486f Add markRoomReadMsecDelay setting 2020-06-01 18:57:17 -04:00
miruka
f686b96511 Cross-client unread counters & send read receipts 2020-06-01 09:25:09 -04:00
miruka
d2300bf663 Update account total notif/highlight calculation 2020-05-31 19:41:05 -04:00
miruka
3791a08eea Terminology: room mention count → highlight count 2020-05-31 19:13:19 -04:00
miruka
dce3328037 Use new nio server-backed room unread counts 2020-05-31 19:06:25 -04:00
miruka
7b5aa8ffe1 Store room member read markers in model 2020-05-31 00:38:48 -04:00
miruka
160ce2643e Add type hints for all NioCallbacks methods 2020-05-31 00:11:56 -04:00
miruka
ca7a47bc19 Register nio callbacks for any class in nio.events 2020-05-30 23:39:07 -04:00
miruka
b399de6776 Remove account collapse bug workaround
Unable to reproduce the bug where collapsing an account with lots of
rooms corrupts the ListView, did updating to Qt 5.14.2 do something?

With the workaround removed, the 0.2s delay when removing batch of
ListView items (e.g. when filtering) is gone.
2020-05-30 23:08:21 -04:00
miruka
de894ab4bb Protect proxy/filter models with write_lock 2020-05-30 23:08:21 -04:00
miruka
9862e39108 HSelectableLabel: selectByMouse true by default 2020-05-30 23:08:21 -04:00
miruka
8b9681dc78 Rename HTextArea.append() → .insertAtCursor() 2020-05-30 23:08:21 -04:00
miruka
877290fc00 Handle 502 errors when inviting bad user to room 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
a87cbd3bac HTextField: fix implicitHeight Binding 2020-05-30 23:08:21 -04:00
miruka
60fa027c2e Lock models when trying to decrypt events
Trying to deep-copy can result in pickling errors (#50),
write-lock the models instead to avoid "dictionary changed size during
iteration" issues.
2020-05-28 14:16:43 -04:00
miruka
c0118c4e28 Rename Model._write_lock → Model.write_lock 2020-05-28 14:13:14 -04:00
miruka
0f6f3bce98 Improve ImportKeys popup closing/cancelling
- Once the importing process starts, only allow the popup to be closed
  by pressing pressing esc or clicking the Cancel button, to prevent
  accidental clicks

- When closing the popup without clicking the Cancel button, cancel the
  import process
2020-05-28 14:11:49 -04:00
miruka
e3f13dc16f Fix hiding gaierror 2020-05-24 16:55:50 -04:00
miruka
855672481f Improve some python documentation and add an intro 2020-05-22 17:27:57 -04:00
miruka
c8f3a4937c Fix potential exceptions on AllRooms model __init__
Calling super().__init__ may result in source model items being added,
which needs the self.account and self._collapsed attributes to
already exist.
2020-05-22 16:47:15 -04:00
miruka
562e1431b9 Fix adding account when none were previously saved 2020-05-22 08:48:58 -04:00
miruka
b3b12014ee Workaround collapsing large account ListView bug 2020-05-22 07:31:00 -04:00
miruka
3d40f762ce Don't strip <mx-reply> tags 2020-05-22 02:11:21 -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
6f688ae1aa Implement circle progress bars in QML 2020-05-21 20:06:47 -04:00
miruka
35e6c1c7eb Make sure to register room on ignored events 2020-05-21 14:37:48 -04:00
miruka
24ede5653d Hide popups for annoying socket.gaierror
Workaround until I can figure out how to catch it
2020-05-21 14:20:13 -04:00
miruka
58dd63a850 Traceback if getting profile/server config fails 2020-05-21 14:14:27 -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
e128471628 Merge branch 'dev' of https://github.com/mirukana/mirage into dev 2020-05-20 23:40:41 -04:00
vslg
6f68f35810 Fix goal is disabling kinetic scrolling 2020-05-20 23:03:36 -03:00
vslg
1bad1e1106 Multiply scrollFactor to wheel.pixelDelta 2020-05-20 21:09:34 -03:00
vslg
3094e47a99 Fix bugs and improve trackpad scroll precision
Improve trackpad precision by making the amount
of scroll, flickVelocity and flickDeceleration
proportional
2020-05-20 21:09:34 -03:00
vslg
107f928007 Fix bug when setting useTrackpadFix option 2020-05-20 21:09:34 -03:00
vslg
f72544e3d0 Improve trackpad fix
- Add it to remaining components
- Do not use Timer, as flickDeceleration from
  Flickable is more performant
- Add a setting option for it: useTrackpadFix
2020-05-20 21:09:34 -03:00
vslg
b179480327 Remove allowDragging, as it is not needed anymore 2020-05-20 21:09:34 -03:00
vslg
d840080fdb Add custom scroll handler to MouseArea 2020-05-20 21:09:34 -03:00
miruka
4a91b3d09d Hide unknown events by default (reaction spam) 2020-05-20 11:49:25 -04:00
miruka
a48b1cedd0 Don't limit width of messages with code blocks 2020-05-20 11:08:02 -04:00
miruka
42b62377ab Fix past member events affecting actual room state 2020-05-20 09:05:36 -04:00
miruka
7719df0135 Fix message mention link regex
Also stop trying to autolink strings like "$messageId:example.org" in message
text, matrix.tpo message links need a room ID to make sense.
2020-05-20 07:54:40 -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
26074fabd5 Handle reply keybind when multiple events selected 2020-05-20 06:58:38 -04:00
miruka
d1d7bffc8f Add replyToFocusedOrLastMessage keybind (ctrl+Q) 2020-05-20 06:51:26 -04:00
miruka
66f9a17111 No need for origin_*body Event keys
Also fixes lack of original message text when
replying to non-message events.
2020-05-20 06:38:25 -04:00
miruka
b09b3b990b Clear reply-to when sending message 2020-05-20 06:20:24 -04:00
miruka
fb35a6ec14 Implement replying to event in backend 2020-05-20 06:19:13 -04:00
miruka
aa8d3cf8d3 Add reply GUI controls 2020-05-20 05:19:06 -04:00
miruka
5128f0d888 Base TypingMembersBar on new InfoBar component 2020-05-20 04:45:30 -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
c9d5949847 MessageIndicator: shorten thousands and millions 2020-05-19 19:48:52 -04:00
miruka
4a3320111f Remove debug print 2020-05-17 15:38:17 -04:00
miruka
59486ca65d Fix setCorrectCurrentItem() for account items 2020-05-17 15:32:10 -04:00
miruka
ef9b880152 Register room members only when needed 2020-05-17 15:29:23 -04:00
miruka
05a547971d Fix clicking on Account not updating highlight 2020-05-17 14:41:25 -04:00
miruka
f23a83b0d5 NioCallbacks: add self.models/user_id aliases 2020-05-17 13:57:09 -04:00
miruka
14ffe0ba0b Collapse-expand account → correct highlighted room 2020-05-16 18:21:59 -04:00
miruka
a1b485c039 Add ownMessagesOnLeftAboveWidth setting
Replaces the theme eventList.ownEventsOnRightUnderWidth property.
Can be set to -1 to always keep our own messages on the right.
2020-05-16 14:37:45 -04:00
miruka
60ad7416d9 Add maxMessageCharactersPerLine setting
Can be set to -1 for no maximum width.
2020-05-16 14:37:34 -04:00
miruka
315237b411 Cycle unread rooms with alt+m when no more mention 2020-05-15 20:56:23 -04:00
miruka
ddf7e724fd Set a loop_sleep_time for sync_forever()
https://github.com/poljar/matrix-nio/pull/132#pullrequestreview-412701098
"If not [set] the client will sync without any sleep between syncs.
This will cause a lot of load on the homeserver and the client."
2020-05-15 20:56:23 -04:00
miruka
084133af49 Make py.pendingCoroutines accessible for debugging 2020-05-15 20:56:23 -04:00
miruka
8c8a58fb07 Remove superfluous private PythonBridge stuff 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
f20853b7ad Restore correct highlight when no more room filter 2020-05-15 20:56:23 -04:00
miruka
e147b87d1b Remove superfluous HTileDelegate, use HTile 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
bbb74b7b90 Remove nio <0.11 asdict workaround
Mirage 0.5.0 requires nio 0.11+
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
e006e14b05 Bump version to v0.5.0 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
65b3b17994 Reduce AccountBar highlight border thickness 2020-05-15 20:56:23 -04:00
miruka
5b05e56b2a Fix AccountBar goToAccount errors 2020-05-15 20:56:23 -04:00
miruka
9b5b3a9f06 Support a order key for accounts in config 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
bbb00dd8a0 Let escape presses work properly inside HDrawer
Also add escape to clear member filter when focusing the field, and
clearMemberFilterOnEscape setting.
2020-05-15 20:56:23 -04:00
miruka
45048e625c Fix UI parts focus keybind and buttons 2020-05-15 20:56:23 -04:00
miruka
d444c800b9 Remove unused showEveryRoom keybind 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
200f0c33a8 Fix higlighted room not updating after ctrl+tab 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
82c8496216 AccountBar: reduce opacity of collapsed accounts 2020-05-15 20:56:23 -04:00
miruka
9157cbd590 Add back collapse account keybind 2020-05-15 20:56:23 -04:00
miruka
e544f38b9f Fix account settings/create room keybinds 2020-05-15 20:56:23 -04:00
miruka
5b4d12e330 AccountBar: make spinners visible again 2020-05-15 20:56:23 -04:00
miruka
94bcf323b2 Drop the "s" from AccountsBar 2020-05-15 20:56:23 -04:00
miruka
eff203032c Python implementation of account collapsing 2020-05-15 20:56:23 -04:00
miruka
064dd08f02 Window.qml: fix alignment, remove unused property 2020-05-15 20:56:23 -04:00
miruka
7192a402b6 Bring back account collapsing UI stuff
Not functional yet
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
c1dd06559c Bring back main pane bottom bar 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
8e0c046cdb MemberView: no need for onAdd transition hack now 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
19243ec5a6 Fix serialize_value_for_qml handling of class type 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
b4561ce50b Fix back/forward headers buttons in small window 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
c2e212c1eb Add syncing indicator to AccountsBar accounts 2020-05-15 20:56:23 -04:00
miruka
97fdc214dd No need for special model attributes in Backend 2020-05-15 20:56:23 -04:00
miruka
f4dca1c2c9 Fix SyncId type hint & remove debug prints 2020-05-15 20:56:23 -04:00
miruka
7048a0ac08 Remove now unused HFilterModel 2020-05-15 20:56:23 -04:00
miruka
37a9332aed Python filtered models for room members 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
c502aa4245 Add model batch removal optimization for filtering 2020-05-15 20:56:23 -04:00
miruka
5432958121 Working python proxy/filter for room list 2020-05-15 20:56:23 -04:00
miruka
eee198b238 Add python proxy/filter models 2020-05-15 20:56:23 -04:00
miruka
1a69ae684e Fix focusRoomAtIndex binds 2020-05-15 20:56:23 -04:00
miruka
ac0907fad7 ModelItem can only have one parent model again 2020-05-15 20:56:23 -04:00
miruka
2a772e5f54 Ensure waiting after sync failure before retrying 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
4f9e320074 Click on account with 0 rooms → AddChat page 2020-05-15 20:56:23 -04:00
miruka
5373d19c83 Fix account bar scrolling when room list filtered 2020-05-15 20:56:23 -04:00
miruka
cc4a780865 Fix account bar scrolling
All delegates must have the same padding, or the ListView doesn't know
how to scroll to a certain index anymore
2020-05-15 20:56:23 -04:00
miruka
194a5194a8 Better account context menu, add it in AccountsBar 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
0d25c4caeb Improve HTile(Delegate) paddings 2020-05-15 20:56:23 -04:00
miruka
36a214bf1a Fix main pane minimum size 2020-05-15 20:56:23 -04:00
miruka
2bb13bf7f7 HStringFilterModel: Refilter when field changes 2020-05-15 20:56:23 -04:00
miruka
7418f0fe93 Add dedicated HStringFilterModel component 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
56c09e6b48 Split pane components more 2020-05-15 20:56:23 -04:00
miruka
393a56a50a Model items can now have multiple parent models 2020-05-15 20:56:23 -04:00
miruka
34f98b48d1 Add "every room" button 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
da6a54f0bf Fix compact mode toggling for room delegates 2020-05-15 20:56:23 -04:00
miruka
7fb67259e7 load_all_room_members doc + ensure registering 2020-05-15 20:56:23 -04:00
miruka
8b02f0e462 More efficiant roomList delegate in view detection 2020-05-15 20:56:23 -04:00
miruka
ecb88864a9 Higher firstsync limit to avoid missing room name? 2020-05-15 20:56:23 -04:00
miruka
744c6f1b3f Load all room members when showing a room to user 2020-05-15 20:56:23 -04:00
miruka
99d59bb49b Use filtered model strictly when neccessary 2020-05-15 20:56:23 -04:00
miruka
01adcff77e Reduce the number of room delegate errors 2020-05-15 20:56:23 -04:00
miruka
6536f89507 Fix missing rooms and wrong avatars in initialsync 2020-05-15 20:56:23 -04:00
miruka
fd8cf4ad8d Optimize model field replacements 2020-05-15 20:56:23 -04:00
miruka
68e344ae21 Give a base class to model item pyotherside events 2020-05-15 20:56:23 -04:00
miruka
a4c33f8edb Ensure first event for each rooms is a visible one
Dependening on the user's config, request for the first sync that
profile changes, membership changes or unknown events be filtered out.
This ensures we have something to show as the room subtitle (last
message) in the UI.
2020-05-15 20:56:23 -04:00
miruka
aba2fd1b4b Improve sync & load_past_events filter usage
Limit to 1 message/room only for the first sync
2020-05-15 20:56:23 -04:00
miruka
2cbedaa892 HLoader as room delegates test 2020-05-15 20:56:23 -04:00
miruka
eacd7f1f3e Get only 1 event of each kind for rooms on start 2020-05-15 20:56:23 -04:00
miruka
3a77a0288f Use user ID for unknown typing users in room 2020-05-15 20:56:23 -04:00
miruka
9e07612249 Remove "room load until there's non-profile event" 2020-05-15 20:56:23 -04:00
miruka
1adbddc063 Enable member lazy-loading for /sync and /messages 2020-05-15 20:56:23 -04:00
miruka
d71dc91a23 Change debug logging color to blue 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
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
miruka
9981dfd682 Add room header pane buttons tooltips 2020-03-17 18:05:51 -04:00
miruka
f52ec09d83 Midnight: make own messages color more distinct 2020-03-17 17:59:57 -04:00
miruka
6ede699fdf Fix text area/field disabled text wrapping 2020-03-17 17:41:15 -04:00
miruka
a64d0f037d Make room header font size match main pane top bar 2020-03-17 17:34:09 -04:00
miruka
e495922aee Center room settings avatar 2020-03-17 17:16:03 -04:00
miruka
cf9df8d036 Focus an item when changing view in roomPane 2020-03-17 17:14:47 -04:00
miruka
8692aa4a26 Change some default keybinds to make more sense
toggleFocusMainPane: Alt+S → Alt+F
clearRoomFilter: Alt+Shift+S → Alt+Shift+F

addNewAccount: Alt+Shift+N → Alt+Shift+A
addNewChat: Alt+N → Alt+C

sendFile: Alt+F → Alt+S
sendFileFromPathInClipboard: Alt+Shift+F → Alt+Shift+S
2020-03-17 17:11:10 -04:00
miruka
3568abb9af Rename keybind focusMainPane → toggleFocusMainPane 2020-03-17 16:55:16 -04:00