2019-12-13 02:48:16 +11:00
|
|
|
# TODO
|
|
|
|
|
2020-08-21 19:18:08 +10:00
|
|
|
- keep scrollbars auto behavior?
|
|
|
|
- improve auto completion delegate
|
|
|
|
|
2020-08-20 00:04:03 +10:00
|
|
|
- refresh server list button
|
2020-08-19 18:38:29 +10:00
|
|
|
- server list sorting method / explain what the % number is (stability)
|
2020-07-19 17:02:14 +10:00
|
|
|
|
2020-07-17 03:54:17 +10:00
|
|
|
- global presence control
|
2020-07-14 09:21:50 +10:00
|
|
|
|
2020-07-10 10:51:35 +10:00
|
|
|
- fix local unread counters order
|
2020-07-17 13:03:43 +10:00
|
|
|
|
|
|
|
- publish room or alias control
|
2020-07-17 03:54:17 +10:00
|
|
|
|
|
|
|
- open context menus centered on touch screens
|
|
|
|
- auto-idle for Windows and OSX
|
|
|
|
- status based on process detection
|
2020-06-27 22:35:11 +10:00
|
|
|
|
2020-06-25 22:32:08 +10:00
|
|
|
## Refactoring
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-06-26 22:51:51 +10:00
|
|
|
- General change/upload avatar component for account and room settings
|
2020-07-13 06:14:24 +10:00
|
|
|
- Refactor EventList.qml
|
2020-07-17 13:03:43 +10:00
|
|
|
- Implement different delegate for different types of events in QML, instead
|
|
|
|
of having only one doing everything with untranslatable content texts
|
|
|
|
from Python
|
2020-05-30 06:22:53 +10:00
|
|
|
|
2019-12-16 05:56:40 +11:00
|
|
|
## Issues
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-06-29 23:22:04 +10:00
|
|
|
- Replying to one of our own message that's currently only a local echo
|
|
|
|
results in a reply to an empty ID
|
2020-06-26 22:51:51 +10:00
|
|
|
|
2020-06-25 22:32:08 +10:00
|
|
|
- Bottom focus line for an `HTextArea` inside a `ScrollView` is invisible,
|
|
|
|
put the background on `ScrollView` instead?
|
|
|
|
|
2020-06-01 09:06:25 +10:00
|
|
|
- Don't send typing notification when switching to a room where the composer
|
2020-06-05 19:42:12 +10:00
|
|
|
has preloaded text
|
2020-06-01 09:06:25 +10:00
|
|
|
|
2020-06-05 19:42:12 +10:00
|
|
|
- When calling `Backend.update_room_read_marker()` for a recent message,
|
|
|
|
the marker will only be updated for accounts that have already received
|
|
|
|
it (server lag)
|
|
|
|
|
2020-05-22 22:27:59 +10:00
|
|
|
- Jumping between accounts (clicking in account bar or alt+(Shift+)N) is
|
|
|
|
laggy with hundreds of rooms in between
|
|
|
|
|
2020-03-27 22:12:57 +11:00
|
|
|
- Drag-scrolling in room pane a tiny bit activates the delegates
|
|
|
|
|
2020-03-14 04:04:36 +11:00
|
|
|
- Catch server 5xx errors when sending message and retry
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Handle cases where a known account's access token is invalid
|
|
|
|
- If an account is gone from the user's config, discard UI state last page
|
2019-12-16 05:56:40 +11:00
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- After forgetting a room, it comes back because of the "you left" event
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-06-05 19:42:12 +10:00
|
|
|
- `code`, mentions and links in quote ("> http://example.com") aren't properly
|
|
|
|
colored in room delegate "last message" subtitle
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-03-21 05:11:47 +11:00
|
|
|
- `Timer` and `Animation` are bound to framerate
|
2019-12-18 09:50:21 +11:00
|
|
|
- Can't use `QQmlApplicationEngine`, problem with QApplication?
|
|
|
|
See https://bugreports.qt.io/browse/QTBUG-50992
|
2020-03-11 12:28:32 +11:00
|
|
|
- [HTML <hr> not rendered](https://bugreports.qt.io/browse/QTBUG-74342)
|
|
|
|
- Pausing uploads doesn't work well, servers ends up dropping the connection
|
|
|
|
(no real solution possible?)
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
## Interface
|
|
|
|
|
2020-07-17 15:45:02 +10:00
|
|
|
- Colorize "@room" in messages
|
2020-06-26 22:51:51 +10:00
|
|
|
opening a page or popup
|
|
|
|
- Device IP geolocation
|
|
|
|
- Can rooms but left with a reason?
|
|
|
|
|
2020-05-22 22:27:59 +10:00
|
|
|
- When responding to a message, highlight that message in the timeline
|
|
|
|
- Highlight timeline messages that mentions our user
|
|
|
|
- Add room members loading indicator, similar to the "Loading past messages..."
|
|
|
|
|
2020-03-27 22:12:57 +11:00
|
|
|
- Long-press-drag to select multiple messages on touch
|
|
|
|
- Drag to select multiple messages on non-touch
|
|
|
|
|
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-24 05:45:38 +11:00
|
|
|
- Make clicking on user/room mentions open relevant UI instead of matrix.to
|
|
|
|
URL in browser
|
2020-06-03 18:52:33 +10:00
|
|
|
|
|
|
|
- Missing room settings:
|
|
|
|
- Set whether to publish this room in the server room directory
|
|
|
|
- Set history visibility
|
|
|
|
- Set aliases
|
|
|
|
- Setup permissions
|
|
|
|
- Unban members
|
|
|
|
- Set flair (which community this room belongs to)
|
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-24 05:45:38 +11:00
|
|
|
|
2020-06-03 11:50:47 +10:00
|
|
|
- Linkify URLs in topic text areas
|
2020-03-19 10:12:38 +11:00
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Use a loader for items not in view for the `HTabContainer`'s `SwipeView`
|
|
|
|
|
|
|
|
- Make "Cancel" buttons consistent, and able to cancel running Backend
|
|
|
|
coroutines. Set `disabledWhileLoading` to `false` for all "OK" buttons where
|
|
|
|
it makes sense.
|
|
|
|
|
|
|
|
- Remember the previously focused item in page for ctrl+tab
|
2019-12-15 04:50:21 +11:00
|
|
|
- https://doc.qt.io/qt-5/qml-qtquick-smoothedanimation.html for progress bars
|
2019-12-16 06:10:50 +11:00
|
|
|
- Improve when HDrawer should collapse when the ui is zoomed
|
2020-03-11 12:28:32 +11:00
|
|
|
- Make room invite/left banner buttons look better
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Choose a better easing types for animations
|
|
|
|
- In messages, remove the HTML lists excess left margin
|
|
|
|
- Improve UI for very small window heights
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
- In room creation, click avatar to set the future room's avatar
|
|
|
|
- In join room page, show the matching room's avatar when typing
|
2020-03-11 12:28:32 +11:00
|
|
|
- In direct chat page, show the matching user's avatar when typing
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
- Combine events so they take less space
|
2020-03-23 03:06:25 +11:00
|
|
|
- After combining is implemented,
|
|
|
|
no need to hide profile changes by default anymore
|
2020-03-11 12:28:32 +11:00
|
|
|
|
|
|
|
- Animate `DayBreak` apparition
|
|
|
|
|
|
|
|
- Device settings
|
2020-05-20 19:19:06 +10:00
|
|
|
- Proparly formatted rich replies
|
2020-03-27 22:12:57 +11:00
|
|
|
- Messages editing
|
2019-12-13 02:48:16 +11:00
|
|
|
- Code highlighting
|
|
|
|
- Adapt shortcuts flicking speed to font size
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Accept drag and drop to upload files or set a new avatar
|
|
|
|
- Improve room tooltips, e.g. show last messages
|
|
|
|
- Warn user when connection is lost or 429s happen
|
2019-12-13 02:48:16 +11:00
|
|
|
- "Rejoin" LeftBanner button if room is public
|
|
|
|
- Daybreak color
|
|
|
|
- Conversation breaks: show time of first new msg after break instead of big
|
|
|
|
blank space
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- `MainPane`:
|
2019-12-13 02:48:16 +11:00
|
|
|
- Animate when logging out last account and sidepane turns invisible
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Implement Register/Reset pages
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
- Theming
|
2020-03-11 12:28:32 +11:00
|
|
|
- Use a standard file format
|
2019-12-13 02:48:16 +11:00
|
|
|
- icons.preferredPack: accept multiple values
|
|
|
|
- Find icon packs in user data dir
|
|
|
|
- See [Text.fontSizeMode](https://doc.qt.io/qt-5/qml-qtquick-text.html#fontSizeMode-prop)
|
|
|
|
|
|
|
|
- Settings page
|
|
|
|
- Notifications
|
|
|
|
- Better `<pre>`
|
|
|
|
|
2020-07-27 15:38:48 +10:00
|
|
|
- Replace the rubbish default Qt filepicker on Linux
|
2020-03-11 12:28:32 +11:00
|
|
|
|
|
|
|
## Media-related
|
|
|
|
|
2020-03-27 22:12:57 +11:00
|
|
|
- UI for download progress (using `Transfer` like for uploads)
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Add upload keybindings (close failed upload, pause, resume)
|
|
|
|
- Handle errors when setting an avatar
|
|
|
|
|
|
|
|
- Show a reason or HTTP error code for thumbnails that fail to load
|
|
|
|
- Support `m.file` thumbnails
|
|
|
|
|
|
|
|
- Generate video thumbnails
|
|
|
|
- Display GIF static thumbnails while the real GIF is loading
|
|
|
|
- Audio/video player
|
|
|
|
- Can GIFs use it?
|
|
|
|
|
|
|
|
- `EventLink` for client-side URL previews
|
|
|
|
- Special UI for matrix.to URLs
|
|
|
|
|
|
|
|
- Prevent using upload keybindings in rooms where user doesn't have permission
|
|
|
|
to upload
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
## Backend
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Better config file format
|
|
|
|
|
2019-12-13 02:48:16 +11:00
|
|
|
- Prevent starting multiple client instances, causes problems with E2E DB
|
|
|
|
- Check if username exists on login screen
|
|
|
|
- [Soft logouts](https://github.com/poljar/matrix-nio/commit/aba10)
|
2020-03-11 12:28:32 +11:00
|
|
|
- Logout previous session when adding an account that's already connected
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-05-23 17:19:12 +10:00
|
|
|
- Cache and restore profiles, room events and client states
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- Properly handle direct chats
|
2019-12-13 02:48:16 +11:00
|
|
|
- Live-reloading accounts.json
|
|
|
|
|
|
|
|
- E2E
|
2020-06-26 22:51:51 +10:00
|
|
|
- SAS verification
|
2019-12-13 02:48:16 +11:00
|
|
|
- Request room keys from own other devices
|
|
|
|
- Provide help when undecryptable messages occur, including:
|
|
|
|
- Trigger `nio.AsyncClient.request_room_key`
|
|
|
|
- Option to export-logout-login-import to fix one-time key problems
|
2020-05-23 17:19:12 +10:00
|
|
|
- Cross-signing
|
|
|
|
|
2020-06-01 23:48:07 +10:00
|
|
|
- Display read receipts on events (who/how many people have read an event)
|
|
|
|
- Fully read markers
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-05-23 17:19:12 +10:00
|
|
|
- Methods of signing in that aren't handled yet:
|
2020-06-01 23:48:07 +10:00
|
|
|
- `m.login.password` alternate logins methods:
|
2020-05-23 17:19:12 +10:00
|
|
|
- `m.id.thirdparty`
|
|
|
|
- `m.id.phone`
|
2020-05-25 08:04:58 +10:00
|
|
|
- `m.login.recaptcha` (need browser, just use fallback?)
|
2020-05-23 17:19:12 +10:00
|
|
|
- `m.login.email.identity`
|
2020-05-25 08:04:58 +10:00
|
|
|
- `m.login.msisdn` (phone)
|
2020-05-23 17:19:12 +10:00
|
|
|
- `m.login.dummy`
|
|
|
|
- Web page fallback
|
|
|
|
|
2019-12-13 02:48:16 +11:00
|
|
|
## Nio contributions
|
|
|
|
|
2019-12-17 08:36:14 +11:00
|
|
|
- Streaming download & decrypt
|
2019-12-14 01:14:54 +11:00
|
|
|
- Running blocking DB function calls in executor (WIP)
|
|
|
|
|
2019-12-13 02:48:16 +11:00
|
|
|
- Dedicated error for invalid password on key import
|
2019-12-14 01:14:54 +11:00
|
|
|
- `RoomMessageMedia` and `RoomAvatarEvent` info attributes
|
|
|
|
- Handle `m.room.aliases` events
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2019-12-14 01:14:54 +11:00
|
|
|
- Left room events after client reboot
|
2019-12-13 02:48:16 +11:00
|
|
|
- Previewing room without joining
|
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
## Distribution and dependencies
|
2019-12-13 02:48:16 +11:00
|
|
|
|
2020-05-23 17:19:12 +10:00
|
|
|
- Use Qt 5.14 for AppImage
|
2020-05-22 22:27:59 +10:00
|
|
|
- Add AppImage & Flatpak metadata file
|
2020-03-27 22:12:57 +11:00
|
|
|
- Publish on Flathub and AppImageHub
|
|
|
|
|
|
|
|
- Update to Mistune v2.0 when released
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
## Notable changes for future Qt version upgrade
|
|
|
|
|
|
|
|
### [Qt 5.13](https://wiki.qt.io/New_Features_in_Qt_5.13)
|
|
|
|
|
|
|
|
- Added `SplitView`
|
|
|
|
- Added `cache` property to icon
|
|
|
|
|
|
|
|
### [Qt 5.14](https://wiki.qt.io/New_Features_in_Qt_5.14)
|
|
|
|
|
|
|
|
- Applications can now opt-in to use non-integer scale factors.
|
|
|
|
Use `QGuiApplication::highDpiScaleFactorRoundingPolicy`.
|
|
|
|
|
|
|
|
- Added `qmlRegisterSingletonInstance` function.
|
|
|
|
This allows to expose a QObject as a singleton to QML, without having to
|
|
|
|
create a factory function as required by `qmlRegisterSingletonType`.
|
|
|
|
It is meant as a type safe replacement of `setContextProperty`.
|
|
|
|
|
|
|
|
- Added `qmlRegisterAnonymousType` as a replacement for `qmlRegisterType`.
|
|
|
|
It allows to specify the URI and major version for better tooling support.
|
|
|
|
|
|
|
|
- qmllint gained an experimental -U option. If run with it, it warns about
|
|
|
|
about accesses to unqualified identifiers
|
|
|
|
|
|
|
|
- `Text` and `TextEdit` now support Markdown format
|
|
|
|
(CommonMark and GitHub dialects) as an alternative to HTML.
|
|
|
|
Includes the GitHub checklist extension, such that you can click to toggle
|
|
|
|
checkboxes in a `TextEdit`.
|
|
|
|
|
|
|
|
- `TextEdit` uses an I-beam cursor by default, and a pointing-hand cursor when
|
|
|
|
hovering a checkbox or a link
|
|
|
|
|
|
|
|
- Added `WheelHandler`, an Event Handler for the mouse wheel, and optionally
|
|
|
|
for emulated mouse wheel events coming from a trackpad.
|
2020-06-05 15:54:42 +10:00
|
|
|
- Rewrite `HKineticScrollingDisabler` with it
|
2019-12-13 02:48:16 +11:00
|
|
|
|
|
|
|
- Added `BoundaryRule` in Qt.labs.animation: a `PropertyValueInterceptor` that
|
|
|
|
restricts the range of values a numeric property can have, applies
|
|
|
|
"resistance" when the value is overshooting, and provides the ability to
|
|
|
|
animate it back within range. It's particularly useful in combination with
|
|
|
|
`WheelHandler`, to provide similar physics as Flickable has.
|
|
|
|
|
|
|
|
- `Image` and `BorderImage` now have the same `currentFrame` and `frameCount`
|
|
|
|
properties that `AnimatedImage` has; this allows choosing an individual icon
|
|
|
|
from an .ICO file that contains multiple icons, for example.
|
|
|
|
In the future it's intended to support other multi-page formats such as
|
|
|
|
PDF, TIFF and WEBP.
|
2020-03-09 20:55:57 +11:00
|
|
|
|
2020-03-11 12:28:32 +11:00
|
|
|
- `Binding.restoreMode`: This property can be used to describe if and how the
|
|
|
|
original value should be restored when the binding is disabled.
|
|
|
|
|
2020-03-09 20:55:57 +11:00
|
|
|
### [Qt 5.15](https://wiki.qt.io/New_Features_in_Qt_5.15)
|
|
|
|
|
|
|
|
- Introduced inline components
|
|
|
|
(ability to declare multiple QML components in the same file)
|
|
|
|
|
|
|
|
- Introduced `required` properties
|
|
|
|
|
|
|
|
- Added a declarative way of registering types to QML
|
|
|
|
|
|
|
|
- Added support for the Nullish Coalescing Operator (`??`)
|
|
|
|
|
|
|
|
- Added `qmlformat` tool which automatically formats any QML file according to
|
|
|
|
the QML Coding Conventions.
|
|
|
|
|
|
|
|
- Added `cursorShape` property to pointer handlers. Most pointer handlers
|
|
|
|
(e.g. `DragHandler`) will change the cursor when the active state is true.
|
|
|
|
`HoverHandler` will change it when the mouse is hovering over the `Item` that
|
|
|
|
contains the `HoverHandler`.
|
2020-05-31 09:50:37 +10:00
|
|
|
|
|
|
|
- Added `selectTextByMouse` property to `ComboBox`.
|
|
|
|
|
|
|
|
- Technology Preview: Support for running Qt Quick (2D) on top of
|
|
|
|
Direct3D, Metal and Vulkan
|