moment/TODO.md

163 lines
5.8 KiB
Markdown

- Refactoring
- Banners
- Theming
- File format
- Make all icon SVG files white/black, since we can now use ColorOverlay
- Make the icon blue in EditAccount when hovering and no avatar set
- Remove the filled theme
- Use [Animators](https://doc.qt.io/qt-5/qml-qtquick-animator.html)
- Choose a better default easing type for animations
- Sendbox
- Room Sidepane
- Hide when window too small
- Also save/load its size
- Is auto-sizing actually needed, or can we just set a default manual size?
- Reducable room sidepane, swipe to show full-window
- When qml syntax highlighting supports ES6 string interpolation, use them
- Fixes
- Restore previous focus after closing right click context menu
- Reloading config files (cache)
- Run import in thread and AsyncClient.olm functions, they block async loop
- Handle import keys errors
- Show error box if uploading avatar fails
- Don't strip user spacing in html
- Do something when access token is invalid
- Keyboard flicking against top/bottom edge
- Message position after daybreak delegate (fixed by commit 57b1313 ?)
- [hr not working](https://bugreports.qt.io/browse/QTBUG-74342)
- Terrible performance using `QT_QPA_PLATFORM=wayland-egl`, must use `xcb`
- UI
- Use a Loader for context menus
- Make HListView scrollbars visible
- Remove first html lists left margin
- Adapt UI for small heights
- Popup:
- label size
- Accept/cancel buttons
- Transitions
- Restoring UI state:
- Sendbox content
- Which element was focused
- Room member filter field
- Prevent others from having a too similar hue as us, or our own accounts
from sharing a too similar hue
- Combine events so they take less space
- After combining is implemented, no need to hide our own profile changes.
- When starting a long task, e.g. importing keys, quitting the page,
and coming back, show the buttons as still loading until operation is done
- Make invite/left banners look better in column mode
- Replies
- Messages editing
- Code highlighting
- Support GIF avatars
- Adapt shortcuts flicking speed to font size and DPI
- EditAccount page:
- Remove account from client
- state: Set UI state page to Default.qml when account is removed
- Device settings
- Multiaccount aliases:
- Warn when conflict with another alias
- Forbid spaces?
- Add an explanation tooltip
- Prevent sending messages with an user not in room
- Support \ escaping
- Accept drag and dropping a picture to set avatar
- Improve avatar tooltips position, add stuff to room tooltips (last msg?)
- 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
- Animate when logging out last account and sidepane turns invisible
- Header back button when reduced
- Better look for arrows and option button when collapsed
- Show it when hovering/hitting focus keybind on the left when collapsed
- Ability to drag on any place of the pane to resize
- Invite to room
- Server selection
- Register/Forgot? for SignIn dialog
- Add room
- Logout & leave/forget room warning popup
- Prevent using the SendBox if no permission (power levels)
- Prevent using an alias if that user is not in the room or no permission
- Spinner when loading account, past room events, images or clicking buttons
- Show account page as loading until profile initially retrieved
- Theming
- Distribute fonts
- preferredIconPack: accept multiple values
- Find icon packs in user data dir
- Correctly implement uiScale/fontScale + ctrl+-= keys
- See `QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling)`
- See [Text.fontSizeMode](https://doc.qt.io/qt-5/qml-qtquick-text.html#fontSizeMode-prop)
- Way to round avatar corners to allow box radius
- If avatar is set, name color from average color?
- Accent color from background
- Settings page
- Message/text selection
- Notifications
- 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
- Import/export keys
- Uploads & proper http thumbnails
- Reduce messages ListView cacheBuffer height once http thumbnails
downloading is implemented
- Read receipts
- Status message and presence
- Links preview
- Client improvements
- `pyotherside.atexit()`
- Logout previous session if adding an account that's already connected
- Image provider: on failed conversion, way to show a "broken image" thumb?
- Config file format
- Initial sync filter and lazy load, see weechat-matrix `_handle_login()`
- See also `handle_response()`'s `keys_query` request
- Direct chats category
- Markdown: don't turn #things (no space) and `thing\n---` into title,
disable `__` syntax for bold/italic
- `<pre>` scrollbar on overflow
- When inviting someone to direct chat, room is "Empty room" until accepted,
it should be the peer's display name instead.
- Animate RoomEventDelegate DayBreak apparition
- Room subtitle: show things like "*Image*" instead of blank, etc
- nio
- `AsyncClient.share_group_session`: send device batches concurrently
- downloads API
- MatrixRoom invited members list
- Invite events are missing their timestamps (needed for sorting)
- Left room events after client reboot
- `org.matrix.room.preview_urls` event
- `m.room.aliases` event
- Support "Empty room (was ...)" after peer left
- Previewing room without joining
- Distribution
- Include python dependencies in binary with rcc?
- README.md