moment/TODO.md

5.8 KiB

  • 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

      • 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

    • 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
      • 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