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

libkdegames/kgame

kgamedebugdialog.cpp

Go to the documentation of this file.
00001 /*
00002     This file is part of the KDE games library
00003     Copyright (C) 2001 Andreas Beckermann (b_mann@gmx.de)
00004     Copyright (C) 2001 Martin Heni (kde at heni-online.de)
00005 
00006     This library is free software; you can redistribute it and/or
00007     modify it under the terms of the GNU Library General Public
00008     License version 2 as published by the Free Software Foundation.
00009 
00010     This library is distributed in the hope that it will be useful,
00011     but WITHOUT ANY WARRANTY; without even the implied warranty of
00012     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013     Library General Public License for more details.
00014 
00015     You should have received a copy of the GNU Library General Public License
00016     along with this library; see the file COPYING.LIB.  If not, write to
00017     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018     Boston, MA 02110-1301, USA.
00019 */
00020 
00021 #include "kgamedebugdialog.h"
00022 
00023 #include "kgamemessage.h"
00024 #include "kgame.h"
00025 #include "kplayer.h"
00026 #include "kgamepropertyhandler.h"
00027 
00028 #include <klistwidget.h>
00029 #include <klocale.h>
00030 #include <kdebug.h>
00031 #include <kpushbutton.h>
00032 #include <KStandardGuiItem>
00033 
00034 #include <QTreeWidget>
00035 #include <QLayout>
00036 
00037 #include <QLabel>
00038 #include <QDateTime>
00039 #include <QVBoxLayout>
00040 #include <QFrame>
00041 #include <QHBoxLayout>
00042 #include <QGridLayout>
00043 
00044 #include <typeinfo>
00045 
00046 
00047 class KGameDebugDialogPrivate
00048 {
00049 public:
00050     KGameDebugDialogPrivate()
00051     {
00052         mGame = 0;
00053 
00054         mGamePage = 0;
00055         mGameProperties = 0;
00056         mGameAddress = 0;
00057         mGameId = 0;
00058         mGameCookie = 0;
00059         mGameMaster = 0;
00060         mGameAdmin = 0;
00061         mGameOffering = 0;
00062         mGameStatus = 0;
00063         mGameRunning = 0;
00064         mGameMaxPlayers = 0;
00065         mGameMinPlayers = 0;
00066         mGamePlayerCount = 0;
00067 
00068         mPlayerPage = 0;
00069         mPlayerList = 0;
00070         mPlayerProperties = 0;
00071         mPlayerAddress = 0;
00072         mPlayerId = 0;
00073         mPlayerName = 0;
00074         mPlayerGroup = 0;
00075         mPlayerUserId = 0;
00076         mPlayerMyTurn = 0;
00077         mPlayerAsyncInput= 0;
00078         mPlayerKGameAddress = 0;
00079         mPlayerVirtual = 0;
00080         mPlayerActive = 0;
00081         mPlayerRtti = 0;
00082         mPlayerNetworkPriority = 0;
00083 
00084         mMessagePage = 0;
00085         mMessageList = 0;
00086         mHideIdList = 0;
00087     }
00088 
00089     const KGame* mGame;
00090 
00091     QFrame* mGamePage;
00092     QTreeWidget* mGameProperties;
00093     QTreeWidgetItem* mGameAddress;
00094     QTreeWidgetItem* mGameId;
00095     QTreeWidgetItem* mGameCookie;
00096     QTreeWidgetItem* mGameMaster;
00097     QTreeWidgetItem* mGameAdmin;
00098     QTreeWidgetItem* mGameOffering;
00099     QTreeWidgetItem* mGameStatus;
00100     QTreeWidgetItem* mGameRunning;
00101     QTreeWidgetItem* mGameMaxPlayers;
00102     QTreeWidgetItem* mGameMinPlayers;
00103     QTreeWidgetItem* mGamePlayerCount;
00104     
00105     QFrame* mPlayerPage;
00106     KListWidget* mPlayerList;
00107     QTreeWidget* mPlayerProperties;
00108     QTreeWidgetItem* mPlayerAddress;
00109     QTreeWidgetItem* mPlayerId;
00110     QTreeWidgetItem* mPlayerName;
00111     QTreeWidgetItem* mPlayerGroup;
00112     QTreeWidgetItem* mPlayerUserId;
00113     QTreeWidgetItem* mPlayerMyTurn;
00114     QTreeWidgetItem* mPlayerAsyncInput;
00115     QTreeWidgetItem* mPlayerKGameAddress;
00116     QTreeWidgetItem* mPlayerVirtual;
00117     QTreeWidgetItem* mPlayerActive;
00118     QTreeWidgetItem* mPlayerRtti;
00119     QTreeWidgetItem* mPlayerNetworkPriority;
00120 
00121     QFrame* mMessagePage;
00122     QTreeWidget* mMessageList;
00123     KListWidget* mHideIdList;
00124 };
00125 
00126 KGameDebugDialog::KGameDebugDialog(KGame* g, QWidget* parent, bool modal)
00127     : KPageDialog(parent),
00128       d( new KGameDebugDialogPrivate )
00129 {
00130  setCaption(i18n("KGame Debug Dialog"));
00131  setButtons(Close);
00132  setDefaultButton(Close);
00133  setModal(modal);
00134  showButtonSeparator(true);
00135  setFaceType(KPageDialog::Tabbed);
00136 
00137  initGamePage();
00138  initPlayerPage();
00139  initMessagePage();
00140 
00141  setKGame(g);
00142 }
00143 
00144 KGameDebugDialog::~KGameDebugDialog()
00145 {
00146  delete d;
00147 }
00148 
00149 void KGameDebugDialog::initGamePage()
00150 {
00151  d->mGamePage = new QFrame();
00152  addPage(d->mGamePage,i18n("Debug &KGame"));
00153  QVBoxLayout* topLayout = new QVBoxLayout(d->mGamePage);
00154  topLayout->setMargin( marginHint() );
00155  topLayout->setSpacing( spacingHint() );
00156  QHBoxLayout* layout = new QHBoxLayout;
00157  topLayout->addLayout(layout);
00158 
00159  QTreeWidget* v = new QTreeWidget(d->mGamePage);
00160  QTreeWidgetItem* vheader = new QTreeWidgetItem();
00161  vheader->setText(0, tr("Data"));
00162  vheader->setText(1, tr("Value"));
00163  v->setHeaderItem(vheader);
00164  layout->addWidget(v);
00165 
00166  d->mGameProperties = new QTreeWidget(d->mGamePage);
00167  QTreeWidgetItem* mGamePropertiesHeader = new QTreeWidgetItem();
00168  mGamePropertiesHeader->setText(0, tr("Property"));
00169  mGamePropertiesHeader->setText(1, tr("Value"));
00170  mGamePropertiesHeader->setText(2, tr("Policy"));
00171  d->mGameProperties->setHeaderItem(mGamePropertiesHeader);
00172  layout->addWidget(d->mGameProperties);
00173  
00174  QPushButton* b = new QPushButton(i18n("Update"), d->mGamePage);
00175  connect(b, SIGNAL(pressed()), this, SLOT(slotUpdateGameData()));
00176  topLayout->addWidget(b);
00177 
00178 // game data
00179  d->mGameAddress = new QTreeWidgetItem(v, QStringList(i18n("KGame Pointer")));
00180  d->mGameId = new QTreeWidgetItem(v, QStringList(i18n("Game ID")));
00181  d->mGameCookie = new QTreeWidgetItem(v, QStringList(i18n("Game Cookie")));
00182  d->mGameMaster = new QTreeWidgetItem(v, QStringList(i18n("Is Master")));
00183  d->mGameAdmin = new QTreeWidgetItem(v, QStringList(i18n("Is Admin")));
00184  d->mGameOffering = new QTreeWidgetItem(v, QStringList(i18n("Is Offering Connections")));
00185  d->mGameStatus = new QTreeWidgetItem(v, QStringList(i18n("Game Status")));
00186  d->mGameRunning = new QTreeWidgetItem(v, QStringList(i18n("Game is Running")));
00187  d->mGameMaxPlayers = new QTreeWidgetItem(v, QStringList(i18n("Maximal Players")));
00188  d->mGameMinPlayers = new QTreeWidgetItem(v, QStringList(i18n("Minimal Players")));
00189  d->mGamePlayerCount = new QTreeWidgetItem(v, QStringList(i18n("Players")));
00190 }
00191 
00192 void KGameDebugDialog::initPlayerPage()
00193 {
00194  d->mPlayerPage = new QFrame();
00195  addPage(d->mPlayerPage,i18n("Debug &Players"));
00196  QVBoxLayout* topLayout = new QVBoxLayout(d->mPlayerPage);
00197  topLayout->setMargin( marginHint() );
00198  topLayout->setSpacing( spacingHint() );
00199  QHBoxLayout* layout = new QHBoxLayout;
00200  topLayout->addLayout(layout);
00201 
00202  //TODO: connect to the KGame signals for joined/removed players!!!
00203  QVBoxLayout* listLayout = new QVBoxLayout;
00204  layout->addLayout(listLayout);
00205  QLabel* listLabel = new QLabel(i18n("Available Players"), d->mPlayerPage);
00206  listLayout->addWidget(listLabel);
00207  d->mPlayerList = new KListWidget(d->mPlayerPage);
00208  connect(d->mPlayerList, SIGNAL(executed(QListWidgetItem*)), this, SLOT(slotUpdatePlayerData(QListWidgetItem*)));
00209  listLayout->addWidget(d->mPlayerList);
00210  d->mPlayerList->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding));
00211 
00212  QTreeWidget* v = new QTreeWidget(d->mPlayerPage);
00213  layout->addWidget(v);
00214  QTreeWidgetItem* vheader = new QTreeWidgetItem();
00215  vheader->setText(0, tr("Data"));
00216  vheader->setText(1, tr("Value"));
00217  v->setHeaderItem(vheader);
00218  
00219  d->mPlayerProperties = new QTreeWidget(d->mPlayerPage);
00220  QTreeWidgetItem* mPlayerPropertiesHeader = new QTreeWidgetItem();
00221  mPlayerPropertiesHeader->setText(0, tr("Property"));
00222  mPlayerPropertiesHeader->setText(1, tr("Value"));
00223  mPlayerPropertiesHeader->setText(2, tr("Policy")); d->mPlayerProperties->setHeaderItem(mPlayerPropertiesHeader);
00224  layout->addWidget(d->mPlayerProperties);
00225  
00226  QPushButton* b = new QPushButton(i18n("Update"), d->mPlayerPage);
00227  connect(b, SIGNAL(pressed()), this, SLOT(slotUpdatePlayerList()));
00228  topLayout->addWidget(b);
00229 
00230  d->mPlayerAddress = new QTreeWidgetItem(v, QStringList(i18n("Player Pointer")));
00231  d->mPlayerId = new QTreeWidgetItem(v, QStringList(i18n("Player ID")));
00232  d->mPlayerName = new QTreeWidgetItem(v, QStringList(i18n("Player Name")));
00233  d->mPlayerGroup = new QTreeWidgetItem(v, QStringList(i18n("Player Group")));
00234  d->mPlayerUserId = new QTreeWidgetItem(v, QStringList(i18n("Player User ID")));
00235  d->mPlayerMyTurn = new QTreeWidgetItem(v, QStringList(i18n("My Turn")));
00236  d->mPlayerAsyncInput = new QTreeWidgetItem(v, QStringList(i18n("Async Input")));
00237  d->mPlayerKGameAddress = new QTreeWidgetItem(v, QStringList(i18n("KGame Address")));
00238  d->mPlayerVirtual = new QTreeWidgetItem(v, QStringList(i18n("Player is Virtual")));
00239  d->mPlayerActive = new QTreeWidgetItem(v, QStringList(i18n("Player is Active")));
00240  d->mPlayerRtti = new QTreeWidgetItem(v, QStringList(i18n("RTTI")));
00241  d->mPlayerNetworkPriority = new QTreeWidgetItem(v, QStringList(i18n("Network Priority")));
00242 }
00243 
00244 void KGameDebugDialog::initMessagePage()
00245 {
00246  d->mMessagePage = new QFrame();
00247  addPage(d->mMessagePage,i18n("Debug &Messages"));
00248  QGridLayout* layout = new QGridLayout(d->mMessagePage);
00249  layout->setMargin(marginHint());
00250  layout->setSpacing(spacingHint());
00251  d->mMessageList = new QTreeWidget(d->mMessagePage);
00252  layout->addWidget(d->mMessageList, 0, 0, 10, 4);
00253 
00254  QTreeWidgetItem* mMessageListHeader = new QTreeWidgetItem();
00255  mMessageListHeader->setText(0, tr("Time"));
00256  mMessageListHeader->setText(1, tr("ID"));
00257  mMessageListHeader->setText(2, tr("Receiver")); mMessageListHeader->setText(2, tr("Sender"));
00258  mMessageListHeader->setText(2, tr("ID - Text"));
00259  d->mMessageList->setHeaderItem(mMessageListHeader);
00260 
00261  QPushButton* hide = new QPushButton(i18n("&>>"), d->mMessagePage);
00262  connect(hide, SIGNAL(pressed()), this, SLOT(slotHideId()));
00263  layout->addWidget(hide, 4, 4);
00264  
00265  QPushButton* show = new QPushButton(i18n("&<<"), d->mMessagePage);
00266  connect(show, SIGNAL(pressed()), this, SLOT(slotShowId()));
00267  layout->addWidget(show, 6, 4);
00268 
00269  QLabel* l = new QLabel(i18n("Do not show IDs:"), d->mMessagePage);
00270  layout->addWidget(l, 0, 5, 1, 2);
00271  d->mHideIdList = new KListWidget(d->mMessagePage);
00272  layout->addWidget(d->mHideIdList, 1, 5, 8, 2);
00273 
00274  QPushButton* clear = new KPushButton(KStandardGuiItem::clear(), d->mMessagePage);
00275  connect(clear, SIGNAL(pressed()), this, SLOT(slotClearMessages()));
00276  layout->addWidget(clear, 10, 0, 1, 7);
00277  //TODO: "show all but..." and "show nothing but..."
00278 }
00279 
00280 void KGameDebugDialog::clearPlayerData()
00281 {
00282  d->mPlayerAddress->setText(1, "");
00283  d->mPlayerId->setText(1, "");
00284  d->mPlayerName->setText(1, "");
00285  d->mPlayerGroup->setText(1, "");
00286  d->mPlayerUserId->setText(1, "");
00287  d->mPlayerMyTurn->setText(1, "");
00288  d->mPlayerAsyncInput->setText(1, "");
00289  d->mPlayerKGameAddress->setText(1, "");
00290  d->mPlayerVirtual->setText(1, "");
00291  d->mPlayerActive->setText(1, "");
00292  d->mPlayerRtti->setText(1, "");
00293  d->mPlayerNetworkPriority->setText(1, "");
00294 
00295  d->mPlayerProperties->clear();
00296 }
00297 
00298 void KGameDebugDialog::clearGameData()
00299 {
00300  d->mGameAddress->setText(1, "");
00301  d->mGameId->setText(1, "");
00302  d->mGameCookie->setText(1, "");
00303  d->mGameMaster->setText(1, "");
00304  d->mGameAdmin->setText(1, "");
00305  d->mGameOffering->setText(1, "");
00306  d->mGameStatus->setText(1, "");
00307  d->mGameRunning->setText(1, "");
00308  d->mGameMaxPlayers->setText(1, "");
00309  d->mGameMinPlayers->setText(1, "");
00310 
00311  d->mGameProperties->clear();
00312 }
00313 
00314 void KGameDebugDialog::slotUpdatePlayerData()
00315 {
00316  if (!d->mGame || d->mPlayerList->currentRow() == -1) {
00317     return;
00318  }
00319  slotUpdatePlayerData(d->mPlayerList->item(d->mPlayerList->currentRow()));
00320 }
00321 
00322 void KGameDebugDialog::slotUpdatePlayerList()
00323 {
00324  QListWidgetItem* i = d->mPlayerList->item(0); 
00325  for (; d->mPlayerList->count() > 0; i = d->mPlayerList->item(0)) {
00326     removePlayer(i);
00327  }
00328 
00329  for ( QList<KPlayer*>::const_iterator it = d->mGame->playerList()->begin(); it!=d->mGame->playerList()->end();it++ )
00330  {
00331   addPlayer(*it);
00332  }
00333 }
00334 
00335 void KGameDebugDialog::slotUpdateGameData()
00336 {
00337  if (!d->mGame) {
00338     d->mGameAddress->setText(1, i18n("NULL pointer"));
00339     return;
00340 }
00341 
00342  clearGameData();
00343 
00344  QString buf;
00345  buf.sprintf("%p", (void*)d->mGame);
00346  d->mGameAddress->setText(1, buf);
00347  d->mGameId->setText(1, QString::number(d->mGame->gameId()));
00348  d->mGameCookie->setText(1, QString::number(d->mGame->cookie()));
00349  d->mGameMaster->setText(1, d->mGame->isMaster() ? i18n("True") : i18n("False"));
00350  d->mGameAdmin->setText(1, d->mGame->isAdmin() ? i18n("True") : i18n("False"));
00351  d->mGameOffering->setText(1, d->mGame->isOfferingConnections() ? i18n("True") : i18n("False"));
00352  d->mGameStatus->setText(1, QString::number(d->mGame->gameStatus()));
00353  d->mGameRunning->setText(1, d->mGame->isRunning() ? i18n("True") : i18n("False"));
00354  d->mGameMaxPlayers->setText(1, QString::number(d->mGame->maxPlayers()));
00355  d->mGameMinPlayers->setText(1, QString::number(d->mGame->minPlayers()));
00356  d->mGamePlayerCount->setText(1, QString::number(d->mGame->playerCount()));
00357 
00358 //TODO ios
00359 
00360  KGamePropertyHandler* handler = d->mGame->dataHandler();
00361  QHashIterator<int, KGamePropertyBase*> it(handler->dict());
00362  while (it.hasNext()) {
00363     it.next();
00364     QString policy;
00365     switch (it.value()->policy()) {
00366         case KGamePropertyBase::PolicyClean:
00367             policy = i18n("Clean");
00368             break;
00369         case KGamePropertyBase::PolicyDirty:
00370             policy = i18n("Dirty");
00371             break;
00372         case KGamePropertyBase::PolicyLocal:
00373             policy = i18n("Local");
00374             break;
00375         case KGamePropertyBase::PolicyUndefined:
00376         default:
00377             policy = i18n("Undefined");
00378             break;
00379     }
00380   QStringList items;
00381   items << handler->propertyName(it.value()->id()) << handler->propertyValue(it.value()) << policy;
00382     new QTreeWidgetItem(d->mGameProperties,items);
00383 //  kDebug(11001) << ": checking for all game properties: found property name" << name;
00384  }
00385 }
00386 
00387 void KGameDebugDialog::slotUpdatePlayerData(QListWidgetItem* item)
00388 {
00389  if (!item || !d->mGame) {
00390     return;
00391  }
00392 
00393  KPlayer* p = d->mGame->findPlayer(item->text().toInt());
00394 
00395  if (!p) {
00396     kError(11001) << ": cannot find player";
00397     return;
00398  }
00399 
00400  clearPlayerData();
00401 
00402  QString buf;
00403  buf.sprintf("%p", (void*)p);
00404  d->mPlayerAddress->setText(1, buf);
00405  d->mPlayerId->setText(1, QString::number(p->id()));
00406  d->mPlayerName->setText(1, p->name());
00407  d->mPlayerGroup->setText(1, p->group());
00408  d->mPlayerUserId->setText(1, QString::number(p->userId()));
00409  d->mPlayerMyTurn->setText(1, p->myTurn() ? i18n("True") : i18n("False"));
00410  d->mPlayerAsyncInput->setText(1, p->asyncInput() ? i18n("True") : i18n("False"));
00411  buf.sprintf("%p", (void*)p->game());
00412  d->mPlayerKGameAddress->setText(1, buf);
00413  d->mPlayerVirtual->setText(1, p->isVirtual() ? i18n("True") : i18n("False"));
00414  d->mPlayerActive->setText(1, p->isActive() ? i18n("True") : i18n("False"));
00415  d->mPlayerRtti->setText(1, QString::number(p->rtti()));
00416  d->mPlayerNetworkPriority->setText(1, QString::number(p->networkPriority()));
00417 
00418 //TODO ios
00419 
00420 // Properties
00421  KGamePropertyHandler * handler = p->dataHandler();
00422  QHashIterator<int, KGamePropertyBase*> it((handler->dict()));
00423  while (it.hasNext()) {
00424     it.next();
00425     QString policy;
00426     switch (it.value()->policy()) {
00427         case KGamePropertyBase::PolicyClean:
00428             policy = i18n("Clean");
00429             break;
00430         case KGamePropertyBase::PolicyDirty:
00431             policy = i18n("Dirty");
00432             break;
00433         case KGamePropertyBase::PolicyLocal:
00434             policy = i18n("Local");
00435             break;
00436         case KGamePropertyBase::PolicyUndefined:
00437         default:
00438             policy = i18n("Undefined");
00439             break;
00440     }
00441   QStringList items;
00442   items << handler->propertyName(it.value()->id()) << handler->propertyValue(it.value()) << policy;
00443     new QTreeWidgetItem(d->mPlayerProperties,items);
00444  }
00445 }
00446 
00447 void KGameDebugDialog::clearPages()
00448 {
00449  clearPlayerData();
00450  clearGameData();
00451  d->mPlayerList->clear();
00452  slotClearMessages();
00453 }
00454 
00455 void KGameDebugDialog::setKGame(const KGame* g)
00456 {
00457  slotUnsetKGame();
00458  d->mGame = g;
00459  if (g) {
00460  //TODO: connect to the KGame signals for joined/removed players!!!
00461     connect(d->mGame, SIGNAL(destroyed()), this, SLOT(slotUnsetKGame()));
00462 //  connect();
00463 
00464   for ( QList<KPlayer*>::const_iterator it = d->mGame->playerList()->begin(); it!=d->mGame->playerList()->end();it++ )
00465   {
00466       addPlayer(*it);
00467   }
00468 
00469     slotUpdateGameData();
00470 
00471     connect(d->mGame, SIGNAL(signalMessageUpdate(int, quint32, quint32)), this, SLOT(slotMessageUpdate(int, quint32, quint32)));
00472  }
00473 }
00474 
00475 void KGameDebugDialog::slotUnsetKGame()
00476 {
00477  if (d->mGame) {
00478     disconnect(d->mGame, 0, this, 0);
00479  }
00480  d->mGame = 0;
00481  clearPages();
00482 }
00483 
00484 void KGameDebugDialog::addPlayer(KPlayer* p)
00485 {
00486  if (!p) {
00487     kError(11001) << "trying to add NULL player";
00488     return;
00489  }
00490 
00491  (void) new QListWidgetItem(QString::number(p->id()), d->mPlayerList);
00492  //TODO connect to signals, like deleted/removed, ...
00493 }
00494 
00495 void KGameDebugDialog::removePlayer(QListWidgetItem* i)
00496 {
00497  if (!i || !d->mGame) {
00498     return;
00499  }
00500  KPlayer* p = d->mGame->findPlayer(i->text().toInt());
00501  if (!p) {
00502     return;
00503  }
00504  disconnect(p, 0, this, 0);
00505  if (i->isSelected()) {
00506     clearPlayerData();
00507  }
00508  delete i;
00509 }
00510 
00511 void KGameDebugDialog::slotMessageUpdate(int msgid, quint32 receiver, quint32 sender)
00512 {
00513  if (!showId(msgid)) {
00514     return;
00515  }
00516  QString msgidText = KGameMessage::messageId2Text(msgid);
00517  if (msgidText.isNull()) {
00518     if (msgid > KGameMessage::IdUser) {
00519         emit signalRequestIdName(msgid-KGameMessage::IdUser, true, msgidText);
00520     } else {
00521         emit signalRequestIdName(msgid, false, msgidText);
00522     }
00523     if (msgidText.isNull()) {
00524         msgidText = i18n("Unknown");
00525     }
00526  }
00527  QStringList items;
00528  items << QTime::currentTime().toString() <<
00529     QString::number(msgid) << QString::number(receiver) <<
00530     QString::number(sender) << msgidText;
00531  new QTreeWidgetItem( d->mMessageList, items);
00532 }
00533 
00534 void KGameDebugDialog::slotClearMessages()
00535 {
00536  d->mMessageList->clear();
00537 }
00538 
00539 void KGameDebugDialog::slotShowId()
00540 {
00541 /* QListBoxItem* i = d->mHideIdList->firstItem();
00542  for (; i; i = i->next()) {
00543     if (i->selected()) {
00544         d->mHideIdList->removeItem(i->);
00545     }
00546  }*/
00547  if (!d->mHideIdList->currentItem()) {
00548     return;
00549  }
00550  d->mHideIdList->takeItem(d->mHideIdList->currentRow());
00551 }
00552 
00553 void KGameDebugDialog::slotHideId()
00554 {
00555  if (!d->mMessageList->currentItem()) {
00556     return;
00557  }
00558  int msgid = d->mMessageList->currentItem()->text(1).toInt();
00559  if (!showId(msgid)) {
00560     return;
00561  }
00562  (void)new QListWidgetItem(QString::number(msgid), d->mHideIdList);
00563 }
00564 
00565 bool KGameDebugDialog::showId(int msgid)
00566 {
00567  for (int j = 0; j < d->mHideIdList->count(); ++j) {
00568     QListWidgetItem* i = d->mHideIdList->item(j);
00569     if (i->text().toInt() == msgid) {
00570         return false;
00571     }
00572  }
00573  return true;
00574 }
00575 
00576 
00577 #include "kgamedebugdialog.moc"

libkdegames/kgame

Skip menu "libkdegames/kgame"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • 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