summaryrefslogtreecommitdiff
authorar <ar>2004-02-21 18:32:37 (UTC)
committer ar <ar>2004-02-21 18:32:37 (UTC)
commit536f271b1e6a1d1886e96a28524a3503c4c38c4e (patch) (side-by-side diff)
tree63b3c0ce472a89a0f9731195fececc701bf4ca67
parentdb2afda83e495bff9fc19fa14a30072f1cd4c67a (diff)
downloadopie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.zip
opie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.tar.gz
opie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.tar.bz2
improve support for BigScreen
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp27
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp272
-rw-r--r--noncore/settings/networksettings/ppp/accounts.cpp80
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp62
-rw-r--r--noncore/settings/networksettings/ppp/modeminfo.cpp65
-rw-r--r--noncore/settings/networksettings/ppp/pppmodule.cpp103
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp11
7 files changed, 395 insertions, 225 deletions
diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
index 37c3a91..698dfd3 100644
--- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
@@ -1,93 +1,104 @@
+
#include "interfaceinformationimp.h"
#include "interfaceadvanced.h"
+/* OPIE */
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qcheckbox.h>
#include <qpushbutton.h>
#include <qlabel.h>
#include <qgroupbox.h>
#include <qmessagebox.h>
-#include <qpe/config.h>
#ifdef QWS
#else
#define showMaximized show
#endif
/**
* Constructor for the InterfaceInformationImp class. This class pretty much
* just display's information about the interface that is passed to it.
*/
-InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i){
+InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i)
+{
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
connect(i, SIGNAL(updateMessage(const QString &)), this, SLOT(showMessage(const QString &)));
updateInterface(interface);
connect(startButton, SIGNAL(clicked()), interface, SLOT(start()));
connect(stopButton, SIGNAL(clicked()), interface, SLOT(stop()));
connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart()));
connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh()));
connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced()));
Config cfg("networksettings", Config::User);
cfg.setGroup("interface");
CheckBoxSilent->setChecked( cfg.readBoolEntry("silent", false) );
}
InterfaceInformationImp::~InterfaceInformationImp()
{
Config cfg("networksettings", Config::User);
cfg.setGroup("interface");
cfg.writeEntry("silent", CheckBoxSilent->isChecked() );
}
/**
* Update the interface information and buttons.
* @param Intarface *i the interface to update (should be the one we already
* know about).
*/
-void InterfaceInformationImp::updateInterface(Interface *){
- if(interface->getStatus()){
+void InterfaceInformationImp::updateInterface(Interface *)
+{
+ if(interface->getStatus())
+ {
startButton->setEnabled(false);
stopButton->setEnabled(true);
restartButton->setEnabled(true);
}
- else{
+ else
+ {
startButton->setEnabled(true);
stopButton->setEnabled(false);
restartButton->setEnabled(false);
}
macAddressLabel->setText(interface->getMacAddress());
ipAddressLabel->setText(interface->getIp());
subnetMaskLabel->setText(interface->getSubnetMask());
broadcastLabel->setText(interface->getBroadcast());
}
/**
* Create the advanced widget. Fill it with the current interface's information.
* Display it.
*/
-void InterfaceInformationImp::advanced(){
+void InterfaceInformationImp::advanced()
+{
InterfaceAdvanced *a = new InterfaceAdvanced(this, "InterfaceAdvanced", Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog);
a->interfaceName->setText(interface->getInterfaceName());
a->macAddressLabel->setText(interface->getMacAddress());
a->ipAddressLabel->setText(interface->getIp());
a->subnetMaskLabel->setText(interface->getSubnetMask());
a->broadcastLabel->setText(interface->getBroadcast());
a->dhcpServerLabel->setText(interface->getDhcpServerIp());
a->leaseObtainedLabel->setText(interface->getLeaseObtained());
a->leaseExpiresLabel->setText(interface->getLeaseExpires());
a->dhcpInformation->setEnabled(interface->isDhcp());
- a->showMaximized();
+ QPEApplication::showWidget( a );
}
/**
* Messages from the interface if start/stop went as planned.
* Purly for user feedback.
* @param message the message to display.
*/
-void InterfaceInformationImp::showMessage(const QString &message){
+void InterfaceInformationImp::showMessage(const QString &message)
+{
if (CheckBoxSilent->isChecked()) return;
QMessageBox::information(this, "Message", message, QMessageBox::Ok);
}
// infoimp.cpp
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index d9752ce..b0a1dd9 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -1,678 +1,748 @@
+
#include "mainwindowimp.h"
#include "addconnectionimp.h"
#include "interfaceinformationimp.h"
#include "interfacesetupimp.h"
#include "interfaces.h"
#include "module.h"
+/* OPIE */
+#include <qpe/qcopenvelope_qws.h>
+#include <qpe/qpeapplication.h>
+#include <qpe/config.h>
+#include <qpe/qlibrary.h>
+#include <qpe/resource.h>
+
+/* QT */
#include <qpushbutton.h>
#include <qlistbox.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qheader.h>
#include <qlabel.h>
-#include <qpe/qcopenvelope_qws.h>
#include <qtabwidget.h> // in order to disable the profiles tab
-#include <qpe/qpeapplication.h>
-
#include <qmessagebox.h>
-#ifdef QWS
- #include <qpe/config.h>
- #include <qpe/qlibrary.h>
- #include <qpe/resource.h>
- #include <qpe/qpeapplication.h>
-#else
- #include <klibloader.h>
- #define QLibrary KLibrary
- #include <kconfig.h>
- #define Config KConfig
- #include <kapplication.h>
- #include <kstandarddirs.h>
- #include <kiconloader.h>
- #define showMaximized show
-#endif
#if QT_VERSION < 300
#include <qlist.h>
#else
#include <qptrlist.h>
#endif
#include <qdir.h>
#include <qfile.h>
#include <qtextstream.h>
#include <qregexp.h>
+/* STD */
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
#define _PROCNETDEV "/proc/net/dev"
-MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME){
+MainWindowImp::MainWindowImp(QWidget *parent, const char *name, WFlags) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME)
+{
connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
connect(configureConnectionButton, SIGNAL(clicked()), this, SLOT(configureClicked()));
connect(newProfileButton, SIGNAL(clicked()), this, SLOT(addProfile()));
connect(removeProfileButton, SIGNAL(clicked()), this, SLOT(removeProfile()));
connect(setCurrentProfileButton, SIGNAL(clicked()), this, SLOT(changeProfile()));
connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&)));
//FIXME: disable profiles for the moment:
tabWidget->setTabEnabled( tab, false );
// Load connections.
// /usr/local/kde/lib/libinterfaces.la
#ifdef QWS
loadModules(QPEApplication::qpeDir() + "plugins/networksettings");
#else
loader = KLibLoader::self();
loadModules(QString("/usr/")+KStandardDirs::kde_default("lib"));
#endif
getAllInterfaces();
Interfaces i;
QStringList list = i.getInterfaceList();
QMap<QString, Interface*>::Iterator it;
- for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) {
+ for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni )
+ {
/*
* we skipped it in getAllInterfaces now
* we need to ignore it as well
*/
- if (m_handledIfaces.contains( *ni) ) {
+ if (m_handledIfaces.contains( *ni) )
+ {
qDebug("Not up iface handled by module");
continue;
}
bool found = false;
- for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){
+ for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it )
+ {
if(it.key() == (*ni))
found = true;
}
- if(!found){
- if(!(*ni).contains("_")){
+ if(!found)
+ {
+ if(!(*ni).contains("_"))
+ {
Interface *i = new Interface(this, *ni, false);
i->setAttached(false);
i->setHardwareName(tr("Disconnected"));
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
}
}
}
//getInterfaceList();
connectionList->header()->hide();
Config cfg("NetworkSetup");
profiles = QStringList::split(" ", cfg.readEntry("Profiles", "All"));
for ( QStringList::Iterator it = profiles.begin();
it != profiles.end(); ++it)
profilesList->insertItem((*it));
currentProfileLabel->setText(cfg.readEntry("CurrentProfile", "All"));
advancedUserMode = cfg.readBoolEntry("AdvancedUserMode", false);
scheme = cfg.readEntry("SchemeFile", DEFAULT_SCHEME);
QFile file(scheme);
- if ( file.open(IO_ReadOnly) ) { // file opened successfully
+ if ( file.open(IO_ReadOnly) )
+ { // file opened successfully
QTextStream stream( &file ); // use a text stream
- while ( !stream.eof() ) { // until end of file...
+ while ( !stream.eof() )
+ { // until end of file...
QString line = stream.readLine(); // line of text excluding '\n'
- if(line.contains("SCHEME")){
+ if(line.contains("SCHEME"))
+ {
line = line.mid(7, line.length());
currentProfileLabel->setText(line);
break;
}
}
file.close();
}
makeChannel();
}
/**
* Deconstructor. Save profiles. Delete loaded libraries.
*/
-MainWindowImp::~MainWindowImp(){
+MainWindowImp::~MainWindowImp()
+{
// Save profiles.
Config cfg("NetworkSetup");
cfg.setGroup("General");
cfg.writeEntry("Profiles", profiles.join(" "));
// Delete all interfaces that don't have owners.
QMap<Interface*, QListViewItem*>::Iterator iIt;
- for( iIt = items.begin(); iIt != items.end(); ++iIt ){
+ for( iIt = items.begin(); iIt != items.end(); ++iIt )
+ {
if(iIt.key()->getModuleOwner() == NULL)
delete iIt.key();
}
#ifdef QWS
// Delete Modules and Libraries
QMap<Module*, QLibrary*>::Iterator it;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
delete it.key();
// I wonder why I can't delete the libraries
// What fucking shit this is.
//delete it.data();
}
#else
// klibloader automaticly deletes the libraries for us...
#endif
}
/**
* Query the kernel for all of the interfaces.
*/
-void MainWindowImp::getAllInterfaces(){
+void MainWindowImp::getAllInterfaces()
+{
int sockfd = socket(PF_INET, SOCK_DGRAM, 0);
if(sockfd == -1)
return;
struct ifreq ifr;
QStringList ifaces;
QFile procFile(QString(_PROCNETDEV));
int result;
Interface *i;
- if (! procFile.exists()) {
+ if (! procFile.exists())
+ {
struct ifreq ifrs[100];
struct ifconf ifc;
ifc.ifc_len = sizeof(ifrs);
ifc.ifc_req = ifrs;
result = ioctl(sockfd, SIOCGIFCONF, &ifc);
- for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++) {
+ for (unsigned int i = 0; i < ifc.ifc_len / sizeof(struct ifreq); i++)
+ {
struct ifreq *pifr = &ifrs[i];
ifaces += pifr->ifr_name;
}
- } else {
+ }
+ else
+ {
procFile.open(IO_ReadOnly);
QString line;
QTextStream procTs(&procFile);
int loc = -1;
procTs.readLine(); // eat a line
procTs.readLine(); // eat a line
- while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null) {
- if((loc = line.find(":")) != -1) {
+ while((line = procTs.readLine().simplifyWhiteSpace()) != QString::null)
+ {
+ if((loc = line.find(":")) != -1)
+ {
ifaces += line.left(loc);
}
}
}
- for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) {
+ for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it)
+ {
int flags = 0;
- if ( m_handledIfaces.contains( (*it) ) ) {
+ if ( m_handledIfaces.contains( (*it) ) )
+ {
qDebug(" %s is handled by a module", (*it).latin1() );
continue;
}
// int family;
i = NULL;
strcpy(ifr.ifr_name, (*it).latin1());
struct ifreq ifcopy;
ifcopy = ifr;
result = ioctl(sockfd, SIOCGIFFLAGS, &ifcopy);
flags = ifcopy.ifr_flags;
i = new Interface(this, ifr.ifr_name, false);
i->setAttached(true);
if ((flags & IFF_UP) == IFF_UP)
i->setStatus(true);
else
i->setStatus(false);
if ((flags & IFF_BROADCAST) == IFF_BROADCAST)
i->setHardwareName("Ethernet");
else if ((flags & IFF_POINTOPOINT) == IFF_POINTOPOINT)
i->setHardwareName("Point to Point");
else if ((flags & IFF_MULTICAST) == IFF_MULTICAST)
i->setHardwareName("Multicast");
else if ((flags & IFF_LOOPBACK) == IFF_LOOPBACK)
i->setHardwareName("Loopback");
else
i->setHardwareName("Unknown");
qWarning("Adding interface %s to interfaceNames\n", ifr.ifr_name);
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)),
this, SLOT(updateInterface(Interface *)));
}
// now lets ask the plugins too ;)
QMap<Module*, QLibrary*>::Iterator it;
QList<Interface> ilist;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
- if(it.key()){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
+ if(it.key())
+ {
ilist = it.key()->getInterfaces();
- for( i = ilist.first(); i != 0; i = ilist.next() ){
+ for( i = ilist.first(); i != 0; i = ilist.next() )
+ {
qWarning("Adding interface %s to interfaceNames\n", i->getInterfaceName().latin1() );
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
connect(i, SIGNAL(updateInterface(Interface *)),
this, SLOT(updateInterface(Interface *)));
}
}
}
}
/**
* Load all modules that are found in the path
* @param path a directory that is scaned for any plugins that can be loaded
* and attempts to load them
*/
-void MainWindowImp::loadModules(const QString &path){
+void MainWindowImp::loadModules(const QString &path)
+{
#ifdef DEBUG
qDebug("MainWindowImp::loadModules: %s", path.latin1());
#endif
QDir d(path);
if(!d.exists())
return;
// Don't want sym links
d.setFilter( QDir::Files | QDir::NoSymLinks );
const QFileInfoList *list = d.entryInfoList();
QFileInfoListIterator it( *list );
QFileInfo *fi;
- while ( (fi=it.current()) ) {
+ while ( (fi=it.current()) )
+ {
#ifdef QWS
- if(fi->fileName().contains(".so")){
+ if(fi->fileName().contains(".so"))
+ {
#else
- if(fi->fileName().contains(".so") && fi->fileName().contains("networksettings_")){
+ if(fi->fileName().contains(".so") && fi->fileName().contains("networksettings_"))
+ {
#endif
loadPlugin(path + "/" + fi->fileName());
qDebug("loaded plugin: >%s< ",QString(path + "/" + fi->fileName()).latin1());
}
++it;
}
}
/**
* Attempt to load a function and resolve a function.
* @param pluginFileName - the name of the file in which to attempt to load
* @param resolveString - function pointer to resolve
* @return pointer to the function with name resolveString or NULL
*/
-Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString){
+Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &resolveString)
+{
#ifdef DEBUG
qDebug("MainWindowImp::loadPlugin: %s: resolving %s", pluginFileName.latin1(), resolveString.latin1());
#endif
#ifdef QWS
QLibrary *lib = new QLibrary(pluginFileName);
void *functionPointer = lib->resolve(resolveString);
- if( !functionPointer ){
+ if( !functionPointer )
+ {
#ifdef DEBUG
qDebug("MainWindowImp::loadPlugin: Warning: %s is not a plugin", pluginFileName.latin1());
#endif
delete lib;
return NULL;
}
// Try to get an object.
Module *object = ((Module* (*)()) functionPointer)();
- if(object == NULL){
+ if(object == NULL)
+ {
#ifdef DEBUG
qDebug("MainWindowImp: Couldn't create object, but did load library!");
#endif
delete lib;
return NULL;
}
m_handledIfaces += object->handledInterfaceNames();
// Store for deletion later
libraries.insert(object, lib);
return object;
#else
QLibrary *lib = loader->library(pluginFileName);
- if( !lib || !lib->hasSymbol(resolveString) ){
+ if( !lib || !lib->hasSymbol(resolveString) )
+ {
qDebug(QString("MainWindowImp::loadPlugin: File: %1 is not a plugin, but though was.").arg(pluginFileName).latin1());
return NULL;
}
// Try to get an object.
Module *object = ((Module* (*)()) lib->symbol(resolveString))();
- if(object == NULL){
+ if(object == NULL)
+ {
#ifdef DEBUG
qDebug("MainWindowImp: Couldn't create object, but did load library!");
#endif
return NULL;
}
#ifdef DEBUG
qDebug("MainWindowImp::loadPlugin:: Found object, storing.");
#endif
// Store for deletion later
libraries.insert(object, lib);
return object;
#endif
}
/**
* The Add button was clicked. Bring up the add dialog and if OK is hit
* load the plugin and append it to the list
*/
-void MainWindowImp::addClicked(){
+void MainWindowImp::addClicked()
+{
QMap<Module*, QLibrary*>::Iterator it;
QMap<QString, QString> list;
QMap<QString, Module*> newInterfaceOwners;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
- if(it.key()){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
+ if(it.key())
+ {
(it.key())->possibleNewInterfaces(list);
}
}
// See if the list has anything that we can add.
- if(list.count() == 0){
+ if(list.count() == 0)
+ {
QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok);
return;
}
AddConnectionImp addNewConnection(this, "AddConnectionImp", true);
addNewConnection.addConnections(list);
- addNewConnection.showMaximized();
- if(QDialog::Accepted == addNewConnection.exec()){
+ if( QDialog::Accepted == QPEApplication::execDialog( &addNewConnection ) )
+ {
QListViewItem *item = addNewConnection.registeredServicesList->currentItem();
if(!item)
return;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
- if(it.key()){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
+ if(it.key())
+ {
Interface *i = (it.key())->addNewInterface(item->text(0));
- if(i){
+ if(i)
+ {
qDebug("iface name %s",i->getInterfaceName().latin1());
interfaceNames.insert(i->getInterfaceName(), i);
updateInterface(i);
}
}
}
}
}
/**
* Prompt the user to see if they really want to do this.
* If they do then remove from the list and unload.
*/
-void MainWindowImp::removeClicked(){
+void MainWindowImp::removeClicked()
+{
QListViewItem *item = connectionList->currentItem();
- if(!item) {
+ if(!item)
+ {
QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
return;
}
Interface *i = interfaceItems[item];
- if(i->getModuleOwner() == NULL){
+ if(i->getModuleOwner() == NULL)
+ {
QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok);
}
- else{
+ else
+ {
if(!i->getModuleOwner()->remove(i))
QMessageBox::information(this, tr("Error"), tr("Unable to remove."), QMessageBox::Ok);
- else{
+ else
+ {
delete item;
// QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok);
}
}
}
/**
* Pull up the configure about the currently selected interface.
* Report an error if no interface is selected.
* If the interface has a module owner then request its configure.
*/
-void MainWindowImp::configureClicked(){
+void MainWindowImp::configureClicked()
+{
QListViewItem *item = connectionList->currentItem();
- if(!item){
+ if(!item)
+ {
QMessageBox::information(this, tr("Sorry"),tr("Please select an interface first."), QMessageBox::Ok);
return;
}
QString currentProfileText = currentProfileLabel->text();
if(currentProfileText.upper() == "ALL");
currentProfileText = "";
Interface *i = interfaceItems[item];
- if(i->getModuleOwner()){
+ if(i->getModuleOwner())
+ {
QWidget *moduleConfigure = i->getModuleOwner()->configure(i);
- if(moduleConfigure != NULL){
+ if(moduleConfigure != NULL)
+ {
i->getModuleOwner()->setProfile(currentProfileText);
- moduleConfigure->showMaximized();
+ QPEApplication::showWidget( moduleConfigure );
return;
}
}
InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp );
configure->setProfile(currentProfileText);
- configure->showMaximized();
+ QPEApplication::showDialog( configure );
}
/**
* Pull up the information about the currently selected interface.
* Report an error if no interface is selected.
* If the interface has a module owner then request its configure.
*/
-void MainWindowImp::informationClicked(){
+void MainWindowImp::informationClicked()
+{
QListViewItem *item = connectionList->currentItem();
- if(!item){
+ if(!item)
+ {
QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok);
return;
}
Interface *i = interfaceItems[item];
// if(!i->isAttached()){
// QMessageBox::information(this, "Sorry","No information about\na disconnected interface.", QMessageBox::Ok);
// return;
// }
- if(i->getModuleOwner()){
+ if(i->getModuleOwner())
+ {
QWidget *moduleInformation = i->getModuleOwner()->information(i);
- if(moduleInformation != NULL){
- moduleInformation->showMaximized();
+ if(moduleInformation != NULL)
+ {
+ QPEApplication::showWidget( moduleInformation );
#ifdef DEBUG
qDebug("MainWindowImp::informationClicked:: Module owner has created, we showed.");
#endif
return;
}
}
InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp);
- information->showMaximized();
+ QPEApplication::showWidget( information );
}
/**
* Update this interface. If no QListViewItem exists create one.
* @param Interface* pointer to the interface that needs to be updated.
*/
-void MainWindowImp::updateInterface(Interface *i){
- if(!advancedUserMode){
+void MainWindowImp::updateInterface(Interface *i)
+{
+ if(!advancedUserMode)
+ {
if(i->getInterfaceName() == "lo")
return;
}
QListViewItem *item = NULL;
// Find the interface, making it if needed.
- if(items.find(i) == items.end()){
+ if(items.find(i) == items.end())
+ {
item = new QListViewItem(connectionList, "", "", "");
// See if you can't find a module owner for this interface
QMap<Module*, QLibrary*>::Iterator it;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
if(it.key()->isOwner(i))
i->setModuleOwner(it.key());
}
items.insert(i, item);
interfaceItems.insert(item, i);
}
else
item = items[i];
// Update the icons and information
#ifdef QWS
item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down")));
#else
item->setPixmap(0, (SmallIcon(i->getStatus() ? "up": "down")));
#endif
QString typeName = "lan";
if(i->getInterfaceName() == "lo")
typeName = "lo";
if(i->getInterfaceName().contains("irda"))
typeName = "irda";
if(i->getInterfaceName().contains("wlan"))
typeName = "wlan";
if(i->getInterfaceName().contains("usb"))
typeName = "usb";
if(!i->isAttached())
typeName = "connect_no";
// Actually try to use the Module
if(i->getModuleOwner() != NULL)
typeName = i->getModuleOwner()->getPixmapName(i);
#ifdef QWS
item->setPixmap(1, (Resource::loadPixmap(QString("networksettings/") + typeName)));
#else
item->setPixmap(1, (SmallIcon(typeName)));
#endif
item->setText(2, i->getHardwareName());
item->setText(3, QString("(%1)").arg(i->getInterfaceName()));
item->setText(4, (i->getStatus()) ? i->getIp() : QString(""));
}
-void MainWindowImp::newProfileChanged(const QString& newText){
+void MainWindowImp::newProfileChanged(const QString& newText)
+{
if(newText.length() > 0)
newProfileButton->setEnabled(true);
else
newProfileButton->setEnabled(false);
}
/**
* Adds a new profile to the list of profiles.
* Don't add profiles that already exists.
* Appends to the list and QStringList
*/
-void MainWindowImp::addProfile(){
+void MainWindowImp::addProfile()
+{
QString newProfileName = newProfile->text();
- if(profiles.grep(newProfileName).count() > 0){
+ if(profiles.grep(newProfileName).count() > 0)
+ {
QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok);
return;
}
profiles.append(newProfileName);
profilesList->insertItem(newProfileName);
}
/**
* Removes the currently selected profile in the combo.
* Doesn't delete if there are less then 2 profiles.
*/
-void MainWindowImp::removeProfile(){
- if(profilesList->count() <= 1){
+void MainWindowImp::removeProfile()
+{
+ if(profilesList->count() <= 1)
+ {
QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok);
return;
}
QString profileToRemove = profilesList->currentText();
- if(profileToRemove == "All"){
+ if(profileToRemove == "All")
+ {
QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok);
return;
}
// Can't remove the curent profile
- if(profileToRemove == currentProfileLabel->text()){
+ if(profileToRemove == currentProfileLabel->text())
+ {
QMessageBox::information(this, "Can't remove.",QString("%1 is the current profile.").arg(profileToRemove), QMessageBox::Ok);
return;
}
- if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok){
+ if(QMessageBox::information(this, "Question",QString("Remove profile: %1").arg(profileToRemove), QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok)
+ {
profiles = QStringList::split(" ", profiles.join(" ").replace(QRegExp(profileToRemove), ""));
profilesList->clear();
for ( QStringList::Iterator it = profiles.begin(); it != profiles.end(); ++it)
profilesList->insertItem((*it));
// Remove any interface settings and mappings.
Interfaces interfaces;
// Go through them one by one
QMap<Interface*, QListViewItem*>::Iterator it;
- for( it = items.begin(); it != items.end(); ++it ){
+ for( it = items.begin(); it != items.end(); ++it )
+ {
QString interfaceName = it.key()->getInterfaceName();
qDebug(interfaceName.latin1());
- if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){
+ if(interfaces.setInterface(interfaceName + "_" + profileToRemove))
+ {
interfaces.removeInterface();
- if(interfaces.setMapping(interfaceName)){
+ if(interfaces.setMapping(interfaceName))
+ {
if(profilesList->count() == 1)
interfaces.removeMapping();
- else{
+ else
+ {
interfaces.removeMap("map", interfaceName + "_" + profileToRemove);
}
}
interfaces.write();
break;
}
}
}
}
/**
* A new profile has been selected, change.
* @param newProfile the new profile.
*/
-void MainWindowImp::changeProfile(){
- if(profilesList->currentItem() == -1){
+void MainWindowImp::changeProfile()
+{
+ if(profilesList->currentItem() == -1)
+ {
QMessageBox::information(this, "Can't Change.","Please select a profile.", QMessageBox::Ok);
return;
}
QString newProfile = profilesList->text(profilesList->currentItem());
- if(newProfile != currentProfileLabel->text()){
+ if(newProfile != currentProfileLabel->text())
+ {
currentProfileLabel->setText(newProfile);
QFile::remove(scheme);
QFile file(scheme);
- if ( file.open(IO_ReadWrite) ) {
+ if ( file.open(IO_ReadWrite) )
+ {
QTextStream stream( &file );
stream << QString("SCHEME=%1").arg(newProfile);
file.close();
}
// restart all up devices?
- if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok){
+ if(QMessageBox::information(this, "Question","Restart all running interfaces?", QMessageBox::Ok, QMessageBox::No) == QMessageBox::Ok)
+ {
// Go through them one by one
QMap<Interface*, QListViewItem*>::Iterator it;
- for( it = items.begin(); it != items.end(); ++it ){
+ for( it = items.begin(); it != items.end(); ++it )
+ {
if(it.key()->getStatus() == true)
it.key()->restart();
}
}
}
// TODO change the profile in the modules
}
void MainWindowImp::makeChannel()
{
channel = new QCopChannel( "QPE/Application/networksettings", this );
connect( channel, SIGNAL(received(const QCString&, const QByteArray&)),
this, SLOT(receive(const QCString&, const QByteArray&)) );
}
void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
{
bool found = false;
qDebug("MainWindowImp::receive QCop msg >"+msg+"<");
- if (msg == "raise") {
+ if (msg == "raise")
+ {
raise();
return;
}
QString dest = msg.left(msg.find("("));
QCString param = msg.right(msg.length() - msg.find("(") - 1);
param = param.left( param.length() - 1 );
qDebug("dest >%s< param >"+param+"<",dest.latin1());
QMap<Module*, QLibrary*>::Iterator it;
- for( it = libraries.begin(); it != libraries.end(); ++it ){
+ for( it = libraries.begin(); it != libraries.end(); ++it )
+ {
qDebug("plugin >%s<", it.key()->type().latin1() );
- if(it.key()->type() == dest){
+ if(it.key()->type() == dest)
+ {
it.key()->receive( param, arg );
found = true;
}
}
if (found) QPEApplication::setKeepRunning();
else qDebug("Huh what do ya want");
}
diff --git a/noncore/settings/networksettings/ppp/accounts.cpp b/noncore/settings/networksettings/ppp/accounts.cpp
index 28d8732..b8a1925a 100644
--- a/noncore/settings/networksettings/ppp/accounts.cpp
+++ b/noncore/settings/networksettings/ppp/accounts.cpp
@@ -1,323 +1,349 @@
/*
* kPPP: A pppd front end for the KDE project
*
* $Id$
*
* Copyright (C) 1997 Bernd Johannes Wuebben
* wuebben@math.cornell.edu
*
* based on EzPPP:
* Copyright (C) 1997 Jay Painter
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
+#include "accounts.h"
+#include "authwidget.h"
+#include "pppdata.h"
+#include "edit.h"
+
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qdir.h>
-#include <stdlib.h>
#include <qlayout.h>
#include <qtabwidget.h>
#include <qtabdialog.h>
#include <qwhatsthis.h>
#include <qmessagebox.h>
-
#include <qapplication.h>
#include <qbuttongroup.h>
#include <qmessagebox.h>
#include <qvgroupbox.h>
-#include "accounts.h"
-#include "authwidget.h"
-#include "pppdata.h"
-#include "edit.h"
+/* STD */
+#include <stdlib.h>
void parseargs(char* buf, char** args);
AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f )
: ChooserWidget( pd, parent, name, f )
{
QWhatsThis::add(edit_b, tr("Allows you to modify the selected account"));
QWhatsThis::add(new_b, tr("Create a new dialup connection\n"
"to the Internet"));
QWhatsThis::add(copy_b,
tr("Makes a copy of the selected account. All\n"
"settings of the selected account are copied\n"
"to a new account, that you can modify to fit your\n"
"needs"));
QWhatsThis::add(delete_b,
tr("<p>Deletes the selected account\n\n"
"<font color=\"red\"><b>Use with care!</b></font>"));
copy_b->setEnabled( false ); //FIXME
// delete_b->setEnabled( false ); //FIXME
listListbox->insertStringList(_pppdata->getAccountList());
- for (uint i = 0; i < listListbox->count(); i++){
+ for (uint i = 0; i < listListbox->count(); i++)
+ {
if ( listListbox->text(i) == _pppdata->accname() )
listListbox->setCurrentItem( i );
}
}
-void AccountWidget::slotListBoxSelect(int idx) {
+void AccountWidget::slotListBoxSelect(int idx)
+{
bool ok = _pppdata->setAccount( listListbox->text(idx) );
ok = (bool)(idx != -1);
delete_b->setEnabled(ok);
edit_b->setEnabled(ok);
//FIXME copy_b->setEnabled(ok);
}
-void AccountWidget::edit() {
+void AccountWidget::edit()
+{
_pppdata->setAccount(listListbox->text(listListbox->currentItem()));
int result = doTab();
- if(result == QDialog::Accepted) {
+ if(result == QDialog::Accepted)
+ {
listListbox->changeItem(_pppdata->accname(),listListbox->currentItem());
// emit resetaccounts();
_pppdata->save();
}
}
-void AccountWidget::create() {
+void AccountWidget::create()
+{
// if(listListbox->count() == MAX_ACCOUNTS) {
// QMessageBox::information(this, "sorry",
// tr("Maximum number of accounts reached."));
// return;
// }
int result;
- if (_pppdata->newaccount() == -1){
+ if (_pppdata->newaccount() == -1)
+ {
qDebug("_pppdata->newaccount() == -1");
return;
}
result = doTab();
- if(result == QDialog::Accepted) {
+ if(result == QDialog::Accepted)
+ {
listListbox->insertItem(_pppdata->accname());
listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true);
_pppdata->save();
- } else
+ }
+ else
_pppdata->deleteAccount();
}
-void AccountWidget::copy() {
+void AccountWidget::copy()
+{
// if(listListbox->count() == MAX_ACCOUNTS) {
// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
// return;
// }
- if(listListbox->currentItem()<0) {
+ if(listListbox->currentItem()<0)
+ {
QMessageBox::information(this, "sorry", tr("No account selected."));
return;
}
_pppdata->copyaccount(listListbox->currentText());
listListbox->insertItem(_pppdata->accname());
// emit resetaccounts();
_pppdata->save();
}
-void AccountWidget::remove() {
+void AccountWidget::remove()
+{
QString s = tr("Are you sure you want to delete\nthe account \"%1\"?")
.arg(listListbox->text(listListbox->currentItem()));
if(QMessageBox::warning(this,tr("Confirm"),s,
QMessageBox::Yes,QMessageBox::No
) != QMessageBox::Yes)
return;
if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem())))
listListbox->removeItem(listListbox->currentItem());
// emit resetaccounts();
// _pppdata->save();
slotListBoxSelect(listListbox->currentItem());
}
-int AccountWidget::doTab(){
+int AccountWidget::doTab()
+{
QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp );
QVBoxLayout *layout = new QVBoxLayout( dlg );
layout->setSpacing( 0 );
layout->setMargin( 1 );
QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
layout->addWidget( tabWindow );
bool isnewaccount;
- if(_pppdata->accname().isEmpty()) {
+ if(_pppdata->accname().isEmpty())
+ {
dlg->setCaption(tr("New Account"));
isnewaccount = true;
- } else {
+ }
+ else
+ {
QString tit = tr("Edit Account: ");
tit += _pppdata->accname();
dlg->setCaption(tit);
isnewaccount = false;
}
// // DIAL WIDGET
dial_w = new DialWidget( _pppdata, tabWindow, isnewaccount, "Dial Setup");
tabWindow->addTab( dial_w, tr("Dial") );
// // AUTH WIDGET
auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script"));
tabWindow->addTab( auth_w, tr("Authentication") );
// // IP WIDGET
ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup"));
tabWindow->addTab( ip_w, tr("IP") );
// // GATEWAY WIDGET
gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup"));
tabWindow->addTab( gateway_w, tr("Gateway") );
// // DNS WIDGET
dns_w = new DNSWidget( _pppdata, tabWindow, isnewaccount, tr("DNS Servers") );
tabWindow->addTab( dns_w, tr("DNS") );
// // EXECUTE WIDGET
ExecWidget *exec_w = new ExecWidget( _pppdata, tabWindow, isnewaccount, tr("Execute Programs"));
tabWindow->addTab( exec_w, tr("Execute") );
int result = 0;
bool ok = false;
- while (!ok){
- dlg->showMaximized();
- result = dlg->exec();
+ while (!ok)
+ {
+ result = QPEApplication::execDialog( dlg );
ok = true;
- if(result == QDialog::Accepted) {
- if (!auth_w->check()){
+ if(result == QDialog::Accepted)
+ {
+ if (!auth_w->check())
+ {
ok = false;
- } else if(!dial_w->save()) {
+ }
+ else if(!dial_w->save())
+ {
QMessageBox::critical(this, "error", tr( "You must enter a unique account name"));
ok = false;
- }else{
+ }
+ else
+ {
ip_w->save();
dns_w->save();
gateway_w->save();
auth_w->save();
exec_w->save();
}
}
}
delete dlg;
return result;
}
// QString AccountWidget::prettyPrintVolume(unsigned int n) {
// int idx = 0;
// const QString quant[] = {tr("Byte"), tr("KB"),
// tr("MB"), tr("GB"), QString::null};
// float n1 = n;
// while(n >= 1024 && quant[idx] != QString::null) {
// idx++;
// n /= 1024;
// }
// int i = idx;
// while(i--)
// n1 = n1 / 1024.0;
// QString s = QString::number( n1, 'f', idx==0 ? 0 : 1 );
// s += " " + quant[idx];
// return s;
// }
/////////////////////////////////////////////////////////////////////////////
//
// Queries the user what to reset: costs, volume or both
//
/////////////////////////////////////////////////////////////////////////////
// QueryReset::QueryReset(QWidget *parent) : QDialog(parent, 0, true) {
// // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
// setCaption(tr("Reset Accounting"));
// QVBoxLayout *tl = new QVBoxLayout(this, 10, 10);
// QVGroupBox *f = new QVGroupBox(tr("What to Reset"), this);
// QVBoxLayout *l1 = new QVBoxLayout(this, 10, 10);
// // costs = new QCheckBox(tr("Reset the accumulated phone costs"), f);
// // costs->setChecked(true);
// // l1->addWidget(costs);
// // QWhatsThis::add(costs, tr("Check this to set the phone costs\n"
// // "to zero. Typically you'll want to\n"
// // "do this once a month."));
// // volume = new QCheckBox(tr("Reset volume accounting"), f);
// // volume->setChecked(true);
// // l1->addWidget(volume);
// // QWhatsThis::add(volume, tr("Check this to set the volume accounting\n"
// // "to zero. Typically you'll want to do this\n"
// // "once a month."));
// l1->activate();
// // this activates the f-layout and sets minimumSize()
// f->show();
// tl->addWidget(f);
// QButtonGroup *bbox = new QButtonGroup(this);
// // bbox->addStretch(1);
// QPushButton *ok = new QPushButton( bbox, tr("OK") );
// bbox->insert(ok);
// ok->setDefault(true);
// QPushButton *cancel = new QPushButton( bbox, tr("Cancel") );
// bbox->insert(cancel);
// connect(ok, SIGNAL(clicked()),
// this, SLOT(accepted()));
// connect(cancel, SIGNAL(clicked()),
// this, SLOT(reject()));
// bbox->layout();
// tl->addWidget(bbox);
// }
// void QueryReset::accepted() {
// int result = costs->isChecked() ? COSTS : 0;
// result += volume->isChecked() ? VOLUME : 0;
// done(result);
// }
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index 5540946..ff1b11b 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -1,518 +1,526 @@
/*
* kPPP: A pppd front end for the KDE project
*
* $Id$
*
* Copyright (C) 1997 Bernd Johannes Wuebben
* wuebben@math.cornell.edu
*
* based on EzPPP:
* Copyright (C) 1997 Jay Painter
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <termios.h>
-#include <string.h>
+#include "general.h"
+#include "interfaceppp.h"
+#include "modeminfo.h"
+#include "modemcmds.h"
+#include "pppdata.h"
+/* OPIE */
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qpushbutton.h>
#include <qslider.h>
#include <qspinbox.h>
#include <qwhatsthis.h>
-#include <qpe/config.h>
-// #include <qgroupbox.h>
-
-
-#include "general.h"
-#include "interfaceppp.h"
-//#include "miniterm.h"
-#include "modeminfo.h"
-#include "modemcmds.h"
-//#include "devices.h"
-#include "pppdata.h"
-//#include <klocale.h>
-
+/* STD */
+#include <termios.h>
+#include <string.h>
ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
: QWidget(parent, name), _pppdata(pd)
{
int k;
QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint());
QLabel *label1;
label1 = new QLabel(tr("Modem &name:"), this);
tl->addWidget(label1, 0, 0);
modemname = new QLineEdit(this, "modemName");
modemname->setText( _pppdata->devname() );
label1->setBuddy(modemname);
tl->addWidget(modemname, 0, 1);
label1 = new QLabel(tr("Modem de&vice:"), this);
tl->addWidget(label1, 1, 0);
modemdevice = new QComboBox(false, this);
modemdevice->setEditable( true );
modemdevice->setDuplicatesEnabled ( false );
modemdevice->setInsertionPolicy( QComboBox::AtTop );
label1->setBuddy(modemdevice);
Config cfg("NetworkSetupPPP");
cfg.setGroup("Devices_General");
QStringList devs = cfg.readListEntry("devices",',');
if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0";
modemdevice->insertStringList( devs );
tl->addWidget(modemdevice, 1, 1);
// connect(modemdevice, SIGNAL(activated(int)),
// SLOT(setmodemdc(int)));
// connect(modemdevice, SIGNAL(textChanged( const QString & ) ),
// SLOT( setmodemdc( const QString &) ) );
QString tmp = tr("This specifies the serial port your modem is attached \n"
"to. On Linux/x86, typically this is either /dev/ttyS0 \n"
"(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n"
"\n"
"If you have an internal ISDN card with AT command\n"
"emulation (most cards under Linux support this), you\n"
"should select one of the /dev/ttyIx devices.");
QWhatsThis::add(label1,tmp);
QWhatsThis::add(modemdevice,tmp);
label1 = new QLabel(tr("&Flow control:"), this);
tl->addWidget(label1, 2, 0);
flowcontrol = new QComboBox(false, this);
label1->setBuddy(flowcontrol);
flowcontrol->insertItem(tr("Hardware [CRTSCTS]"));
flowcontrol->insertItem(tr("Software [XON/XOFF]"));
flowcontrol->insertItem(tr("None"));
tl->addWidget(flowcontrol, 2, 1);
// connect(flowcontrol, SIGNAL(activated(int)),
// SLOT(setflowcontrol(int)));
tmp = tr("<p>Specifies how the serial port and modem\n"
"communicate. You should not change this unless\n"
"you know what you are doing.\n"
"\n"
"<b>Default</b>: CRTSCTS");
QWhatsThis::add(label1,tmp);
QWhatsThis::add(flowcontrol,tmp);
QLabel *labelenter = new QLabel(tr("&Line termination:"), this);
tl->addWidget(labelenter, 3, 0);
enter = new QComboBox(false, this);
labelenter->setBuddy(enter);
enter->insertItem("CR");
enter->insertItem("LF");
enter->insertItem("CR/LF");
tl->addWidget(enter, 3, 1);
// connect(enter, SIGNAL(activated(int)), SLOT(setenter(int)));
tmp = tr("<p>Specifies how AT commands are sent to your\n"
"modem. Most modems will work fine with the\n"
"default <i>CR/LF</i>. If your modem does not react\n"
"to the init string, you should try different\n"
"settings here\n"
"\n"
"<b>Default</b>: CR/LF");
QWhatsThis::add(labelenter,tmp);
QWhatsThis::add(enter, tmp);
QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this);
tl->addWidget(baud_label, 4, 0);
baud_c = new QComboBox(this);
baud_label->setBuddy(baud_c);
- static const char *baudrates[] = {
+ static const char *baudrates[] =
+ {
#ifdef B460800
"460800",
#endif
#ifdef B230400
"230400",
#endif
#ifdef B115200
"115200",
#endif
#ifdef B57600
"57600",
#endif
"38400",
"19200",
"9600",
"2400",
- 0};
+ 0
+ };
for(k = 0; baudrates[k]; k++)
baud_c->insertItem(baudrates[k]);
baud_c->setCurrentItem(3);
// connect(baud_c, SIGNAL(activated(int)),
// this, SLOT(speed_selection(int)));
tl->addWidget(baud_c, 4, 1);
tmp = tr("Specifies the speed your modem and the serial\n"
"port talk to each other. You should begin with\n"
"the default of 38400 bits/sec. If everything\n"
"works you can try to increase this value, but to\n"
"no more than 115200 bits/sec (unless you know\n"
"that your serial port supports higher speeds).");
QWhatsThis::add(baud_label,tmp);
QWhatsThis::add(baud_c,tmp);
- for(int i=0; i <= enter->count()-1; i++) {
+ for(int i=0; i <= enter->count()-1; i++)
+ {
if(_pppdata->enter() == enter->text(i))
enter->setCurrentItem(i);
}
tl->addRowSpacing(5, 10);
//Modem Lock File
modemlockfile = new QCheckBox(tr("&Use lock file"), this);
modemlockfile->setChecked(_pppdata->modemLockFile());
// connect(modemlockfile, SIGNAL(toggled(bool)),
// SLOT(modemlockfilechanged(bool)));
tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
// l12->addStretch(1);
QWhatsThis::add(modemlockfile,
tr("<p>To prevent other programs from accessing the\n"
"modem while a connection is established, a\n"
"file can be created to indicate that the modem\n"
"is in use. On Linux an example file would be\n"
"<tt>/var/lock/LCK..ttyS1</tt>\n"
"Here you can select whether this locking will\n"
"be done.\n"
"\n"
"<b>Default</b>: On"));
// Modem Timeout Line Edit Box
QHBoxLayout *timeoutLayout = new QHBoxLayout( this );
QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" );
modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" );
// modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this);
// modemtimeout->setLabel(tr("Modem &timeout:"));
// modemtimeout->setRange(1, 120, 1);
modemtimeout->setSuffix(tr(" sec"));
modemtimeout->setValue( _pppdata->modemTimeout() );
// connect(modemtimeout, SIGNAL(valueChanged(int)),
// SLOT(modemtimeoutchanged(int)));
timeoutLayout->addWidget(timeoutlabel);
timeoutLayout->addWidget(modemtimeout);
tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1);
QWhatsThis::add(modemtimeout,
tr("This specifies how long <i>kppp</i> waits for a\n"
"<i>CONNECT</i> response from your modem. The\n"
"recommended value is 30 seconds."));
//set stuff from gpppdata
- for(int i=0; i <= enter->count()-1; i++) {
+ for(int i=0; i <= enter->count()-1; i++)
+ {
if(_pppdata->enter() == enter->text(i))
enter->setCurrentItem(i);
}
- for(int i=0; i <= modemdevice->count()-1; i++) {
+ for(int i=0; i <= modemdevice->count()-1; i++)
+ {
if(_pppdata->modemDevice() == modemdevice->text(i))
modemdevice->setCurrentItem(i);
}
- for(int i=0; i <= flowcontrol->count()-1; i++) {
+ for(int i=0; i <= flowcontrol->count()-1; i++)
+ {
if(_pppdata->flowcontrol() == flowcontrol->text(i))
flowcontrol->setCurrentItem(i);
}
//set the modem speed
for(int i=0; i < baud_c->count(); i++)
if(baud_c->text(i) == _pppdata->speed())
baud_c->setCurrentItem(i);
tl->setRowStretch(1, 1);
}
ModemWidget::~ModemWidget()
{
QStringList devs;
for (int i=0;i<modemdevice->count();i++)
{
QString s = modemdevice->text(i);
s.simplifyWhiteSpace();
if (! s.isEmpty() ) devs << s;
}
QString edited = modemdevice->currentText();
- if ( !( edited ).isEmpty() ) {
+ if ( !( edited ).isEmpty() )
+ {
edited.simplifyWhiteSpace();
- if ( devs.contains( edited ) == 0 ) {
+ if ( devs.contains( edited ) == 0 )
+ {
devs << edited;
}
_pppdata->setModemDevice( edited );
}
Config cfg("NetworkSetupPPP");
cfg.setGroup("Devices_General");
cfg.writeEntry("devices",devs,',');
}
// void ModemWidget::speed_selection(int) {
// _pppdata->setSpeed(baud_c->text(baud_c->currentItem()));
// }
// void ModemWidget::setenter(int ) {
// _pppdata->setEnter(enter->text(enter->currentItem()));
// }
// void ModemWidget::setmodemdc(int i) {
// _pppdata->setModemDevice(modemdevice->text(i));
// }
// void ModemWidget::setmodemdc( const QString &string ) {
// _pppdata->setModemDevice( string );
// }
// void ModemWidget::setflowcontrol(int i) {
// _pppdata->setFlowcontrol(flowcontrol->text(i));
// }
// void ModemWidget::modemlockfilechanged(bool set) {
// _pppdata->setModemLockFile(set);
// }
// void ModemWidget::modemtimeoutchanged(int n) {
// _pppdata->setModemTimeout(n);
// }
bool ModemWidget::save()
{
//first check to make sure that the device name is unique!
if(modemname->text().isEmpty() ||
!_pppdata->isUniqueDevname(modemname->text()))
return false;
qDebug("ModemWidget::save saving modem1 data");
_pppdata->setDevname( modemname->text() );
_pppdata->setModemDevice( modemdevice->currentText() );
_pppdata->setFlowcontrol(flowcontrol->currentText());
_pppdata->setFlowcontrol(flowcontrol->currentText());
_pppdata->setSpeed(baud_c->currentText());
_pppdata->setModemLockFile( modemlockfile->isChecked());
_pppdata->setModemTimeout( modemtimeout->value() );
return true;
}
ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent,
const char *name)
: QWidget(parent, name), _pppdata(pd), _ifaceppp(ip)
{
QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint());
waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this);
waitfordt->setChecked(_pppdata->waitForDialTone());
// connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool)));
l1->addWidget(waitfordt);
QWhatsThis::add(waitfordt,
tr("<p>Normally the modem waits for a dial tone\n"
"from your phone line, indicating that it can\n"
"start to dial a number. If your modem does not\n"
"recognize this sound, or your local phone system\n"
"does not emit such a tone, uncheck this option\n"
"\n"
"<b>Default:</b>: On"));
QHBoxLayout *waitLayout = new QHBoxLayout( this );
QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" );
busywait = new QSpinBox( 0, 300, 5, this, "busyWait" );
// busywait = new KIntNumInput(_pppdata->busyWait(), this);
// busywait->setLabel(tr("B&usy wait:"));
// busywait->setRange(0, 300, 5, true);
busywait->setSuffix(tr(" sec"));
// connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int)));
waitLayout->addWidget(waitLabel);
waitLayout->addWidget(busywait);
l1->addLayout( waitLayout );
QWhatsThis::add(busywait,
tr("Specifies the number of seconds to wait before\n"
"redial if all dialed numbers are busy. This is\n"
"necessary because some modems get stuck if the\n"
"same number is busy too often.\n"
"\n"
"The default is 0 seconds, you should not change\n"
"this unless you need to."));
l1->addSpacing(10);
QHBoxLayout *hbl = new QHBoxLayout;
hbl->setSpacing(2);//KDialog::spacingHint());
QLabel *volumeLabel = new QLabel(tr("Modem &volume:"), this);
hbl->addWidget(volumeLabel);
volume = new QSlider(0, 2, 1, _pppdata->volume(),
QSlider::Horizontal, this);
volumeLabel->setBuddy(volume);
volume->setTickmarks(QSlider::Below);
hbl->addWidget(volume);
l1->addLayout(hbl);
// connect(volume, SIGNAL(valueChanged(int)),
// this, SLOT(volumeChanged(int)));
QString tmp = tr("Most modems have a speaker which makes\n"
"a lot of noise when dialing. Here you can\n"
"either turn this completely off or select a\n"
"lower volume.\n"
"\n"
"If this does not work for your modem,\n"
"you must modify the modem volume command.");
QWhatsThis::add(volumeLabel,tmp);
QWhatsThis::add(volume, tmp);
l1->addSpacing(20);
#if 0
chkbox1 = new QCheckBox(tr("Modem asserts CD line"), this);
chkbox1->setChecked(_pppdata->UseCDLine());
connect(chkbox1,SIGNAL(toggled(bool)),
this,SLOT(use_cdline_toggled(bool)));
l12->addWidget(chkbox1);
l12->addStretch(1);
l1->addStretch(1);
QWhatsThis::add(chkbox1,
tr("This controls how <i>kppp</i> detects that the modem\n"
"is not responding. Unless you are having\n"
"problems with this, do not modify this setting.\n"
"\n"
"<b>Default</b>: Off"));
#endif
modemcmds = new QPushButton(tr("Mod&em Commands..."), this);
QWhatsThis::add(modemcmds,
tr("Allows you to change the AT command for\n"
"your modem."));
modeminfo_button = new QPushButton(tr("&Query Modem..."), this);
QWhatsThis::add(modeminfo_button,
tr("Most modems support the ATI command set to\n"
"find out vendor and revision of your modem.\n"
"\n"
"Press this button to query your modem for\n"
"this information. It can be useful to help\n"
"you setup the modem"));
// terminal_button = new QPushButton(tr("&Terminal..."), this);
// QWhatsThis::add(terminal_button,
// tr("Opens the built-in terminal program. You\n"
// "can use this if you want to play around\n"
// "with your modem's AT command set"));
QHBoxLayout *hbox = new QHBoxLayout();
l1->addLayout(hbox);
hbox->addStretch(1);
QVBoxLayout *vbox = new QVBoxLayout();
hbox->addLayout(vbox);
vbox->addWidget(modemcmds);
vbox->addWidget(modeminfo_button);
// vbox->addWidget(terminal_button);
hbox->addStretch(1);
l1->addStretch(1);
connect(modemcmds, SIGNAL(clicked()),
SLOT(modemcmdsbutton()));
connect(modeminfo_button, SIGNAL(clicked()),
SLOT(query_modem()));
// connect(terminal_button, SIGNAL(clicked()),
// SLOT(terminal()));
}
-void ModemWidget2::modemcmdsbutton() {
+void ModemWidget2::modemcmdsbutton()
+{
ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp);
- mc.showMaximized();
- mc.exec();
+
+ QPEApplication::execDialog( &mc );
}
-void ModemWidget2::query_modem() {
+void ModemWidget2::query_modem()
+{
ModemTransfer mt(_ifaceppp->modem(), this);
mt.exec();
}
// void ModemWidget2::terminal() {
// MiniTerm terminal(NULL,NULL);
// terminal.exec();
// }
// #if 0
// void ModemWidget2::use_cdline_toggled(bool on) {
// _pppdata->setUseCDLine(on);
// }
// #endif
// void ModemWidget2::waitfordtchanged(bool b) {
// _pppdata->setWaitForDialTone((int)b);
// }
// void ModemWidget2::busywaitchanged(int n) {
// _pppdata->setbusyWait(n);
// }
// void ModemWidget2::volumeChanged(int v) {
// _pppdata->setVolume(v);
// }
bool ModemWidget2::save()
{
_pppdata->setWaitForDialTone(waitfordt->isChecked());
_pppdata->setbusyWait(busywait->value());
_pppdata->setVolume(volume->value());
return true;
}
diff --git a/noncore/settings/networksettings/ppp/modeminfo.cpp b/noncore/settings/networksettings/ppp/modeminfo.cpp
index dbb26db..df0bf9b 100644
--- a/noncore/settings/networksettings/ppp/modeminfo.cpp
+++ b/noncore/settings/networksettings/ppp/modeminfo.cpp
@@ -1,294 +1,313 @@
/*
* kPPP: A front end for pppd for the KDE project
*
* $Id$
*
* Copyright (C) 1997 Bernd Johannes Wuebben
* wuebben@math.cornell.edu
*
* This file contributed by: Markus Wuebben, mwuebben@fiwi02.wiwi.uni-tuebingen.de
*
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library 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
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this program; if not, write to the Free
* Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <unistd.h>
+#include "modeminfo.h"
+#include "modem.h"
+
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qregexp.h>
#include <qlayout.h>
-// #include <kwin.h>
-// #include <kmessagebox.h>
-// #include <kapplication.h>
#include <qmessagebox.h>
#include <qapplication.h>
-#include "modeminfo.h"
-#include "modem.h"
+
+/* STD */
+#include <unistd.h>
ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name)
: QDialog(parent, name,TRUE, WStyle_Customize|WStyle_NormalBorder),
_modem(mo)
{
setCaption(QObject::tr("ATI Query"));
// KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
QVBoxLayout *tl = new QVBoxLayout(this, 10, 10);
progressBar = new QProgressBar(this, "bar");
progressBar->setTotalSteps(8);
statusBar = new QLabel(this,"sBar");
statusBar->setFrameStyle(QFrame::Panel|QFrame::Sunken);
statusBar->setAlignment(AlignCenter);
// This is a rather complicated case. Since we do not know which
// message is the widest in the national language, we'd to
// search all these messages. This is a little overkill, so I take
// the longest english message, translate it and give it additional
// 20 percent space. Hope this is enough.
statusBar->setText(QObject::tr("Unable to create modem lock file."));
statusBar->setFixedWidth((statusBar->sizeHint().width() * 12) / 10);
statusBar->setFixedHeight(statusBar->sizeHint().height() + 4);
// set original text
statusBar->setText(QObject::tr("Looking for modem..."));
progressBar->setFixedHeight(statusBar->minimumSize().height());
tl->addWidget(progressBar);
tl->addWidget(statusBar);
cancel = new QPushButton(QObject::tr("Cancel"), this);
cancel->setFocus();
connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton()));
QHBoxLayout *l1 = new QHBoxLayout;
tl->addLayout(l1);
l1->addStretch(1);
l1->addWidget(cancel);
setFixedSize(sizeHint());
step = 0;
////////////////////////////////////////////////
timeout_timer = new QTimer(this);
connect(timeout_timer, SIGNAL(timeout()), SLOT(time_out_slot()));
scripttimer = new QTimer(this);
connect(scripttimer, SIGNAL(timeout()), SLOT(do_script()));
timeout_timer->start(15000,TRUE); // 15 secs single shot
QTimer::singleShot(500, this, SLOT(init()));
}
-void ModemTransfer::ati_done() {
+void ModemTransfer::ati_done()
+{
scripttimer->stop();
timeout_timer->stop();
_modem->closetty();
_modem->unlockdevice();
hide();
// open the result window
ModemInfo *mi = new ModemInfo(this);
for(int i = 0; i < NUM_OF_ATI; i++)
mi->setAtiString(i, ati_query_strings[i]);
- mi->showMaximized();
- mi->exec();
+
+ QPEApplication::execDialog( mi );
delete mi;
accept();
}
-void ModemTransfer::time_out_slot() {
+void ModemTransfer::time_out_slot()
+{
timeout_timer->stop();
scripttimer->stop();
QMessageBox::warning(this, tr("Error"), QObject::tr("Modem Query timed out."));
reject();
}
-void ModemTransfer::init() {
+void ModemTransfer::init()
+{
qApp->processEvents();
int lock = _modem->lockdevice();
- if (lock == 1) {
+ if (lock == 1)
+ {
statusBar->setText(QObject::tr("Modem device is locked."));
return;
}
- if (lock == -1) {
+ if (lock == -1)
+ {
statusBar->setText(QObject::tr("Unable to create modem lock file."));
return;
}
- if(_modem->opentty()) {
- if(_modem->hangup()) {
+ if(_modem->opentty())
+ {
+ if(_modem->hangup())
+ {
usleep(100000); // wait 0.1 secs
_modem->writeLine("ATE0Q1V1"); // E0 don't echo the commands I send ...
statusBar->setText(QObject::tr("Modem Ready"));
qApp->processEvents();
usleep(100000); // wait 0.1 secs
qApp->processEvents();
scripttimer->start(1000); // this one does the ati query
// clear modem buffer
_modem->flush();
_modem->notify(this, SLOT(readChar(unsigned char)));
return;
}
}
// opentty() or hangup() failed
statusBar->setText(_modem->modemMessage());
step = 99; // wait until cancel is pressed
_modem->unlockdevice();
}
-void ModemTransfer::do_script() {
+void ModemTransfer::do_script()
+{
QString msg;
QString query;
- switch(step) {
+ switch(step)
+ {
case 0:
readtty();
statusBar->setText("ATI...");
progressBar->setProgress( progressBar->progress() + 1);
_modem->writeLine("ATI\n");
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
readtty();
msg.sprintf("ATI %d ...", step);
query.sprintf("ATI%d\n", step);
statusBar->setText(msg);
progressBar->setProgress( progressBar->progress() + 1);
_modem->writeLine(query.local8Bit());
break;
default:
readtty();
ati_done();
}
step++;
}
-void ModemTransfer::readChar(unsigned char c) {
+void ModemTransfer::readChar(unsigned char c)
+{
if(readbuffer.length() < 255)
readbuffer += c;
}
-void ModemTransfer::readtty() {
+void ModemTransfer::readtty()
+{
if (step == 0)
return;
readbuffer.replace(QRegExp("[\n\r]")," "); // remove stray \n and \r
readbuffer = readbuffer.stripWhiteSpace(); // strip of leading or trailing white
// space
if(step <= NUM_OF_ATI)
ati_query_strings[step-1] = readbuffer.copy();
readbuffer = "";
}
-void ModemTransfer::cancelbutton() {
+void ModemTransfer::cancelbutton()
+{
scripttimer->stop();
_modem->stop();
timeout_timer->stop();
statusBar->setText(QObject::tr("One moment please..."));
qApp->processEvents();
_modem->hangup();
_modem->closetty();
_modem->unlockdevice();
reject();
}
-void ModemTransfer::closeEvent( QCloseEvent *e ) {
+void ModemTransfer::closeEvent( QCloseEvent *e )
+{
cancelbutton();
e->accept();
}
ModemInfo::ModemInfo(QWidget *parent, const char* name)
: QDialog(parent, name, TRUE, WStyle_Customize|WStyle_NormalBorder)
{
QString label_text;
setCaption(QObject::tr("Modem Query Results"));
// KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
QVBoxLayout *tl = new QVBoxLayout(this, 10, 10);
QGridLayout *l1 = new QGridLayout(NUM_OF_ATI, 2, 5);
tl->addLayout(l1, 1);
- for(int i = 0 ; i < NUM_OF_ATI ; i++) {
+ for(int i = 0 ; i < NUM_OF_ATI ; i++)
+ {
label_text = "";
if ( i == 0)
label_text.sprintf("ATI :");
else
label_text.sprintf("ATI %d:", i );
ati_label[i] = new QLabel(label_text, this);
l1->addWidget(ati_label[i], i, 0);
ati_label_result[i] = new QLineEdit(this);
ati_label_result[i]->setMinimumWidth(fontMetrics().width('H') * 24);
l1->addWidget(ati_label_result[i], i, 1);
}
//tl->addSpacing(1);
QHBoxLayout *l2 = new QHBoxLayout;
QPushButton *ok = new QPushButton(QObject::tr("Close"), this);
ok->setDefault(TRUE);
ok->setFocus();
tl->addLayout(l2);
l2->addStretch(1);
connect(ok, SIGNAL(clicked()), SLOT(accept()));
l2->addWidget(ok);
setMinimumSize(sizeHint());
}
-void ModemInfo::setAtiString(int i, QString s) {
+void ModemInfo::setAtiString(int i, QString s)
+{
if(i < NUM_OF_ATI)
ati_label_result[i]->setText(s);
}
//#include "modeminfo.moc"
diff --git a/noncore/settings/networksettings/ppp/pppmodule.cpp b/noncore/settings/networksettings/ppp/pppmodule.cpp
index f7dacf6..a7caffe 100644
--- a/noncore/settings/networksettings/ppp/pppmodule.cpp
+++ b/noncore/settings/networksettings/ppp/pppmodule.cpp
@@ -1,250 +1,283 @@
-#include <errno.h>
-#include <signal.h>
-
-
-#include <qpe/config.h>
#include "modem.h"
#include "pppconfig.h"
#include "pppmodule.h"
#include "pppdata.h"
#include "interfaceinformationppp.h"
#include "interfaceppp.h"
+/* OPIE */
+#include <qpe/config.h>
+#include <qpe/qpeapplication.h>
+
+/* QT */
+
+/* STD */
+#include <errno.h>
+#include <signal.h>
+
// don't polute global namespace
-namespace {
+namespace
+{
/*
* If network settings is qutting and we've ppp
* devices open we need to save the pid_t the PPData
* and the interface number
*/
- struct Connection {
+ struct Connection
+ {
pid_t pid;
QString device;
QString name;
};
- class InterfaceKeeper {
+ class InterfaceKeeper
+ {
public:
InterfaceKeeper();
~InterfaceKeeper();
void addInterface( pid_t, const QString& pppDev, const QString& name );
QMap<QString, Connection> interfaces()const; // will check if still available
private:
bool isAvailable( pid_t )const;
QMap<QString, Connection> m_interfaces;
};
}
/**
* Constructor, find all of the possible interfaces
* We also need to restore the state.. it could be that
* an interface was up while closing the application
* we need to be able to shut it down...
*/
PPPModule::PPPModule() : Module()
{
InterfaceKeeper inFace;
QMap<QString,Connection> running = inFace.interfaces();
QStringList handledInterfaceNames;
QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces();
QMap<QString,QString>::Iterator it;
InterfacePPP *iface;
qDebug("getting interfaces");
- for( it = ifaces.begin(); it != ifaces.end(); ++it ){
+ for( it = ifaces.begin(); it != ifaces.end(); ++it )
+ {
qDebug("ifaces %s %s", it.key().latin1(), it.data().latin1() );
iface = new InterfacePPP( 0, it.key() );
iface->setHardwareName( it.data() );
list.append( (Interface*)iface );
// check if (*it) is one of the running ifaces
- if ( running.contains( it.data() ) ) {
+ if ( running.contains( it.data() ) )
+ {
qDebug("iface is running %s", it.key().latin1() );
handledInterfaceNames << running[it.data()].device;
iface->setStatus( true );
iface->setPPPDpid( running[it.data()].pid );
iface->modem()->setPPPDevice( running[it.data()].device );
iface->refresh();
}
}
setHandledInterfaceNames( handledInterfaceNames );
}
/**
* Delete any interfaces that we own.
*/
-PPPModule::~PPPModule(){
+PPPModule::~PPPModule()
+{
qDebug("PPPModule::~PPPModule() " );
QMap<QString,QString> ifaces;
InterfaceKeeper keeper;
Interface *i;
- for ( i=list.first(); i != 0; i=list.next() ){
+ for ( i=list.first(); i != 0; i=list.next() )
+ {
/* if online save the state */
- if ( i->getStatus() ) {
+ if ( i->getStatus() )
+ {
qDebug("Iface %s is still up", i->getHardwareName().latin1() );
InterfacePPP* ppp = static_cast<InterfacePPP*>(i);
keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() );
}
ifaces.insert( i->getInterfaceName(), i->getHardwareName() );
delete i;
}
PPPData::setConfiguredInterfaces( ifaces );
}
/**
* Change the current profile
*/
-void PPPModule::setProfile(const QString &newProfile){
+void PPPModule::setProfile(const QString &newProfile)
+{
profile = newProfile;
}
/**
* get the icon name for this device.
* @param Interface* can be used in determining the icon.
* @return QString the icon name (minus .png, .gif etc)
*/
-QString PPPModule::getPixmapName(Interface* ){
+QString PPPModule::getPixmapName(Interface* )
+{
return "ppp";
}
/**
* Check to see if the interface i is owned by this module.
* @param Interface* interface to check against
* @return bool true if i is owned by this module, false otherwise.
*/
-bool PPPModule::isOwner(Interface *i){
+bool PPPModule::isOwner(Interface *i)
+{
return list.find( i ) != -1;
}
/**
* Create, and return the WLANConfigure Module
* @return QWidget* pointer to this modules configure.
*/
-QWidget *PPPModule::configure(Interface *i){
+QWidget *PPPModule::configure(Interface *i)
+{
qDebug("return ModemWidget");
PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i,
0, "PPPConfig", false,
(Qt::WDestructiveClose | Qt::WStyle_ContextHelp));
return pppconfig;
}
/**
* Create, and return the Information Module
* @return QWidget* pointer to this modules info.
*/
-QWidget *PPPModule::information(Interface *i){
+QWidget *PPPModule::information(Interface *i)
+{
// We don't have any advanced pppd information widget yet :-D
// TODO ^
return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i );
}
/**
* Get all active (up or down) interfaces
* @return QList<Interface> A list of interfaces that exsist that havn't
* been called by isOwner()
*/
-QList<Interface> PPPModule::getInterfaces(){
+QList<Interface> PPPModule::getInterfaces()
+{
// List all of the files in the peer directory
qDebug("PPPModule::getInterfaces");
return list;
}
/**
* Attempt to add a new interface as defined by name
* @param name the name of the type of interface that should be created given
* by possibleNewInterfaces();
* @return Interface* NULL if it was unable to be created.
*/
-Interface *PPPModule::addNewInterface(const QString &newInterface){
+Interface *PPPModule::addNewInterface(const QString &newInterface)
+{
InterfacePPP *ifaceppp;
Interface *iface;
ifaceppp = new InterfacePPP();
PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true);
- imp.showMaximized();
- if(imp.exec() == QDialog::Accepted ){
+
+ if( QPEApplication::execDialog( &imp ) == QDialog::Accepted )
+ {
iface = (InterfacePPP*) ifaceppp;
iface->setModuleOwner( this );
list.append( iface );
return iface;
- }else {
+ }
+ else
+ {
delete ifaceppp;
iface = NULL;
}
return iface;
}
/**
* Attempts to remove the interface, doesn't delete i
* @return bool true if successful, false otherwise.
*/
-bool PPPModule::remove(Interface *i){
+bool PPPModule::remove(Interface *i)
+{
return list.remove(i);
}
void PPPModule::possibleNewInterfaces(QMap<QString, QString> &newIfaces)
{
newIfaces.insert(QObject::tr("PPP") ,
QObject::tr("generic ppp device"));
}
-namespace {
- InterfaceKeeper::InterfaceKeeper( ) {
- }
- InterfaceKeeper::~InterfaceKeeper() {
+namespace
+{
+ InterfaceKeeper::InterfaceKeeper( )
+ {}
+ InterfaceKeeper::~InterfaceKeeper()
+ {
Config cfg("ppp_plugin_keeper");
QStringList lst = cfg.groupList();
- for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
+ for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it )
+ {
Connection con;
cfg.setGroup( (*it) );
cfg.clearGroup();
}
- for (QMap<QString, Connection>::Iterator it = m_interfaces.begin(); it != m_interfaces.end(); ++it ) {
+ for (QMap<QString, Connection>::Iterator it = m_interfaces.begin(); it != m_interfaces.end(); ++it )
+ {
Connection con = it.data();
cfg.setGroup( con.name );
cfg.writeEntry( "pid", con.pid );
cfg.writeEntry( "device", con.device );
}
}
- void InterfaceKeeper::addInterface(pid_t pid, const QString& dev, const QString& name ) {
+ void InterfaceKeeper::addInterface(pid_t pid, const QString& dev, const QString& name )
+ {
Connection con;
con.pid = pid;
con.device = dev;
con.name = name;
m_interfaces.insert( name, con );
}
- QMap<QString, Connection> InterfaceKeeper::interfaces()const {
+ QMap<QString, Connection> InterfaceKeeper::interfaces()const
+ {
Config cfg("ppp_plugin_keeper");
QMap<QString, Connection> ifaces;
QStringList lst = cfg.groupList();
- for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
+ for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it )
+ {
Connection con;
cfg.setGroup( (*it) );
con.name = (*it);
con.pid = cfg.readNumEntry("pid");
con.device = cfg.readEntry("device");
qDebug(" %s %s %d", con.name.latin1(), con.device.latin1(), con.pid );
if ( con.pid != -1 && isAvailable( con.pid ) )
ifaces.insert( con.name, con );
}
return ifaces;
}
- bool InterfaceKeeper::isAvailable( pid_t p)const {
- if (::kill(p, 0 ) == 0 || errno != ESRCH ) {
+ bool InterfaceKeeper::isAvailable( pid_t p)const
+ {
+ if (::kill(p, 0 ) == 0 || errno != ESRCH )
+ {
qDebug("isAvailable %d", p);
return true;
}
qDebug("notAvailable %d", p);
return false;
}
}
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 07bf73f..74d7f8e 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,252 +1,255 @@
+
#include "wlanmodule.h"
#include "wlanimp2.h"
#include "infoimp.h"
#include "wextensions.h"
#include "interfaceinformationimp.h"
+/* OPIE */
+#include <qpe/qpeapplication.h>
+
+/* QT */
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qprogressbar.h>
#include <qspinbox.h>
#include <qtabwidget.h>
-
-
/**
* Constructor, find all of the possible interfaces
*/
WLANModule::WLANModule()
: Module(),
wlanconfigWiget(0)
{
}
/**
* Delete any interfaces that we own.
*/
WLANModule::~WLANModule(){
Interface *i;
for ( i=list.first(); i != 0; i=list.next() )
delete i;
}
/**
* Change the current profile
*/
void WLANModule::setProfile(const QString &newProfile){
profile = newProfile;
}
/**
* get the icon name for this device.
* @param Interface* can be used in determining the icon.
* @return QString the icon name (minus .png, .gif etc)
*/
QString WLANModule::getPixmapName(Interface* ){
return "wlan";
}
/**
* Check to see if the interface i is owned by this module.
* @param Interface* interface to check against
* @return bool true if i is owned by this module, false otherwise.
*/
bool WLANModule::isOwner(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return false;
i->setHardwareName("802.11b");
list.append(i);
return true;
}
/**
* Create, and return the WLANConfigure Module
* @return QWidget* pointer to this modules configure.
*/
QWidget *WLANModule::configure(Interface *i){
WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose);
wlanconfig->setProfile(profile);
return wlanconfig;
}
/**
* Create, and return the Information Module
* @return QWidget* pointer to this modules info.
*/
QWidget *WLANModule::information(Interface *i){
WExtensions we(i->getInterfaceName());
if(!we.doesHaveWirelessExtensions())
return NULL;
return getInfo( i );
}
/**
* Get all active (up or down) interfaces
* @return QList<Interface> A list of interfaces that exsist that havn't
* been called by isOwner()
*/
QList<Interface> WLANModule::getInterfaces(){
return list;
}
/**
* Attempt to add a new interface as defined by name
* @param name the name of the type of interface that should be created given
* by possibleNewInterfaces();
* @return Interface* NULL if it was unable to be created.
*/
Interface *WLANModule::addNewInterface(const QString &){
// We can't add a 802.11 interface, either the hardware will be there
// or it wont.
return NULL;
}
/**
* Attempts to remove the interface, doesn't delete i
* @return bool true if successful, false otherwise.
*/
bool WLANModule::remove(Interface*){
// Can't remove a hardware device, you can stop it though.
return false;
}
void WLANModule::receive(const QCString &param, const QByteArray &arg)
{
qDebug("WLANModule::receive "+param);
QStringList params = QStringList::split(",",param);
int count = params.count();
qDebug("WLANModule got %i params", count );
if (count < 2){
qDebug("Erorr less than 2 parameter");
qDebug("RETURNING");
return;
}
QDataStream stream(arg,IO_ReadOnly);
QString interface;
QString action;
int countMsgs = 0;
stream >> interface;
qDebug("got count? >%s<",interface.latin1());
if (interface == "count"){
qDebug("got count");
stream >> action;
qDebug("Got count num >%s<", action.latin1());
countMsgs = action.toInt();
}
QDialog *toShow;
//while (! stream.atEnd() ){
for (int i = 0; i < countMsgs; i++){
qDebug("start stream %d/%d",i,countMsgs);
if (stream.atEnd()){
qDebug("end of stream");
return;
}
stream >> interface;
qDebug("got iface");
stream >> action;
qDebug("WLANModule got interface %s and acion %s", interface.latin1(), action.latin1());
// find interfaces
Interface *ifa=0;
for ( Interface *i=list.first(); i != 0; i=list.next() ){
if (i->getInterfaceName() == interface){
qDebug("WLANModule found interface %s",interface.latin1());
ifa = i;
}
}
if (ifa == 0){
qDebug("WLANModule Did not find %s",interface.latin1());
qDebug("skipping");
count = 0;
}
if (count == 2){
// those should call the interface directly
QWidget *info = getInfo( ifa );
- info->showMaximized();
+ QPEApplication::showWidget( info );
if ( action.contains("start" ) ){
ifa->start();
} else if ( action.contains("restart" ) ){
ifa->restart();
} else if ( action.contains("stop" ) ){
ifa->stop();
}else if ( action.contains("refresh" ) ){
ifa->refresh();
}
}else if (count == 3){
QString value;
if (!wlanconfigWiget){
//FIXME: what if it got closed meanwhile?
wlanconfigWiget = (WLANImp*) configure(ifa);
toShow = (QDialog*) wlanconfigWiget;
}
- wlanconfigWiget->showMaximized();
+ QPEApplication::showWidget( wlanconfigWiget );
stream >> value;
qDebug("WLANModule (build 4) is setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() );
if (value.isEmpty()){
qDebug("value is empty!!!\nreturning");
return;
}
if ( action.contains("ESSID") ){
QComboBox *combo = wlanconfigWiget->essid;
bool found = false;
for ( int i = 0; i < combo->count(); i++)
if ( combo->text( i ) == value ){
combo->setCurrentItem( i );
found = true;
}
if (!found) combo->insertItem( value, 0 );
}else if ( action.contains("Mode") ){
QComboBox *combo = wlanconfigWiget->mode;
for ( int i = 0; i < combo->count(); i++)
if ( combo->text( i ) == value ){
combo->setCurrentItem( i );
}
}else if (action.contains("Channel")){
bool ok;
qDebug("converting channel");
int chan = value.toInt( &ok );
if (ok){
qDebug("ok setting channel");
wlanconfigWiget->specifyChan->setChecked( true );
wlanconfigWiget->networkChannel->setValue( chan );
}
}else if (action.contains("MacAddr")){
wlanconfigWiget->specifyAp->setChecked( true );
wlanconfigWiget->macEdit->setText( value );
}else
qDebug("wlan plugin has no clue");
}
qDebug("next stream");
}// while stream
qDebug("end of stream");
if (toShow) toShow->exec();
qDebug("returning");
}
QWidget *WLANModule::getInfo( Interface *i)
{
qDebug("WLANModule::getInfo start");
WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
info->tabWidget->insertTab(information, "TCP/IP", 0);
info->tabWidget->setCurrentPage( 0 );
info->tabWidget->showPage( information );
if (info->tabWidget->currentPage() == information ) qDebug("infotab OK");
else qDebug("infotab NOT OK");
qDebug("current idx %d", info->tabWidget->currentPageIndex());
qDebug("WLANModule::getInfo return");
return info;
}