KGameDialog Class Reference

TODO: rewrite entire documentation.Main configuration dialog for KGame. More...

#include <kgamedialog.h>

Collaboration diagram for KGameDialog:

Collaboration graph
[legend]
List of all members.

Public Types

enum  ConfigOptions {
  NoConfig = 0, ChatConfig = 1, GameConfig = 2, NetworkConfig = 4,
  MsgServerConfig = 8, BanPlayerConfig = 16, AllConfig = 0xffff
}

Public Member Functions

 KGameDialog (KGame *g, KPlayer *owner, const QString &title, QWidget *parent, bool modal=false)
 Create an empty KGameDialog.
 KGameDialog (KGame *g, KPlayer *owner, const QString &title, QWidget *parent, long initConfigs=AllConfig, int chatMsgId=15432, bool modal=false)
 Create a KGameDialog with the standard configuration widgets.
virtual ~KGameDialog ()
void setOwner (KPlayer *owner)
 Change the owner of the dialog.
void setKGame (KGame *g)
 Change the KGame object this dialog is used for.
virtual void submitToKGame ()
 This will submit all configuration data to the KGame object.
void addChatWidget (KGameDialogChatConfig *chat, QVBox *parent=0)
 Adds a KGameChat to the dialog.
void addConnectionList (KGameDialogConnectionConfig *c, QVBox *parent=0)
 Add a connection list to the dialog.
QVBox * addConfigPage (KGameDialogConfig *widget, const QString &title)
 Add a new page to the dialog.
QVBox * configPage (ConfigOptions which)
KGameDialogNetworkConfignetworkConfig () const
KGameDialogGeneralConfiggameConfig () const
void addConfigWidget (KGameDialogConfig *widget, QWidget *parent)
 Add a config widget to the specified parent.
void addNetworkConfig (KGameDialogNetworkConfig *netConf)
 Used to add the main network config widget in a new page.
void addGameConfig (KGameDialogGeneralConfig *conf)
 Add the main game config widget in a new page.
void addMsgServerConfig (KGameDialogMsgServerConfig *conf)
 Used to add the message server config widget in a new page.

Protected Slots

virtual void slotOk ()
 Called when the user clicks on Ok.
virtual void slotApply ()
 Just calls submitToKGame().
virtual void slotDefault ()
 Sets the default values for the configuration widgets.
void slotUnsetKGame ()
 Called when the KGame object is destroyed.
void setAdmin (bool isAdmin)
 Called when the ADMIN status of this KGame client changes.
void slotRemoveConfigWidget (QObject *configWidget)
 Remove a config widget from the widget list.

Protected Member Functions

void initDefaultDialog (ConfigOptions initConfigs, int chatMsgId=15432)
 This is used to create a dialog containing all the default widgets.
void configureConfigWidgets ()
 Go through all config widgets and call their KGameDialogConfig::setKGame and KGameDialogConfig::setOwner implementation.

Detailed Description

TODO: rewrite entire documentation.Main configuration dialog for KGame.

Nearly nothing is valid anymore. The main configuration dialog for KGame. Here all players meat each other, every player can see how many players connected (and their names) and the ADMIN can even "kick" players out. You can talk to each other (using KGameChat and the ADMIN can define the maxPlayers/minPlayers as well as the number of computer players.

AB: setDefaultXYZ is obsolete!! You will usually create an instance of KGameDialog or any derived class and call setDefaultXYZ methods. Example (maybe obsoleted parameters - docu is currently changing very fast):

        KGameDialog dlg(kgame, i18n("New Game"), localPlayer, this, true,
        ID_CHAT);
        dlg.setDefaultNetworkInfo(port, host); // AB: obsolete!
        dlg.exec();
This will create a default modal dialog with the title "New Game". You don't have to do more than this.

Author:
Andreas Beckermann <b_mann@gmx.de>

Definition at line 74 of file kgamedialog.h.


Member Enumeration Documentation

enum KGameDialog::ConfigOptions
 

Enumerator:
NoConfig 
ChatConfig 
GameConfig 
NetworkConfig 
MsgServerConfig 
BanPlayerConfig 
AllConfig 

Definition at line 79 of file kgamedialog.h.


Constructor & Destructor Documentation

KGameDialog::KGameDialog KGame g,
KPlayer owner,
const QString &  title,
QWidget *  parent,
bool  modal = false
 

Create an empty KGameDialog.

You can add widgets using addConfigPage.

Parameters:
g The KGame object of this game
owner The KPlayer object who is responsible for this dialog, aka "the local player"
title The title of the dialog - see KDialog::setCaption
parent The parent of the dialog
modal Whether the dialog is modal or not

Definition at line 66 of file kgamedialog.cpp.

KGameDialog::KGameDialog KGame g,
KPlayer owner,
const QString &  title,
QWidget *  parent,
long  initConfigs = AllConfig,
int  chatMsgId = 15432,
bool  modal = false
 

Create a KGameDialog with the standard configuration widgets.

This creates the following widgets:

If you want to use your own implementations (or none) of the widgets above you should subclass KGameDialog. Use addGameConfig, addNetworkConfig, addMsgConfig, addChatWidget and addConnectionList in this case.

If you want to add further configuration widget you can simply use addConfigPage

Parameters:
g The KGame object of this game
owner The KPlayer object who is responsible for this dialog, aka "the local player"
title The title of the dialog - see KDialog::setCaption
parent The parent of the dialog
modal Whether the dialog is modal or not
initConfigs whether the default KGameDialogConfig widgets shall be created using initDefaultDialog. Use false if you want to use custom widgets.
chatMsgId The ID of Chat messages. See KGameChat. Unused if initConfigs = false

Definition at line 74 of file kgamedialog.cpp.

References initDefaultDialog(), and NoConfig.

Here is the call graph for this function:

KGameDialog::~KGameDialog  )  [virtual]
 

