Improve TODO.md & add section about Qt future
This commit is contained in:
parent
82e4dff2ab
commit
5dc228f197
285
TODO.md
285
TODO.md
|
@ -1,85 +1,91 @@
|
|||
# TODO
|
||||
|
||||
- invite keybind & context menu
|
||||
- better cancel for all boxes
|
||||
|
||||
- Media
|
||||
- Handle set avatar upload errors
|
||||
- Support encrypted m.file
|
||||
- Confirmation box after picking file to upload
|
||||
- Show real progression for mxc thumbnail loadings
|
||||
## Media
|
||||
|
||||
- Show reason under broken thumbnail icons
|
||||
- Support m.file thumbnails
|
||||
- Generate video thumbnails
|
||||
- GIFs can use the video player
|
||||
- Display GIF static thumbnails while the real GIF is loading
|
||||
- Video bug: when media is done playing, clicking on progress slider always
|
||||
- Handle set avatar upload errors
|
||||
- Support encrypted m.file
|
||||
- Confirmation box after picking file to upload
|
||||
- Show real progression for mxc thumbnail loadings
|
||||
|
||||
- Show reason under broken thumbnail icons
|
||||
- Support m.file thumbnails
|
||||
- Generate video thumbnails
|
||||
- GIFs can use the video player
|
||||
- Display GIF static thumbnails while the real GIF is loading
|
||||
- Video bug: when media is done playing, clicking on progress slider always
|
||||
bring back to the beginning no matter where
|
||||
- Video: missing buttons and small size problems
|
||||
- Audio: online playback is buggy, must download+play file
|
||||
- EventLink
|
||||
- Video: missing buttons and small size problems
|
||||
- Audio: online playback is buggy, must download+play file
|
||||
- EventLink
|
||||
- Special treatment for matrix.to URLs?
|
||||
- EventFile & Downloading (right click on media > save as...)
|
||||
- Prevent using upload keybinds in rooms with no perms
|
||||
- EventFile & Downloading (right click on media > save as...)
|
||||
- Prevent using upload keybinds in rooms with no perms
|
||||
|
||||
- Refactoring
|
||||
- Use a singleton for utils.js
|
||||
- Use HBox for Profile
|
||||
## Refactoring
|
||||
|
||||
- Use a singleton for utils.js
|
||||
- Use HBox for Profile
|
||||
- Get rid of all `currentSpacing` stuff
|
||||
- Banners
|
||||
- Composer
|
||||
- Try gel for the models and stop being lazy in python
|
||||
- Banners
|
||||
- Composer
|
||||
- Try gel for the models and stop being lazy in python
|
||||
|
||||
- Room Sidepane save/load size & keybinds
|
||||
- Room Sidepane save/load size & keybinds
|
||||
|
||||
- Fixes
|
||||
- Pausing uploads doesn't work well with matrix.org
|
||||
- Quickly posting with another account leads to sync stop
|
||||
- CPU usage
|
||||
- `code` not colored in room subtitle
|
||||
- In the "Leave me" room, "join > Hi > left" aren't combined
|
||||
- Event delegates changing height don't scroll the list
|
||||
- When selecting text and scrolling up, selection stops working after a while
|
||||
## Bug fixes
|
||||
|
||||
- Pausing uploads doesn't work well with matrix.org
|
||||
- Quickly posting with another account leads to sync stop
|
||||
- CPU usage
|
||||
- `code` not colored in room subtitle
|
||||
- In the "Leave me" room, "join > Hi > left" aren't combined
|
||||
- Event delegates changing height don't scroll the list
|
||||
- When selecting text and scrolling up, selection stops working after a while
|
||||
- Ensure all the text that should be copied is copied
|
||||
- Multiple messages are currently copied out of order
|
||||
|
||||
- Pressing backspace in composer sometimes doesn't work
|
||||
- Message order isn't preserved when sending a first message in a E2E
|
||||
- Pressing backspace in composer sometimes doesn't work
|
||||
- Message order isn't preserved when sending a first message in a E2E
|
||||
room, then while keys are being shared sending one with another account,
|
||||
then sending one with the first account again
|
||||
|
||||
- If account not in config anymore, discard ui state last page on startup
|
||||
- Do something when access token is invalid
|
||||
- If account not in config anymore, discard ui state last page on startup
|
||||
- Do something when access token is invalid
|
||||
|
||||
- Don't store states in delegates
|
||||
- [hr not working](https://bugreports.qt.io/browse/QTBUG-74342)
|
||||
- Terrible performance using `QT_QPA_PLATFORM=wayland-egl`, must use `xcb`
|
||||
- Quote links color in room subtitles (e.g. "> http://foo.orgA)" )
|
||||
- Don't store states in delegates
|
||||
- [hr not working](https://bugreports.qt.io/browse/QTBUG-74342)
|
||||
- Terrible performance using `QT_QPA_PLATFORM=wayland-egl`, must use `xcb`
|
||||
- Quote links color in room subtitles (e.g. "> http://foo.orgA)" )
|
||||
|
||||
- UI
|
||||
- Scrollable popup
|
||||
- HDrawer snapping
|
||||
- Make theme error/etc text colors more like name colors
|
||||
- In account settings, display name field text should be colored
|
||||
- Way to open context menus without a right mouse button
|
||||
- `smartVerticalFlick()` gradual acceleration
|
||||
## Interface
|
||||
|
||||
- Choose a better default easing type for animations
|
||||
- Make HListView scrollbars visible
|
||||
- Remove first html lists left margin
|
||||
- Adapt UI for small heights
|
||||
- Scrollable popup
|
||||
- HDrawer snapping
|
||||
- Make theme error/etc text colors more like name colors
|
||||
- In account settings, display name field text should be colored
|
||||
- Way to open context menus without a right mouse button
|
||||
- `smartVerticalFlick()` gradual acceleration
|
||||
|
||||
- In room creation, click avatar to set the future room's avatar
|
||||
- In join room page, show the matching room's avatar when typing
|
||||
- In find someone page, show the matching user's avatar when typing
|
||||
- Choose a better default easing type for animations
|
||||
- Make HListView scrollbars visible
|
||||
- Remove first html lists left margin
|
||||
- Adapt UI for small heights
|
||||
|
||||
- Combine events so they take less space
|
||||
- In room creation, click avatar to set the future room's avatar
|
||||
- In join room page, show the matching room's avatar when typing
|
||||
- In find someone page, show the matching user's avatar when typing
|
||||
|
||||
- Combine events so they take less space
|
||||
- After combining is implemented, no need to hide profile changes anymore.
|
||||
- Replies
|
||||
- Messages editing and redaction
|
||||
- Code highlighting
|
||||
- Adapt shortcuts flicking speed to font size
|
||||
- Replies
|
||||
- Messages editing and redaction
|
||||
- Code highlighting
|
||||
- Adapt shortcuts flicking speed to font size
|
||||
|
||||
- EditAccount page:
|
||||
- EditAccount page:
|
||||
- Device settings
|
||||
- Multiaccount aliases:
|
||||
- Warn when conflict with another alias
|
||||
|
@ -89,24 +95,24 @@
|
|||
- Support \ escaping
|
||||
- Accept drag and dropping a picture to set avatar
|
||||
|
||||
- Add stuff to room tooltips like last messages
|
||||
- Show something when connection is lost or 429s happen
|
||||
- "Rejoin" LeftBanner button if room is public
|
||||
- Daybreak color
|
||||
- Conversation breaks: show time of first new msg after break instead of big
|
||||
- Add stuff to room tooltips like last messages
|
||||
- Show something when connection is lost or 429s happen
|
||||
- "Rejoin" LeftBanner button if room is public
|
||||
- Daybreak color
|
||||
- Conversation breaks: show time of first new msg after break instead of big
|
||||
blank space
|
||||
|
||||
- Sidepane
|
||||
- Sidepane
|
||||
- Animate when logging out last account and sidepane turns invisible
|
||||
- Header back button when reduced
|
||||
- Better look when reduced to minimum size
|
||||
|
||||
- Server selection
|
||||
- Register/Reset for AddAccount page
|
||||
- Prevent using an alias if that user is not in the room or no permission
|
||||
- Spinner when loading past room events
|
||||
- Server selection
|
||||
- Register/Reset for AddAccount page
|
||||
- Prevent using an alias if that user is not in the room or no permission
|
||||
- Spinner when loading past room events
|
||||
|
||||
- Theming
|
||||
- Theming
|
||||
- Bundle fonts
|
||||
- Standard file format, see *~ppy/qml_dict_theme.qml*
|
||||
- https://doc.qt.io/qt-5/qtquickcontrols2-customize.html#creating-a-custom-style
|
||||
|
@ -117,36 +123,25 @@
|
|||
- If avatar is set, name color from average color?
|
||||
- Accent color from background
|
||||
|
||||
- Settings page
|
||||
- Notifications
|
||||
- Opening links with keyboard
|
||||
- Better `<pre>`
|
||||
- Settings page
|
||||
- Notifications
|
||||
- Opening links with keyboard
|
||||
- Better `<pre>`
|
||||
|
||||
- Custom file picker for Linux (...)
|
||||
- Custom file picker for Linux (...)
|
||||
|
||||
- Major features
|
||||
- E2E
|
||||
- Device verification
|
||||
- Edit/delete own devices
|
||||
- Request room keys from own other devices
|
||||
- Auto-trust accounts within the same client
|
||||
- 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
|
||||
- Read receipts
|
||||
- Status message and presence
|
||||
## Backend
|
||||
|
||||
- Client improvements
|
||||
- Refetch profile after manual profile change, don't wait for a room event
|
||||
- Refetch profile after manual profile change, don't wait for a room event
|
||||
|
||||
- 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)
|
||||
- `pyotherside.atexit()`
|
||||
- Logout previous session if adding an account that's already connected
|
||||
- Config file format
|
||||
- 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)
|
||||
- `pyotherside.atexit()`
|
||||
- Logout previous session if adding an account that's already connected
|
||||
- Config file format
|
||||
|
||||
- Startup improvements
|
||||
- Startup improvements
|
||||
- Initial sync filter to get more events on first sync
|
||||
- Lazy loading members
|
||||
- Store profiles, room events and states
|
||||
|
@ -154,30 +149,86 @@
|
|||
- Make sure to all members are fetched before sending an E2E message
|
||||
- Fetch all members when using the filter members bar
|
||||
|
||||
- Direct chats category
|
||||
- Animate RoomEventDelegate DayBreak apparition
|
||||
- Live-reloading accounts.json
|
||||
- Direct chats category
|
||||
- Animate RoomEventDelegate DayBreak apparition
|
||||
- Live-reloading accounts.json
|
||||
|
||||
- nio
|
||||
- Dedicated error for invalid password on key import
|
||||
- Running blocking DB function calls in executor
|
||||
- `AsyncClient.share_group_session`: send device batches concurrently
|
||||
- E2E
|
||||
- Device verification
|
||||
- Edit/delete own devices
|
||||
- Request room keys from own other devices
|
||||
- Auto-trust accounts within the same client
|
||||
- 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
|
||||
- Read receipts
|
||||
- Status message and presence
|
||||
|
||||
- RoomMessageMedia and RoomAvatarEvent info attributes
|
||||
- `m.room.aliases` events
|
||||
- MatrixRoom invited members list
|
||||
- Verify room has correct name when creating direct chat and peer hasn't
|
||||
accepted the invite yet
|
||||
- Left room events after client reboot
|
||||
- `org.matrix.room.preview_urls` events
|
||||
- Support "Empty room (was ...)" after peer left
|
||||
- Previewing room without joining
|
||||
## Nio contributions
|
||||
|
||||
- Get content repo config API
|
||||
- Add the `resume()` method
|
||||
- Dedicated error for invalid password on key import
|
||||
- Running blocking DB function calls in executor
|
||||
- `AsyncClient.share_group_session`: send device batches concurrently
|
||||
|
||||
- See if we can turn all the Error classes into actual exceptions
|
||||
- RoomMessageMedia and RoomAvatarEvent info attributes
|
||||
- `m.room.aliases` events
|
||||
- Left room events after client reboot
|
||||
- `org.matrix.room.preview_urls` events
|
||||
- Support "Empty room (was ...)" after peer left
|
||||
- Previewing room without joining
|
||||
|
||||
- Distribution
|
||||
- Include python dependencies in binary with rcc?
|
||||
- README.md
|
||||
- Get content repo config API
|
||||
- Add the `resume()` account "login" method
|
||||
|
||||
- See if we can turn all the Error classes into actual exceptions
|
||||
|
||||
## Distribution
|
||||
|
||||
- Include python dependencies in binary with rcc?
|
||||
- Improve the README.md
|
||||
|
||||
## 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.
|
||||
|
||||
- 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.
|
||||
|
|
Loading…
Reference in New Issue
Block a user