Ticket #73 (closed enhancement: fixed)

Opened 18 months ago

Last modified 17 months ago

Applications and message types enhancement

Reported by: amroth Owned by: diederik
Priority: major Milestone: kmess-1.5
Component: GUI - Chat window Version: 1.5-pre2
Keywords: Cc:

Description (last modified by diederik) (diff)

KMess currently uses two kind of messages for applications: AppMessage - for standard info messages; AppEventMessages - for positive or passive messages. This is very wrong. For example it completely disallows to distinguish between an incoming file transfer invitation, and a notification message like "transfer cancelled"; and also, disallow distinguishing between FT messages and other kinds of application messages. So neither the ChatMaster, nor the Notification* classes are able to correctly display or ignore the relevant applications' messages.

At the moment, when a contact closes a chatwindow and then an Application sends a message like "transfer cancelled", another chatwindow is opened with that message only. And that's very annoying.

We should rework a bit the applications' methods which send messages, and optimize ChatMaster::showSpecialMessage(): For example in the Applications, have only one method and one signal to send a message; but having the message QString associated with a relative ChatMessage::MessageType identificator. This way every message sent by the Applications can be meaning by itself, and we can know if it NEEDS to be displayed, even if it means making a new chatwindow out of nowhere, or if it can be safely ignored. This fix would resolve some more 1.5 blocking bugs we've still got pending!

Attachments

messageTypes.patch (44.3 kB) - added by amroth 17 months ago.
Here's a first attempt at the problem: it's A LOT messy than I first thought; it implements a second argument to anything which uses the Message Type enum.

Change History

Changed 18 months ago by diederik

  • description modified (diff)

escaped auto-wiki links to appear as plain text

Changed 18 months ago by diederik

Suggestion: implement two seperate values:

  • keep the current global type (chat message / application message / application event / system error )
  • Add a separate value to the parameters of the ChatMessage object to tune the chat balloons

This reduces the risk to introduce new bugs in this stage of the development, and keeps the chat style system intact. Chat xsl styles are dump by design, so it's easier to write them and they handle new messages properly too.

Changed 17 months ago by amroth

Here's a first attempt at the problem: it's A LOT messy than I first thought; it implements a second argument to anything which uses the Message Type enum.

Changed 17 months ago by amroth

  • status changed from new to closed
  • resolution set to fixed
Note: See TracTickets for help on using tickets.