• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

ksquares

newgamedialog.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2006 by Matthew Williams    <matt@milliams.com>         *
00003  *                                                                         *
00004  *   This program is free software; you can redistribute it and/or modify  *
00005  *   it under the terms of the GNU General Public License as published by  *
00006  *   the Free Software Foundation; either version 2 of the License, or     *
00007  *   (at your option) any later version.                                   *
00008  ***************************************************************************/
00009 
00010 #include "newgamedialog.h"
00011 #include <kdebug.h>
00012 
00013 #include <kggzmod/module.h>
00014 #include <kggzmod/player.h>
00015 
00016 NewGameDialog::NewGameDialog(QWidget* parent) : KDialog(parent)
00017 {
00018     setupUi(mainWidget());
00019     setButtons(Cancel|Ok);
00020     setCaption(i18n("New Game"));
00021     connect(spinNumOfPlayers, SIGNAL(valueChanged(int)), SLOT(adjustEnabledUsers(int)));
00022     
00023     adjustEnabledUsers(spinNumOfPlayers->value());
00024 
00025     if(KGGZMod::Module::instance())
00026     {
00027         adjustNetworkUsers();
00028         connect(KGGZMod::Module::instance(),
00029             SIGNAL(signalEvent(const KGGZMod::Event&)),
00030             SLOT(adjustNetworkUsers()));
00031     }
00032 }
00033 
00034 void NewGameDialog::adjustNetworkUsers()
00035 {
00036     if(!KGGZMod::Module::instance()) return;
00037 
00038     spinNumOfPlayers->setEnabled(false);
00039     quickStartCheck->setEnabled(false);
00040     quickStartCheck->setChecked(false);
00041 
00042     labelPlayer2Name->setEnabled(false);
00043     playerTwoName->setEnabled(false);
00044     playerTwoHuman->setEnabled(false);
00045     labelPlayer1Name->setEnabled(false);
00046     playerOneName->setEnabled(false);
00047     playerOneHuman->setEnabled(false);
00048 
00049     playerThreeName->clear();
00050     playerThreeHuman->setChecked(false);
00051     playerFourName->clear();
00052     playerFourHuman->setChecked(false);
00053 
00054     KGGZMod::Module *mod = KGGZMod::Module::instance();
00055     QList<KGGZMod::Player*> players = mod->players();
00056     if(players.count() >= 1)
00057     {
00058         playerOneName->setText(players.at(0)->name());
00059         bool ishuman = (players.at(0)->type() != KGGZMod::Player::bot);
00060         playerOneHuman->setChecked(ishuman);
00061     }
00062     if(players.count() >= 2)
00063     {
00064         playerTwoName->setText(players.at(1)->name());
00065         bool ishuman = (players.at(1)->type() != KGGZMod::Player::bot);
00066         playerTwoHuman->setChecked(ishuman);
00067     }
00068 }
00069 
00070 void NewGameDialog::adjustEnabledUsers(int numOfPlayers)
00071 {
00072     switch(numOfPlayers)
00073     {
00074         case 2:
00075             labelPlayer3Name->setEnabled(false);
00076             playerThreeName->setEnabled(false);
00077             playerThreeHuman->setEnabled(false);
00078             // no break!
00079         case 3:
00080             labelPlayer4Name->setEnabled(false);
00081             playerFourName->setEnabled(false);
00082             playerFourHuman->setEnabled(false);
00083         case 4:
00084             break;
00085         default:
00086             kError() << "NewGameDialog::adjustEnabledUsers(): numOfPlayers out of range!!";
00087     }
00088     
00089     switch(numOfPlayers)
00090     {
00091         case 4:
00092             labelPlayer4Name->setEnabled(true);
00093             playerFourName->setEnabled(true);
00094             playerFourHuman->setEnabled(true);
00095         case 3:
00096             labelPlayer3Name->setEnabled(true);
00097             playerThreeName->setEnabled(true);
00098             playerThreeHuman->setEnabled(true);
00099         case 2:
00100         default:
00101             break;
00102     }   
00103 }
00104 
00105 #include "newgamedialog.moc"

ksquares

Skip menu "ksquares"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • kblackbox
  • kgoldrunner
  • kmahjongg
  • ksquares
  • libkdegames
  •   highscore
  •   kgame
  •   kggzgames
  •   kggzmod
  •   kggznet
  • libkmahjongg
Generated for API Reference by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal