[prev in list] [next in list] [prev in thread] [next in thread] 

List:       atlantik-devel
Subject:    [atlantik-cvs] CVS: kdegames/atlantik/client atlantik.cpp, 1.169,
From:       kde () office ! kde ! org
Date:       2004-07-07 16:23:04
Message-ID: 40EC2368.mailDWG15DQ9Q () office ! kde ! org
[Download RAW message or body]

Update of /home/kde/kdegames/atlantik/client
In directory office:/tmp/cvs-serv17934/client

Modified Files:
	atlantik.cpp main.cpp main.h monopigator.cpp monopigator.h 
	selectserver_widget.cpp selectserver_widget.h 
Log Message:
Backport:  KLatencyTimer is buggy. KExtendedSocket latency checks from
atlantik--development are not. Fixes a problem reported on kde-apps.org.


Index: atlantik.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/atlantik.cpp,v
retrieving revision 1.169
retrieving revision 1.170
diff -u -d -r1.169 -r1.170
--- atlantik.cpp	2 Jul 2004 10:40:46 -0000	1.169
+++ atlantik.cpp	7 Jul 2004 16:23:01 -0000	1.170
@@ -306,6 +306,8 @@
 
 	connect(m_selectServer, SIGNAL(serverConnect(const QString, int)), \
m_atlantikNetwork, SLOT(serverConnect(const QString, int)));  connect(m_selectServer, \
SIGNAL(msgStatus(const QString &)), this, SLOT(slotMsgStatus(const QString &))); +
+	m_selectServer->slotRefresh( m_config.connectOnStart );
 }
 
 void Atlantik::showSelectGame()

Index: main.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/main.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- main.cpp	4 Jul 2004 12:03:40 -0000	1.39
+++ main.cpp	7 Jul 2004 16:23:01 -0000	1.40
@@ -49,7 +49,7 @@
 	aboutData.addAuthor("Rob Kaper", I18N_NOOP("main author"), "cap@capsi.com", \
"http://capsi.com/");  
 	// Patches and artists
-	aboutData.addCredit("Thiago Macieira", I18N_NOOP("KExtendedSocket support, \
KLatencyTimer"), "thiagom@wanadoo.fr"); +	aboutData.addCredit("Thiago Macieira", \
I18N_NOOP("KExtendedSocket support"), "thiagom@wanadoo.fr");  \
aboutData.addCredit("Albert Astals Cid", I18N_NOOP("various patches"), \
"tsdgeos@terra.es");  
 	aboutData.addCredit("Bart Szyszka", I18N_NOOP("application icon"), \
"bart@gigabee.com", "http://www.gigabee.com/");

Index: main.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/main.h,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -d -r1.49 -r1.50
--- main.h	27 Jun 2004 16:04:43 -0000	1.49
+++ main.h	7 Jul 2004 16:23:01 -0000	1.50
@@ -18,7 +18,7 @@
 #define ATLANTIK_MAIN_H
 
 #define	ATLANTIK_VERSION 070
-#define	ATLANTIK_VERSION_STRING "0.7.0 (CVS >= 20040627)"
+#define	ATLANTIK_VERSION_STRING "0.7.0 (CVS >= 20040707)"
 
 #define ATLANTIK_VERSION_MAJOR 0
 #define ATLANTIK_VERSION_MINOR 7

Index: monopigator.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/monopigator.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- monopigator.cpp	23 May 2004 00:45:18 -0000	1.22
+++ monopigator.cpp	7 Jul 2004 16:23:01 -0000	1.23
@@ -16,9 +16,9 @@
 
 #include <qdom.h>
 #include <qptrlist.h>
+#include <qregexp.h>
 
 #include <kextendedsocket.h>
-#include <klatencytimer.h>
 
 #include "monopigator.moc"
 #include "main.h"
@@ -99,7 +99,7 @@
 				if(!e.isNull())
 				{
 					if (e.tagName() == "server")
-						emit monopigatorAdd(e.attributeNode(QString("host")).value(), \
e.attributeNode(QString("port")).value(), \
e.attributeNode(QString("version")).value(), \
e.attributeNode(QString("users")).value().toInt()); +						emit \
monopigatorAdd(e.attributeNode(QString("ip")).value(), \
e.attributeNode(QString("host")).value(), e.attributeNode(QString("port")).value(), \
e.attributeNode(QString("version")).value(), \
e.attributeNode(QString("users")).value().toInt());  }
 				n = n.nextSibling();
 			}
