moment/TODO.md
2019-07-25 19:19:39 -04:00

5.5 KiB

  • Investigate?

    • QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling)
  • Refactoring

    • Use Animators
    • Sendbox
    • Use .mjs modules
    • SignIn/RememberAccount screens
      • SignIn must be in a flickable
    • Don't bake in size properties for components
    • Unfinished work in button-refactor branch
      • Button can get "hoverEnabled: false" to let HoverHandlers work
    • Room Sidepane
      • Hide when window too small
      • Also save/load its size
    • When qml syntax highlighting supports string interpolation, use them
  • Fixes

    • Update state.json page when accepting an invite

    • Run import in thread and AsyncClient.olm functions, they block async loop

    • Handle import keys errors

    • Update the room subtitle when a message is decrypted/edited

    • Don't linkify images for outgoing html

    • state: If last page is a room and the account for it is no longer present,
      load Default.qml instead

    • Message position after daybreak delegate

    • Keyboard flicking against top/bottom edge

    • Don't strip user spacing in html

    • Past events loading (limit 100) freezes the GUI - need to move upsert func
      to a WorkerScript

    • MessageDelegate.qml:63: TypeError: 'reloadPreviousItem' not a function

    • Horrible performance for big rooms

    • hr not working

  • UI

    • Popup:

      • label size
      • Accept/cancel buttons
      • Transitions
    • 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

    • Messages editing

    • Code highlighting

    • Support GIF avatars

    • When reduced, show the full-window sidepane instead of Default page

    • Adapt shortcuts flicking speed to font size and DPI

    • Show error box if uploading avatar fails

    • EditAccount page:

      • 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
    • Improve avatar tooltips position, add stuff to room tooltips (last msg?)

    • Accept drag and dropping a picture in account settings to set avatar

    • When all the events loaded on beginning in a room are name/avatar changes,
      no last event room text is displayed (use sync filter?)

    • Show something when connection is lost or 429s happen

    • "Rejoin" LeftBanner button if room is public

    • Daybreak color

    • Replies

    • pyotherside.atexit()

    • Sidepane

      • Header back button when reduced
      • Better look for arrows and option button when collapsed
      • Way to put it back to auto-sizing (snap)
      • Show it when hovering on the left when collapsed/reduced
      • Ability to drag on any place of the pane to resize
    • Reducable room sidepane, swipe to show full-window

    • Invite to room

    • Server selection

    • Register/Forgot? for SignIn dialog

    • Add room

    • Leave room

    • Forget room warning popup

    • Prevent using the SendBox if no permission (power levels)

    • Spinner when loading past room events, images or clicking buttons

    • Theming

      • Don't create additional lines in theme conversion (braces)
      • Recursively merge default and user theme
      • Distribute fonts
      • preferredIconPack: accept multiple values
      • Find icon packs in user data dir
      • Correctly implement uiScale/fontScale + ctrl+-= keys
      • 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

    • 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

    • Config file format
    • Set Qt.application.* stuff from C++
    • debug mode
    • Initial sync filter and lazy load, see weechat-matrix _handle_login()
      • See also handle_response()'s keys_query request
    • Direct chats category
    • On sync, check messages API, if a limited sync timeline was received
    • Markdown: don't turn #things (no space) and thing\n--- into title,
      disable __ syntax for bold/italic
    • Push instead of replacing in stack view (remove getMemberFilter when done)
    • <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.
    • See Qt.callLater() potential usages
    • 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