[atlantik-cvs] CVS: kdegames/atlantik/client monopigator.cpp,1.9.8.3,1.9.8.4 monopigator.h,1.8.8.3,1.8.8.4 selectserver_widget.cpp,1.18.6.2,1.18.6.3 selectserver_widget.h,1.9.6.1,1.9.6.2
[email protected] Mon, 2 Jun 2003 20:39:41 +0200 (CEST)
Newsgroups
gmane.comp.kde.devel.atlantik
Message-ID
<[email protected] >
Update of /home/kde/kdegames/atlantik/client
In directory office:/tmp/cvs-serv16026
Modified Files:
Tag: KDE_3_1_BRANCH
monopigator.cpp monopigator.h selectserver_widget.cpp
selectserver_widget.h
Log Message:
albert's improved fixes for monopigator timeouts
Index: monopigator.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/monopigator.cpp,v
retrieving revision 1.9.8.3
retrieving revision 1.9.8.4
diff -u -d -r1.9.8.3 -r1.9.8.4
--- monopigator.cpp 27 May 2003 21:09:32 -0000 1.9.8.3
+++ monopigator.cpp 2 Jun 2003 18:39:39 -0000 1.9.8.4
@@ -22,11 +22,14 @@
Monopigator::Monopigator()
{
m_downloadData = 0;
+ m_job = 0;
+ m_timer = 0;
}
Monopigator::~Monopigator()
{
- if (m_job != NULL) m_job -> kill();
+ if (m_job)
+ m_job -> kill();
}
void Monopigator::loadData(const KURL &url)
@@ -40,19 +43,36 @@
m_job = KIO::get(url.url(), true, false);
m_job->addMetaData(QString::fromLatin1("UserAgent"), QString::fromLatin1("Atlantik/" ATLANTIK_VERSION_STRING));
+ if (!m_timer)
+ {
+ m_timer = new QTimer(this);
+ m_timer->start(10000, true);
+ }
+
connect(m_job, SIGNAL(data(KIO::Job *, const QByteArray &)), SLOT(slotData(KIO::Job *, const QByteArray &)));
connect(m_job, SIGNAL(result(KIO::Job *)), SLOT(slotResult(KIO::Job *)));
+ connect(m_timer, SIGNAL(timeout()), SLOT(slotTimeout()));
}
void Monopigator::slotData(KIO::Job *, const QByteArray &data)
{
+ m_timer->stop();
m_downloadData->writeBlock(data.data(), data.size());
}
void Monopigator::slotResult(KIO::Job *job)
{
processData(m_downloadData->buffer(), !job->error());
- m_job = NULL;
+ m_job = 0;
+}
+
+void Monopigator::slotTimeout()
+{
+ if (m_job)
+ m_job -> kill();
+ m_job = 0;
+
+ emit timeout();
}
void Monopigator::processData(const QByteArray &data, bool okSoFar)
Index: monopigator.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/monopigator.h,v
retrieving revision 1.8.8.3
retrieving revision 1.8.8.4
diff -u -d -r1.8.8.3 -r1.8.8.4
--- monopigator.h 27 May 2003 21:09:32 -0000 1.8.8.3
+++ monopigator.h 2 Jun 2003 18:39:39 -0000 1.8.8.4
@@ -19,6 +19,7 @@
#include <qobject.h>
#include <qbuffer.h>
+#include <qtimer.h>
#include <kio/job.h>
#include <kurl.h>
@@ -35,15 +36,18 @@
signals:
void monopigatorAdd(QString host, QString port, QString version, int users);
void finished();
+ void timeout();
private slots:
void slotData(KIO::Job *, const QByteArray &);
void slotResult(KIO::Job *);
+ void slotTimeout();
private:
void processData(const QByteArray &, bool = true);
QBuffer *m_downloadData;
+ QTimer *m_timer;
KIO::Job *m_job;
};
Index: selectserver_widget.cpp
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectserver_widget.cpp,v
retrieving revision 1.18.6.2
retrieving revision 1.18.6.3
diff -u -d -r1.18.6.2 -r1.18.6.3
--- selectserver_widget.cpp 27 May 2003 21:09:33 -0000 1.18.6.2
+++ selectserver_widget.cpp 2 Jun 2003 18:39:39 -0000 1.18.6.3
@@ -81,6 +81,7 @@
connect(m_monopigator, SIGNAL(monopigatorAdd(QString, QString, QString, int)), this, SLOT(slotMonopigatorAdd(QString, QString, QString, int)));
connect(m_monopigator, SIGNAL(finished()), SLOT(monopigatorFinished()));
+ connect(m_monopigator, SIGNAL(timeout()), SLOT(monopigatorTimeout()));
// Until we have a good way to use start a local monopd server, disable this button
// m_localGameButton->setEnabled(false);
@@ -140,6 +141,11 @@
status_label->setText(i18n("Retrieved server list."));
}
+void SelectServer::monopigatorTimeout()
+{
+ m_refreshButton->setEnabled(true);
+}
+
void SelectServer::validateRadioButtons()
{
return;
@@ -182,6 +188,7 @@
validateConnectButton();
checkLocalServer();
+ m_refreshButton->setEnabled(false);
initMonopigator();
}
Index: selectserver_widget.h
===================================================================
RCS file: /home/kde/kdegames/atlantik/client/selectserver_widget.h,v
retrieving revision 1.9.6.1
retrieving revision 1.9.6.2
diff -u -d -r1.9.6.1 -r1.9.6.2
--- selectserver_widget.h 7 Jan 2003 22:57:46 -0000 1.9.6.1
+++ selectserver_widget.h 2 Jun 2003 18:39:39 -0000 1.9.6.2
@@ -55,6 +55,7 @@
void slotLocalConnected();
void slotLocalError();
void monopigatorFinished();
+ void monopigatorTimeout();
signals:
void serverConnect(const QString host, int port);