Jump to content

KTp/Tasks/TextUIQML

From KDE Community Wiki
Revision as of 15:29, 6 October 2013 by D ed (talk | contribs) (Rationale)

Declarative TextUI

Rationale

In order to modernise we need more control.

This means doing our own thing with themes so we can change them. QML in many ways is a good choice, messages are like a list model.

We will get

  • Delivery Reports inline
  • Error messages inline
  • Better, richer plugins
  • Seperation between data + logic + view
  • Typing indicators inline
  • Contact status inline + mobile icon
  • History loaded on demand
  • Better load types (Webkit is slow, and we need avatars etc. before we can do anything)
  • User selected fonts for better desktop integration
  • Chat plasmoid will benefit from this too
  • Smoother loading/scrolling on images loading.. maybe :)

Demo

Demo is available here

kde:scratch/davidedmundson/ktp_text_qml

It looks like this: File:Http://static.davidedmundson.co.uk/ktp qml.png

Action Plan

  • Plan is to kill the webkit parts
  • Replace that part with a QDeclarativeView
  • It will NOT be merged if there are regressions
  • The group chat participants list will remain the same, toolbars will remain the same, typing area will remain the same. I do _NOT_ want to change those.
  • Themes will have Conversation* object exposed as rootContextProperty. I don't think it makes any sense to use ConversationsModel
  • It needs to look like part of a desktop app, and not part of something Plasma.

Work that needs doing

Status Action Where Developer
TODO Split current message handling out of ChatWidget into AdiumThemeView subclass/container that can be swapped out textUI <[email protected]>
TODO Figure out how to do Copying text QML Demo <[email protected]>
TODO Figure out how to do searching + scroll QML Demo <[email protected]>
TODO Use user set desktop font size QML Demo <[email protected]>


TODO Fix autoscroll to bottom Active/Plasmoid <[email protected]>


TODO Add log loading to MessagesModel KCI <[email protected]>
TODO Handle MessageDeliveryReports in MessagesModel. Ideally update existing sent message with a property. KCI <[email protected]>
TODO Remove TargetContact - put as title + avatar + icon in Conversation. Be group chat compliant KCI <[email protected]>

Plugins are another problem. We can deal with that afterwards. Dave has a plan in his brain.

  • I'm not sure if we want to drop AdiumTheme support or not.