File indexing completed on 2024-04-21 04:04:04

0001 /***************************************************************************
0002                           newGameSummaryWidget.cpp  -  description
0003                              -------------------
0004     begin                : Fri Jul 31 2009
0005     copyright            : (C) 2009 by Gaƫl de Chalendar
0006     email                : kleag@free.fr
0007  ***************************************************************************/
0008 
0009 /***************************************************************************
0010  *                                                                         *
0011  *   This program is free software; you can redistribute it and/or modify  *
0012  *   it under the terms of the GNU General Public License as published by  *
0013  *   the Free Software Foundation; either either version 2
0014    of the License, or (at your option) any later version.of the License, or     *
0015  *   (at your option) any later version.                                   *
0016  *                                                                         *
0017  *   You should have received a copy of the GNU General Public License
0018  *   along with this program; if not, write to the Free Software
0019  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
0020  *   02110-1301, USA
0021  ***************************************************************************/
0022 
0023 #include "newGameSummaryWidget.h"
0024 #include "kgamewin.h"
0025 #include "newgamesetup.h"
0026 #include "onu.h"
0027 #include "GameLogic/newplayerdata.h"
0028 
0029 #include <KLocalizedString>
0030 #include "ksirk_debug.h"
0031 
0032 namespace Ksirk
0033 {
0034 
0035 NewGameSummaryWidget::NewGameSummaryWidget(QWidget *parent) :
0036   QWidget(parent),
0037   Ui::NewGameSummary()
0038 {
0039   qCDebug(KSIRK_LOG);
0040   setupUi(this);
0041   connect(previousButton,&QAbstractButton::clicked,this,&NewGameSummaryWidget::previous);
0042   connect(cancelButton,&QAbstractButton::clicked,this,&NewGameSummaryWidget::cancel);
0043   playersTable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
0044 }
0045   
0046 NewGameSummaryWidget::~NewGameSummaryWidget()
0047 {
0048 }
0049 
0050 void NewGameSummaryWidget::show(KGameWindow* game)
0051 {
0052   qCDebug(KSIRK_LOG) << game->newGameSetup()->worlds().keys();
0053   foreach (GameLogic::ONU* world, game->newGameSetup()->worlds())
0054   {
0055     if (world->skin() == game->newGameSetup()->skin())
0056     {
0057       skinSnapshotPixmap->setPixmap(world->snapshot());
0058       skinNameLabel->setText(i18n(world->name().toUtf8().data()));
0059       goalTypeLabel->setText(game->newGameSetup()->useGoals()?i18n("Reach a goal"):i18n("World conquest"));
0060     }
0061   }
0062   qCDebug(KSIRK_LOG) << game->automaton()->networkGameType() << game->newGameSetup()->players().size() << game->newGameSetup()->nbPlayers() << game->newGameSetup()->nbLocalPlayers() << game->newGameSetup()->nbNetworkPlayers();
0063   playersTable->setRowCount(game->newGameSetup()->players().size());
0064   int row = 0;
0065   foreach (NewPlayerData* player, game->newGameSetup()->players())
0066   {
0067     qCDebug(KSIRK_LOG) << "player" << player->name();
0068     QTableWidgetItem *nameItem = new QTableWidgetItem(player->name());
0069     playersTable->setItem(row, 0, nameItem);
0070     // Bug 308530 - Untranslatable strings in "New Game Summary".
0071     // NewPlayerData's fields are not translated (KPlayerSetupWidget). Do that here when populating table.
0072     QTableWidgetItem *nationItem = new QTableWidgetItem(i18n(player->nation().toUtf8().data()));
0073     playersTable->setItem(row, 1, nationItem);
0074     QTableWidgetItem *computerItem = new QTableWidgetItem(player->computer()?i18n("Yes"):i18n("No"));
0075     playersTable->setItem(row, 2, computerItem);
0076     QTableWidgetItem *netItem = new QTableWidgetItem(player->network()?i18n("Yes"):i18n("No"));
0077     playersTable->setItem(row, 3, netItem);
0078     row++;
0079   }
0080   if (game->automaton()->isAdmin()
0081     && game->newGameSetup()->players().size() == game->newGameSetup()->nbPlayers())
0082   {
0083     finishButton->setEnabled(true);
0084   }
0085   else
0086   {
0087     finishButton->setEnabled(false);
0088   }
0089   if (game->automaton()->networkGameType() != GameLogic::GameAutomaton::None)
0090   {
0091     qCDebug(KSIRK_LOG) << "network game isAdmin ? =>" << game->automaton()->isAdmin() << game->newGameSetup()->players().size() << game->newGameSetup()->nbPlayers();
0092     previousButton->setEnabled(false);
0093   }
0094 }
0095 
0096 }
0097 
0098 #include "moc_newGameSummaryWidget.cpp"