Definition at line 134 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets.


Member Function Documentation

void KGameDialog::addChatWidget KGameDialogChatConfig chat,
QVBox *  parent = 0
 

Adds a KGameChat to the dialog.

If no parent is specified the game page will be used.

Parameters:
chat The chat widget
parent The parent of the chat widget. This MUST be an already added config widget. Note that the game page will be used if parent is 0.

Definition at line 168 of file kgamedialog.cpp.

References addConfigWidget(), and KGameDialogPrivate::mGamePage.

Referenced by initDefaultDialog().

Here is the call graph for this function:

QVBox * KGameDialog::addConfigPage KGameDialogConfig widget,
const QString &  title
 

Add a new page to the dialog.

The page will contain you new config widget and will have your provided title.

The widget will be reparented to this dialog. This also calls KGameDialogConfig::setKGame and KGameDialogConfig::setOwner.

Parameters:
widget The new config widget
title The title of the newly added page.
Returns:
The newly added page which contains your config widget.

Definition at line 218 of file kgamedialog.cpp.

References addConfigWidget().

Referenced by addGameConfig(), addMsgServerConfig(), addNetworkConfig(), and initDefaultDialog().

Here is the call graph for this function:

void KGameDialog::addConfigWidget KGameDialogConfig widget,
QWidget *  parent
 

Add a config widget to the specified parent.

Usually you call addConfigPage for one widget and addConfigWidget for another to add it to the same page. Just use the returned page of addConfigPage.

Definition at line 229 of file kgamedialog.cpp.

References KGameNetwork::isAdmin(), KGameDialogPrivate::mConfigWidgets, KGameDialogPrivate::mGame, KGameDialogPrivate::mOwner, KGameDialogConfig::setAdmin(), KGameDialogConfig::setKGame(), KGameDialogConfig::setOwner(), and slotRemoveConfigWidget().

Referenced by addChatWidget(), addConfigPage(), and addConnectionList().

Here is the call graph for this function:

void KGameDialog::addConnectionList KGameDialogConnectionConfig c,
QVBox *  parent = 0
 

Add a connection list to the dialog.

The list consists of a KLisBox containing all players in the current game (see KGame::playerList). The admin can "ban" players, ie kick them out of the game.

This is another not-really-config-config-widget. It just displays the connections and lets you ban players.

Parameters:
c The KGameDialogConnectionConfig object
parent The parent of the widget. If 0 the networkConfig page is used.

Definition at line 183 of file kgamedialog.cpp.

References addConfigWidget(), and KGameDialogPrivate::mNetworkPage.

Referenced by initDefaultDialog().

Here is the call graph for this function:

void KGameDialog::addGameConfig KGameDialogGeneralConfig conf  ) 
 

Add the main game config widget in a new page.

Use this to make gameConfig return something useful.

Definition at line 142 of file kgamedialog.cpp.

References addConfigPage(), KGameDialogPrivate::mGameConfig, and KGameDialogPrivate::mGamePage.

Referenced by initDefaultDialog().

Here is the call graph for this function:

void KGameDialog::addMsgServerConfig KGameDialogMsgServerConfig conf  ) 
 

Used to add the message server config widget in a new page.

Definition at line 160 of file kgamedialog.cpp.

References addConfigPage(), and KGameDialogPrivate::mMsgServerPage.

Referenced by initDefaultDialog().

Here is the call graph for this function:

void KGameDialog::addNetworkConfig KGameDialogNetworkConfig netConf  ) 
 

Used to add the main network config widget in a new page.

Use this to make networkConfig return something useful.

Definition at line 151 of file kgamedialog.cpp.

References addConfigPage(), KGameDialogPrivate::mNetworkConfig, and KGameDialogPrivate::mNetworkPage.

Referenced by initDefaultDialog().

Here is the call graph for this function:

QVBox * KGameDialog::configPage ConfigOptions  which  ) 
 

Returns:
The QVBox of the given key, The key is from ConfigOptions Note that not all are supported yet

Definition at line 198 of file kgamedialog.cpp.

References GameConfig, KGameDialogPrivate::mGamePage, KGameDialogPrivate::mMsgServerPage, KGameDialogPrivate::mNetworkPage, MsgServerConfig, and NetworkConfig.

