KTp/Tasks/TextUIQML: Difference between revisions

From KDE Community Wiki
< KTp‎ | Tasks
 
(20 intermediate revisions by 3 users not shown)
Line 20: Line 20:
* Smoother loading/scrolling on images loading.. maybe :)
* Smoother loading/scrolling on images loading.. maybe :)


===Demo===
Demo is available here
kde:scratch/davidedmundson/ktp_text_qml
It looks like this:
[[http://static.davidedmundson.co.uk/ktp_qml.png]]


==Action Plan==
==Action Plan==
Line 41: Line 49:
! Developer
! Developer


{{FeatureProjectTodo|Split message handling out of ChatWidget|textUI|nobody@kde.org}}
{{FeatureProjectInProgress|Split current message handling out of ChatWidget into AdiumThemeView subclass/container that can be swapped out|textUI|[email protected]}}
{{FeatureProjectTodo|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|davidedmundson@kde.org}}
{{FeatureProjectTodo|Figure out how to do Copying text|QML Demo|[email protected]}}
{{FeatureProjectTodo|Figure out how to do Copying text|QML Demo|[email protected]}}
{{FeatureProjectTodo|Figure out how to do searching + scroll|QML Demo|[email protected]}}
{{FeatureProjectTodo|Figure out how to do searching + scroll|QML Demo|[email protected]}}
{{FeatureProjectTodo|Fix autoscroll to bottom| Active/Plasmoid|nobody@kde.org}}
{{FeatureProjectDone|Make a test-case for fixing the scrolling bug| QML Demo|leonh@ndreke.de}}
 
{{FeatureProjectTodo|Fix autoscroll to bottom|QML Demo |[email protected]}}
{{FeatureProjectTodo|Add log loading to MessagesModel|KCI|[email protected]}}
{{FeatureProjectTodo|Expose ChannelContactModel in Conversation|KCI|[email protected]}}
{{FeatureProjectTodo|Remove TargetContact - put as title + icon in Conversation|KCI|[email protected]}}


{{FeatureProjectDone|Add log loading to MessagesModel|KCI|[email protected]}}
{{FeatureProjectDone|Handle MessageDeliveryReports in MessagesModel. Ideally update existing sent message with a property.|KCI|[email protected]}}
{{FeatureProjectDone|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
Plugins are another problem. We can deal with that afterwards. Dave has a plan in his brain.  
 
* Split text-ui away from AdiumTheme*
* This will allow us to drop this thing out, and a new one in
 
* Once that is done, should allow fairly easy porting in a branch without conflicts
 
* Work on the themes is going on with fake models at LINK HERE
* I personally want two themes, one like Renkoo and a group theme that matches
visual change won't be too large. (Though /maybe/ it's best to focus on just one thing)


* I'm not sure if we want to drop AdiumTheme support or not.
* I'm not sure if we want to drop AdiumTheme support or not.
* MessagesModel needs better delivery report handling
* Make targetContact not suck. Take a ChannelPtr and it should handle group chat titles too
  - will have something like "QString channelName()" "QPixmap channelIcon"
* MessagesModel needs logger integration at least to load the last n messages like text-ui does
==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

Latest revision as of 07:21, 30 December 2013

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.