diff options
Diffstat (limited to 'libkdegames/kgame/dialogs/kgamedebugdialog.cpp')
-rw-r--r-- | libkdegames/kgame/dialogs/kgamedebugdialog.cpp | 548 |
1 files changed, 0 insertions, 548 deletions
diff --git a/libkdegames/kgame/dialogs/kgamedebugdialog.cpp b/libkdegames/kgame/dialogs/kgamedebugdialog.cpp deleted file mode 100644 index 49623238..00000000 --- a/libkdegames/kgame/dialogs/kgamedebugdialog.cpp +++ /dev/null @@ -1,548 +0,0 @@ -/* - This file is part of the KDE games library - Copyright (C) 2001 Andreas Beckermann ([email protected]) - Copyright (C) 2001 Martin Heni ([email protected]) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "kgamedebugdialog.h" - -#include "kgamemessage.h" -#include "kgame.h" -#include "kplayer.h" -#include "kgamepropertyhandler.h" - -#include <klistview.h> -#include <klistbox.h> -#include <klocale.h> -#include <kdebug.h> -#include <kpushbutton.h> -#include <kstdguiitem.h> - -#include <tqlayout.h> -#include <tqstring.h> -#include <tqintdict.h> -#include <tqlabel.h> -#include <tqdatetime.h> - -#include <typeinfo> - - -class KGameDebugDialogPrivate -{ -public: - KGameDebugDialogPrivate() - { - mGame = 0; - - mGamePage = 0; - mGameProperties = 0; - mGameAddress = 0; - mGameId = 0; - mGameCookie = 0; - mGameMaster = 0; - mGameAdmin = 0; - mGameOffering = 0; - mGametqStatus = 0; - mGameRunning = 0; - mGameMaxPlayers = 0; - mGameMinPlayers = 0; - mGamePlayerCount = 0; - - mPlayerPage = 0; - mPlayerList = 0; - mPlayerProperties = 0; - mPlayerAddress = 0; - mPlayerId = 0; - mPlayerName = 0; - mPlayerGroup = 0; - mPlayerUserId = 0; - mPlayerMyTurn = 0; - mPlayerAsyncInput= 0; - mPlayerKGameAddress = 0; - mPlayerVirtual = 0; - mPlayerActive = 0; - mPlayerRtti = 0; - mPlayerNetworkPriority = 0; - - mMessagePage = 0; - mMessageList = 0; - mHideIdList = 0; - } - - const KGame* mGame; - - TQFrame* mGamePage; - KListView* mGameProperties; - TQListViewItem* mGameAddress; - TQListViewItem* mGameId; - TQListViewItem* mGameCookie; - TQListViewItem* mGameMaster; - TQListViewItem* mGameAdmin; - TQListViewItem* mGameOffering; - TQListViewItem* mGametqStatus; - TQListViewItem* mGameRunning; - TQListViewItem* mGameMaxPlayers; - TQListViewItem* mGameMinPlayers; - TQListViewItem* mGamePlayerCount; - - TQFrame* mPlayerPage; - KListBox* mPlayerList; - KListView* mPlayerProperties; - TQListViewItem* mPlayerAddress; - TQListViewItem* mPlayerId; - TQListViewItem* mPlayerName; - TQListViewItem* mPlayerGroup; - TQListViewItem* mPlayerUserId; - TQListViewItem* mPlayerMyTurn; - TQListViewItem* mPlayerAsyncInput; - TQListViewItem* mPlayerKGameAddress; - TQListViewItem* mPlayerVirtual; - TQListViewItem* mPlayerActive; - TQListViewItem* mPlayerRtti; - TQListViewItem* mPlayerNetworkPriority; - - TQFrame* mMessagePage; - KListView* mMessageList; - KListBox* mHideIdList; -}; - -KGameDebugDialog::KGameDebugDialog(KGame* g, TQWidget* parent, bool modal) : - KDialogBase(Tabbed, i18n("KGame Debug Dialog"), Close, Close, - parent, 0, modal, true) -{ - d = new KGameDebugDialogPrivate; - - initGamePage(); - initPlayerPage(); - initMessagePage(); - - setKGame(g); -} - -KGameDebugDialog::~KGameDebugDialog() -{ - delete d; -} - -void KGameDebugDialog::initGamePage() -{ - d->mGamePage = addPage(i18n("Debug &KGame")); - TQVBoxLayout* topLayout = new TQVBoxLayout(d->mGamePage, marginHint(), spacingHint()); - TQHBoxLayout* tqlayout = new TQHBoxLayout(topLayout); - - KListView* v = new KListView(d->mGamePage); - v->addColumn(i18n("Data")); - v->addColumn(i18n("Value")); - tqlayout->addWidget(v); - - d->mGameProperties = new KListView(d->mGamePage); - d->mGameProperties->addColumn(i18n("Property")); - d->mGameProperties->addColumn(i18n("Value")); - d->mGameProperties->addColumn(i18n("Policy")); - tqlayout->addWidget(d->mGameProperties); - - TQPushButton* b = new TQPushButton(i18n("Update"), d->mGamePage); - connect(b, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotUpdateGameData())); - topLayout->addWidget(b); - -// game data - d->mGameAddress = new TQListViewItem(v, i18n("KGame Pointer")); - d->mGameId = new TQListViewItem(v, i18n("Game ID")); - d->mGameCookie = new TQListViewItem(v, i18n("Game Cookie")); - d->mGameMaster = new TQListViewItem(v, i18n("Is Master")); - d->mGameAdmin = new TQListViewItem(v, i18n("Is Admin")); - d->mGameOffering = new TQListViewItem(v, i18n("Is Offering Connections")); - d->mGametqStatus = new TQListViewItem(v, i18n("Game Status")); - d->mGameRunning = new TQListViewItem(v, i18n("Game is Running")); - d->mGameMaxPlayers = new TQListViewItem(v, i18n("Maximal Players")); - d->mGameMinPlayers = new TQListViewItem(v, i18n("Minimal Players")); - d->mGamePlayerCount = new TQListViewItem(v, i18n("Players")); -} - -void KGameDebugDialog::initPlayerPage() -{ - d->mPlayerPage = addPage(i18n("Debug &Players")); - TQVBoxLayout* topLayout = new TQVBoxLayout(d->mPlayerPage, marginHint(), spacingHint()); - TQHBoxLayout* tqlayout = new TQHBoxLayout(topLayout); - - //TODO: connect to the KGame signals for joined/removed players!!! - TQVBoxLayout* listLayout = new TQVBoxLayout(tqlayout); - TQLabel* listLabel = new TQLabel(i18n("Available Players"), d->mPlayerPage); - listLayout->addWidget(listLabel); - d->mPlayerList = new KListBox(d->mPlayerPage); - connect(d->mPlayerList, TQT_SIGNAL(executed(TQListBoxItem*)), this, TQT_SLOT(slotUpdatePlayerData(TQListBoxItem*))); - listLayout->addWidget(d->mPlayerList); - d->mPlayerList->tqsetSizePolicy(TQSizePolicy(TQSizePolicy::Preferred, TQSizePolicy::Expanding)); - - KListView* v = new KListView(d->mPlayerPage); - tqlayout->addWidget(v); - v->addColumn(i18n("Data")); - v->addColumn(i18n("Value")); - - d->mPlayerProperties = new KListView(d->mPlayerPage); - d->mPlayerProperties->addColumn(i18n("Property")); - d->mPlayerProperties->addColumn(i18n("Value")); - d->mPlayerProperties->addColumn(i18n("Policy")); - tqlayout->addWidget(d->mPlayerProperties); - - TQPushButton* b = new TQPushButton(i18n("Update"), d->mPlayerPage); - connect(b, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotUpdatePlayerList())); - topLayout->addWidget(b); - - d->mPlayerAddress = new TQListViewItem(v, i18n("Player Pointer")); - d->mPlayerId = new TQListViewItem(v, i18n("Player ID")); - d->mPlayerName = new TQListViewItem(v, i18n("Player Name")); - d->mPlayerGroup = new TQListViewItem(v, i18n("Player Group")); - d->mPlayerUserId = new TQListViewItem(v, i18n("Player User ID")); - d->mPlayerMyTurn = new TQListViewItem(v, i18n("My Turn")); - d->mPlayerAsyncInput = new TQListViewItem(v, i18n("Async Input")); - d->mPlayerKGameAddress = new TQListViewItem(v, i18n("KGame Address")); - d->mPlayerVirtual = new TQListViewItem(v, i18n("Player is Virtual")); - d->mPlayerActive = new TQListViewItem(v, i18n("Player is Active")); - d->mPlayerRtti = new TQListViewItem(v, i18n("RTTI")); - d->mPlayerNetworkPriority = new TQListViewItem(v, i18n("Network Priority")); -} - -void KGameDebugDialog::initMessagePage() -{ - d->mMessagePage = addPage(i18n("Debug &Messages")); - TQGridLayout* tqlayout = new TQGridLayout(d->mMessagePage, 11, 7, marginHint(), spacingHint()); - d->mMessageList = new KListView(d->mMessagePage); - tqlayout->addMultiCellWidget(d->mMessageList, 0, 9, 0, 3); - d->mMessageList->addColumn(i18n("Time")); - d->mMessageList->addColumn(i18n("ID")); - d->mMessageList->addColumn(i18n("Receiver")); - d->mMessageList->addColumn(i18n("Sender")); - d->mMessageList->addColumn(i18n("ID - Text")); - - TQPushButton* hide = new TQPushButton(i18n("&>>"), d->mMessagePage); - connect(hide, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotHideId())); - tqlayout->addWidget(hide, 4, 4); - - TQPushButton* show = new TQPushButton(i18n("&<<"), d->mMessagePage); - connect(show, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotShowId())); - tqlayout->addWidget(show, 6, 4); - - TQLabel* l = new TQLabel(i18n("Do not show IDs:"), d->mMessagePage); - tqlayout->addMultiCellWidget(l, 0, 0, 5, 6); - d->mHideIdList = new KListBox(d->mMessagePage); - tqlayout->addMultiCellWidget(d->mHideIdList, 1, 8, 5, 6); - - TQPushButton* clear = new KPushButton(KStdGuiItem::clear(), d->mMessagePage); - connect(clear, TQT_SIGNAL(pressed()), this, TQT_SLOT(slotClearMessages())); - tqlayout->addMultiCellWidget(clear, 10, 10, 0, 6); - //TODO: "show all but..." and "show nothing but..." -} - -void KGameDebugDialog::clearPlayerData() -{ - d->mPlayerAddress->setText(1, ""); - d->mPlayerId->setText(1, ""); - d->mPlayerName->setText(1, ""); - d->mPlayerGroup->setText(1, ""); - d->mPlayerUserId->setText(1, ""); - d->mPlayerMyTurn->setText(1, ""); - d->mPlayerAsyncInput->setText(1, ""); - d->mPlayerKGameAddress->setText(1, ""); - d->mPlayerVirtual->setText(1, ""); - d->mPlayerActive->setText(1, ""); - d->mPlayerRtti->setText(1, ""); - d->mPlayerNetworkPriority->setText(1, ""); - - d->mPlayerProperties->clear(); -} - -void KGameDebugDialog::clearGameData() -{ - d->mGameAddress->setText(1, ""); - d->mGameId->setText(1, ""); - d->mGameCookie->setText(1, ""); - d->mGameMaster->setText(1, ""); - d->mGameAdmin->setText(1, ""); - d->mGameOffering->setText(1, ""); - d->mGametqStatus->setText(1, ""); - d->mGameRunning->setText(1, ""); - d->mGameMaxPlayers->setText(1, ""); - d->mGameMinPlayers->setText(1, ""); - - d->mGameProperties->clear(); -} - -void KGameDebugDialog::slotUpdatePlayerData() -{ - if (!d->mGame || d->mPlayerList->currentItem() == -1) { - return; - } - slotUpdatePlayerData(d->mPlayerList->item(d->mPlayerList->currentItem())); -} - -void KGameDebugDialog::slotUpdatePlayerList() -{ - TQListBoxItem* i = d->mPlayerList->firstItem(); - for (; i; i = d->mPlayerList->firstItem()) { - removePlayer(i); - } - - TQPtrList<KPlayer> list = *d->mGame->playerList(); - for (KPlayer* p = list.first(); p; p = list.next()) { - addPlayer(p); - } -} - -void KGameDebugDialog::slotUpdateGameData() -{ - if (!d->mGame) { - d->mGameAddress->setText(1, i18n("NULL pointer")); - return; -} - - clearGameData(); - - TQString buf; - buf.sprintf("%p", d->mGame); - d->mGameAddress->setText(1, buf); - d->mGameId->setText(1, TQString::number(d->mGame->gameId())); - d->mGameCookie->setText(1, TQString::number(d->mGame->cookie())); - d->mGameMaster->setText(1, d->mGame->isMaster() ? i18n("True") : i18n("False")); - d->mGameAdmin->setText(1, d->mGame->isAdmin() ? i18n("True") : i18n("False")); - d->mGameOffering->setText(1, d->mGame->isOfferingConnections() ? i18n("True") : i18n("False")); - d->mGametqStatus->setText(1, TQString::number(d->mGame->gametqStatus())); - d->mGameRunning->setText(1, d->mGame->isRunning() ? i18n("True") : i18n("False")); - d->mGameMaxPlayers->setText(1, TQString::number(d->mGame->maxPlayers())); - d->mGameMinPlayers->setText(1, TQString::number(d->mGame->minPlayers())); - d->mGamePlayerCount->setText(1, TQString::number(d->mGame->playerCount())); - -//TODO ios - - KGamePropertyHandler* handler = d->mGame->dataHandler(); - TQIntDictIterator<KGamePropertyBase> it(handler->dict()); - while (it.current()) { - TQString policy; - switch (it.current()->policy()) { - case KGamePropertyBase::PolicyClean: - policy = i18n("Clean"); - break; - case KGamePropertyBase::PolicyDirty: - policy = i18n("Dirty"); - break; - case KGamePropertyBase::PolicyLocal: - policy = i18n("Local"); - break; - case KGamePropertyBase::PolicyUndefined: - default: - policy = i18n("Undefined"); - break; - } - (void) new TQListViewItem(d->mGameProperties, - handler->propertyName(it.current()->id()), - handler->propertyValue(it.current()), - policy); -// kdDebug(11001) << k_funcinfo << ": checking for all game properties: found property name " << name << endl; - ++it; - } -} - -void KGameDebugDialog::slotUpdatePlayerData(TQListBoxItem* item) -{ - if (!item || !d->mGame) { - return; - } - - KPlayer* p = d->mGame->findPlayer(item->text().toInt()); - - if (!p) { - kdError(11001) << k_funcinfo << ": cannot find player" << endl; - return; - } - - clearPlayerData(); - - TQString buf; - buf.sprintf("%p", p); - d->mPlayerAddress->setText(1, buf); - d->mPlayerId->setText(1, TQString::number(p->id())); - d->mPlayerName->setText(1, p->name()); - d->mPlayerGroup->setText(1, p->group()); - d->mPlayerUserId->setText(1, TQString::number(p->userId())); - d->mPlayerMyTurn->setText(1, p->myTurn() ? i18n("True") : i18n("False")); - d->mPlayerAsyncInput->setText(1, p->asyncInput() ? i18n("True") : i18n("False")); - buf.sprintf("%p", p->game()); - d->mPlayerKGameAddress->setText(1, buf); - d->mPlayerVirtual->setText(1, p->isVirtual() ? i18n("True") : i18n("False")); - d->mPlayerActive->setText(1, p->isActive() ? i18n("True") : i18n("False")); - d->mPlayerRtti->setText(1, TQString::number(p->rtti())); - d->mPlayerNetworkPriority->setText(1, TQString::number(p->networkPriority())); - -//TODO ios - -// Properties - KGamePropertyHandler * handler = p->dataHandler(); - TQIntDictIterator<KGamePropertyBase> it((handler->dict())); - while (it.current()) { - TQString policy; - switch (it.current()->policy()) { - case KGamePropertyBase::PolicyClean: - policy = i18n("Clean"); - break; - case KGamePropertyBase::PolicyDirty: - policy = i18n("Dirty"); - break; - case KGamePropertyBase::PolicyLocal: - policy = i18n("Local"); - break; - case KGamePropertyBase::PolicyUndefined: - default: - policy = i18n("Undefined"); - break; - } - (void)new TQListViewItem(d->mPlayerProperties, - handler->propertyName(it.current()->id()), - handler->propertyValue(it.current()), - policy); - ++it; - } -} - -void KGameDebugDialog::clearPages() -{ - clearPlayerData(); - clearGameData(); - d->mPlayerList->clear(); - slotClearMessages(); -} - -void KGameDebugDialog::setKGame(const KGame* g) -{ - slotUnsetKGame(); - d->mGame = g; - if (g) { - //TODO: connect to the KGame signals for joined/removed players!!! - connect(d->mGame, TQT_SIGNAL(destroyed()), this, TQT_SLOT(slotUnsetKGame())); -// connect(); - - TQPtrList<KPlayer> list = *d->mGame->playerList(); - for (KPlayer* p = list.first(); p; p = list.next()) { - addPlayer(p); - } - - slotUpdateGameData(); - - connect(d->mGame, TQT_SIGNAL(signalMessageUpdate(int, TQ_UINT32, TQ_UINT32)), this, TQT_SLOT(slotMessageUpdate(int, TQ_UINT32, TQ_UINT32))); - } -} - -void KGameDebugDialog::slotUnsetKGame() -{ - if (d->mGame) { - disconnect(d->mGame, 0, this, 0); - } - d->mGame = 0; - clearPages(); -} - -void KGameDebugDialog::addPlayer(KPlayer* p) -{ - if (!p) { - kdError(11001) << "trying to add NULL player" << endl; - return; - } - - (void) new TQListBoxText(d->mPlayerList, TQString::number(p->id())); - //TODO connect to signals, like deleted/removed, ... -} - -void KGameDebugDialog::removePlayer(TQListBoxItem* i) -{ - if (!i || !d->mGame) { - return; - } - KPlayer* p = d->mGame->findPlayer(i->text().toInt()); - if (!p) { - return; - } - disconnect(p, 0, this, 0); - if (i->isSelected()) { - clearPlayerData(); - } - delete i; -} - -void KGameDebugDialog::slotMessageUpdate(int msgid, TQ_UINT32 receiver, TQ_UINT32 sender) -{ - if (!showId(msgid)) { - return; - } - TQString msgidText = KGameMessage::messageId2Text(msgid); - if (msgidText.isNull()) { - if (msgid > KGameMessage::IdUser) { - emit signalRequestIdName(msgid-KGameMessage::IdUser, true, msgidText); - } else { - emit signalRequestIdName(msgid, false, msgidText); - } - if (msgidText.isNull()) { - msgidText = i18n("Unknown"); - } - } - (void) new TQListViewItem( d->mMessageList, TQTime::currentTime().toString(), - TQString::number(msgid), TQString::number(receiver), - TQString::number(sender), msgidText); -} - -void KGameDebugDialog::slotClearMessages() -{ - d->mMessageList->clear(); -} - -void KGameDebugDialog::slotShowId() -{ -/* TQListBoxItem* i = d->mHideIdList->firstItem(); - for (; i; i = i->next()) { - if (i->selected()) { - d->mHideIdList->removeItem(i->); - } - }*/ - if (!d->mHideIdList->currentItem()) { - return; - } - d->mHideIdList->removeItem(d->mHideIdList->currentItem()); -} - -void KGameDebugDialog::slotHideId() -{ - if (!d->mMessageList->currentItem()) { - return; - } - int msgid = d->mMessageList->currentItem()->text(1).toInt(); - if (!showId(msgid)) { - return; - } - (void)new TQListBoxText(d->mHideIdList, TQString::number(msgid)); -} - -bool KGameDebugDialog::showId(int msgid) -{ - TQListBoxItem* i = d->mHideIdList->firstItem(); - for (; i; i = i->next()) { - if (i->text().toInt() == msgid) { - return false; - } - } - return true; -} - - -#include "kgamedebugdialog.moc" |