author | ar <ar> | 2004-02-21 18:32:37 (UTC) |
---|---|---|
committer | ar <ar> | 2004-02-21 18:32:37 (UTC) |
commit | 536f271b1e6a1d1886e96a28524a3503c4c38c4e (patch) (side-by-side diff) | |
tree | 63b3c0ce472a89a0f9731195fececc701bf4ca67 | |
parent | db2afda83e495bff9fc19fa14a30072f1cd4c67a (diff) | |
download | opie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.zip opie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.tar.gz opie-536f271b1e6a1d1886e96a28524a3503c4c38c4e.tar.bz2 |
improve support for BigScreen
-rw-r--r-- | noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp | 97 | ||||
-rw-r--r-- | noncore/settings/networksettings/mainwindowimp.cpp | 1040 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/accounts.cpp | 206 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/general.cpp | 672 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/modeminfo.cpp | 383 | ||||
-rw-r--r-- | noncore/settings/networksettings/ppp/pppmodule.cpp | 147 | ||||
-rw-r--r-- | noncore/settings/networksettings/wlan/wlanmodule.cpp | 11 |
7 files changed, 1363 insertions, 1193 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){ - 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(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()){ - startButton->setEnabled(false); - stopButton->setEnabled(true); - restartButton->setEnabled(true); - } - 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()); +void InterfaceInformationImp::updateInterface(Interface *) +{ + if(interface->getStatus()) + { + startButton->setEnabled(false); + stopButton->setEnabled(true); + restartButton->setEnabled(true); + } + 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(){ - 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(); +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()); + 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){ - if (CheckBoxSilent->isChecked()) return; - QMessageBox::information(this, "Message", message, QMessageBox::Ok); +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){ - 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())); +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(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&))); + connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&))); - //FIXME: disable profiles for the moment: - tabWidget->setTabEnabled( tab, false ); + //FIXME: disable profiles for the moment: + tabWidget->setTabEnabled( tab, false ); - // Load connections. - // /usr/local/kde/lib/libinterfaces.la + // Load connections. + // /usr/local/kde/lib/libinterfaces.la #ifdef QWS - loadModules(QPEApplication::qpeDir() + "plugins/networksettings"); + loadModules(QPEApplication::qpeDir() + "plugins/networksettings"); #else - loader = KLibLoader::self(); - loadModules(QString("/usr/")+KStandardDirs::kde_default("lib")); + 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 ) { - /* - * we skipped it in getAllInterfaces now - * we need to ignore it as well - */ - if (m_handledIfaces.contains( *ni) ) { - qDebug("Not up iface handled by module"); - continue; - } - bool found = false; - for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){ - if(it.key() == (*ni)) - found = true; - } - 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 - QTextStream stream( &file ); // use a text stream - while ( !stream.eof() ) { // until end of file... - QString line = stream.readLine(); // line of text excluding '\n' - if(line.contains("SCHEME")){ - line = line.mid(7, line.length()); - currentProfileLabel->setText(line); - break; - } - } - file.close(); - } - makeChannel(); + getAllInterfaces(); + + Interfaces i; + QStringList list = i.getInterfaceList(); + QMap<QString, Interface*>::Iterator it; + 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) ) + { + qDebug("Not up iface handled by module"); + continue; + } + bool found = false; + for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ) + { + if(it.key() == (*ni)) + found = true; + } + 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 + QTextStream stream( &file ); // use a text stream + while ( !stream.eof() ) + { // until end of file... + QString line = stream.readLine(); // line of text excluding '\n' + 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(){ - // 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 ){ - if(iIt.key()->getModuleOwner() == NULL) - delete iIt.key(); - } +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 ) + { + 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 ){ - delete it.key(); - // I wonder why I can't delete the libraries - // What fucking shit this is. - //delete it.data(); - } + // Delete Modules and Libraries + QMap<Module*, QLibrary*>::Iterator 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... + // klibloader automaticly deletes the libraries for us... #endif } /** * Query the kernel for all of the interfaces. */ -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()) { - 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++) { - struct ifreq *pifr = &ifrs[i]; - - ifaces += pifr->ifr_name; - } - } 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) { - ifaces += line.left(loc); - } - } - } - - for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) { - int flags = 0; - 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"); +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()) + { + 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++) + { + struct ifreq *pifr = &ifrs[i]; + + ifaces += pifr->ifr_name; + } + } 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()){ - ilist = it.key()->getInterfaces(); - 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 *))); + { + 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) + { + ifaces += line.left(loc); + } + } + } + + for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) + { + int flags = 0; + 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()) + { + ilist = it.key()->getInterfaces(); + 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()); + 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()) ) { + 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()) ) + { #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()); + loadPlugin(path + "/" + fi->fileName()); + qDebug("loaded plugin: >%s< ",QString(path + "/" + fi->fileName()).latin1()); + } + ++it; } - ++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()); + 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 ){ + QLibrary *lib = new QLibrary(pluginFileName); + void *functionPointer = lib->resolve(resolveString); + if( !functionPointer ) + { #ifdef DEBUG - qDebug("MainWindowImp::loadPlugin: Warning: %s is not a plugin", pluginFileName.latin1()); + 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){ + delete lib; + return NULL; + } + // Try to get an object. + Module *object = ((Module* (*)()) functionPointer)(); + if(object == NULL) + { #ifdef DEBUG - qDebug("MainWindowImp: Couldn't create object, but did load library!"); + qDebug("MainWindowImp: Couldn't create object, but did load library!"); #endif - delete lib; - return NULL; - } + delete lib; + return NULL; + } - m_handledIfaces += object->handledInterfaceNames(); - // Store for deletion later - libraries.insert(object, lib); - return object; + 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) ){ - 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){ + QLibrary *lib = loader->library(pluginFileName); + 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) + { #ifdef DEBUG - qDebug("MainWindowImp: Couldn't create object, but did load library!"); + qDebug("MainWindowImp: Couldn't create object, but did load library!"); #endif - return NULL; - } + return NULL; + } #ifdef DEBUG - qDebug("MainWindowImp::loadPlugin:: Found object, storing."); + qDebug("MainWindowImp::loadPlugin:: Found object, storing."); #endif - // Store for deletion later - libraries.insert(object, lib); - return object; + // 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(){ - QMap<Module*, QLibrary*>::Iterator it; - QMap<QString, QString> list; - QMap<QString, Module*> newInterfaceOwners; - - 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){ - 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()){ - QListViewItem *item = addNewConnection.registeredServicesList->currentItem(); - if(!item) - return; - - for( it = libraries.begin(); it != libraries.end(); ++it ){ - if(it.key()){ - Interface *i = (it.key())->addNewInterface(item->text(0)); - if(i){ - qDebug("iface name %s",i->getInterfaceName().latin1()); - interfaceNames.insert(i->getInterfaceName(), i); - updateInterface(i); +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()) + { + (it.key())->possibleNewInterfaces(list); + } + } + // See if the list has anything that we can add. + if(list.count() == 0) + { + QMessageBox::information(this, "Sorry", "Nothing to add.", QMessageBox::Ok); + return; + } + AddConnectionImp addNewConnection(this, "AddConnectionImp", true); + addNewConnection.addConnections(list); + 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()) + { + Interface *i = (it.key())->addNewInterface(item->text(0)); + 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(){ - QListViewItem *item = connectionList->currentItem(); - if(!item) { - QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); - return; - } - - Interface *i = interfaceItems[item]; - if(i->getModuleOwner() == NULL){ - QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok); - } - else{ - if(!i->getModuleOwner()->remove(i)) - QMessageBox::information(this, tr("Error"), tr("Unable to remove."), QMessageBox::Ok); - else{ - delete item; -// QMessageBox::information(this, "Success", "Interface was removed.", QMessageBox::Ok); - } - } +void MainWindowImp::removeClicked() +{ + QListViewItem *item = connectionList->currentItem(); + if(!item) + { + QMessageBox::information(this, "Sorry","Please select an interface First.", QMessageBox::Ok); + return; + } + + Interface *i = interfaceItems[item]; + if(i->getModuleOwner() == NULL) + { + QMessageBox::information(this, "Can't remove interface.", "Interface is built in.", QMessageBox::Ok); + } + else + { + if(!i->getModuleOwner()->remove(i)) + QMessageBox::information(this, tr("Error"), tr("Unable to remove."), QMessageBox::Ok); + 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(){ - QListViewItem *item = connectionList->currentItem(); - if(!item){ - QMessageBox::information(this, tr("Sorry"),tr("Please select an interface first."), QMessageBox::Ok); - return; - } - - QString currentProfileText = currentProfileLabel->text(); - if(currentProfileText.upper() == "ALL"); +void MainWindowImp::configureClicked() +{ + QListViewItem *item = connectionList->currentItem(); + 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]; + Interface *i = interfaceItems[item]; - if(i->getModuleOwner()){ - QWidget *moduleConfigure = i->getModuleOwner()->configure(i); - if(moduleConfigure != NULL){ - i->getModuleOwner()->setProfile(currentProfileText); - moduleConfigure->showMaximized(); - return; + if(i->getModuleOwner()) + { + QWidget *moduleConfigure = i->getModuleOwner()->configure(i); + if(moduleConfigure != NULL) + { + i->getModuleOwner()->setProfile(currentProfileText); + QPEApplication::showWidget( moduleConfigure ); + return; + } } - } - InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp ); - configure->setProfile(currentProfileText); - configure->showMaximized(); + InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp ); + configure->setProfile(currentProfileText); + 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(){ - QListViewItem *item = connectionList->currentItem(); - 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()){ - QWidget *moduleInformation = i->getModuleOwner()->information(i); - if(moduleInformation != NULL){ - moduleInformation->showMaximized(); +void MainWindowImp::informationClicked() +{ + QListViewItem *item = connectionList->currentItem(); + 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()) + { + QWidget *moduleInformation = i->getModuleOwner()->information(i); + if(moduleInformation != NULL) + { + QPEApplication::showWidget( moduleInformation ); #ifdef DEBUG - qDebug("MainWindowImp::informationClicked:: Module owner has created, we showed."); + qDebug("MainWindowImp::informationClicked:: Module owner has created, we showed."); #endif - return; + return; + } } - } - InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp); - information->showMaximized(); + InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp); + 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){ - if(i->getInterfaceName() == "lo") - return; - } - - QListViewItem *item = NULL; +void MainWindowImp::updateInterface(Interface *i) +{ + if(!advancedUserMode) + { + if(i->getInterfaceName() == "lo") + return; + } - // Find the interface, making it if needed. - 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 ){ - if(it.key()->isOwner(i)) - i->setModuleOwner(it.key()); + QListViewItem *item = NULL; + + // Find the interface, making it if needed. + 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 ) + { + if(it.key()->isOwner(i)) + i->setModuleOwner(it.key()); + } + items.insert(i, item); + interfaceItems.insert(item, i); } - items.insert(i, item); - interfaceItems.insert(item, i); - } - else - item = items[i]; + else + item = items[i]; - // Update the icons and information + // Update the icons and information #ifdef QWS - item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); + item->setPixmap(0, (Resource::loadPixmap(i->getStatus() ? "up": "down"))); #else - item->setPixmap(0, (SmallIcon(i->getStatus() ? "up": "down"))); + 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); + 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))); + item->setPixmap(1, (Resource::loadPixmap(QString("networksettings/") + typeName))); #else - item->setPixmap(1, (SmallIcon(typeName))); + 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("")); + 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){ - if(newText.length() > 0) - newProfileButton->setEnabled(true); - else - newProfileButton->setEnabled(false); +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(){ - QString newProfileName = newProfile->text(); - if(profiles.grep(newProfileName).count() > 0){ - QMessageBox::information(this, "Can't Add","Profile already exists.", QMessageBox::Ok); - return; - } - profiles.append(newProfileName); - profilesList->insertItem(newProfileName); +void MainWindowImp::addProfile() +{ + QString newProfileName = newProfile->text(); + 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){ - QMessageBox::information(this, "Can't remove.","At least one profile\nis needed.", QMessageBox::Ok); - return; - } - QString profileToRemove = profilesList->currentText(); - 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()){ - 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){ - 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 ){ - QString interfaceName = it.key()->getInterfaceName(); - qDebug(interfaceName.latin1()); - if(interfaces.setInterface(interfaceName + "_" + profileToRemove)){ - interfaces.removeInterface(); - if(interfaces.setMapping(interfaceName)){ - if(profilesList->count() == 1) - interfaces.removeMapping(); - else{ - interfaces.removeMap("map", interfaceName + "_" + profileToRemove); - } +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") + { + QMessageBox::information(this, "Can't remove.","Can't remove default.", QMessageBox::Ok); + return; + } + // Can't remove the curent profile + 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) + { + 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 ) + { + QString interfaceName = it.key()->getInterfaceName(); + qDebug(interfaceName.latin1()); + if(interfaces.setInterface(interfaceName + "_" + profileToRemove)) + { + interfaces.removeInterface(); + if(interfaces.setMapping(interfaceName)) + { + if(profilesList->count() == 1) + interfaces.removeMapping(); + else + { + interfaces.removeMap("map", interfaceName + "_" + profileToRemove); + } + } + interfaces.write(); + break; + } } - interfaces.write(); - break; - } } - } } /** * A new profile has been selected, change. * @param newProfile the new profile. */ -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()){ - currentProfileLabel->setText(newProfile); - QFile::remove(scheme); - QFile file(scheme); - 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){ - // Go through them one by one - QMap<Interface*, QListViewItem*>::Iterator 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::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()) + { + currentProfileLabel->setText(newProfile); + QFile::remove(scheme); + QFile file(scheme); + 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) + { + // Go through them one by one + QMap<Interface*, QListViewItem*>::Iterator 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&)) ); + 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 ){ - qDebug("plugin >%s<", it.key()->type().latin1() ); - if(it.key()->type() == dest){ - it.key()->receive( param, arg ); - found = true; - } - } + QMap<Module*, QLibrary*>::Iterator it; + for( it = libraries.begin(); it != libraries.end(); ++it ) + { + qDebug("plugin >%s<", it.key()->type().latin1() ); + if(it.key()->type() == dest) + { + it.key()->receive( param, arg ); + found = true; + } + } - if (found) QPEApplication::setKeepRunning(); - else qDebug("Huh what do ya want"); + 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,290 +1,316 @@ /* * 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 ) + : 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>")); + 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 + copy_b->setEnabled( false ); //FIXME + // delete_b->setEnabled( false ); //FIXME - listListbox->insertStringList(_pppdata->getAccountList()); + listListbox->insertStringList(_pppdata->getAccountList()); - for (uint i = 0; i < listListbox->count(); i++){ - if ( listListbox->text(i) == _pppdata->accname() ) - listListbox->setCurrentItem( 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); + //FIXME copy_b->setEnabled(ok); } -void AccountWidget::edit() { - _pppdata->setAccount(listListbox->text(listListbox->currentItem())); +void AccountWidget::edit() +{ + _pppdata->setAccount(listListbox->text(listListbox->currentItem())); - int result = doTab(); + int result = doTab(); - if(result == QDialog::Accepted) { - listListbox->changeItem(_pppdata->accname(),listListbox->currentItem()); -// emit resetaccounts(); - _pppdata->save(); - } + 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; -// } + // 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() { -// if(listListbox->count() == MAX_ACCOUNTS) { -// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); -// return; -// } - - if(listListbox->currentItem()<0) { - QMessageBox::information(this, "sorry", tr("No account selected.")); - return; - } +void AccountWidget::copy() +{ + // if(listListbox->count() == MAX_ACCOUNTS) { + // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); + // return; + // } + + if(listListbox->currentItem()<0) + { + QMessageBox::information(this, "sorry", tr("No account selected.")); + return; + } - _pppdata->copyaccount(listListbox->currentText()); + _pppdata->copyaccount(listListbox->currentText()); - listListbox->insertItem(_pppdata->accname()); -// emit resetaccounts(); - _pppdata->save(); + 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())); + 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(QMessageBox::warning(this,tr("Confirm"),s, + QMessageBox::Yes,QMessageBox::No + ) != QMessageBox::Yes) + return; - if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) - listListbox->removeItem(listListbox->currentItem()); + if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) + listListbox->removeItem(listListbox->currentItem()); -// emit resetaccounts(); -// _pppdata->save(); + // emit resetaccounts(); + // _pppdata->save(); - slotListBoxSelect(listListbox->currentItem()); + 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 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") ); + // // AUTH WIDGET + auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script")); + tabWindow->addTab( auth_w, tr("Authentication") ); -// // IP WIDGET + // // IP WIDGET ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup")); tabWindow->addTab( ip_w, tr("IP") ); -// // GATEWAY WIDGET + // // GATEWAY WIDGET gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup")); tabWindow->addTab( gateway_w, tr("Gateway") ); -// // DNS WIDGET + // // 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") ); + // // 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(); 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> +/* STD */ +#include <termios.h> +#include <string.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> +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); -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[] = { + 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[] = + { #ifdef B460800 - "460800", + "460800", #endif #ifdef B230400 - "230400", + "230400", #endif #ifdef B115200 - "115200", + "115200", #endif #ifdef B57600 - "57600", + "57600", #endif - "38400", - "19200", - "9600", - "2400", - 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++) { - 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++) { - if(_pppdata->enter() == enter->text(i)) - enter->setCurrentItem(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++) { - 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); + "38400", + "19200", + "9600", + "2400", + 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++) + { + 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++) + { + if(_pppdata->enter() == enter->text(i)) + enter->setCurrentItem(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++) + { + 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())) + !_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) + : 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); + 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")); + 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())); + 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() { - ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp); - mc.showMaximized(); - mc.exec(); +void ModemWidget2::modemcmdsbutton() +{ + ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp); + + QPEApplication::execDialog( &mc ); } -void ModemWidget2::query_modem() { - ModemTransfer mt(_ifaceppp->modem(), this); - mt.exec(); +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) + : QDialog(parent, name,TRUE, WStyle_Customize|WStyle_NormalBorder), + _modem(mo) { - setCaption(QObject::tr("ATI Query")); -// KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); + setCaption(QObject::tr("ATI Query")); + // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); - QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); + QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); - progressBar = new QProgressBar(this, "bar"); - progressBar->setTotalSteps(8); + progressBar = new QProgressBar(this, "bar"); + progressBar->setTotalSteps(8); - statusBar = new QLabel(this,"sBar"); - statusBar->setFrameStyle(QFrame::Panel|QFrame::Sunken); - statusBar->setAlignment(AlignCenter); + 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); + // 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); + // 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())); + 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); + QHBoxLayout *l1 = new QHBoxLayout; + tl->addLayout(l1); + l1->addStretch(1); + l1->addWidget(cancel); - setFixedSize(sizeHint()); + setFixedSize(sizeHint()); - step = 0; + step = 0; - //////////////////////////////////////////////// + //////////////////////////////////////////////// - timeout_timer = new QTimer(this); - connect(timeout_timer, SIGNAL(timeout()), SLOT(time_out_slot())); + 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())); + 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())); + timeout_timer->start(15000,TRUE); // 15 secs single shot + QTimer::singleShot(500, this, SLOT(init())); } -void ModemTransfer::ati_done() { - scripttimer->stop(); - timeout_timer->stop(); - _modem->closetty(); - _modem->unlockdevice(); - hide(); +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]); - // 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(); - delete mi; + QPEApplication::execDialog( mi ); + delete mi; - accept(); + accept(); } -void ModemTransfer::time_out_slot() { - timeout_timer->stop(); - scripttimer->stop(); +void ModemTransfer::time_out_slot() +{ + timeout_timer->stop(); + scripttimer->stop(); - QMessageBox::warning(this, tr("Error"), QObject::tr("Modem Query timed out.")); - reject(); + QMessageBox::warning(this, tr("Error"), QObject::tr("Modem Query timed out.")); + reject(); } -void ModemTransfer::init() { +void ModemTransfer::init() +{ - qApp->processEvents(); + qApp->processEvents(); - int lock = _modem->lockdevice(); - if (lock == 1) { + int lock = _modem->lockdevice(); + if (lock == 1) + { - statusBar->setText(QObject::tr("Modem device is locked.")); - return; - } + 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; - } + statusBar->setText(QObject::tr("Unable to create modem lock file.")); + return; + } - if(_modem->opentty()) { - if(_modem->hangup()) { - usleep(100000); // wait 0.1 secs - _modem->writeLine("ATE0Q1V1"); // E0 don't echo the commands I send ... + 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 + 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(); + // clear modem buffer + _modem->flush(); - _modem->notify(this, SLOT(readChar(unsigned char))); - return; + _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(); + // opentty() or hangup() failed + statusBar->setText(_modem->modemMessage()); + step = 99; // wait until cancel is pressed + _modem->unlockdevice(); } -void ModemTransfer::do_script() { - QString msg; - QString query; - - 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::do_script() +{ + QString msg; + QString query; + + 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) { - if(readbuffer.length() < 255) - readbuffer += c; +void ModemTransfer::readChar(unsigned char c) +{ + if(readbuffer.length() < 255) + readbuffer += c; } -void ModemTransfer::readtty() { +void ModemTransfer::readtty() +{ - if (step == 0) - return; + if (step == 0) + return; - readbuffer.replace(QRegExp("[\n\r]")," "); // remove stray \n and \r - readbuffer = readbuffer.stripWhiteSpace(); // strip of leading or trailing white - // space + 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(); + if(step <= NUM_OF_ATI) + ati_query_strings[step-1] = readbuffer.copy(); - readbuffer = ""; + readbuffer = ""; } -void ModemTransfer::cancelbutton() { - scripttimer->stop(); - _modem->stop(); - timeout_timer->stop(); +void ModemTransfer::cancelbutton() +{ + scripttimer->stop(); + _modem->stop(); + timeout_timer->stop(); - statusBar->setText(QObject::tr("One moment please...")); - qApp->processEvents(); + statusBar->setText(QObject::tr("One moment please...")); + qApp->processEvents(); - _modem->hangup(); + _modem->hangup(); - _modem->closetty(); - _modem->unlockdevice(); - reject(); + _modem->closetty(); + _modem->unlockdevice(); + reject(); } -void ModemTransfer::closeEvent( QCloseEvent *e ) { - cancelbutton(); - e->accept(); +void ModemTransfer::closeEvent( QCloseEvent *e ) +{ + cancelbutton(); + e->accept(); } ModemInfo::ModemInfo(QWidget *parent, const char* name) - : QDialog(parent, name, TRUE, WStyle_Customize|WStyle_NormalBorder) + : QDialog(parent, name, TRUE, WStyle_Customize|WStyle_NormalBorder) { - QString label_text; + QString label_text; - setCaption(QObject::tr("Modem Query Results")); - // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); + setCaption(QObject::tr("Modem Query Results")); + // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); - QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); + 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++) { + QGridLayout *l1 = new QGridLayout(NUM_OF_ATI, 2, 5); + tl->addLayout(l1, 1); + 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 ); + 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[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); + 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(); + QHBoxLayout *l2 = new QHBoxLayout; + QPushButton *ok = new QPushButton(QObject::tr("Close"), this); + ok->setDefault(TRUE); + ok->setFocus(); - tl->addLayout(l2); - l2->addStretch(1); + tl->addLayout(l2); + l2->addStretch(1); - connect(ok, SIGNAL(clicked()), SLOT(accept())); - l2->addWidget(ok); + connect(ok, SIGNAL(clicked()), SLOT(accept())); + l2->addWidget(ok); - setMinimumSize(sizeHint()); + setMinimumSize(sizeHint()); } -void ModemInfo::setAtiString(int i, QString s) { - if(i < NUM_OF_ATI) - ati_label_result[i]->setText(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){ - profile = 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* ){ - return "ppp"; +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)); + 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){ - // We don't have any advanced pppd information widget yet :-D - // TODO ^ +QWidget *PPPModule::information(Interface *i) +{ + // We don't have any advanced pppd information widget yet :-D + // TODO ^ - return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i ); + 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(){ - // List all of the files in the peer directory +QList<Interface> PPPModule::getInterfaces() +{ + // List all of the files in the peer directory qDebug("PPPModule::getInterfaces"); - return list; + 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){ - - InterfacePPP *ifaceppp; - Interface *iface; - ifaceppp = new InterfacePPP(); - PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true); - imp.showMaximized(); - if(imp.exec() == QDialog::Accepted ){ - iface = (InterfacePPP*) ifaceppp; - iface->setModuleOwner( this ); - list.append( iface ); - return iface; - }else { - delete ifaceppp; - iface = NULL; - } - return iface; +Interface *PPPModule::addNewInterface(const QString &newInterface) +{ + + InterfacePPP *ifaceppp; + Interface *iface; + ifaceppp = new InterfacePPP(); + PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true); + + if( QPEApplication::execDialog( &imp ) == QDialog::Accepted ) + { + iface = (InterfacePPP*) ifaceppp; + iface->setModuleOwner( this ); + list.append( iface ); + return iface; + } + 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,81 +1,84 @@ + #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. */ @@ -111,142 +114,142 @@ Interface *WLANModule::addNewInterface(const QString &){ /** * 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 ¶m, 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; } |