Improve TODO.md & add section about Qt future

This commit is contained in:
miruka 2019-12-12 11:48:16 -04:00
parent 82e4dff2ab
commit 5dc228f197

285
TODO.md
View File

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