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