KChatBase Class Reference

#include <kchatbase.h>

Inheritance diagram for KChatBase:

Inheritance graph
[legend]
Collaboration diagram for KChatBase:

Collaboration graph
[legend]

List of all members.

Public Types

enum  SendingIds { SendToAll = 0 }

Public Slots

virtual void addMessage (const QString &fromName, const QString &text)
 Add a text in the listbox.
virtual void addSystemMessage (const QString &fromName, const QString &text)
 This works just like addMessage but adds a system message.
void slotClear ()
 This clears all messages in the view.
void setAcceptMessage (bool a)
 
Parameters:
a If false this widget cannot send a message until setAcceptMessage(true) is called


Public Member Functions

 KChatBase (QWidget *parent, KChatBaseModel *model=0, KChatBaseItemDelegate *delegate=0, bool noComboBox=false)
 
Parameters:
parent The parent widget for this widget.

virtual ~KChatBase ()
 Destruct the KChatBase object.
virtual QString fromName () const =0
 
Returns:
The name that will be shown for messages from this widget.

bool addSendingEntry (const QString &text, int id)
 Adds a new entry in the combo box.
bool insertSendingEntry (const QString &text, int id, int index=-1)
 Inserts a new entry in the combo box.
void changeSendingEntry (const QString &text, int id)
 This changes a combo box entry.
void setSendingEntry (int id)
 This selects a combo box entry.
void removeSendingEntry (int id)
 Removes the entry with the ID id from the combo box.
int sendingEntry () const
 
Returns:
The _unique ID_ of the sending entry that has been selected.

int findIndex (int id) const
 
Returns:
The index of the combo box entry with the given id

int nextId () const
 
Returns:
An ID that has not yet been used in the combo box.

virtual bool acceptMessage () const
 
Returns:
True if this widget is able to send messages (see returnPressed) and false if not.

void setCompletionMode (KGlobalSettings::Completion mode)
 See KLineEdit::setCompletionMode.
void setNameFont (const QFont &font)
 Set the font that used used for the name part of a message.
void setMessageFont (const QFont &font)
 Set the font that used used for the message part of a message.
void setBothFont (const QFont &font)
 This sets both - nameFont and messageFont to font.
void setSystemNameFont (const QFont &font)
 Same as setNameFont but applies only to system messages.
void setSystemMessageFont (const QFont &font)
 Same as setMessageFont but applies only to system messages.
void setSystemBothFont (const QFont &font)
 Same as setBothFont but applies only to system messages.
QFont nameFont () const
 This font should be used for the name (the "from: " part) of a message.
QFont messageFont () const
 This font should be used for a message.
QFont systemNameFont () const
 Same as systemNameFont but applies only to system messages.
QFont systemMessageFont () const
 Same as systemMessageFont but applies only to system messages.
virtual void saveConfig (KConfig *conf=0)
 Save the configuration of the dialog to a KConfig object.
virtual void readConfig (KConfig *conf=0)
 Read the configuration from a KConfig object.
void setMaxItems (int maxItems)
 Set the maximum number of items in the list.
void clear ()
 Clear all messages in the list.
int maxItems () const
 
Returns:
The maximum number of messages in the list.

KChatBaseModelmodel ()
void setModel (KChatBaseModel *m)

Protected Member Functions

virtual void returnPressed (const QString &text)=0
 This is called whenever the user pushed return ie wants to send a message.
virtual QString comboBoxItem (const QString &name) const
 Replace to customize the combo box.


Detailed Description

The base class for chat widgets This is the base class for both KChat and KGameChat. KGameChat is the class you want to use if you write a KGame based game as it will do most things for you. KChat is more or less the same but not KGame dependant

KChatBase provides a complete chat widget, featuring different sending means (e.g. "send to all", "send to player1", "send to group2" and so on - see addSendingEntry). It also provides full auto-completion capabilities (see KCompletion and KLineEdit) which defaults to disabled. The user can change this by right-clicking on the KLineEdit widget and selecting the desired behaviour. You can also change this manually by calling setCompletionMode.

To make KhatBase useful you have to overwrite at least returnPressed. Here you should send the message to all of your clients (or just some of them, depending on sendingEntry).

To add a message just call addMessage with the nickname of the player who sent the message and the message itself.