@@ -108,30 +108,32 @@
 	}
 }
 
-MonopigatorEntry::MonopigatorEntry(QListView *parent, QString host, QString latency, \
QString version, QString users, QString port) : QObject(), QListViewItem(parent, \
host, latency, version, users, port) +MonopigatorEntry::MonopigatorEntry(QListView \
*parent, QString host, QString latency, QString version, QString users, QString port, \
QString ip) : QObject(), QListViewItem(parent, host, latency, version, users, port)  \
                {
-//	setEnabled(false);
-	parent->sort();
-
-	QPtrList<KAddressInfo> addresses = KExtendedSocket::lookup(host, port);
-	addresses.setAutoDelete(true);
-	m_latencyTimer = new KLatencyTimer(port.toInt(), this, "latencyTimer");
+	m_isDev = ( version.find( QRegExp("(CVS|-dev)") ) != -1 ) ? true : false;
 
-	if ( addresses.count() )
-	{
-		m_latencyTimer->setHost(addresses.first()->address());
+	setEnabled(false);
+	parent->sort();
 
-		connect(m_latencyTimer, SIGNAL(answer(int)), this, SLOT(updateLatency(int)));
-		m_latencyTimer->start();
-	}
+	if ( !ip.isEmpty() )
+		host = ip;
+	m_latencySocket = new KExtendedSocket( host, port.toInt(), \
KExtendedSocket::inputBufferedSocket | KExtendedSocket::noResolve ); \
+	connect(m_latencySocket, SIGNAL(lookupFinished(int)), this, SLOT(resolved())); \
+	connect(m_latencySocket, SIGNAL(connectionSuccess()), this, SLOT(connected())); \
+	m_latencySocket->startAsyncConnect();  }
 
-void MonopigatorEntry::updateLatency(int msec)
+void MonopigatorEntry::resolved()
 {
-	setText(1, QString::number(msec));
-//	setEnabled(true);
+	time.start();
+}
 
+void MonopigatorEntry::connected()
+{
+	setText( 1, QString::number(time.elapsed()) );
+	setEnabled(true);
 	listView()->sort();
+	delete m_latencySocket;
 }
 
 int MonopigatorEntry::compare(QListViewItem *i, int col, bool ascending) const
@@ -149,3 +151,14 @@
 	}
 	return key( col, ascending ).compare( i->key( col, ascending) );
 }
+
+bool MonopigatorEntry::isDev() const
+{
+	return m_isDev;
+}
+
+void MonopigatorEntry::showDevelopmentServers(bool show)
+{
+	if ( isVisible() != show )
+		setVisible(show);
+}

Index: monopigator.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/monopigator.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- monopigator.h	10 Feb 2004 19:46:34 -0000	1.17
+++ monopigator.h	7 Jul 2004 16:23:01 -0000	1.18
@@ -1,4 +1,4 @@
-// Copyright (c) 2002-2003 Rob Kaper <cap@capsi.com>
+// Copyright (c) 2002-2004 Rob Kaper <cap@capsi.com>
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
@@ -25,7 +25,8 @@
 #include <kio/job.h>
 #include <kurl.h>
 
-class KLatencyTimer;
+class KExtendedSocket;
+class QTime;
 
 class Monopigator : public QObject
 {
@@ -37,7 +38,7 @@
 	void loadData(const KURL &);
 
 signals:
-	void monopigatorAdd(QString host, QString port, QString version, int users);
+	void monopigatorAdd(QString ip, QString host, QString port, QString version, int \
users);  void finished();
 	void timeout();
 
@@ -59,15 +60,20 @@
 Q_OBJECT
 
 public:
-	MonopigatorEntry(QListView *parent, QString host, QString latency, QString version, \
QString users, QString port); +	MonopigatorEntry(QListView *parent, QString host, \
QString latency, QString version, QString users, QString port, QString ip);  int \
compare(QListViewItem *i, int col, bool ascending) const; +	bool isDev() const;
 
 private slots:
-	void updateLatency(int msec);
+	void resolved();
+	void connected();
+	void showDevelopmentServers(bool show);
 
 private:
-	KLatencyTimer *m_latencyTimer;
+	KExtendedSocket *m_latencySocket;
+	QTime time;
 	QListView *m_parent;
+	bool m_isDev;
 };
 
 #endif

