KTp/Tasks/TextUIQML

From KDE Community Wiki
< KTp‎ | Tasks
Revision as of 11:15, 12 June 2013 by D ed (talk | contribs) (Created page with "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 c...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

  • Split text-ui away from AdiumTheme*
  • Move all message handling away from ChatWidget, along with any remaining "theme" things into AdiumMessagesView (which has some sort of setTextChannel method)
  • 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.
  • 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
  • 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