You probably don't want to use the abstract class KChatBase directly but use one of the derived classes KChat or KGameChat. The latter is the widget of choice if you develop a KGame application as you don't have to do anything but providing a KGame object. If you want to change the kind of elements displayed (using pixmaps for example), then you will also have to derive the KChatBaseModel and KChatBaseItemDelegate classes.

Author:
Andreas Beckermann <b_mann@gmx.de>

Gael de Chalendar (aka Kleag) <kleag@free.fr> for the port to Model/View

Definition at line 69 of file kchatbase.h.


Member Enumeration Documentation

enum KChatBase::SendingIds

Enumerator:
SendToAll 

Definition at line 92 of file kchatbase.h.


Constructor & Destructor Documentation

KChatBase::KChatBase ( QWidget *  parent,
KChatBaseModel model = 0,
KChatBaseItemDelegate delegate = 0,
bool  noComboBox = false 
) [explicit]

Parameters:
parent The parent widget for this widget.

Parameters:
model 
delegate 
noComboBox If true then the combo box where the player can choose where to send messages to (either globally or just to some players) will not be added.

Definition at line 75 of file kchatbase.cpp.

References addSendingEntry(), KChatBasePrivate::mAcceptMessage, KChatBasePrivate::mBox, KChatBasePrivate::mCombo, KChatBasePrivate::mDelegate, KChatBasePrivate::mEdit, KChatBasePrivate::mModel, readConfig(), returnPressed(), SendToAll, and setMaxItems().

Here is the call graph for this function:

KChatBase::~KChatBase (  )  [virtual]

Destruct the KChatBase object.

Also calls saveConfig

Definition at line 127 of file kchatbase.cpp.

References saveConfig().

Here is the call graph for this function:


Member Function Documentation

virtual QString KChatBase::fromName (  )  const [pure virtual]

Returns:
The name that will be shown for messages from this widget.

Either the string that was set by setFromName or the name of the player that was set by setFromPlayer

Implemented in KChat.

bool KChatBase::addSendingEntry ( const QString &  text,
int  id 
)

Adds a new entry in the combo box.

The default is "send to all players" only. This function is provided for convenience. You can also call inserSendingEntry with index = -1. See also nextId!

Parameters:
text The text of the new entry
id An ID for this entry. This must be unique for this entry. It has nothing to do with the position of the entry in the combo box. See nextId
Returns:
True if successful, otherwise false (e.g. if the id is already used)

Definition at line 140 of file kchatbase.cpp.

References insertSendingEntry().

Referenced by KChatBase().

Here is the call graph for this function:

bool KChatBase::insertSendingEntry ( const QString &  text,
int  id,
int  index = -1 
)

Inserts a new entry in the combo box.

Parameters:
text The entry
id An ID for this entry. This must be unique for this entry. It has nothing to do with the position of the entry in the combo box!
See also:
nextId
Parameters:
index The position of the entry. If -1 the entry will be added at the bottom
Returns:
True if successful, otherwise false (e.g. if the id is already used)

Definition at line 149 of file kchatbase.cpp.

References KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.

Referenced by addSendingEntry().

void KChatBase::changeSendingEntry ( const QString &  text,
int  id 
)

This changes a combo box entry.

Parameters:
text The new text of the entry
id The ID of the item to be changed

Definition at line 196 of file kchatbase.cpp.

References findIndex(), and KChatBasePrivate::mCombo.

Here is the call graph for this function:

void KChatBase::setSendingEntry ( int  id  ) 

This selects a combo box entry.

Parameters:
id The ID of the item to be selected

Definition at line 206 of file kchatbase.cpp.

References findIndex(), and KChatBasePrivate::mCombo.

Here is the call graph for this function:

void KChatBase::removeSendingEntry ( int  id  ) 

Removes the entry with the ID id from the combo box.

Note that id is _not_ the index of the entry!

See also:
addSendingEntry
Parameters:
id The unique id of the entry

Definition at line 186 of file kchatbase.cpp.

References findIndex(), KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.

Here is the call graph for this function:

int KChatBase::sendingEntry (  )  const

Returns:
The _unique ID_ of the sending entry that has been selected.

See also:
addSendingEntry
Note that the entry "send to all" _always_ uses KChatBase::SendToAll, i.e. 0 as id!

Definition at line 172 of file kchatbase.cpp.

References KChatBasePrivate::mCombo, and KChatBasePrivate::mIndex2Id.

int KChatBase::findIndex ( int  id  )  const

Returns:
The index of the combo box entry with the given id