void KGameDialog::configureConfigWidgets  )  [protected]
 

Go through all config widgets and call their KGameDialogConfig::setKGame and KGameDialogConfig::setOwner implementation.

This function could be private and probably will be very soon. Don't use it yourself

KGameDialogGeneralConfig * KGameDialog::gameConfig  )  const
 

Returns:
The default game config. Note that this always returns 0 if you did not specify GameConfig in the constructor!

Definition at line 257 of file kgamedialog.cpp.

References KGameDialogPrivate::mGameConfig.

void KGameDialog::initDefaultDialog ConfigOptions  initConfigs,
int  chatMsgId = 15432
[protected]
 

This is used to create a dialog containing all the default widgets.

You may want to use this if you just want to use your own configuration widgets which inherit the standard ones.

Note that if one of the widgets is NULL the default implementation will be used! (except the chat widget - you need to create it yourself as you have to provide a message id)

Parameters:
initConfigs The widgets to be created
chatMsgId The msgid for the chat config (only if specified in initConfigs) - see KGameDialogChatConfig

Definition at line 101 of file kgamedialog.cpp.

References addChatWidget(), addConfigPage(), addConnectionList(), addGameConfig(), addMsgServerConfig(), addNetworkConfig(), BanPlayerConfig, ChatConfig, GameConfig, KGameDialogPrivate::mGamePage, KGameDialogPrivate::mNetworkPage, MsgServerConfig, and NetworkConfig.

Referenced by KGameDialog().

Here is the call graph for this function:

KGameDialogNetworkConfig * KGameDialog::networkConfig  )  const
 

Returns:
The default netowrk config. Note that this always returns 0 if you did not specify NetworkConfig in the constructor!

Definition at line 259 of file kgamedialog.cpp.

References KGameDialogPrivate::mNetworkConfig.

void KGameDialog::setAdmin bool  isAdmin  )  [protected, slot]
 

Called when the ADMIN status of this KGame client changes.

See KGameNetwork::signalAdminStatusChanged

Parameters:
isAdmin TRUE if this client is now the ADMIN otherwise FALSE

Definition at line 315 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets.

void KGameDialog::setKGame KGame g  ) 
 

Change the KGame object this dialog is used for.

Calls the KGameDialogConfig::setKGame implementation of all widgets that have been added by addConfigWidget

Parameters:
g The new KGame object

Definition at line 298 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets, and KGameDialogPrivate::mGame.

Referenced by slotDefault(), and slotUnsetKGame().

void KGameDialog::setOwner KPlayer owner  ) 
 

Change the owner of the dialog.

This will be used as the fromPlayer in KGameChat and will receive the entered player name.

Parameters:
owner The owner of the dialog. It must already be added to the KGame object!
Calls the KGameDialogConfig::setOwner implementation of all widgets that have been added by addConfigWidget
Parameters:
owner The new owner player of this dialog must already be added to the KGame object. Can even be NULL (then no player configuration is made)

Definition at line 284 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets, and KGameDialogPrivate::mOwner.

Referenced by slotDefault().

void KGameDialog::slotApply  )  [protected, virtual, slot]
 

Just calls submitToKGame().

Definition at line 262 of file kgamedialog.cpp.

References submitToKGame().

Referenced by slotOk().

void KGameDialog::slotDefault  )  [protected, virtual, slot]
 

Sets the default values for the configuration widgets.

Set these values by (e.g.) setDefaultMaxPlayers()

Deprecated:

Definition at line 267 of file kgamedialog.cpp.

References KGameDialogPrivate::mGame, KGameDialogPrivate::mOwner, setKGame(), and setOwner().

void KGameDialog::slotOk  )  [protected, virtual, slot]
 

Called when the user clicks on Ok.

Calls slotApply and QDialog::accept()

Definition at line 278 of file kgamedialog.cpp.

References slotApply().

void KGameDialog::slotRemoveConfigWidget QObject *  configWidget  )  [protected, slot]
 

Remove a config widget from the widget list.

See also:
QObject::destroyed

Definition at line 343 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets.

Referenced by addConfigWidget().

void KGameDialog::slotUnsetKGame  )  [protected, slot]
 

Called when the KGame object is destroyed.

Calls setKGame(0) so that all widgets can disconnect their slots and so on.

Definition at line 322 of file kgamedialog.cpp.

References setKGame().

void KGameDialog::submitToKGame  )  [virtual]
 

This will submit all configuration data to the KGame object.

Automatically called by slotApply and slotOk There is no need to replace this unless you want to add widgets which are not derived from those classes

Definition at line 325 of file kgamedialog.cpp.

References KGameDialogPrivate::mConfigWidgets, KGameDialogPrivate::mGame, and KGameDialogPrivate::mOwner.

Referenced by slotApply().


The documentation for this class was generated from the following files:
Generated on Wed Aug 23 18:05:12 2006 for libkdegames by  doxygen 1.4.6