Stop tracking TODO.md
Constantly causes issues when working with multiple branches and rebasing
This commit is contained in:
parent
1db8c66759
commit
6770178a23
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -27,3 +27,5 @@ packaging/flatpak/flatpak-pip.json
|
|||
packaging/flatpak/flatpak-pip-generator
|
||||
.flatpak-builder/
|
||||
flatpak-build/
|
||||
|
||||
docs/TODO.md
|
||||
|
|
310
docs/TODO.md
310
docs/TODO.md
|
@ -1,310 +0,0 @@
|
|||
# TODO
|
||||
|
||||
- seen tooltips can't be shown on image hover
|
||||
|
||||
- quick settings
|
||||
- import/export/json edit rules?
|
||||
- room selector for room rules
|
||||
- validate json for unknown action/condition
|
||||
- custom action
|
||||
|
||||
- PCN docstrings
|
||||
- PCN error handling
|
||||
- Change docs linking to dev branch back to master
|
||||
|
||||
- Implement fallback QML notifications, usable if dbus isn't available
|
||||
|
||||
- add http_proxy support
|
||||
- Room display name not updated when someone removes theirs
|
||||
- Fix right margin of own `<image url>\n<image url>` messages
|
||||
- warn on ambiguously activated shortcut
|
||||
|
||||
- SSO device delete?
|
||||
- filter > enter > room list is always scrolled to top
|
||||
- refresh server list button
|
||||
|
||||
- global presence control
|
||||
|
||||
- publish room or alias control
|
||||
|
||||
- open context menus centered on touch screens
|
||||
- auto-idle for Windows and OSX
|
||||
- status based on process detection
|
||||
|
||||
## Refactoring
|
||||
|
||||
- General change/upload avatar component for account and room settings
|
||||
- Refactor EventList.qml
|
||||
- Refactor `InviteBanner`/`LeftBanner`
|
||||
- Implement different delegate for different types of events in QML, instead
|
||||
of having only one doing everything with untranslatable content texts
|
||||
from Python
|
||||
|
||||
## Issues
|
||||
|
||||
- Show a proper error when accepting a room invite that has expired or
|
||||
the room doesn't exist anymore (`MatrixNotFound`)
|
||||
|
||||
- Replying to one of our own message that's currently only a local echo
|
||||
results in a reply to an empty ID
|
||||
|
||||
- Bottom focus line for an `HTextArea` inside a `ScrollView` is invisible,
|
||||
put the background on `ScrollView` instead?
|
||||
|
||||
- Don't send typing notification when switching to a room where the composer
|
||||
has preloaded text
|
||||
|
||||
- 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)
|
||||
|
||||
- Jumping between accounts (clicking in account bar or alt+(Shift+)N) is
|
||||
laggy with hundreds of rooms in between
|
||||
|
||||
- Drag-scrolling in room pane a tiny bit activates the delegates
|
||||
|
||||
- Catch server 5xx errors when sending message and retry
|
||||
|
||||
- After forgetting a room, it comes back because of the "you left" event
|
||||
|
||||
- `code`, mentions and links in quote ("> http://example.com") aren't properly
|
||||
colored in room delegate "last message" subtitle
|
||||
|
||||
- `Timer` and `Animation` are bound to framerate
|
||||
- Can't use `QQmlApplicationEngine`, problem with QApplication?
|
||||
See https://bugreports.qt.io/browse/QTBUG-50992
|
||||
- [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?)
|
||||
|
||||
## Interface
|
||||
|
||||
- Colorize "@room" in messages
|
||||
- Device IP geolocation
|
||||
- Can rooms be left with a reason?
|
||||
|
||||
- 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..."
|
||||
|
||||
- Long-press-drag to select multiple messages on touch
|
||||
- Drag to select multiple messages on non-touch
|
||||
|
||||
- Make clicking on user/room mentions open relevant UI instead of matrix.to
|
||||
URL in browser
|
||||
|
||||
- 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)
|
||||
|
||||
- Linkify URLs in topic text areas
|
||||
|
||||
- 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
|
||||
- https://doc.qt.io/qt-5/qml-qtquick-smoothedanimation.html for progress bars
|
||||
- Improve when HDrawer should collapse when the ui is zoomed
|
||||
- Make room invite/left banner buttons look better
|
||||
|
||||
- Choose a better easing types for animations
|
||||
- In messages, remove the HTML lists excess left margin
|
||||
- Improve UI for very small window heights
|
||||
|
||||
- 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 direct chat 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 by default anymore
|
||||
|
||||
- Animate `DayBreak` apparition
|
||||
|
||||
- Device settings
|
||||
- Proparly formatted rich replies
|
||||
- Messages editing
|
||||
- Code highlighting
|
||||
- Adapt shortcuts flicking speed to font size
|
||||
|
||||
- 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
|
||||
- "Rejoin" LeftBanner button if room is public
|
||||
- Daybreak color
|
||||
- Conversation breaks: show time of first new msg after break instead of big
|
||||
blank space
|
||||
|
||||
- `MainPane`:
|
||||
- Animate when logging out last account and sidepane turns invisible
|
||||
|
||||
- Implement Register/Reset pages
|
||||
|
||||
- Theming
|
||||
- Use a standard file format
|
||||
- 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>`
|
||||
|
||||
- Replace the rubbish default Qt filepicker on Linux
|
||||
|
||||
## Media-related
|
||||
|
||||
- UI for download progress (using `Transfer` like for uploads)
|
||||
|
||||
- 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
|
||||
|
||||
## Backend
|
||||
|
||||
- Better 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)
|
||||
|
||||
- Cache and restore profiles, room events and client states
|
||||
|
||||
- Properly handle direct chats
|
||||
- Live-reloading accounts.json
|
||||
|
||||
- E2E
|
||||
- SAS verification
|
||||
- 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
|
||||
- Cross-signing
|
||||
|
||||
- Fully read markers
|
||||
|
||||
- Methods of signing in that aren't handled yet:
|
||||
- `m.login.password` alternate logins methods:
|
||||
- `m.id.thirdparty`
|
||||
- `m.id.phone`
|
||||
- `m.login.recaptcha` (need browser, just use fallback?)
|
||||
- `m.login.email.identity`
|
||||
- `m.login.msisdn` (phone)
|
||||
- `m.login.dummy`
|
||||
- Web page fallback
|
||||
|
||||
## Nio contributions
|
||||
|
||||
- Streaming download & decrypt
|
||||
- Running blocking DB function calls in executor (WIP)
|
||||
|
||||
- Dedicated error for invalid password on key import
|
||||
- `RoomMessageMedia` and `RoomAvatarEvent` info attributes
|
||||
- Handle `m.room.aliases` events
|
||||
|
||||
- Left room events after client reboot
|
||||
- Previewing room without joining
|
||||
|
||||
## Distribution and dependencies
|
||||
|
||||
- Use Qt 5.14 for AppImage
|
||||
- Add AppImage & Flatpak metadata file
|
||||
- Publish on Flathub and AppImageHub
|
||||
|
||||
- Update to Mistune v2.0 when released
|
||||
|
||||
## 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.
|
||||
- Rewrite `HKineticScrollingDisabler` with it
|
||||
|
||||
- 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.
|
||||
|
||||
- `Binding.restoreMode`: This property can be used to describe if and how the
|
||||
original value should be restored when the binding is disabled.
|
||||
|
||||
### [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`.
|
||||
|
||||
- Added `selectTextByMouse` property to `ComboBox`.
|
||||
|
||||
- Technology Preview: Support for running Qt Quick (2D) on top of
|
||||
Direct3D, Metal and Vulkan
|
||||
|
||||
- `ListView.reuseItems` property
|
Loading…
Reference in New Issue
Block a user