KTp/Tasks/TextUIQML
Appearance
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 :)
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 message handling out of ChatWidget | 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 | Fix autoscroll to bottom | Active/Plasmoid | <[email protected]>
|
TODO | Add log loading to MessagesModel | KCI | <[email protected]> |
TODO | Handle MessageDeliveryReports in MessagesModel | KCI | <[email protected]> |
TODO | Remove TargetContact - put as title + icon in Conversation | KCI | <[email protected]>
|
Plugins are another problem. We can deal with that afterwards
- I'm not sure if we want to drop AdiumTheme support or not.
QML issues remaining
- Desktop Scrollbars (see Muon Discover)
- We need "scroll to bottom" on new message
- Find (highlight and scroll to the right place)
- Text copying (not easy)
- Make arrow keys cause scroll
- Links working
- Emoticons to text
- Plugins (I want the message to have some sort of map of "what QML item to insert, and properties to pass to it"
Custom items could then be included.
- Warnings in "take2" theme
- Sort out notification handling