summaryrefslogtreecommitdiff
path: root/library/network.cpp
authorzecke <zecke>2002-10-16 01:09:22 (UTC)
committer zecke <zecke>2002-10-16 01:09:22 (UTC)
commit543e54de7170c606b6883ac4152567e7faf13182 (patch) (side-by-side diff)
tree8a7d623e96cab0135a2f7cb11aa9f7491bfda9a2 /library/network.cpp
parent3e973543b77631d053a9616b5540966dbe51ab47 (diff)
downloadopie-543e54de7170c606b6883ac4152567e7faf13182.zip
opie-543e54de7170c606b6883ac4152567e7faf13182.tar.gz
opie-543e54de7170c606b6883ac4152567e7faf13182.tar.bz2
Remove #ifdef QWS HELL
a Platform which is not supporting IPC compatible to QCopChannel/Envelope is not of much use nowadays.. so be sure your platform is supporting it
Diffstat (limited to 'library/network.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--library/network.cpp2
1 files changed, 0 insertions, 2 deletions
diff --git a/library/network.cpp b/library/network.cpp
index 185b147..3568809 100644
--- a/library/network.cpp
+++ b/library/network.cpp
@@ -1,222 +1,220 @@
/**********************************************************************
** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
**
** This file is part of the Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#define QTOPIA_INTERNAL_LANGLIST
#include "qpe/network.h"
#include "qpe/networkinterface.h"
#include "qpe/global.h"
#include "qpe/config.h"
#include "qpe/resource.h"
#include "qpe/qpeapplication.h"
-#ifdef QWS
#include <qpe/qcopenvelope_qws.h>
-#endif
#include <qpe/qlibrary.h>
#include <qlistbox.h>
#include <qdir.h>
#include <qlayout.h>
#include <qdict.h>
#include <qtranslator.h>
#include <stdlib.h>
#ifndef QT_NO_COP
class NetworkEmitter : public QCopChannel {
Q_OBJECT
public:
NetworkEmitter() : QCopChannel("QPE/Network",qApp)
{
}
void receive(const QCString &msg, const QByteArray&)
{
if ( msg == "choicesChanged()" )
emit changed();
}
signals:
void changed();
};
/*!
\internal
Requests that the service \a choice be started. The \a password is
the password to use if required.
*/
void Network::start(const QString& choice, const QString& password)
{
QCopEnvelope e("QPE/Network", "start(QString,QString)");
e << choice << password;
}
/*!
\class Network network.h
\brief The Network class provides network access functionality.
\internal
*/
// copy the proxy settings of the active config over to the Proxies.conf file
/*!
\internal
*/
void Network::writeProxySettings( Config &cfg )
{
Config proxy( Network::settingsDir() + "/Proxies.conf", Config::File );
proxy.setGroup("Properties");
cfg.setGroup("Proxy");
proxy.writeEntry("type", cfg.readEntry("type") );
proxy.writeEntry("autoconfig", cfg.readEntry("autoconfig") );
proxy.writeEntry("httphost", cfg.readEntry("httphost") );
proxy.writeEntry("httpport", cfg.readEntry("httpport") );
proxy.writeEntry("ftphost", cfg.readEntry("ftphost") );
proxy.writeEntry("ftpport", cfg.readEntry("ftpport") );
proxy.writeEntry("noproxies", cfg.readEntry("noproxies") );
cfg.setGroup("Properties");
}
/*!
\internal
Stops the current network service.
*/
void Network::stop()
{
QCopEnvelope e("QPE/Network", "stop()");
}
static NetworkEmitter *emitter = 0;
/*!
\internal
*/
void Network::connectChoiceChange(QObject* receiver, const char* slot)
{
if ( !emitter )
emitter = new NetworkEmitter;
QObject::connect(emitter,SIGNAL(changed()),receiver,slot);
}
#endif // QT_NO_COP
/*!
\internal
*/
QString Network::settingsDir()
{
return Global::applicationFileName("Network", "modules");
}
#ifndef QT_NO_COP
/*!
\internal
*/
QStringList Network::choices(QListBox* lb, const QString& dir)
{
QStringList list;
if ( lb )
lb->clear();
QString adir = dir.isEmpty() ? settingsDir() : dir;
QDir settingsdir(adir);
settingsdir.mkdir(adir);
QStringList files = settingsdir.entryList("*.conf");
for (QStringList::ConstIterator it=files.begin(); it!=files.end(); ++it ) {
QString filename = settingsdir.filePath(*it);
Config cfg(filename, Config::File);
cfg.setGroup("Info");
if ( lb )
lb->insertItem(Resource::loadPixmap("Network/" + cfg.readEntry("Type")),
cfg.readEntry("Name"));
list.append(filename);
}
return list;
}
class NetworkServer : public QCopChannel {
Q_OBJECT
public:
NetworkServer(QObject* parent) : QCopChannel("QPE/Network",parent), wait(0)
{
up = FALSE;
examineNetworks( TRUE );
QCopChannel* card = new QCopChannel("QPE/Card",parent);
connect(card,SIGNAL(received(const QCString &, const QByteArray&)),
this,SLOT(cardMessage(const QCString &, const QByteArray&)));
}
~NetworkServer()
{
stop();
}
bool networkOnline() const
{
return up;
}
private:
void receive(const QCString &msg, const QByteArray& data)
{
if ( msg == "start(QString,QString)" ) {
QDataStream stream(data,IO_ReadOnly);
QString file,password;
stream >> file >> password;
if ( file.isEmpty() ) {
QStringList l = Network::choices();
for (QStringList::ConstIterator i=l.begin(); i!=l.end(); ++i) {
Config cfg(*i,Config::File);
cfg.setGroup("Info");
QString type = cfg.readEntry("Type");
NetworkInterface* plugin = Network::loadPlugin(type);
cfg.setGroup("Properties");
if ( plugin && plugin->isAvailable(cfg) ) {
file = *i;
break;
}
}
if ( file.isEmpty() ) {
QCopEnvelope("QPE/Network", "failed()");
return;
}
}
start(file,password);
} else if ( msg == "stop()" ) {
stop();
} else if ( msg == "choicesChanged()" ) {
examineNetworks();
}
}
private slots:
void cardMessage(const QCString &msg, const QByteArray&)
{
if ( msg == "stabChanged()" )
examineNetworks();
}
private:
void examineNetworks( bool firstStart = FALSE )
{