KTp/Tasks/TextUIQML
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: [[1]]
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 |
---|---|---|---|
IN PROGRESS | Split current message handling out of ChatWidget into AdiumThemeView subclass/container that can be swapped out | textUI | <[email protected]> |
TODO | Figure out how to handle notifications. I've copied code to MessageView, which won't be in the QML code. We can't move it to k-c-i because it needs knowledge of the widget to activate. | 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]> |
DONE | Make a test-case for fixing the scrolling bug | QML Demo | <[email protected]> |
TODO | Fix autoscroll to bottom | QML Demo | <[email protected]>
|
DONE | Add log loading to MessagesModel | KCI | <[email protected]> |
DONE | Handle MessageDeliveryReports in MessagesModel. Ideally update existing sent message with a property. | KCI | <[email protected]> |
DONE | 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.