[atlantik-cvs] CVS: kdegames/atlantik/client tokenwidget.cpp,NONE,1.1 tokenwidget.h,NONE,1.1 Makefile.am,1.38,1.39 atlantik.cpp,1.127,1.128 main.h,1.27,1.28 selectconfiguration_widget.cpp,1.26,1.27 selectconfiguration_widget.h,1.12,1.13

[email protected]
Newsgroups gmane.comp.kde.devel.atlantik
Message-ID <[email protected]>
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.