Index: selectserver_widget.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectserver_widget.cpp,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- selectserver_widget.cpp	7 Jul 2004 13:01:36 -0000	1.43
+++ selectserver_widget.cpp	7 Jul 2004 16:23:01 -0000	1.44
@@ -17,7 +17,6 @@
 #include <qlabel.h>
 #include <qlayout.h>
 #include <qradiobutton.h>
-#include <qregexp.h>
 #include <qsizepolicy.h>
 #include <qvbuttongroup.h>
 #include <qhgroupbox.h>
@@ -92,11 +91,9 @@
 	// Monopigator
 	m_monopigator = new Monopigator();
 
-	connect(m_monopigator, SIGNAL(monopigatorAdd(QString, QString, QString, int)), \
this, SLOT(slotMonopigatorAdd(QString, QString, QString, int))); \
+	connect(m_monopigator, SIGNAL(monopigatorAdd(QString, QString, QString, QString, \
int)), this, SLOT(slotMonopigatorAdd(QString, QString, QString, QString, int)));  \
connect(m_monopigator, SIGNAL(finished()), SLOT(monopigatorFinished()));  \
                connect(m_monopigator, SIGNAL(timeout()), \
                SLOT(monopigatorTimeout()));
-
-	slotRefresh(useMonopigatorOnStart);
 }
 
 SelectServer::~SelectServer()
@@ -106,7 +103,11 @@
 
 void SelectServer::setHideDevelopmentServers(bool hideDevelopmentServers)
 {
-	m_hideDevelopmentServers = hideDevelopmentServers;
+	if ( m_hideDevelopmentServers != hideDevelopmentServers )
+	{
+		m_hideDevelopmentServers = hideDevelopmentServers;
+		emit showDevelopmentServers( !m_hideDevelopmentServers );
+	}
 }
 
 void SelectServer::initMonopigator()
@@ -118,13 +119,17 @@
 	m_monopigator->loadData(KURL( "http://monopd.unixcode.org/"));
 }
 
-void SelectServer::slotMonopigatorAdd(QString host, QString port, QString version, \
int users) +void SelectServer::slotMonopigatorAdd(QString ip, QString host, QString \
port, QString version, int users)  {
-	if (m_hideDevelopmentServers && version.find( QRegExp("(CVS|-dev)") ) != -1 )
-		return;
-
-	MonopigatorEntry *item = new MonopigatorEntry(m_serverList, host, \
QString::number(9999), version, (users == -1) ? i18n("unknown") : \
QString::number(users), port); +	MonopigatorEntry *item = new \
MonopigatorEntry(m_serverList, host, QString::number(9999), version, (users == -1) ? \
i18n("unknown") : QString::number(users), port, ip);  item->setPixmap(0, \
BarIcon("atlantik", KIcon::SizeSmall)); +
+	if ( item->isDev() )
+	{
+		item->setVisible( !m_hideDevelopmentServers );
+		connect(this, SIGNAL(showDevelopmentServers(bool)), item, \
SLOT(showDevelopmentServers(bool))); +	}
+
 	validateConnectButton();
 }
 

Index: selectserver_widget.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectserver_widget.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- selectserver_widget.h	10 Feb 2004 19:46:34 -0000	1.21
+++ selectserver_widget.h	7 Jul 2004 16:23:01 -0000	1.22
@@ -1,4 +1,4 @@
-// Copyright (c) 2002-2003 Rob Kaper <cap@capsi.com>
+// Copyright (c) 2002-2004 Rob Kaper <cap@capsi.com>
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
@@ -45,19 +45,19 @@
 
 public slots:
 	void validateConnectButton();
-
-	void slotMonopigatorAdd(QString host, QString port, QString version, int users);
+	void slotRefresh(bool useMonopigator = true);
+	void slotMonopigatorAdd(QString ip, QString host, QString port, QString version, \
int users);  
 private slots:
 	void slotConnect();
 	void customConnect();
-	void slotRefresh(bool useMonopigator = true);
 	void monopigatorFinished();
 	void monopigatorTimeout();
 
 signals:
 	void serverConnect(const QString host, int port);
 	void msgStatus(const QString &message);
+	void showDevelopmentServers(bool show);
 
 private:
 	void initMonopigator();

_______________________________________________
atlantik-cvs mailing list
atlantik-cvs@kde.org
https://mail.kde.org/mailman/listinfo/atlantik-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic