Update of /home/kde/kdegames/atlantik/client
In directory office:/tmp/cvs-serv26460/client
Modified Files:
Makefile.am atlantik.cpp main.h selectconfiguration_widget.cpp
selectconfiguration_widget.h
Added Files:
tokenwidget.cpp tokenwidget.h
Log Message:
support for custom tokens
--- NEW FILE: tokenwidget.cpp ---
// Copyright (c) 2002 Rob Kaper <[email protected]>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
//
// This program 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
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; see the file COPYING. If not, write to
// the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.
#include <qlayout.h>
#include <qlabel.h>
#include <kdialog.h>
#include <kdiroperator.h>
#include <kfileiconview.h>
#include <kfileview.h>
#include <klocale.h>
#include <kstandarddirs.h>
#include <kurl.h>
#include "tokenwidget.moc"
TokenWidget::TokenWidget(QWidget *parent, const char *name) : QWidget(parent, name)
{
setCaption(i18n("Select token"));
m_mainLayout = new QVBoxLayout(this, KDialog::marginHint());
Q_CHECK_PTR(m_mainLayout);
QLabel *label = new QLabel(i18n("Select a token:"), this);
m_mainLayout->addWidget(label);
KURL startDir(locate("appdata", "themes/default/tokens/"));
KFileIconView *view = new KFileIconView( this , "fileIconView");
m_mainLayout->addWidget(view);
view->setMinimumSize(250, 250);
KDirOperator *kdirop = new KDirOperator( startDir, this );
m_mainLayout->addWidget(kdirop);
connect( kdirop, SIGNAL( fileSelected( const KFileItem * )), SLOT( slotIconSelected( const KFileItem * )));
connect( kdirop, SIGNAL( finishedLoading() ), view, SLOT( showPreviews() ));
kdirop->setView( view );
}
void TokenWidget::slotIconSelected(const KFileItem *item)
{
emit iconSelected(item->name());
}
--- NEW FILE: tokenwidget.h ---
// Copyright (c) 2002 Rob Kaper <[email protected]>
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// version 2 as published by the Free Software Foundation.
//
// This program 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
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; see the file COPYING. If not, write to
// the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.
#ifndef ATLANTIK_TOKENWIDGET_H
#define ATLANTIK_TOKENWIDGET_H
#include <qwidget.h>
class QVBoxLayout;
class KFileItem;
class TokenWidget : public QWidget
{
Q_OBJECT
public:
TokenWidget(QWidget *parent, const char *name=0);
public slots:
void slotIconSelected(const KFileItem *item);
signals:
void iconSelected(const QString &name);
private:
QVBoxLayout *m_mainLayout;
};
#endif
Index: Makefile.am
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/Makefile.am,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- Makefile.am 9 Jul 2002 19:08:47 -0000 1.38
+++ Makefile.am 19 Dec 2002 03:11:07 -0000 1.39
@@ -5,7 +5,7 @@
atlantik_SOURCES = atlantik.cpp configdlg.cpp main.cpp monopigator.cpp \
selectconfiguration_widget.cpp selectgame_widget.cpp \
- selectserver_widget.cpp
+ selectserver_widget.cpp tokenwidget.cpp
KDE_ICON = atlantik
Index: atlantik.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/atlantik.cpp,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -d -r1.127 -r1.128
--- atlantik.cpp 19 Dec 2002 00:37:33 -0000 1.127
+++ atlantik.cpp 19 Dec 2002 03:11:07 -0000 1.128
@@ -294,6 +294,7 @@
connect(m_selectConfiguration, SIGNAL(startGame()), m_atlantikNetwork, SLOT(startGame()));
connect(m_selectConfiguration, SIGNAL(leaveGame()), m_atlantikNetwork, SLOT(leaveGame()));
connect(m_selectConfiguration, SIGNAL(buttonCommand(QString)), m_atlantikNetwork, SLOT(writeData(QString)));
+ connect(m_selectConfiguration, SIGNAL(iconSelected(const QString &)), m_atlantikNetwork, SLOT(setImage(const QString &)));
}
void Atlantik::initBoard()
Index: main.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/main.h,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- main.h 29 Nov 2002 04:27:31 -0000 1.27
+++ main.h 19 Dec 2002 03:11:07 -0000 1.28
@@ -18,7 +18,7 @@
#define ATLANTIK_MAIN_H
#define ATLANTIK_VERSION 060
-#define ATLANTIK_VERSION_STRING "0.6.0 (CVS >= 20021129)"
+#define ATLANTIK_VERSION_STRING "0.6.0 (CVS >= 20021219)"
#define ATLANTIK_VERSION_MAJOR 0
#define ATLANTIK_VERSION_MINOR 6
#define ATLANTIK_VERSION_RELEASE 0
Index: selectconfiguration_widget.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectconfiguration_widget.cpp,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- selectconfiguration_widget.cpp 11 Sep 2002 01:40:59 -0000 1.26
+++ selectconfiguration_widget.cpp 19 Dec 2002 03:11:07 -0000 1.27
@@ -25,11 +25,14 @@
#include <klocale.h>
#include <kiconloader.h>
#include <kmessagebox.h>
-
+
+#include "tokenwidget.h"
#include "selectconfiguration_widget.moc"
SelectConfiguration::SelectConfiguration(QWidget *parent, const char *name) : QWidget(parent, name)
{
+ m_tokenWidget = 0;
+
m_mainLayout = new QVBoxLayout(this, KDialog::marginHint());
Q_CHECK_PTR(m_mainLayout);
@@ -37,7 +40,6 @@
m_playerBox = new QVGroupBox(i18n("Player List"), this, "playerBox");
m_mainLayout->addWidget(m_playerBox);
- // List of players
m_playerList = new KListView(m_playerBox, "m_playerList");
m_playerList->addColumn(QString(i18n("Id")));
m_playerList->addColumn(QString(i18n("Name")));
@@ -48,26 +50,31 @@
connect(m_playerList, SIGNAL(doubleClicked(QListViewItem *)), this, SLOT(connectClicked()));
+ // Player buttons.
+ QHBoxLayout *playerButtons = new QHBoxLayout(this, 0, KDialog::spacingHint());
+ m_mainLayout->addItem(playerButtons);
+
+ playerButtons->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
+
+ m_tokenButton = new KPushButton(SmallIcon("personal"), i18n("Select token"), this);
+ playerButtons->addWidget(m_tokenButton);
+
+ connect(m_tokenButton, SIGNAL(clicked()), this, SLOT(slotTokenButtonClicked()));
+
// Game configuration.
m_configBox = new QVGroupBox(i18n("Game Configuration"), this, "configBox");
m_mainLayout->addWidget(m_configBox);
- QHBoxLayout *buttonBox = new QHBoxLayout(this, 0, KDialog::spacingHint());
- m_mainLayout->addItem(buttonBox);
+ // Server buttons.
+ QHBoxLayout *serverButtons = new QHBoxLayout(this, 0, KDialog::spacingHint());
+ m_mainLayout->addItem(serverButtons);
m_backButton = new KPushButton(SmallIcon("back"), i18n("Leave Game"), this);
- buttonBox->addWidget(m_backButton);
+ serverButtons->addWidget(m_backButton);
connect(m_backButton, SIGNAL(clicked()), this, SIGNAL(leaveGame()));
- buttonBox->addItem(new QSpacerItem(20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum));
-
- m_connectButton = new KPushButton(SmallIcon("forward"), i18n("Start Game"), this);
- buttonBox->addWidget(m_connectButton);
-
- connect(m_connectButton, SIGNAL(clicked()), this, SLOT(connectClicked()));
-
- // Status indicator
+ // Status indicator.
status_label = new QLabel(this);
status_label->setText(i18n("Retrieving configuration list..."));
m_mainLayout->addWidget(status_label);
@@ -126,6 +133,17 @@
emit startGame();
}
+void SelectConfiguration::slotTokenButtonClicked()
+{
+ if (m_tokenWidget)
+ return;
+
+ m_tokenWidget = new TokenWidget(0);
+ m_tokenWidget->show();
+
+ connect(m_tokenWidget, SIGNAL(iconSelected(const QString &)), this, SLOT(slotTokenSelected(const QString &)));
+}
+
void SelectConfiguration::slotClicked()
{
delete m_messageBox;
@@ -133,6 +151,14 @@
m_configBox->setEnabled(true);
m_connectButton->setEnabled(true);
status_label->setEnabled(true);
+}
+
+void SelectConfiguration::slotTokenSelected(const QString &name)
+{
+ emit iconSelected(name);
+ m_tokenWidget->close();
+// m_tokenWidget->deleteLater(); // FIXME: crashes?
+ m_tokenWidget = 0;
}
void SelectConfiguration::gameOption(QString title, QString type, QString value, QString edit, QString command)
Index: selectconfiguration_widget.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectconfiguration_widget.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- selectconfiguration_widget.h 1 Aug 2002 15:16:25 -0000 1.12
+++ selectconfiguration_widget.h 19 Dec 2002 03:11:07 -0000 1.13
@@ -27,6 +27,8 @@
class QCheckBox;
+class TokenWidget;
+
class SelectConfiguration : public QWidget
{
Q_OBJECT
@@ -47,15 +49,19 @@
private slots:
void connectClicked();
+ void slotTokenButtonClicked();
void slotClicked();
+ void slotTokenSelected(const QString &name);
void gameOption(QString title, QString type, QString value, QString edit, QString command);
void optionChanged();
+
signals:
void startGame();
void leaveGame();
void joinConfiguration(int configurationId);
void newConfiguration();
void buttonCommand(QString);
+ void iconSelected(const QString &);
// void statusChanged();
private:
@@ -63,9 +69,10 @@
QLabel *status_label;
QVGroupBox *m_playerBox, *m_configBox, *m_messageBox;
KListView *m_playerList;
- KPushButton *m_backButton, *m_connectButton;
+ KPushButton *m_backButton, *m_connectButton, *m_tokenButton;
QMap <QObject *, QString> m_optionCommandMap;
QMap <QString, QCheckBox *> m_checkBoxMap;
+ TokenWidget *m_tokenWidget;
};
#endif
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.