Definition at line 215 of file kchatbase.cpp.

References KChatBasePrivate::mIndex2Id.

Referenced by changeSendingEntry(), removeSendingEntry(), and setSendingEntry().

int KChatBase::nextId (  )  const

Returns:
An ID that has not yet been used in the combo box.

See also:
addSendingEntry

Definition at line 220 of file kchatbase.cpp.

References KChatBasePrivate::mIndex2Id, and SendToAll.

bool KChatBase::acceptMessage (  )  const [virtual]

Returns:
True if this widget is able to send messages (see returnPressed) and false if not.

The default implementation returns the value which has been set by setAcceptMessage (true by default)

Definition at line 134 of file kchatbase.cpp.

References KChatBasePrivate::mAcceptMessage.

void KChatBase::setCompletionMode ( KGlobalSettings::Completion  mode  ) 

See KLineEdit::setCompletionMode.

Definition at line 252 of file kchatbase.cpp.

References KChatBasePrivate::mEdit.

void KChatBase::setNameFont ( const QFont &  font  ) 

Set the font that used used for the name part of a message.

See also nameFont and setBothFont

Definition at line 314 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setNameFont().

Referenced by KChatDialog::configureChatWidget().

Here is the call graph for this function:

void KChatBase::setMessageFont ( const QFont &  font  ) 

Set the font that used used for the message part of a message.

See also:
messageFont, setBothFont

Definition at line 319 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setMessageFont().

Referenced by KChatDialog::configureChatWidget().

Here is the call graph for this function:

void KChatBase::setBothFont ( const QFont &  font  ) 

This sets both - nameFont and messageFont to font.

You probably want to use this if you don't wish to distinguish between these parts of a message.

Parameters:
font A font used for both nameFont and messageFont

Definition at line 324 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setBothFont().

Here is the call graph for this function:

void KChatBase::setSystemNameFont ( const QFont &  font  ) 

Same as setNameFont but applies only to system messages.

See also:
layoutSystemMessage

Definition at line 329 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setSystemNameFont().

Referenced by KChatDialog::configureChatWidget().

Here is the call graph for this function:

void KChatBase::setSystemMessageFont ( const QFont &  font  ) 

Same as setMessageFont but applies only to system messages.

See also:
layoutSystemMessage

Definition at line 334 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setSystemMessageFont().

Referenced by KChatDialog::configureChatWidget().

Here is the call graph for this function:

void KChatBase::setSystemBothFont ( const QFont &  font  ) 

Same as setBothFont but applies only to system messages.

See also:
layoutSystemMessage

Definition at line 339 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::setSystemBothFont().

Here is the call graph for this function:

QFont KChatBase::nameFont (  )  const

This font should be used for the name (the "from: " part) of a message.

layoutMessage uses this to set the font using KChatBaseItemDelegate::setNameFont but if you want to overwrite layoutMessage you should do this yourself.

Returns:
The font that is used for the name part of the message.

Definition at line 294 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::nameFont().

Referenced by KChatDialog::plugChatWidget().

Here is the call graph for this function:

QFont KChatBase::messageFont (  )  const

This font should be used for a message.

layoutMessage sets the font of a message using KChatBaseItemDelegate::setMessageFont but if ypu replace layoutMessage with your own function you should use messageFont() yourself.

Returns:
The font that is used for a message

Definition at line 299 of file kchatbase.cpp.

References KChatBaseModel::messageFont(), and KChatBasePrivate::mModel.

Referenced by KChatDialog::plugChatWidget().

Here is the call graph for this function:

QFont KChatBase::systemNameFont (  )  const

Same as systemNameFont but applies only to system messages.

See also:
layoutSystemMessage

Definition at line 304 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::systemNameFont().

Referenced by KChatDialog::plugChatWidget().

Here is the call graph for this function:

QFont KChatBase::systemMessageFont (  )  const

Same as systemMessageFont but applies only to system messages.

See also:
layoutSystemMessage

Definition at line 309 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::systemMessageFont().

Referenced by KChatDialog::plugChatWidget().

Here is the call graph for this function:

void KChatBase::saveConfig ( KConfig *  conf = 0  )  [virtual]

Save the configuration of the dialog to a KConfig object.

If the supplied KConfig pointer is NULL then KGlobal::config() is used instead (and the group is changed to "KChatBase") butr the current group is restored at the end.

