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 is available here
It looks like this: []
- 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
|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.