Parameters:
conf A pointer to the KConfig object to save the config to. If you use 0 then KGlobal::config() is used and the group is changed to "KChatBase" (the current group is restored at the end).

Definition at line 255 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::saveConfig().

Referenced by KChatDialog::configureChatWidget(), and ~KChatBase().

Here is the call graph for this function:

void KChatBase::readConfig ( KConfig *  conf = 0  )  [virtual]

Read the configuration from a KConfig object.

If the pointer is NULL KGlobal::config() is used and the group is changed to "KChatBase". The current KConfig::group is restored after this call.

Definition at line 263 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::readConfig().

Referenced by KChatBase().

Here is the call graph for this function:

void KChatBase::setMaxItems ( int  maxItems  ) 

Set the maximum number of items in the list.

If the number of item exceeds the maximum as many items are deleted (oldest first) as necessary. The number of items will never exceed this value.

Parameters:
maxItems the maximum number of items. -1 (default) for unlimited.

Definition at line 276 of file kchatbase.cpp.

References clear(), KChatBasePrivate::mModel, KChatBaseModel::rowCount(), and KChatBaseModel::setMaxItems().

Referenced by KChatDialog::configureChatWidget(), and KChatBase().

Here is the call graph for this function:

void KChatBase::clear (  ) 

Clear all messages in the list.

Definition at line 271 of file kchatbase.cpp.

References KChatBasePrivate::mModel, and KChatBaseModel::rowCount().

Referenced by setMaxItems(), and slotClear().

Here is the call graph for this function:

int KChatBase::maxItems (  )  const

Returns:
The maximum number of messages in the list.

-1 is unlimited. See also setMaxItems

Definition at line 289 of file kchatbase.cpp.

References KChatBaseModel::maxItems(), and KChatBasePrivate::mModel.

Referenced by KChatDialog::plugChatWidget().

Here is the call graph for this function:

KChatBaseModel * KChatBase::model (  ) 

Definition at line 70 of file kchatbase.cpp.

References KChatBasePrivate::mModel.

void KChatBase::setModel ( KChatBaseModel m  ) 

Definition at line 65 of file kchatbase.cpp.

References KChatBasePrivate::mModel.

void KChatBase::addMessage ( const QString &  fromName,
const QString &  text 
) [virtual, slot]

Add a text in the listbox.

See also signalSendMessage()

Maybe you want to replace this with a function that creates a nicer text than "fromName: text"

Update: the function layoutMessage is called by this now. This means that you will get user defined outlook on the messages :-)

Parameters:
fromName The player who sent this message
text The text to be added

Definition at line 344 of file kchatbase.cpp.

References KChatBaseModel::addMessage(), and KChatBasePrivate::mModel.

Referenced by KChat::returnPressed().

void KChatBase::addSystemMessage ( const QString &  fromName,
const QString &  text 
) [virtual, slot]

This works just like addMessage but adds a system message.

layoutSystemMessage is used to generate the displayed item. System messages will have a different look than player messages.

You may wish to use this to display status information from your game.

Definition at line 349 of file kchatbase.cpp.

References KChatBaseModel::addSystemMessage(), and KChatBasePrivate::mModel.

void KChatBase::slotClear (  )  [slot]

This clears all messages in the view.

Note that only the messages are cleared, not the sender names in the combo box!

Definition at line 247 of file kchatbase.cpp.

References clear().

void KChatBase::setAcceptMessage ( bool  a  )  [slot]

Parameters:
a If false this widget cannot send a message until setAcceptMessage(true) is called

Definition at line 137 of file kchatbase.cpp.

References KChatBasePrivate::mAcceptMessage.

virtual void KChatBase::returnPressed ( const QString &  text  )  [protected, pure virtual]

This is called whenever the user pushed return ie wants to send a message.

Note that you MUST add the message to the widget when this function is called as it has already been added to the KCompletion object of the KLineEdit widget!

Must be implemented in derived classes

Parameters:
text The message to be sent

Implemented in KChat.

Referenced by KChatBase().

QString KChatBase::comboBoxItem ( const QString &  name  )  const [protected, virtual]

Replace to customize the combo box.

Default: i18n("Send to 1).arg(name)

Parameters:
name The name of the player
Returns:
The string as it will be shown in the combo box

Definition at line 242 of file kchatbase.cpp.


The documentation for this class was generated from the following files:
Generated on Sun Mar 16 08:03:10 2008 for Libkdegames by  doxygen 1.5.3