66 files changed, 2410 insertions, 1321 deletions
diff --git a/noncore/settings/appearance2/appearance.cpp b/noncore/settings/appearance2/appearance.cpp index c376ec7..00128d3 100644 --- a/noncore/settings/appearance2/appearance.cpp +++ b/noncore/settings/appearance2/appearance.cpp @@ -85,5 +85,5 @@ public: return "Default"; } - QPixmap icon() const { +QPixmap icon() const { return QPixmap(); } @@ -176,5 +176,5 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg ) QWhatsThis::add( m_deco_list, tr( "Window decorations control the way the application title bar and its buttons appear.\n\nClick here to select an available decoration." ) ); - QString s = cfg. readEntry ( "Decoration" ); + QString s = cfg. readEntry ( "Decoration", "libflat.so" ); m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); @@ -403,5 +403,5 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) vertLayout-> addSpacing ( 3 ); QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); - + QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); @@ -422,6 +422,6 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg ) ccw1. convertFromImage( ccwImage ); m_rotdir_cw-> setPixmap( cw1 ); - m_rotdir_ccw-> setPixmap( ccw1 ); - m_rotdir_flip-> setPixmap( flip1 ); + m_rotdir_ccw-> setPixmap( ccw1 ); + m_rotdir_flip-> setPixmap( flip1 ); rotLay-> addWidget ( rotlabel, 0 ); @@ -458,5 +458,6 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags ) m_sample = new SampleWindow ( this ); - m_sample-> setDecoration ( new DefaultWindowDecoration ( )); + + m_sample-> setDecoration ( new DefaultWindowDecoration ( ) ); QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); diff --git a/noncore/settings/appearance2/colorlistitem.h b/noncore/settings/appearance2/colorlistitem.h index 10e4468..f8d5c45 100644 --- a/noncore/settings/appearance2/colorlistitem.h +++ b/noncore/settings/appearance2/colorlistitem.h @@ -125,10 +125,11 @@ private: }; +// from etc/colors/Liquid.scheme const ColorListItem::colorlut ColorListItem::s_colorlut [] = { { QColorGroup::Base, "Base", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Base" ) }, - { QColorGroup::Background, "Background", "#E5E1D5", QT_TRANSLATE_NOOP( "Appearance", "Background" ) }, - { QColorGroup::Button, "Button", "#D6CDBB", QT_TRANSLATE_NOOP( "Appearance", "Button" ) }, + { QColorGroup::Background, "Background", "#E0E0E0", QT_TRANSLATE_NOOP( "Appearance", "Background" ) }, + { QColorGroup::Button, "Button", "#96c8fa", QT_TRANSLATE_NOOP( "Appearance", "Button" ) }, { QColorGroup::ButtonText, "ButtonText", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Button Text" ) }, - { QColorGroup::Highlight, "Highlight", "#800000", QT_TRANSLATE_NOOP( "Appearance", "Highlight" ) }, + { QColorGroup::Highlight, "Highlight", "#73adef", QT_TRANSLATE_NOOP( "Appearance", "Highlight" ) }, { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Highlighted Text" ) }, { QColorGroup::Text, "Text", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Text" ) } diff --git a/noncore/settings/appearance2/decolistitem.h b/noncore/settings/appearance2/decolistitem.h index d190ceb..da7924c 100644 --- a/noncore/settings/appearance2/decolistitem.h +++ b/noncore/settings/appearance2/decolistitem.h @@ -104,3 +104,4 @@ private: }; -#endif
\ No newline at end of file +#endif + diff --git a/noncore/settings/backup/backuprestore.cpp b/noncore/settings/backup/backuprestore.cpp index 4ff6be1..922523b 100644 --- a/noncore/settings/backup/backuprestore.cpp +++ b/noncore/settings/backup/backuprestore.cpp @@ -72,16 +72,7 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name) //todo make less static here and use Storage class to get infos if(totalLocations == 0){ - -/* Ramses has a CF-Slot, but that one is internal and you have to dismount the - * the case. There's also almost always a WLAN card inserted there -*/ - backupLocations.insert("Documents", "/root/Documents"); -#if defined(QT_QWS_RAMSES) - backupLocations.insert("MMC", "/mnt/card"); -#else backupLocations.insert("CF", "/mnt/cf"); backupLocations.insert("SD", "/mnt/card"); -#endif } else{ diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp index 8985fd5..d30a041 100644 --- a/noncore/settings/language/language.cpp +++ b/noncore/settings/language/language.cpp @@ -116,7 +116,7 @@ void LanguageSettings::reset() config.setGroup("Language"); l = config.readEntry( "Language", l ); + actualLanguage = l; if (l.isEmpty()) l = "en"; - actualLanguage = l; int n = langAvail.find( l ); diff --git a/noncore/settings/mediummount/mainwindow.cc b/noncore/settings/mediummount/mainwindow.cc index 6b37cff..eec786c 100644 --- a/noncore/settings/mediummount/mainwindow.cc +++ b/noncore/settings/mediummount/mainwindow.cc @@ -15,4 +15,5 @@ using namespace MediumMountSetting; +/* TRANSLATOR MediumMountSetting::MainWindow */ MainWindow::MainWindow( QWidget *parent, const char *name, bool modal, WFlags ) diff --git a/noncore/settings/mediummount/mediumglobal.cc b/noncore/settings/mediummount/mediumglobal.cc index 75e3839..ab0b3af 100644 --- a/noncore/settings/mediummount/mediumglobal.cc +++ b/noncore/settings/mediummount/mediumglobal.cc @@ -16,4 +16,6 @@ using namespace MediumMountSetting; +/* TRANSLATOR MediumMountSetting::MediumGlobalWidget */ + MediumGlobalWidget::MediumGlobalWidget(QWidget *wid, const char *name ) : QWidget( wid, name, WStyle_ContextHelp ) diff --git a/noncore/settings/mediummount/mediumwidget.cc b/noncore/settings/mediummount/mediumwidget.cc index eadf502..981e1dd 100644 --- a/noncore/settings/mediummount/mediumwidget.cc +++ b/noncore/settings/mediummount/mediumwidget.cc @@ -23,4 +23,6 @@ using namespace MediumMountSetting; +/* TRANSLATOR MediumMountSetting::MediumMountWidget */ + MediumMountWidget::MediumMountWidget(const QString &path, const QPixmap &pix, diff --git a/noncore/settings/networksettings/interfaces/interface.cpp b/noncore/settings/networksettings/interfaces/interface.cpp index cc45525..69b55d1 100644 --- a/noncore/settings/networksettings/interfaces/interface.cpp +++ b/noncore/settings/networksettings/interfaces/interface.cpp @@ -2,5 +2,5 @@ * $Author$ * $Date$ - */ + */ #include "interface.h" @@ -25,5 +25,5 @@ Interface::Interface(QObject * parent, const char * name, bool newSatus): QObjec * @param newStatus - the new status * emit updateInterface - */ + */ void Interface::setStatus(bool newStatus){ if(status != newStatus){ @@ -37,25 +37,25 @@ void Interface::setStatus(bool newStatus){ * @param isAttached - if attached * emit updateInterface - */ + */ void Interface::setAttached(bool isAttached){ attached = isAttached; emit(updateInterface(this)); }; - + /** * Set Hardware name * @param name - the new name * emit updateInterface - */ + */ void Interface::setHardwareName(const QString &name){ hardwareName = name; emit(updateInterface(this)); }; - + /** * Set Module owner * @param owner - the new owner * emit updateInterface - */ + */ void Interface::setModuleOwner(Module *owner){ moduleOwner = owner; @@ -66,12 +66,12 @@ void Interface::setModuleOwner(Module *owner){ /** * Try to start the interface. - */ + */ void Interface::start(){ - // check to see if we are already running. + // check to see if we are already running. if(true == status){ emit (updateMessage("Unable to start interface,\n already started")); return; } - + int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1()); // See if it was successfull... @@ -90,10 +90,10 @@ void Interface::start(){ */ void Interface::stop(){ - // check to see if we are already stopped. + // check to see if we are already stopped. if(false == status){ emit (updateMessage("Unable to stop interface,\n already stopped")); return; } - + int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1()); if(ret != 0){ @@ -109,5 +109,5 @@ void Interface::stop(){ /** * Try to restart the interface. - */ + */ void Interface::restart(){ stop(); @@ -134,12 +134,12 @@ bool Interface::refresh(){ return true; } - + QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name()); - int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1()); + int ret = system(QString("LANG=C %1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1()); if(ret != 0){ qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1()); return false; } - + QFile file(fileName); if (!file.open(IO_ReadOnly)){ @@ -153,5 +153,5 @@ bool Interface::refresh(){ subnetMask = "0.0.0.0"; broadcast = ""; - + QTextStream stream( &file ); QString line; @@ -186,11 +186,11 @@ bool Interface::refresh(){ leaseExpires = ""; dhcp = false; - + QString dhcpDirectory(DHCP_INFO_DIR); QDir d(dhcpDirectory); if(!d.exists(dhcpDirectory)) dhcpDirectory = "/var/run"; - - // See if we have + + // See if we have QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name())); // If there is no DHCP information then exit now with no errors. @@ -199,5 +199,5 @@ bool Interface::refresh(){ return true; } - + file.setName(dhcpFile); if (!file.open(IO_ReadOnly)){ @@ -205,9 +205,9 @@ bool Interface::refresh(){ return false; } - + // leaseTime and renewalTime and used if pid and deamon exe can be accessed. int leaseTime = 0; int renewalTime = 0; - + stream.setDevice( &file ); while ( !stream.eof() ) { @@ -223,5 +223,5 @@ bool Interface::refresh(){ //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1()); //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); - + // Get the pid of the deamond dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name())); @@ -245,5 +245,5 @@ bool Interface::refresh(){ } - // Get the start running time of the deamon + // Get the start running time of the deamon fileName = (QString("/proc/%1/stat").arg(pid)); file.setName(fileName); @@ -258,5 +258,5 @@ bool Interface::refresh(){ file.close(); long time = 0; - // Grab the start time + // Grab the start time // pid com state ppid pgrp session tty_nr tpgid flags sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u " @@ -266,5 +266,5 @@ bool Interface::refresh(){ "%*d %*d %*d %lu", (long*) &time); time = time/100; - + QDateTime datetime(QDateTime::currentDateTime()); @@ -282,17 +282,17 @@ bool Interface::refresh(){ return false; } - + datetime = datetime.addSecs(time); //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1()); - - // Calculate the start and renew times + + // Calculate the start and renew times leaseObtained = datetime.toString(); - - // Calculate the start and renew times + + // Calculate the start and renew times datetime = datetime.addSecs(leaseTime); leaseExpires = datetime.toString(); - + dhcp = true; - + emit(updateInterface(this)); return true; diff --git a/noncore/settings/networksettings/interfaces/interface.h b/noncore/settings/networksettings/interfaces/interface.h index 7e98deb..ec82851 100644 --- a/noncore/settings/networksettings/interfaces/interface.h +++ b/noncore/settings/networksettings/interfaces/interface.h @@ -13,11 +13,11 @@ signals: void updateInterface(Interface *i); void updateMessage(const QString &message); - + public: Interface(QObject * parent=0, const char * name= "unknown", bool status = false); - + QString getInterfaceName() const { QString n(this->name()); return n; }; void setInterfaceName( const QString &n ) { this->setName(n); }; - + bool getStatus() const { return status; }; void setStatus(bool newStatus); @@ -25,8 +25,8 @@ public: bool isAttached() const { return attached; }; void setAttached(bool isAttached=false); - + QString getHardwareName() const { return hardwareName; }; void setHardwareName(const QString &name="Unknown"); - + Module* getModuleOwner() const { return moduleOwner; }; void setModuleOwner(Module *owner=NULL); @@ -48,5 +48,5 @@ public: virtual void restart(); -private: +protected: // Interface information QString hardwareName; diff --git a/noncore/settings/networksettings/interfaces/interfaceadvanced.ui b/noncore/settings/networksettings/interfaces/interfaceadvanced.ui index 2e106cb..12dbb1d 100644 --- a/noncore/settings/networksettings/interfaces/interfaceadvanced.ui +++ b/noncore/settings/networksettings/interfaces/interfaceadvanced.ui @@ -19,5 +19,5 @@ <name>maximumSize</name> <size> - <width>240</width> + <width>32767</width> <height>32767</height> </size> diff --git a/noncore/settings/networksettings/interfaces/interfaceinformation.ui b/noncore/settings/networksettings/interfaces/interfaceinformation.ui index 763ad90..207200e 100644 --- a/noncore/settings/networksettings/interfaces/interfaceinformation.ui +++ b/noncore/settings/networksettings/interfaces/interfaceinformation.ui @@ -13,5 +13,5 @@ <y>0</y> <width>219</width> - <height>255</height> + <height>323</height> </rect> </property> @@ -20,86 +20,20 @@ <string>Interface Information</string> </property> - <grid> + <property> + <name>layoutMargin</name> + </property> + <property> + <name>layoutSpacing</name> + </property> + <vbox> <property stdset="1"> <name>margin</name> - <number>11</number> + <number>4</number> </property> <property stdset="1"> <name>spacing</name> - <number>6</number> + <number>3</number> </property> - <widget row="4" column="0" rowspan="1" colspan="2" > - <class>QLayoutWidget</class> - <property stdset="1"> - <name>name</name> - <cstring>Layout1</cstring> - </property> - <grid> - <property stdset="1"> - <name>margin</name> - <number>0</number> - </property> - <property stdset="1"> - <name>spacing</name> - <number>6</number> - </property> - <widget row="1" column="0" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>refreshButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>&Refresh</string> - </property> - </widget> - <widget row="0" column="1" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>stopButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>S&top</string> - </property> - </widget> - <widget row="1" column="1" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>restartButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>R&estart</string> - </property> - </widget> - <widget row="0" column="0" > - <class>QPushButton</class> - <property stdset="1"> - <name>name</name> - <cstring>startButton</cstring> - </property> - <property stdset="1"> - <name>text</name> - <string>&Start</string> - </property> - </widget> - </grid> - </widget> - <widget row="0" column="0" > - <class>Line</class> - <property stdset="1"> - <name>name</name> - <cstring>Line1</cstring> - </property> - <property stdset="1"> - <name>orientation</name> - <enum>Horizontal</enum> - </property> - </widget> - <widget row="0" column="0" > + <widget> <class>QLabel</class> <property stdset="1"> @@ -112,46 +46,46 @@ </property> </widget> - <widget row="1" column="0" > + <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel23</cstring> + <cstring>ipAddressLabel</cstring> </property> <property stdset="1"> - <name>text</name> - <string>Subnet Mask</string> + <name>frameShape</name> + <enum>Panel</enum> </property> - </widget> - <widget row="2" column="0" > - <class>QLabel</class> <property stdset="1"> - <name>name</name> - <cstring>TextLabel21</cstring> + <name>frameShadow</name> + <enum>Sunken</enum> </property> <property stdset="1"> <name>text</name> - <string>MAC Address</string> + <string>0.0.0.0</string> </property> </widget> - <widget row="3" column="0" > - <class>QLabel</class> + <widget> + <class>Line</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel24</cstring> + <cstring>Line1</cstring> </property> <property stdset="1"> - <name>frameShape</name> - <enum>MShape</enum> + <name>orientation</name> + <enum>Horizontal</enum> </property> + </widget> + <widget> + <class>QLabel</class> <property stdset="1"> - <name>frameShadow</name> - <enum>MShadow</enum> + <name>name</name> + <cstring>TextLabel23</cstring> </property> <property stdset="1"> <name>text</name> - <string>Broadcast</string> + <string>Subnet Mask</string> </property> </widget> - <widget row="1" column="1" > + <widget> <class>QLabel</class> <property stdset="1"> @@ -172,5 +106,5 @@ </property> </widget> - <widget row="2" column="1" > + <widget> <class>QLabel</class> <property stdset="1"> @@ -191,5 +125,16 @@ </property> </widget> - <widget row="3" column="1" > + <widget> + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel21</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>MAC Address</string> + </property> + </widget> + <widget> <class>QLabel</class> <property stdset="1"> @@ -210,45 +155,96 @@ </property> </widget> - <widget row="0" column="1" > + <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>ipAddressLabel</cstring> + <cstring>TextLabel24</cstring> </property> <property stdset="1"> <name>frameShape</name> - <enum>Panel</enum> + <enum>MShape</enum> </property> <property stdset="1"> <name>frameShadow</name> - <enum>Sunken</enum> + <enum>MShadow</enum> </property> <property stdset="1"> <name>text</name> - <string>0.0.0.0</string> + <string>Broadcast</string> </property> </widget> - <spacer row="7" column="1" > - <property> + <widget> + <class>QLayoutWidget</class> + <property stdset="1"> <name>name</name> - <cstring>Spacer18</cstring> + <cstring>Layout1</cstring> </property> + <grid> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget row="1" column="0" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>refreshButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>&Refresh</string> + </property> + </widget> + <widget row="0" column="1" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>stopButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>S&top</string> + </property> + </widget> + <widget row="1" column="1" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>restartButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>R&estart</string> + </property> + </widget> + <widget row="0" column="0" > + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> + <cstring>startButton</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>&Start</string> + </property> + </widget> + </grid> + </widget> + <widget> + <class>Line</class> <property stdset="1"> - <name>orientation</name> - <enum>Vertical</enum> + <name>name</name> + <cstring>Line5</cstring> </property> <property stdset="1"> - <name>sizeType</name> - <enum>Expanding</enum> - </property> - <property> - <name>sizeHint</name> - <size> - <width>20</width> - <height>20</height> - </size> + <name>orientation</name> + <enum>Horizontal</enum> </property> - </spacer> - <widget row="6" column="0" rowspan="1" colspan="2" > + </widget> + <widget> <class>QLayoutWidget</class> <property stdset="1"> @@ -299,16 +295,37 @@ </hbox> </widget> - <widget row="5" column="0" rowspan="1" colspan="2" > - <class>Line</class> - <property stdset="1"> + <spacer> + <property> <name>name</name> - <cstring>Line5</cstring> + <cstring>Spacer18</cstring> </property> <property stdset="1"> <name>orientation</name> - <enum>Horizontal</enum> + <enum>Vertical</enum> + </property> + <property stdset="1"> + <name>sizeType</name> + <enum>Expanding</enum> + </property> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> + </property> + </spacer> + <widget> + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>CheckBoxSilent</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>be &silent</string> </property> </widget> - </grid> + </vbox> </widget> <tabstops> diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp index e00dcce..37c3a91 100644 --- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp +++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp @@ -2,4 +2,5 @@ #include "interfaceadvanced.h" +#include <qcheckbox.h> #include <qpushbutton.h> #include <qlabel.h> @@ -7,5 +8,7 @@ #include <qmessagebox.h> -#ifdef QWS +#include <qpe/config.h> + +#ifdef QWS #else #define showMaximized show @@ -15,5 +18,5 @@ * 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 *))); @@ -25,4 +28,14 @@ InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *na 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() ); } @@ -31,5 +44,5 @@ InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *na * @param Intarface *i the interface to update (should be the one we already * know about). - */ + */ void InterfaceInformationImp::updateInterface(Interface *){ if(interface->getStatus()){ @@ -52,5 +65,5 @@ void InterfaceInformationImp::updateInterface(Interface *){ * 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); @@ -71,6 +84,7 @@ void InterfaceInformationImp::advanced(){ * 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); } diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.h b/noncore/settings/networksettings/interfaces/interfaceinformationimp.h index 65cdfe0..9c93d1d 100644 --- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.h +++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.h @@ -11,5 +11,5 @@ Q_OBJECT public: InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0); - ~InterfaceInformationImp(){}; + ~InterfaceInformationImp(); private slots: diff --git a/noncore/settings/networksettings/interfaces/interfaces.cpp b/noncore/settings/networksettings/interfaces/interfaces.cpp index 71d0cf5..436e449 100644 --- a/noncore/settings/networksettings/interfaces/interfaces.cpp +++ b/noncore/settings/networksettings/interfaces/interfaces.cpp @@ -1,4 +1,5 @@ #include "interfaces.h" +#include <qcheckbox.h> #include <qfile.h> #include <qtextstream.h> @@ -152,4 +153,5 @@ bool Interfaces::isInterfaceSet() const { */ bool Interfaces::addInterface(const QString &interface, const QString &family, const QString &method){ + qDebug("Interfaces::addInterface(%s)",interface.latin1()); if(0 == acceptedFamily.contains(family)) return false; @@ -167,4 +169,5 @@ bool Interfaces::addInterface(const QString &interface, const QString &family, c */ bool Interfaces::copyInterface(const QString &interface, const QString &newInterface){ + qDebug("copy interface %s to %s", interface.latin1(), newInterface.latin1()); if(!setInterface(interface)) return false; @@ -273,4 +276,5 @@ QString Interfaces::getInterfaceMethod(bool &error){ */ bool Interfaces::setInterfaceName(const QString &newName){ + qDebug("setInterfaceName %s", newName.latin1()); if(currentIface == interfaces.end()) return false; @@ -278,5 +282,8 @@ bool Interfaces::setInterfaceName(const QString &newName){ name = name.replace(QRegExp(" "), ""); bool returnValue = false; - (*currentIface) = QString("iface %1 %2 %3").arg(name).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue)); + QString tmp = QString("iface %1 %2 %3").arg(name).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue)); + qDebug("setting %s",tmp.latin1()); + + (*currentIface) = tmp; return !returnValue; } @@ -328,4 +335,6 @@ QString Interfaces::getInterfaceOption(const QString &option, bool &error){ * Set a value for an option in the currently selected interface. If option * doesn't exist then it is added along with the value. + * If value isEmpty() then we will remove the option + * * @param option the options to set the value. * @param value the value that option should be set to. @@ -334,5 +343,9 @@ QString Interfaces::getInterfaceOption(const QString &option, bool &error){ */ bool Interfaces::setInterfaceOption(const QString &option, const QString &value){ - return setOption(currentIface, option, value); + if( value.stripWhiteSpace().isEmpty() ) + return removeInterfaceOption( option ); + + qDebug("iface >%s< option >%s< value >%s<", (*currentIface).latin1(), option.latin1(),value.latin1()); + return setOption(currentIface, option, value); } @@ -493,28 +506,47 @@ bool Interfaces::setOption(const QStringList::Iterator &start, const QString &op if(start == interfaces.end()) return false; - + qDebug("setting option"); bool found = false; + bool replaced = false; + QStringList::Iterator insertAt = NULL; for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) { - if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){ - if(!found && value != ""){ - // Got to the end of the stanza without finding it, so append it. - interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value)); - } - found = true; - break; - } + qDebug(" Interfaces::setOption got line >%s<",(*it).latin1()); + // FIXME: was not completly stupid just wrong sice all options got inserted bevore the iface line + // but since it works with an empty interfaces file I (tille) will not do anything more + if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) ){ + if (found) break; +// && it != start){ +// if(!found && value != ""){ +// // Got to the end of the stanza without finding it, so append it. +// qDebug(" Got to the end of the stanza without finding it, so append it."); +// interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value)); +// } + qDebug("found 1"); +// interfaces.insert(++it, QString("\t%1 %2").arg(option).arg(value)); + found = true; + insertAt = it; + + } if((*it).contains(option) && it != start && (*it).at(0) != '#'){ // Found it in stanza so replace it. + qDebug("found 2"); if(found) qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); found = true; + replaced = true; (*it) = QString("\t%1 %2").arg(option).arg(value); } } if(!found){ + qDebug("! found insert anyway"); QStringList::Iterator p = start; interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value)); found = true; } + + if(found && !replaced){ + qDebug("found iface but not the option so insert it here..."); + interfaces.insert(++insertAt, QString("\t%1 %2").arg(option).arg(value)); + } return found; } @@ -553,5 +585,6 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); found = true; - (*it) = ""; + it = interfaces.remove( it ); // we really want to remove the line + --it; // we do ++it later in the head of the for loop } } @@ -580,5 +613,6 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); found = true; - (*it) = ""; + it = interfaces.remove( it ); // we really want to remove the line + --it; // we do ++it later in the head of the for loop } } diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp index b40d101..e844d8a 100644 --- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp +++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp @@ -45,4 +45,5 @@ bool InterfaceSetupImp::saveChanges(){ bool error; QString iface = interfaces->getInterfaceName(error); + qDebug("InterfaceSetupImp::saveChanges saves interface %s", iface.latin1() ); if(!saveSettings()) return false; @@ -118,4 +119,7 @@ bool InterfaceSetupImp::saveSettings(){ interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns); interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns); + }else{ + interfaces->removeInterfaceOption("up "DNSSCRIPT" -a "); + interfaces->removeInterfaceOption("down "DNSSCRIPT" -r"); } } diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp index 2d714ca..f74cf87 100644 --- a/noncore/settings/networksettings/mainwindowimp.cpp +++ b/noncore/settings/networksettings/mainwindowimp.cpp @@ -14,4 +14,5 @@ #include <qpe/qcopenvelope_qws.h> #include <qtabwidget.h> // in order to disable the profiles tab +#include <qpe/qpeapplication.h> #include <qmessagebox.h> @@ -50,5 +51,5 @@ #define _PROCNETDEV "/proc/net/dev" -MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name), advancedUserMode(true), scheme(DEFAULT_SCHEME){ +MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : 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())); @@ -63,5 +64,5 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par //FIXME: disable profiles for the moment: -// tabWidget->setTabEnabled( tab, false ); + tabWidget->setTabEnabled( tab, false ); // Load connections. @@ -79,4 +80,12 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par 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 ){ @@ -197,4 +206,8 @@ void MainWindowImp::getAllInterfaces(){ 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; @@ -308,4 +321,5 @@ Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString & } + m_handledIfaces += object->handledInterfaceNames(); // Store for deletion later libraries.insert(object, lib); @@ -427,5 +441,5 @@ void MainWindowImp::configureClicked(){ } - InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose ); + InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp ); configure->setProfile(currentProfileText); configure->showMaximized(); @@ -460,5 +474,5 @@ void MainWindowImp::informationClicked(){ } } - InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog); + InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp); information->showMaximized(); } @@ -640,5 +654,4 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg) bool found = false; qDebug("MainWindowImp::receive QCop msg >"+msg+"<"); - if (msg == "raise") { raise(); diff --git a/noncore/settings/networksettings/mainwindowimp.h b/noncore/settings/networksettings/mainwindowimp.h index a553f75..451835b 100644 --- a/noncore/settings/networksettings/mainwindowimp.h +++ b/noncore/settings/networksettings/mainwindowimp.h @@ -11,5 +11,5 @@ class QLibrary; class KProcess; class QCopChannel; -#ifdef QWS +#ifdef QWS class QLibrary; #else @@ -26,19 +26,19 @@ public: MainWindowImp(QWidget *parent=0, const char *name=0); ~MainWindowImp(); - + QCopChannel *channel; private slots: void getAllInterfaces(); - + void addClicked(); void removeClicked(); void configureClicked(); void informationClicked(); - + void addProfile(); void removeProfile(); void changeProfile(); - + void updateInterface(Interface *i); void newProfileChanged(const QString& newText); @@ -49,5 +49,5 @@ private: void makeChannel(); void loadModules(const QString &path); - + Module* loadPlugin(const QString &pluginFileName, const QString &resolveString = "create_plugin"); @@ -59,5 +59,6 @@ private: QMap<Interface*, QListViewItem*> items; QMap<QListViewItem*, Interface*> interfaceItems; - + QStringList m_handledIfaces; + QMap<KProcess*, QString> threads; QStringList profiles; diff --git a/noncore/settings/networksettings/module.h b/noncore/settings/networksettings/module.h index db74394..f7d8046 100644 --- a/noncore/settings/networksettings/module.h +++ b/noncore/settings/networksettings/module.h @@ -19,5 +19,5 @@ signals: void updateInterface(Interface *i); - + public: Module(){}; @@ -33,12 +33,12 @@ public: * neccesary changes also. * @param newProfile what the profile should be changed to. - */ + */ virtual void setProfile(const QString &newProfile) = 0; - + /** * 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) - */ + * @return QString the icon name (minus .png, .gif etc) + */ virtual QString getPixmapName(Interface *) = 0; @@ -49,5 +49,5 @@ public: */ virtual bool isOwner(Interface *){ return false; }; - + /** * Create and return the WLANConfigure Module @@ -56,5 +56,5 @@ public: */ virtual QWidget *configure(Interface *){ return NULL; } ; - + /** * Create, and return the Information Module @@ -63,12 +63,12 @@ public: */ virtual QWidget *information(Interface *){ return NULL; }; - + /** * Get all active (up or down) interfaces * @return QList<Interface> A list of interfaces that exsist that havn't * been called by isOwner() - */ + */ virtual QList<Interface> getInterfaces() = 0; - + /** * Adds possible new interfaces to the list (Example: usb(ppp), ir(ppp), @@ -76,12 +76,12 @@ public: */ virtual void possibleNewInterfaces(QMap<QString, QString> &list) = 0; - + /** * Attempts to create a new interface from name * @return Interface* NULL if it was unable to be created. * @param name the type of interface to create - */ + */ virtual Interface *addNewInterface(const QString &name) = 0; - + /** * Attempts to remove the interface, doesn't delete i @@ -91,8 +91,19 @@ public: /** - * get dcop calls + * get dcop calls */ virtual void receive(const QCString &msg, const QByteArray &arg) = 0; + QStringList handledInterfaceNames()const { return m_inter; } +protected: + /** + * set which interfaceNames should not be shown cause they're handled + * internally of this module.. An already running ppp link or + * a tunnel... + */ + void setHandledInterfaceNames( const QStringList& in) { m_inter = in; } + +private: + QStringList m_inter; }; diff --git a/noncore/settings/networksettings/ppp/TODO b/noncore/settings/networksettings/ppp/TODO index 80fc5a6..14a1b3f 100644 --- a/noncore/settings/networksettings/ppp/TODO +++ b/noncore/settings/networksettings/ppp/TODO @@ -1,9 +1,3 @@ -- ask for password is non is set - -- stop pppd, i.e. fix interfaceinformationppp - -- update modem attribute inputs when modem has changed -- impl. PPPData::copyaccount & PPPData::deleteAccount - +- impl. PPPData::copyaccount - check if the same interface device combination allready exists -- fix layout of edit account, i.e. get it shown maximised +- check if a deleted account or device exists in a config and ask the user diff --git a/noncore/settings/networksettings/ppp/accounts.cpp b/noncore/settings/networksettings/ppp/accounts.cpp index fa1c43b..28d8732 100644 --- a/noncore/settings/networksettings/ppp/accounts.cpp +++ b/noncore/settings/networksettings/ppp/accounts.cpp @@ -45,31 +45,12 @@ void parseargs(char* buf, char** args); -AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name ) - : QWidget( parent, name )//, _pppdata(pd) + +AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f ) + : ChooserWidget( pd, parent, name, f ) { - _pppdata = pd; - QVBoxLayout *l1 = new QVBoxLayout(this, 10, 10); - accountlist_l = new QListBox(this); - - connect(accountlist_l, SIGNAL(highlighted(int)), - this, SLOT(slotListBoxSelect(int))); - connect(accountlist_l, SIGNAL(selected(int)), - this, SLOT(editaccount())); - l1->addWidget(accountlist_l, 10); - - edit_b = new QPushButton(tr("&Edit..."), this); - connect(edit_b, SIGNAL(clicked()), SLOT(editaccount())); - QWhatsThis::add(edit_b, tr("Allows you to modify the selected account")); - l1->addWidget(edit_b); - new_b = new QPushButton(tr("&New..."), this); - connect(new_b, SIGNAL(clicked()), SLOT(newaccount())); - l1->addWidget(new_b); + 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")); - - copy_b = new QPushButton(tr("Co&py"), this); - connect(copy_b, SIGNAL(clicked()), SLOT(copyaccount())); - l1->addWidget(copy_b); QWhatsThis::add(copy_b, tr("Makes a copy of the selected account. All\n" @@ -77,33 +58,19 @@ AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name ) "to a new account, that you can modify to fit your\n" "needs")); - - delete_b = new QPushButton(tr("De&lete"), this); - connect(delete_b, SIGNAL(clicked()), SLOT(deleteaccount())); - l1->addWidget(delete_b); QWhatsThis::add(delete_b, tr("<p>Deletes the selected account\n\n" "<font color=\"red\"><b>Use with care!</b></font>")); - QHBoxLayout *l12 = new QHBoxLayout; - l1->addStretch(1); - l1->addLayout(l12); - int currAccId = _pppdata->currentAccountID(); - qDebug("currentAccountID %i", currAccId); - //load up account list from gppdata to the list box - if(_pppdata->count() > 0) { - for(int i=0; i <= _pppdata->count()-1; i++) { - _pppdata->setAccountbyIndex(i); - accountlist_l->insertItem(_pppdata->accname()); - } - } - _pppdata->setAccountbyIndex( currAccId ); + copy_b->setEnabled( false ); //FIXME + // delete_b->setEnabled( false ); //FIXME - qDebug("setting listview index to %i",_pppdata->currentAccountID() ); - accountlist_l->setCurrentItem( _pppdata->currentAccountID() ); - slotListBoxSelect( _pppdata->currentAccountID() ); + listListbox->insertStringList(_pppdata->getAccountList()); - l1->activate(); + for (uint i = 0; i < listListbox->count(); i++){ + if ( listListbox->text(i) == _pppdata->accname() ) + listListbox->setCurrentItem( i ); + } } @@ -111,21 +78,18 @@ AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name ) void AccountWidget::slotListBoxSelect(int idx) { - delete_b->setEnabled((bool)(idx != -1)); - edit_b->setEnabled((bool)(idx != -1)); - copy_b->setEnabled((bool)(idx != -1)); - if(idx!=-1) { - qDebug("setting account to %i", idx); - QString account = _pppdata->accname(); - _pppdata->setAccountbyIndex(accountlist_l->currentItem()); - } + 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::editaccount() { - _pppdata->setAccount(accountlist_l->text(accountlist_l->currentItem())); +void AccountWidget::edit() { + _pppdata->setAccount(listListbox->text(listListbox->currentItem())); int result = doTab(); if(result == QDialog::Accepted) { - accountlist_l->changeItem(_pppdata->accname(),accountlist_l->currentItem()); + listListbox->changeItem(_pppdata->accname(),listListbox->currentItem()); // emit resetaccounts(); _pppdata->save(); @@ -134,11 +98,11 @@ void AccountWidget::editaccount() { -void AccountWidget::newaccount() { +void AccountWidget::create() { - if(accountlist_l->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; @@ -150,6 +114,6 @@ void AccountWidget::newaccount() { if(result == QDialog::Accepted) { - accountlist_l->insertItem(_pppdata->accname()); - accountlist_l->setSelected(accountlist_l->findItem(_pppdata->accname()),true); + listListbox->insertItem(_pppdata->accname()); + listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true); _pppdata->save(); @@ -159,18 +123,18 @@ void AccountWidget::newaccount() { -void AccountWidget::copyaccount() { - if(accountlist_l->count() == MAX_ACCOUNTS) { - QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); - return; - } +void AccountWidget::copy() { +// if(listListbox->count() == MAX_ACCOUNTS) { +// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); +// return; +// } - if(accountlist_l->currentItem()<0) { + if(listListbox->currentItem()<0) { QMessageBox::information(this, "sorry", tr("No account selected.")); return; } - _pppdata->copyaccount(accountlist_l->currentItem()); + _pppdata->copyaccount(listListbox->currentText()); - accountlist_l->insertItem(_pppdata->accname()); + listListbox->insertItem(_pppdata->accname()); // emit resetaccounts(); _pppdata->save(); @@ -178,8 +142,8 @@ void AccountWidget::copyaccount() { -void AccountWidget::deleteaccount() { +void AccountWidget::remove() { QString s = tr("Are you sure you want to delete\nthe account \"%1\"?") - .arg(accountlist_l->text(accountlist_l->currentItem())); + .arg(listListbox->text(listListbox->currentItem())); if(QMessageBox::warning(this,tr("Confirm"),s, @@ -188,11 +152,13 @@ void AccountWidget::deleteaccount() { return; - if(_pppdata->deleteAccount(accountlist_l->text(accountlist_l->currentItem()))) - accountlist_l->removeItem(accountlist_l->currentItem()); + if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) + listListbox->removeItem(listListbox->currentItem()); - emit resetaccounts(); - _pppdata->save(); - slotListBoxSelect(accountlist_l->currentItem()); +// emit resetaccounts(); +// _pppdata->save(); + + + slotListBoxSelect(listListbox->currentItem()); } @@ -200,10 +166,10 @@ void AccountWidget::deleteaccount() { int AccountWidget::doTab(){ - QDialog *dlg = new QDialog( 0, "newAccount", true ); + QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp ); QVBoxLayout *layout = new QVBoxLayout( dlg ); layout->setSpacing( 0 ); layout->setMargin( 1 ); - tabWindow = new QTabWidget( dlg, "tabWindow" ); + QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); layout->addWidget( tabWindow ); @@ -274,23 +240,23 @@ int AccountWidget::doTab(){ -QString AccountWidget::prettyPrintVolume(unsigned int n) { - int idx = 0; - const QString quant[] = {tr("Byte"), tr("KB"), - tr("MB"), tr("GB"), QString::null}; +// 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; - } +// float n1 = n; +// while(n >= 1024 && quant[idx] != QString::null) { +// idx++; +// n /= 1024; +// } - int i = idx; - while(i--) - n1 = n1 / 1024.0; +// int i = idx; +// while(i--) +// n1 = n1 / 1024.0; - QString s = QString::number( n1, 'f', idx==0 ? 0 : 1 ); - s += " " + quant[idx]; - return s; -} +// QString s = QString::number( n1, 'f', idx==0 ? 0 : 1 ); +// s += " " + quant[idx]; +// return s; +// } diff --git a/noncore/settings/networksettings/ppp/accounts.h b/noncore/settings/networksettings/ppp/accounts.h index 8c16a7c..7f31513 100644 --- a/noncore/settings/networksettings/ppp/accounts.h +++ b/noncore/settings/networksettings/ppp/accounts.h @@ -28,14 +28,16 @@ #define _ACCOUNTS_H_ -#include <qwidget.h> #include <qdialog.h> #include <qpushbutton.h> #include <qlistbox.h> -//#include "acctselect.h" +#include "chooserwidget.h" -class QDialog; class QCheckBox; class QLineEdit; class QTabWidget; +class ModemWidget; +class ModemWidget2; + + class DialWidget; class AuthWidget; @@ -45,28 +47,25 @@ class GatewayWidget; class PPPData; -class AccountWidget : public QWidget { + +class AccountWidget : public ChooserWidget { + Q_OBJECT public: - AccountWidget( PPPData *pd, QWidget *parent=0, const char *name=0 ); + AccountWidget( PPPData *pd, QWidget *parent=0, const char *name=0, WFlags f=0 ); ~AccountWidget() {} -private slots: - void editaccount(); - void copyaccount(); - void newaccount(); - void deleteaccount(); - void slotListBoxSelect(int); -private: +private slots: + virtual void edit(); + virtual void copy(); + virtual void remove(); + virtual void create(); + virtual void slotListBoxSelect(int); int doTab(); -signals: - void resetaccounts(); + signals: + void resetaccounts(); private: - QString prettyPrintVolume(unsigned int); - - PPPData *_pppdata; - QTabWidget *tabWindow; DialWidget *dial_w; IPWidget *ip_w; @@ -75,9 +74,4 @@ private: AuthWidget *auth_w; - QListBox *accountlist_l; - QPushButton *edit_b; - QPushButton *copy_b; - QPushButton *new_b; - QPushButton *delete_b; }; diff --git a/noncore/settings/networksettings/ppp/chooserwidget.cpp b/noncore/settings/networksettings/ppp/chooserwidget.cpp new file mode 100644 index 0000000..a32b2b8 --- a/dev/null +++ b/noncore/settings/networksettings/ppp/chooserwidget.cpp @@ -0,0 +1,85 @@ +/* + * 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 <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 <qwidget.h> + +#include "accounts.h" +#include "authwidget.h" +#include "pppdata.h" +#include "edit.h" + +void parseargs(char* buf, char** args); + +ChooserWidget::ChooserWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f ) + : QWidget( parent, name, f ) +{ + _pppdata = pd; + QVBoxLayout *l1 = new QVBoxLayout(this, 10, 10); + listListbox = new QListBox(this); + + connect(listListbox, SIGNAL(highlighted(int)), + this, SLOT(slotListBoxSelect(int))); + connect(listListbox, SIGNAL(selected(int)),this, SLOT(edit())); + l1->addWidget(listListbox, 10); + + edit_b = new QPushButton(tr("&Edit..."), this); + connect(edit_b, SIGNAL(clicked()), SLOT(edit())); + l1->addWidget(edit_b); + + new_b = new QPushButton(tr("&New..."), this); + connect(new_b, SIGNAL(clicked()), SLOT(create())); + l1->addWidget(new_b); + + + copy_b = new QPushButton(tr("Co&py"), this); + connect(copy_b, SIGNAL(clicked()), SLOT(copy())); + l1->addWidget(copy_b); + + delete_b = new QPushButton(tr("De&lete"), this); + connect(delete_b, SIGNAL(clicked()), SLOT(remove())); + l1->addWidget(delete_b); + + + QHBoxLayout *l12 = new QHBoxLayout; + l1->addStretch(1); + l1->addLayout(l12); + + l1->activate(); + +} + diff --git a/noncore/settings/networksettings/ppp/chooserwidget.h b/noncore/settings/networksettings/ppp/chooserwidget.h new file mode 100644 index 0000000..ac3f4cb --- a/dev/null +++ b/noncore/settings/networksettings/ppp/chooserwidget.h @@ -0,0 +1,73 @@ +/* -*- C++ -*- + * 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. + */ + +#ifndef _CHOOSERWIDGET_H_ +#define _CHOOSERWIDGET_H_ + +#include <qwidget.h> +#include <qdialog.h> +#include <qpushbutton.h> +#include <qlistbox.h> +//#include "acctselect.h" + +class QDialog; +class QCheckBox; +class QLineEdit; +class QTabWidget; +class DialWidget; +class AuthWidget; +class IPWidget; +class DNSWidget; +class GatewayWidget; +class PPPData; + +class ChooserWidget : public QWidget { + Q_OBJECT +public: + ChooserWidget( PPPData *pd, QWidget *parent=0, const char *name=0, WFlags f=0 ); + ~ChooserWidget() {} + +private slots: + virtual void edit() = 0; + virtual void copy() = 0; + virtual void create()= 0; + virtual void remove()= 0; + virtual void slotListBoxSelect(int) = 0; + + +protected: + PPPData *_pppdata; + + QListBox *listListbox; + QPushButton *edit_b; + QPushButton *copy_b; + QPushButton *new_b; + QPushButton *delete_b; +}; + + +#endif + diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp index 2400d7b..e3fab24 100644 --- a/noncore/settings/networksettings/ppp/connect.cpp +++ b/noncore/settings/networksettings/ppp/connect.cpp @@ -33,5 +33,4 @@ //#include <kdebug.h> //#include <klocale.h> -#define i18n QObject::tr #include <qmessagebox.h> #include <qpushbutton.h> @@ -100,5 +99,5 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam QVBoxLayout *tl = new QVBoxLayout(this, 8, 10); - QString tit = i18n("Connecting to: "); + QString tit = QObject::tr("Connecting to: "); setCaption(tit); @@ -109,5 +108,5 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam messg->setFrameStyle(QFrame::Panel|QFrame::Sunken); messg->setAlignment(AlignCenter); - messg->setText(i18n("Unable to create modem lock file.")); + messg->setText(QObject::tr("Unable to create modem lock file.")); messg->setMinimumHeight(messg->sizeHint().height() + 5); // int messw = (messg->sizeHint().width() * 12) / 10; @@ -115,7 +114,7 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam // messg->setMinimumWidth(messw); if (_ifaceppp->getStatus()) - messg->setText(i18n("Online")); + messg->setText(QObject::tr("Online")); else - messg->setText(i18n("Offline")); + messg->setText(QObject::tr("Offline")); l0->addSpacing(10); l0->addWidget(messg); @@ -126,10 +125,10 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam l1->addStretch(1); - debug = new QPushButton(i18n("Log"), this); + debug = new QPushButton(QObject::tr("Log"), this); debug->setToggleButton(true); debug->setEnabled( false ); // FIXME: disable the log button connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow())); - cancel = new QPushButton(i18n("Cancel"), this); + cancel = new QPushButton(QObject::tr("Cancel"), this); cancel->setFocus(); connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); @@ -174,5 +173,5 @@ void ConnectWidget::preinit() { // this is all just to keep the GUI nice and snappy .... // you have to see to believe ... - messg->setText(i18n("Looking for modem...")); + messg->setText(QObject::tr("Looking for modem...")); inittimer->start(100); } @@ -202,5 +201,5 @@ void ConnectWidget::init() { arglist = &_ifaceppp->data()->script(); - QString tit = i18n("Connecting to: %1").arg(_ifaceppp->data()->accname()); + QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname()); setCaption(tit); @@ -209,6 +208,6 @@ void ConnectWidget::init() { // run the "before-connect" command if (!_ifaceppp->data()->command_before_connect().isEmpty()) { - messg->setText(i18n("Running pre-startup command...")); - emit debugMessage(i18n("Running pre-startup command...")); + messg->setText(QObject::tr("Running pre-startup command...")); + emit debugMessage(QObject::tr("Running pre-startup command...")); qApp->processEvents(); @@ -227,5 +226,5 @@ void ConnectWidget::init() { if (lock == 1) { - messg->setText(i18n("Modem device is locked.")); + messg->setText(QObject::tr("Modem device is locked.")); vmain = 20; // wait until cancel is pressed return; @@ -233,5 +232,5 @@ void ConnectWidget::init() { if (lock == -1) { - messg->setText(i18n("Unable to create modem lock file.")); + messg->setText(QObject::tr("Unable to create modem lock file.")); vmain = 20; // wait until cancel is pressed return; @@ -280,6 +279,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) { // first init string ? if(substate == -1) { - messg->setText(i18n("Initializing modem...")); - emit debugMessage(i18n("Initializing modem...")); + messg->setText(QObject::tr("Initializing modem...")); + emit debugMessage(QObject::tr("Initializing modem...")); substate = 0; } @@ -318,5 +317,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if(!expecting) { QString sToneDuration = "ATS11=" + QString::number(_ifaceppp->data()->modemToneDuration()); - QString msg = i18n("Setting ") + sToneDuration; + QString msg = QObject::tr("Setting ") + sToneDuration; messg->setText(msg); emit debugMessage(msg); @@ -341,6 +340,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) { return; } - messg->setText(i18n("Setting speaker volume...")); - emit debugMessage(i18n("Setting speaker volume...")); + messg->setText(QObject::tr("Setting speaker volume...")); + emit debugMessage(QObject::tr("Setting speaker volume...")); setExpect(_ifaceppp->data()->modemInitResp()); @@ -357,5 +356,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if(!expecting) { if(!_ifaceppp->data()->waitForDialTone()) { - QString msg = i18n("Turning off dial tone waiting..."); + QString msg = QObject::tr("Turning off dial tone waiting..."); messg->setText(msg); emit debugMessage(msg); @@ -378,5 +377,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { QString bmarg= _ifaceppp->data()->dialPrefix(); bmarg += *plist.at(dialnumber); - QString bm = i18n("Dialing %1").arg(bmarg); + QString bm = QObject::tr("Dialing %1").arg(bmarg); messg->setText(bm); emit debugMessage(bm); @@ -409,10 +408,10 @@ void ConnectWidget::timerEvent(QTimerEvent *) { timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); - messg->setText(i18n("Line busy. Hanging up...")); + messg->setText(QObject::tr("Line busy. Hanging up...")); emit debugPutChar('\n'); _ifaceppp->modem()->hangup(); if(_ifaceppp->data()->busyWait() > 0) { - QString bm = i18n("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait()); + QString bm = QObject::tr("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait()); messg->setText(bm); emit debugMessage(bm); @@ -433,5 +432,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { timeout_timer->stop(); - messg->setText(i18n("No Dialtone")); + messg->setText(QObject::tr("No Dialtone")); vmain = 20; _ifaceppp->modem()->unlockdevice(); @@ -442,5 +441,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { timeout_timer->stop(); - messg->setText(i18n("No Carrier")); + messg->setText(QObject::tr("No Carrier")); vmain = 20; _ifaceppp->modem()->unlockdevice(); @@ -480,5 +479,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Scan") { - QString bm = i18n("Scanning %1").arg(scriptArgument); + QString bm = QObject::tr("Scanning %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -490,5 +489,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Save") { - QString bm = i18n("Saving %1").arg(scriptArgument); + QString bm = QObject::tr("Saving %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -508,5 +507,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Send" || scriptCommand == "SendNoEcho") { - QString bm = i18n("Sending %1"); + QString bm = QObject::tr("Sending %1"); // replace %USERNAME% and %PASSWORD% @@ -533,5 +532,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Expect") { - QString bm = i18n("Expecting %1").arg(scriptArgument); + QString bm = QObject::tr("Expecting %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -547,5 +546,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Pause") { - QString bm = i18n("Pause %1 seconds").arg(scriptArgument); + QString bm = QObject::tr("Pause %1 seconds").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -564,5 +563,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { timeout_timer->stop(); - QString bm = i18n("Timeout %1 seconds").arg(scriptArgument); + QString bm = QObject::tr("Timeout %1 seconds").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -576,6 +575,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Hangup") { - messg->setText(i18n("Hangup")); - emit debugMessage(i18n("Hangup")); + messg->setText(QObject::tr("Hangup")); + emit debugMessage(QObject::tr("Hangup")); writeline(_ifaceppp->data()->modemHangupStr()); @@ -590,6 +589,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) { timeout_timer->stop(); - messg->setText(i18n("Answer")); - emit debugMessage(i18n("Answer")); + messg->setText(QObject::tr("Answer")); + emit debugMessage(QObject::tr("Answer")); setExpect(_ifaceppp->data()->modemRingResp()); @@ -599,5 +598,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "ID") { - QString bm = i18n("ID %1").arg(scriptArgument); + QString bm = QObject::tr("ID %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -635,5 +634,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Password") { - QString bm = i18n("Password %1").arg(scriptArgument); + QString bm = QObject::tr("Password %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -672,5 +671,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "Prompt") { - QString bm = i18n("Prompting %1"); + QString bm = QObject::tr("Prompting %1"); // if the scriptindex (aka the prompt text) includes a ## marker @@ -709,5 +708,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "PWPrompt") { - QString bm = i18n("PW Prompt %1").arg(scriptArgument); + QString bm = QObject::tr("PW Prompt %1").arg(scriptArgument); messg->setText(bm); emit debugMessage(bm); @@ -734,5 +733,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "LoopStart") { - QString bm = i18n("Loop Start %1").arg(scriptArgument); + QString bm = QObject::tr("Loop Start %1").arg(scriptArgument); // The incrementing of the scriptindex MUST be before the @@ -742,8 +741,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if ( loopnest > (MAXLOOPNEST-2) ) { - bm += i18n("ERROR: Nested too deep, ignored."); + bm += QObject::tr("ERROR: Nested too deep, ignored."); vmain=20; cancelbutton(); - QMessageBox::critical(0, "error", i18n("Loops nested too deeply!")); + QMessageBox::critical(0, "error", QObject::tr("Loops nested too deeply!")); } else { setExpect(scriptArgument); @@ -759,7 +758,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) { if (scriptCommand == "LoopEnd") { - QString bm = i18n("Loop End %1").arg(scriptArgument); + QString bm = QObject::tr("Loop End %1").arg(scriptArgument); if ( loopnest <= 0 ) { - bm = i18n("LoopEnd without matching Start! Line: %1").arg(bm); + bm = QObject::tr("LoopEnd without matching Start! Line: %1").arg(bm); vmain=20; cancelbutton(); @@ -849,5 +848,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) { result = execppp(); - emit debugMessage(i18n("Starting pppd...")); + emit debugMessage(QObject::tr("Starting pppd...")); qDebug("execppp() returned with return-code %i", result ); @@ -931,5 +930,5 @@ void ConnectWidget::checkBuffers() { // Show the Variabel content in the debug window - QString sv = i18n("Scan Var: %1").arg(scanvar); + QString sv = QObject::tr("Scan Var: %1").arg(scanvar); emit debugMessage(sv); } @@ -941,5 +940,5 @@ void ConnectWidget::checkBuffers() { readbuffer.remove(0, readbuffer.find(expectstr) + expectstr.length()); - QString ts = i18n("Found: %1").arg(expectstr); + QString ts = QObject::tr("Found: %1").arg(expectstr); emit debugMessage(ts); @@ -952,5 +951,5 @@ void ConnectWidget::checkBuffers() { expecting = false; readbuffer = ""; - QString ts = i18n("Looping: %1").arg(loopstr[loopnest]); + QString ts = QObject::tr("Looping: %1").arg(loopstr[loopnest]); emit debugMessage(ts); scriptindex = loopstartindex[loopnest]; @@ -985,5 +984,5 @@ void ConnectWidget::cancelbutton() { // } - messg->setText(i18n("One moment please...")); + messg->setText(QObject::tr("One moment please...")); // just to be sure @@ -1007,9 +1006,12 @@ void ConnectWidget::cancelbutton() { //abort prompt window... if (prompt->isVisible()) { - prompt->hide(); + prompt->hide(); } prompt->setConsumed(); - messg->setText(tr("offline")); + _ifaceppp->setStatus( false ); + _ifaceppp->refresh(); +// messg->setText(tr("offline")); + refresh(); } @@ -1027,5 +1029,5 @@ void ConnectWidget::script_timed_out() { prompt->setConsumed(); - messg->setText(i18n("Script timed out!")); + messg->setText(QObject::tr("Script timed out!")); _ifaceppp->modem()->hangup(); emit stopAccounting(); @@ -1042,5 +1044,5 @@ void ConnectWidget::setScan(const QString &n) { scanbuffer = ""; - QString ts = i18n("Scanning: %1").arg(n); + QString ts = QObject::tr("Scanning: %1").arg(n); emit debugMessage(ts); } @@ -1051,5 +1053,5 @@ void ConnectWidget::setExpect(const QString &n) { expectstr = n; - QString ts = i18n("Expecting: %1").arg(n); + QString ts = QObject::tr("Expecting: %1").arg(n); ts.replace(QRegExp("\n"), "<LF>"); emit debugMessage(ts); @@ -1086,5 +1088,5 @@ void ConnectWidget::pppdDied() void ConnectWidget::if_waiting_slot() { - messg->setText(i18n("Logging on to network...")); + messg->setText(QObject::tr("Logging on to network...")); // if(!stats->ifIsUp()) { @@ -1117,10 +1119,10 @@ void ConnectWidget::if_waiting_slot() { if(!_ifaceppp->data()->command_on_connect().isEmpty()) { - messg->setText(i18n("Running startup command...")); + messg->setText(QObject::tr("Running startup command...")); // make sure that we don't get any async errors qApp->flushX(); execute_command(_ifaceppp->data()->command_on_connect()); - messg->setText(i18n("Done")); + messg->setText(QObject::tr("Done")); } @@ -1129,12 +1131,17 @@ void ConnectWidget::if_waiting_slot() { _ifaceppp->modem()->removeSecret(AUTH_CHAP); - emit debugMessage(i18n("Done")); + emit debugMessage(QObject::tr("Done")); set_con_speed_string(); // p_kppp->con_win->setConnectionSpeed(p_kppp->con_speed); - this->hide(); - messg->setText(""); +// this->hide(); +// messg->setText(""); _ifaceppp->setStatus( true ); + + m_refreshTimer = new QTimer( this ); + connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) ); + m_refreshTimer->start( 3000 ); + //_ifaceppp->refresh(); // emit _ifaceppp->updateInterface(_ifaceppp); @@ -1162,4 +1169,13 @@ void ConnectWidget::if_waiting_slot() { } +void ConnectWidget::refresh() { + _ifaceppp->refresh(); + if ( _ifaceppp->getStatus() ) { + messg->setText(QObject::tr("Online")); + } else { + messg->setText(QObject::tr("Offline")); + } +} + bool ConnectWidget::execppp() { @@ -1211,16 +1227,9 @@ bool ConnectWidget::execppp() { command += " usepeerdns"; - QStringList &arglist = _ifaceppp->data()->pppdArgument(); - for ( QStringList::Iterator it = arglist.begin(); - it != arglist.end(); - ++it ) - { - command += " " + *it; - } // PAP settings if(_ifaceppp->data()->authMethod() == AUTH_PAP) { command += " -chap user "; - command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; + command = command + _ifaceppp->data()->storedUsername(); } @@ -1228,11 +1237,14 @@ bool ConnectWidget::execppp() { if(_ifaceppp->data()->authMethod() == AUTH_CHAP) { command += " -pap user "; - command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; + command = command + _ifaceppp->data()->storedUsername(); } // PAP/CHAP settings if(_ifaceppp->data()->authMethod() == AUTH_PAPCHAP) { - command += " user "; - command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; + QString tmpName = _ifaceppp->data()->storedUsername(); + if ( !tmpName.isEmpty() ) { + command += " user "; + command = command + tmpName; + } } @@ -1241,6 +1253,16 @@ bool ConnectWidget::execppp() { command += " debug"; + QStringList &arglist = _ifaceppp->data()->pppdArgument(); + for ( QStringList::Iterator it = arglist.begin(); + it != arglist.end(); + ++it ) + { + command += " " + *it; + } + + command += " call opie-kppp logfd 11"; + if (command.length() > MAX_CMDLEN) { - QMessageBox::critical(this, "error", i18n( + QMessageBox::critical(this, "error", QObject::tr( "pppd command + command-line arguments exceed " "2024 characters in length." @@ -1250,4 +1272,6 @@ bool ConnectWidget::execppp() { } + qWarning("Command IS: %s",command.latin1() ); + qApp->flushX(); diff --git a/noncore/settings/networksettings/ppp/connect.h b/noncore/settings/networksettings/ppp/connect.h index e7ae5e0..b225ff5 100644 --- a/noncore/settings/networksettings/ppp/connect.h +++ b/noncore/settings/networksettings/ppp/connect.h @@ -63,4 +63,5 @@ private slots: void pause(); void if_waiting_slot(); + void refresh(); public slots: @@ -128,4 +129,5 @@ private: QTimer *if_timer; QTimer *if_timeout_timer; + QTimer *m_refreshTimer; QLabel *messg; diff --git a/noncore/settings/networksettings/ppp/conwindow.cpp b/noncore/settings/networksettings/ppp/conwindow.cpp index 9136ca0..7641bbe 100644 --- a/noncore/settings/networksettings/ppp/conwindow.cpp +++ b/noncore/settings/networksettings/ppp/conwindow.cpp @@ -25,10 +25,5 @@ #include <qdialog.h> #include "conwindow.h" -//#include "docking.h" #include "pppdata.h" -// #include "pppstats.h" -// #include <klocale.h> -#define i18n QObject::tr -// #include <kglobal.h> @@ -43,17 +38,17 @@ ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name, _pppdata(pd) { - info1 = new QLabel(i18n("Connected at:"), this); + info1 = new QLabel(QObject::tr("Connected at:"), this); info2 = new QLabel("", this); - timelabel1 = new QLabel(i18n("Time connected:"), this); + timelabel1 = new QLabel(QObject::tr("Time connected:"), this); timelabel2 = new QLabel("000:00:00", this); - vollabel = new QLabel(i18n("Volume:"), this); + vollabel = new QLabel(QObject::tr("Volume:"), this); volinfo = new QLabel("", this); // now the stuff for accounting - session_bill_l = new QLabel(i18n("Session Bill:"), this); + session_bill_l = new QLabel(QObject::tr("Session Bill:"), this); session_bill = new QLabel("", this); - total_bill_l = new QLabel(i18n("Total Bill:"), this); + total_bill_l = new QLabel(QObject::tr("Total Bill:"), this); total_bill = new QLabel("", this); @@ -61,9 +56,9 @@ ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name, cancelbutton = new QPushButton(this); - cancelbutton->setText(i18n("Disconnect")); + cancelbutton->setText(QObject::tr("Disconnect")); connect(cancelbutton, SIGNAL(clicked()), mainwidget, SLOT(disconnect())); // statsbutton = new QPushButton(this); -// statsbutton->setText(i18n("Details")); +// statsbutton->setText(QObject::tr("Details")); // statsbutton->setFocus(); // connect(statsbutton, SIGNAL(clicked()), mainwidget, SLOT(showStats())); @@ -95,6 +90,6 @@ bool ConWindow::event(QEvent *e) { QString ConWindow::prettyPrintVolume(unsigned int n) { int idx = 0; - const QString quant[] = {i18n("Byte"), i18n("KB"), - i18n("MB"), i18n("GB"), QString::null}; + const QString quant[] = {QObject::tr("Byte"), QObject::tr("KB"), + QObject::tr("MB"), QObject::tr("GB"), QString::null}; float n1 = n; @@ -260,5 +255,5 @@ void ConWindow::stopClock() { void ConWindow::timeclick() { -// QString tooltip = i18n("Connection: %1\n" +// QString tooltip = QObject::tr("Connection: %1\n" // "Connected at: %2\n" // "Time connected: %3") @@ -267,5 +262,5 @@ void ConWindow::timeclick() { // if(accountingEnabled) -// tooltip += i18n("\nSession Bill: %1\nTotal Bill: %2") +// tooltip += QObject::tr("\nSession Bill: %1\nTotal Bill: %2") // .arg(session_bill->text()).arg(total_bill->text()); // // volume accounting diff --git a/noncore/settings/networksettings/ppp/devices.cpp b/noncore/settings/networksettings/ppp/devices.cpp new file mode 100644 index 0000000..e94904b --- a/dev/null +++ b/noncore/settings/networksettings/ppp/devices.cpp @@ -0,0 +1,212 @@ +/* + * 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 <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 "interfaceppp.h" +#include "devices.h" +#include "authwidget.h" +#include "pppdata.h" +#include "edit.h" +#include "general.h" + +void parseargs(char* buf, char** args); + +DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) + : ChooserWidget(ip->data(), parent, name, f) +{ + _ifaceppp = ip; + QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); + QWhatsThis::add(new_b, tr("Create a new device") ); + + QWhatsThis::add(copy_b, + tr("Makes a copy of the selected device. All\n" + "settings of the selected device are copied\n" + "to a new device, that you can modify to fit your\n" + "needs")); + QWhatsThis::add(delete_b, + tr("<p>Deletes the selected device\n\n" + "<font color=\"red\"><b>Use with care!</b></font>")); + + copy_b->setEnabled( false ); //FIXME +// delete_b->setEnabled( false ); //FIXME + + QStringList tmp = _pppdata->getDevicesNamesList(); + qDebug("DevicesWidget::DevicesWidget got devices %s",tmp.join("--").latin1()); + listListbox->insertStringList(tmp); + + for (uint i = 0; i < listListbox->count(); i++){ + qDebug("listListbox->text(i) %s == _pppdata->devname() %s",listListbox->text(i).latin1(), _pppdata->devname().latin1()); + if ( listListbox->text(i) == _pppdata->devname() ) + listListbox->setCurrentItem( i ); + } +} + + + +void DevicesWidget::slotListBoxSelect(int idx) { + bool ok = _pppdata->setDevice( listListbox->text(idx) ); + delete_b->setEnabled((bool)(idx != -1)); + edit_b->setEnabled((bool)(idx != -1)); +//FIXME copy_b->setEnabled((bool)(idx != -1)); +} + +void DevicesWidget::edit() { + _pppdata->setDevice(listListbox->text(listListbox->currentItem())); + + int result = doTab(); + + if(result == QDialog::Accepted) { + listListbox->changeItem(_pppdata->devname(),listListbox->currentItem()); + _pppdata->save(); + } +} + + +void DevicesWidget::create() { + +// if(listListbox->count() == MAX_ACCOUNTS) { +// QMessageBox::information(this, "sorry", +// tr("Maximum number of accounts reached.")); +// return; +// } + + int result; + if (_pppdata->newdevice() == -1){ + return; + } + result = doTab(); + + if(result == QDialog::Accepted) { + listListbox->insertItem(_pppdata->devname()); + listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true ); + + _pppdata->save(); + } else + _pppdata->deleteDevice(); +} + + +void DevicesWidget::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 devices selected.")); + return; + } + + _pppdata->copydevice(listListbox->currentText()); + + listListbox->insertItem(_pppdata->devname()); + _pppdata->save(); +} + + +void DevicesWidget::remove() { + + QString s = tr("Are you sure you want to delete\nthe device \"%1\"?") + .arg(listListbox->text(listListbox->currentItem())); + + if(QMessageBox::warning(this,tr("Confirm"),s, + QMessageBox::Yes,QMessageBox::No + ) != QMessageBox::Yes) + return; + + if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem()))) + listListbox->removeItem(listListbox->currentItem()); + + +// _pppdata->save(); + + + slotListBoxSelect(listListbox->currentItem()); + +} + + +int DevicesWidget::doTab(){ + QDialog *dlg = new QDialog( 0, "newDevice", 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 isnew; + + if(_pppdata->devname().isEmpty()) { + dlg->setCaption(tr("New Device")); + isnew = true; + } else { + QString tit = tr("Edit Device: "); + tit += _pppdata->devname(); + dlg->setCaption(tit); + isnew = false; + } + + modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); + tabWindow->addTab( modem1, tr("&Device") ); + modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); + tabWindow->addTab( modem2, tr("&Modem") ); + + int result = 0; + bool ok = false; + + while (!ok){ + dlg->showMaximized(); + result = dlg->exec(); + ok = true; + + if(result == QDialog::Accepted) { + if (!modem1->save()){ + QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); + ok = false; + }else{ + modem2->save(); + } + } + } + + delete dlg; + + return result; +} + diff --git a/noncore/settings/networksettings/ppp/devices.h b/noncore/settings/networksettings/ppp/devices.h index d46d5b4..c2679c8 100644 --- a/noncore/settings/networksettings/ppp/devices.h +++ b/noncore/settings/networksettings/ppp/devices.h @@ -4,57 +4,48 @@ #include "kpppconfig.h" -static const char *devices[] = { -#ifdef __FreeBSD__ - "/dev/cuaa0", - "/dev/cuaa1", - "/dev/cuaa2", - "/dev/cuaa3", - "/dev/cuaa4", -#elif defined(__NetBSD__) - "/dev/tty00", /* "normal" modem lines */ - "/dev/tty01", - "/dev/tty02", - "/dev/tty03", - "/dev/dty00", /* Dial out devices */ - "/dev/dty01", - "/dev/dty02", - "/dev/dty03", - "/dev/ttyU0", /* USB stuff modems */ - "/dev/ttyU1", - "/dev/ttyU2", - "/dev/ttyU3", - "/dev/dtyU0", /* USB stuff, too (dial out device) */ - "/dev/dtyU1", - "/dev/dtyU2", - "/dev/dtyU3", -#elif defined (__linux__) - "/dev/modem", - "/dev/ttyS0", - "/dev/ttyS1", - "/dev/ttyS2", - "/dev/ttyS3", -#ifdef ISDNSUPPORT - "/dev/ttyI0", - "/dev/ttyI1", - "/dev/ttyI2", - "/dev/ttyI3", -#endif - "/dev/usb/ttyACM0", /* USB stuff modems */ - "/dev/usb/ttyACM1", - "/dev/usb/ttyACM2", - "/dev/usb/ttyACM3", - "/dev/ircomm0", - "/dev/rfcomm0", - "/dev/rfcomm1", -#elif defined(__svr4__) - "/dev/cua/a", - "/dev/cua/b", - "/dev/ttya", - "/dev/ttyb", -#endif - 0}; +#include <qwidget.h> +#include <qdialog.h> +#include <qpushbutton.h> +#include <qlistbox.h> +#include "chooserwidget.h" + +class QCheckBox; +class QLineEdit; +class QTabWidget; +class DialWidget; +class AuthWidget; +class IPWidget; +class DNSWidget; +class GatewayWidget; +class InterfacePPP; +class PPPData; +class ModemWidget; +class ModemWidget2; + +class DevicesWidget : public ChooserWidget { + Q_OBJECT +public: + DevicesWidget( InterfacePPP* ip, QWidget *parent=0, const char *name=0, WFlags f=0 ); + ~DevicesWidget() {} + + +private slots: + virtual void edit(); + virtual void copy(); + virtual void remove(); + virtual void create(); + virtual void slotListBoxSelect(int); + int doTab(); + +// signals: +// void resetaccounts(); + +private: + ModemWidget *modem1; + ModemWidget2 *modem2; + InterfacePPP *_ifaceppp; + +}; -// default device number from the list above -const int DEV_DEFAULT = 0; #endif diff --git a/noncore/settings/networksettings/ppp/edit.cpp b/noncore/settings/networksettings/ppp/edit.cpp index 0c96253..ceac90c 100644 --- a/noncore/settings/networksettings/ppp/edit.cpp +++ b/noncore/settings/networksettings/ppp/edit.cpp @@ -77,7 +77,7 @@ DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount up = new QPushButton(this); - up->setPixmap( Resource::loadPixmap("inline/up") ); + up->setPixmap( Resource::loadPixmap("up") ); down = new QPushButton(this); - down->setPixmap( Resource::loadPixmap("inline/down") ); + down->setPixmap( Resource::loadPixmap("down") ); lpn1->addWidget(add); lpn1->addWidget(del); diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp index f735e49..5540946 100644 --- a/noncore/settings/networksettings/ppp/general.cpp +++ b/noncore/settings/networksettings/ppp/general.cpp @@ -36,7 +36,8 @@ #include <qspinbox.h> #include <qwhatsthis.h> - +#include <qpe/config.h> // #include <qgroupbox.h> + #include "general.h" #include "interfaceppp.h" @@ -44,13 +45,13 @@ #include "modeminfo.h" #include "modemcmds.h" -#include "devices.h" +//#include "devices.h" #include "pppdata.h" //#include <klocale.h> -#define i18n QObject::tr -ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name ) - : QWidget(parent, name), _ifaceppp(ifppp) + +ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) + : QWidget(parent, name), _pppdata(pd) { int k; @@ -59,17 +60,35 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name QLabel *label1; - label1 = new QLabel(i18n("Modem de&vice:"), this); + + 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); - for(k = 0; devices[k]; k++) - modemdevice->insertItem(devices[k]); + 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 &) ) ); - tl->addWidget(modemdevice, 0, 1); - connect(modemdevice, SIGNAL(activated(int)), - SLOT(setmodemdc(int))); - QString tmp = i18n("This specifies the serial port your modem is attached \n" + 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" @@ -83,17 +102,17 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name - label1 = new QLabel(i18n("&Flow control:"), this); - tl->addWidget(label1, 1, 0); + label1 = new QLabel(tr("&Flow control:"), this); + tl->addWidget(label1, 2, 0); flowcontrol = new QComboBox(false, this); label1->setBuddy(flowcontrol); - flowcontrol->insertItem(i18n("Hardware [CRTSCTS]")); - flowcontrol->insertItem(i18n("Software [XON/XOFF]")); - flowcontrol->insertItem(i18n("None")); - tl->addWidget(flowcontrol, 1, 1); - connect(flowcontrol, SIGNAL(activated(int)), - SLOT(setflowcontrol(int))); - - tmp = i18n("<p>Specifies how the serial port and modem\n" + 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" @@ -104,6 +123,6 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name QWhatsThis::add(flowcontrol,tmp); - QLabel *labelenter = new QLabel(i18n("&Line termination:"), this); - tl->addWidget(labelenter, 2, 0); + QLabel *labelenter = new QLabel(tr("&Line termination:"), this); + tl->addWidget(labelenter, 3, 0); enter = new QComboBox(false, this); @@ -112,7 +131,7 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name enter->insertItem("LF"); enter->insertItem("CR/LF"); - tl->addWidget(enter, 2, 1); - connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); - tmp = i18n("<p>Specifies how AT commands are sent to your\n" + 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" @@ -125,6 +144,6 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name QWhatsThis::add(enter, tmp); - QLabel *baud_label = new QLabel(i18n("Co&nnection speed:"), this); - tl->addWidget(baud_label, 3, 0); + 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); @@ -158,9 +177,9 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name baud_c->setCurrentItem(3); - connect(baud_c, SIGNAL(activated(int)), - this, SLOT(speed_selection(int))); - tl->addWidget(baud_c, 3, 1); +// connect(baud_c, SIGNAL(activated(int)), +// this, SLOT(speed_selection(int))); + tl->addWidget(baud_c, 4, 1); - tmp = i18n("Specifies the speed your modem and the serial\n" + 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" @@ -173,20 +192,20 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name for(int i=0; i <= enter->count()-1; i++) { - if(_ifaceppp->data()->enter() == enter->text(i)) + if(_pppdata->enter() == enter->text(i)) enter->setCurrentItem(i); } - tl->addRowSpacing(4, 10); + tl->addRowSpacing(5, 10); //Modem Lock File - modemlockfile = new QCheckBox(i18n("&Use lock file"), this); + modemlockfile = new QCheckBox(tr("&Use lock file"), this); - modemlockfile->setChecked(_ifaceppp->data()->modemLockFile()); - connect(modemlockfile, SIGNAL(toggled(bool)), - SLOT(modemlockfilechanged(bool))); - tl->addMultiCellWidget(modemlockfile, 5, 5, 0, 1); + 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, - i18n("<p>To prevent other programs from accessing the\n" + 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" @@ -203,16 +222,16 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); -// modemtimeout->setLabel(i18n("Modem &timeout:")); +// modemtimeout->setLabel(tr("Modem &timeout:")); // modemtimeout->setRange(1, 120, 1); - modemtimeout->setSuffix(i18n(" sec")); - modemtimeout->setValue( _ifaceppp->data()->modemTimeout() ); - connect(modemtimeout, SIGNAL(valueChanged(int)), - SLOT(modemtimeoutchanged(int))); + 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, 6, 6, 0, 1); + tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1); QWhatsThis::add(modemtimeout, - i18n("This specifies how long <i>kppp</i> waits for a\n" + 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.")); @@ -220,15 +239,15 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name //set stuff from gpppdata for(int i=0; i <= enter->count()-1; i++) { - if(_ifaceppp->data()->enter() == enter->text(i)) + if(_pppdata->enter() == enter->text(i)) enter->setCurrentItem(i); } for(int i=0; i <= modemdevice->count()-1; i++) { - if(_ifaceppp->data()->modemDevice() == modemdevice->text(i)) + if(_pppdata->modemDevice() == modemdevice->text(i)) modemdevice->setCurrentItem(i); } for(int i=0; i <= flowcontrol->count()-1; i++) { - if(_ifaceppp->data()->flowcontrol() == flowcontrol->text(i)) + if(_pppdata->flowcontrol() == flowcontrol->text(i)) flowcontrol->setCurrentItem(i); } @@ -236,54 +255,104 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name //set the modem speed for(int i=0; i < baud_c->count(); i++) - if(baud_c->text(i) == _ifaceppp->data()->speed()) + if(baud_c->text(i) == _pppdata->speed()) baud_c->setCurrentItem(i); - tl->setRowStretch(7, 1); + tl->setRowStretch(1, 1); } +ModemWidget::~ModemWidget() +{ + QStringList devs; -void ModemWidget::speed_selection(int) { - _ifaceppp->data()->setSpeed(baud_c->text(baud_c->currentItem())); -} + for (int i=0;i<modemdevice->count();i++) + { + QString s = modemdevice->text(i); + s.simplifyWhiteSpace(); + if (! s.isEmpty() ) devs << s; + } -void ModemWidget::setenter(int ) { - _ifaceppp->data()->setEnter(enter->text(enter->currentItem())); -} + QString edited = modemdevice->currentText(); + if ( !( edited ).isEmpty() ) { + edited.simplifyWhiteSpace(); + if ( devs.contains( edited ) == 0 ) { + devs << edited; + } + _pppdata->setModemDevice( edited ); + } + + Config cfg("NetworkSetupPPP"); + cfg.setGroup("Devices_General"); + cfg.writeEntry("devices",devs,','); -void ModemWidget::setmodemdc(int i) { - _ifaceppp->data()->setModemDevice(modemdevice->text(i)); } +// void ModemWidget::speed_selection(int) { +// _pppdata->setSpeed(baud_c->text(baud_c->currentItem())); +// } -void ModemWidget::setflowcontrol(int i) { - _ifaceppp->data()->setFlowcontrol(flowcontrol->text(i)); -} +// void ModemWidget::setenter(int ) { +// _pppdata->setEnter(enter->text(enter->currentItem())); +// } -void ModemWidget::modemlockfilechanged(bool set) { - _ifaceppp->data()->setModemLockFile(set); -} +// void ModemWidget::setmodemdc(int i) { +// _pppdata->setModemDevice(modemdevice->text(i)); +// } -void ModemWidget::modemtimeoutchanged(int n) { - _ifaceppp->data()->setModemTimeout(n); -} +// void ModemWidget::setmodemdc( const QString &string ) { +// _pppdata->setModemDevice( string ); +// } + +// void ModemWidget::setflowcontrol(int i) { +// _pppdata->setFlowcontrol(flowcontrol->text(i)); +// } -ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, +// void ModemWidget::modemlockfilechanged(bool set) { +// _pppdata->setModemLockFile(set); +// } + + +// void ModemWidget::modemtimeoutchanged(int n) { +// _pppdata->setModemTimeout(n); +// } + + + +bool ModemWidget::save() +{ + //first check to make sure that the device name is unique! + if(modemname->text().isEmpty() || + !_pppdata->isUniqueDevname(modemname->text())) + return false; + + qDebug("ModemWidget::save saving modem1 data"); + _pppdata->setDevname( modemname->text() ); + _pppdata->setModemDevice( modemdevice->currentText() ); + _pppdata->setFlowcontrol(flowcontrol->currentText()); + _pppdata->setFlowcontrol(flowcontrol->currentText()); + _pppdata->setSpeed(baud_c->currentText()); + _pppdata->setModemLockFile( modemlockfile->isChecked()); + _pppdata->setModemTimeout( modemtimeout->value() ); + return true; + +} + +ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent, const char *name) - : QWidget(parent, name), _ifaceppp(ifp) + : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip) { QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); - waitfordt = new QCheckBox(i18n("&Wait for dial tone before dialing"), this); - waitfordt->setChecked(_ifaceppp->data()->waitForDialTone()); - connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool))); + 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, - i18n("<p>Normally the modem waits for a dial tone\n" + 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" @@ -297,8 +366,8 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, busywait = new QSpinBox( 0, 300, 5, this, "busyWait" ); // busywait = new KIntNumInput(_pppdata->busyWait(), this); -// busywait->setLabel(i18n("B&usy wait:")); +// busywait->setLabel(tr("B&usy wait:")); // busywait->setRange(0, 300, 5, true); - busywait->setSuffix(i18n(" sec")); - connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int))); + busywait->setSuffix(tr(" sec")); +// connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int))); waitLayout->addWidget(waitLabel); waitLayout->addWidget(busywait); @@ -306,5 +375,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, QWhatsThis::add(busywait, - i18n("Specifies the number of seconds to wait before\n" + 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" @@ -319,7 +388,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, hbl->setSpacing(2);//KDialog::spacingHint()); - QLabel *volumeLabel = new QLabel(i18n("Modem &volume:"), this); + QLabel *volumeLabel = new QLabel(tr("Modem &volume:"), this); hbl->addWidget(volumeLabel); - volume = new QSlider(0, 2, 1, _ifaceppp->data()->volume(), + volume = new QSlider(0, 2, 1, _pppdata->volume(), QSlider::Horizontal, this); volumeLabel->setBuddy(volume); @@ -329,7 +398,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, l1->addLayout(hbl); - connect(volume, SIGNAL(valueChanged(int)), - this, SLOT(volumeChanged(int))); - QString tmp = i18n("Most modems have a speaker which makes\n" +// 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" @@ -345,6 +414,6 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, #if 0 - chkbox1 = new QCheckBox(i18n("Modem asserts CD line"), this); - chkbox1->setChecked(_ifaceppp->data()->UseCDLine()); + chkbox1 = new QCheckBox(tr("Modem asserts CD line"), this); + chkbox1->setChecked(_pppdata->UseCDLine()); connect(chkbox1,SIGNAL(toggled(bool)), this,SLOT(use_cdline_toggled(bool))); @@ -353,5 +422,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, l1->addStretch(1); QWhatsThis::add(chkbox1, - i18n("This controls how <i>kppp</i> detects that the modem\n" + 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" @@ -360,12 +429,12 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, #endif - modemcmds = new QPushButton(i18n("Mod&em Commands..."), this); + modemcmds = new QPushButton(tr("Mod&em Commands..."), this); QWhatsThis::add(modemcmds, - i18n("Allows you to change the AT command for\n" + tr("Allows you to change the AT command for\n" "your modem.")); - modeminfo_button = new QPushButton(i18n("&Query Modem..."), this); + modeminfo_button = new QPushButton(tr("&Query Modem..."), this); QWhatsThis::add(modeminfo_button, - i18n("Most modems support the ATI command set to\n" + tr("Most modems support the ATI command set to\n" "find out vendor and revision of your modem.\n" "\n" @@ -374,7 +443,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, "you setup the modem")); -// terminal_button = new QPushButton(i18n("&Terminal..."), this); +// terminal_button = new QPushButton(tr("&Terminal..."), this); // QWhatsThis::add(terminal_button, -// i18n("Opens the built-in terminal program. You\n" +// 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")); @@ -403,5 +472,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, void ModemWidget2::modemcmdsbutton() { - ModemCommands mc(_ifaceppp->data(), this); + ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp); mc.showMaximized(); mc.exec(); @@ -421,21 +490,29 @@ void ModemWidget2::query_modem() { -#if 0 -void ModemWidget2::use_cdline_toggled(bool on) { - _ifaceppp->data()->setUseCDLine(on); -} -#endif +// #if 0 +// void ModemWidget2::use_cdline_toggled(bool on) { +// _pppdata->setUseCDLine(on); +// } +// #endif -void ModemWidget2::waitfordtchanged(bool b) { - _ifaceppp->data()->setWaitForDialTone((int)b); -} +// void ModemWidget2::waitfordtchanged(bool b) { +// _pppdata->setWaitForDialTone((int)b); +// } -void ModemWidget2::busywaitchanged(int n) { - _ifaceppp->data()->setbusyWait(n); -} +// void ModemWidget2::busywaitchanged(int n) { +// _pppdata->setbusyWait(n); +// } -void ModemWidget2::volumeChanged(int v) { - _ifaceppp->data()->setVolume(v); +// 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/general.h b/noncore/settings/networksettings/ppp/general.h index 3e59b46..f43f241 100644 --- a/noncore/settings/networksettings/ppp/general.h +++ b/noncore/settings/networksettings/ppp/general.h @@ -37,17 +37,22 @@ class QComboBox; class PPPData; class InterfacePPP; +class QLineEdit; class ModemWidget : public QWidget { Q_OBJECT public: - ModemWidget( InterfacePPP*, QWidget *parent=0, const char *name=0 ); + ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 ); + ~ModemWidget(); -private slots: - void setmodemdc(int); - void setflowcontrol(int); - void modemtimeoutchanged(int); - void modemlockfilechanged(bool); - void setenter(int); - void speed_selection(int); + bool save(); + +/* private slots: */ +/* void setmodemdc(int); */ +/* void setmodemdc(const QString &); */ +/* void setflowcontrol(int); */ +/* void modemtimeoutchanged(int); */ +/* void modemlockfilechanged(bool); */ +/* void setenter(int); */ +/* void speed_selection(int); */ private: @@ -57,4 +62,5 @@ private: /* QLabel *labeltmp; */ /* QLabel *labelenter; */ + QLineEdit *modemname; QComboBox *modemdevice; QComboBox *flowcontrol; @@ -65,5 +71,5 @@ private: QSpinBox *modemtimeout; QCheckBox *modemlockfile; - InterfacePPP *_ifaceppp; + PPPData *_pppdata; }; @@ -72,14 +78,15 @@ class ModemWidget2 : public QWidget { Q_OBJECT public: - ModemWidget2( InterfacePPP*, QWidget *parent=0, const char *name=0 ); + ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 ); + bool save(); private slots: - void waitfordtchanged(bool); - void busywaitchanged(int); +/* void waitfordtchanged(bool); */ +/* void busywaitchanged(int); */ // void use_cdline_toggled(bool); void modemcmdsbutton(); // void terminal(); void query_modem(); - void volumeChanged(int); + // void volumeChanged(int); private: @@ -93,4 +100,5 @@ private: QCheckBox *chkbox1; QSlider *volume; + PPPData *_pppdata; InterfacePPP *_ifaceppp; }; diff --git a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp index 553daa2..6b158b9 100644 --- a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp +++ b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp @@ -1,8 +1,6 @@ #include "interfaceinformationppp.h" - #include <qpushbutton.h> #include <qlabel.h> -//#include <qgroupbox.h> #include <qmessagebox.h> #include <qabstractlayout.h> @@ -21,15 +19,21 @@ */ InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f) - :InterfaceInformationImp(parent, name, i, f) + :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp) { - qDebug("InterfaceInformationPPP::InterfaceInformationPPP"); + qDebug("InterfaceInformationPPP::InterfaceInformationPPP %s", name); con = new ConnectWidget( (InterfacePPP*)i, this, "con" ); con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed) ); - QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); - InterfaceInformationLayout->addItem( spacer, 7, 0 ); - InterfaceInformationLayout->addMultiCellWidget( con, 8, 8, 0, 1 ); - // InterfaceInformationLayout->addWidget( con, 7, 0 ); + + macAddressLabel->hide(); + subnetMaskLabel->hide(); + broadcastLabel->hide(); + TextLabel23->hide(); + TextLabel21->hide(); + TextLabel24->hide(); + + InterfaceInformationLayout->addWidget( con, 1, 0 ); connect(i, SIGNAL(begin_connect()),con, SLOT(preinit())); + connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) ); } diff --git a/noncore/settings/networksettings/ppp/interfaceppp.cpp b/noncore/settings/networksettings/ppp/interfaceppp.cpp index 9ec30bc..f443f3c 100644 --- a/noncore/settings/networksettings/ppp/interfaceppp.cpp +++ b/noncore/settings/networksettings/ppp/interfaceppp.cpp @@ -1,5 +1,7 @@ #include <qmessagebox.h> -#define i18n QObject::tr +#include <qlayout.h> +#include <qlineedit.h> +#include <qlabel.h> #include "auth.h" @@ -16,10 +18,10 @@ InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) } -PPPData* InterfacePPP::data() +PPPData* InterfacePPP::data()const { if (!_dataPtr){ qDebug("creating new Data obj"); _dataPtr = new PPPData(); - _dataPtr->setModemDevice( getInterfaceName() ); + _dataPtr->setDevice( getInterfaceName() ); _dataPtr->setAccount( getHardwareName() ); } @@ -27,5 +29,5 @@ PPPData* InterfacePPP::data() } -Modem* InterfacePPP::modem() +Modem* InterfacePPP::modem()const { if (!_modemPtr){ @@ -39,7 +41,13 @@ bool InterfacePPP::refresh() { qDebug("InterfacePPP::refresh()"); - updateInterface(this); - QMessageBox::information(0,"Not Implemented","This feature is not yet implemneted... ;-("); - return false; + QString old = getInterfaceName(); + setInterfaceName( modem()->pppDevice() ); + + (void)Interface::refresh(); + + setInterfaceName( old ); + emit updateInterface(this); + + return true; } @@ -47,11 +55,20 @@ void InterfacePPP::start() { qDebug("InterfacePPP::start"); -// should work... -// if (data()->password().isEmpty() ){ -// //FIXME: ask for password -// qDebug("using dummy password"); -// QMessageBox::critical( 0, "no password", "you should be prompted for a password, but you are not! ;-)"); -// } + if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) { + + QDialog mb( 0, "Dialog", true ); + mb.setCaption( tr( "No password" ) ); + QVBoxLayout layout( &mb ); + QLabel text ( &mb ); + text.setText( tr("Username defined but no password\n Please enter a password") ); + QLineEdit lineedit( &mb ); + lineedit.setEchoMode( QLineEdit::Password ); + layout.addWidget( &text ); + layout.addWidget( &lineedit ); + if ( mb.exec() == QDialog::Accepted ) { + data()->setPassword( lineedit.text() ); + } + } QFileInfo info(pppdPath()); @@ -59,5 +76,5 @@ void InterfacePPP::start() if(!info.exists()){ QMessageBox::warning(0, tr("Error"), - i18n("<qt>Cannot find the PPP daemon!<br>" + QObject::tr("<qt>Cannot find the PPP daemon!<br>" "Make sure that pppd is installed and " "that you have entered the correct path.</qt>")); @@ -68,5 +85,5 @@ void InterfacePPP::start() QString string; - string = i18n( "<qt>Cannot execute:<br> %1<br>" + string = QObject::tr( "<qt>Cannot execute:<br> %1<br>" "Please make sure that you have given " "setuid permission and that " @@ -82,5 +99,5 @@ void InterfacePPP::start() if(!info2.exists()){ QString string; - string = i18n( "<qt>Cannot find:<br> %1<br>" + string = QObject::tr( "<qt>Cannot find:<br> %1<br>" "Please make sure you have setup " "your modem device properly " @@ -99,5 +116,5 @@ void InterfacePPP::start() if(false){ //FIXME: ID_Edit->text().isEmpty()) { QMessageBox::warning(0,tr("Error"), - i18n("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); + QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); // FIXME: return; } else { @@ -107,5 +124,5 @@ void InterfacePPP::start() ) { QString s; - s = i18n("<qt>Cannot create PAP/CHAP authentication<br>" + s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>" "file \"%1\"</qt>").arg(PAP_AUTH_FILE); QMessageBox::warning(0, tr("Error"), s); @@ -116,5 +133,5 @@ void InterfacePPP::start() if (data()->phonenumber().isEmpty()) { - QString s = i18n("You must specify a telephone number!"); + QString s = QObject::tr("You must specify a telephone number!"); QMessageBox::warning(0, tr("Error"), s); return; @@ -133,4 +150,9 @@ void InterfacePPP::stop() { qDebug("InterfacePPP::stop"); + // emit hangup_now(); + status = false; // not connected + setStatus( false ); + emit hangup_now(); + refresh(); } @@ -141,2 +163,12 @@ void InterfacePPP::save() emit updateInterface((Interface*) this); } +QString InterfacePPP::pppDev()const { + return modem()->pppDevice(); +} +pid_t InterfacePPP::pppPID()const{ + return modem()->pppPID(); +} +void InterfacePPP::setPPPDpid( pid_t pid) { + setStatus( true ); + modem()->setPPPDPid( pid ); +} diff --git a/noncore/settings/networksettings/ppp/interfaceppp.h b/noncore/settings/networksettings/ppp/interfaceppp.h index 6eb6a69..39495c2 100644 --- a/noncore/settings/networksettings/ppp/interfaceppp.h +++ b/noncore/settings/networksettings/ppp/interfaceppp.h @@ -1,5 +1,7 @@ -#ifndef INTERFACEPPP_H +#ifndef INTERFACEPPP_H #define INTERFACEPPP_H +#include <sys/types.h> + #include "interface.h" @@ -14,9 +16,12 @@ public: InterfacePPP(QObject *parent=0, const char *name="PPP", bool status=false); - PPPData* data(); - Modem* modem(); + PPPData* data()const; + Modem* modem()const; + QString pppDev()const; // returns the ppp device.... /dev/ppp0... + pid_t pppPID()const; signals: void begin_connect(); + void hangup_now(); public slots: @@ -25,8 +30,9 @@ public slots: virtual void stop(); void save(); + void setPPPDpid( pid_t ); // sets the pppd pid for modem... private: - Modem *_modemPtr; - PPPData *_dataPtr; + mutable Modem *_modemPtr; + mutable PPPData *_dataPtr; }; diff --git a/noncore/settings/networksettings/ppp/kpppwidget.cpp b/noncore/settings/networksettings/ppp/kpppwidget.cpp index 7b5c74d..e466358 100644 --- a/noncore/settings/networksettings/ppp/kpppwidget.cpp +++ b/noncore/settings/networksettings/ppp/kpppwidget.cpp @@ -43,17 +43,6 @@ // #include <kapplication.h> #include <qbuttongroup.h> -//#include <kcmdlineargs.h> -//#include <kconfig.h> -//#include <kdebug.h> -#define i18n QObject::tr -//#include <kiconloader.h> // For BarIcon -//#include <klocale.h> #include <qmessagebox.h> -// #include <kseparator.h> -// #include <kstandarddirs.h> -// #include <kwin.h> -// #include <khelpmenu.h> #include <qpushbutton.h> -//#include <kguiitem.h> #include <stdlib.h> @@ -79,5 +68,5 @@ KPPPWidget *p_kppp = 0; KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *name, bool modal, WFlags fl ) - : QDialog(parent, name, modal, fl), _pppdata(pd) + : QDialog(parent, name, modal, Qt::WStyle_ContextHelp ), _pppdata(pd) { // tabWindow = 0; @@ -109,5 +98,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na l1->setColStretch(2, 4); - label1 = new QLabel(i18n("C&onnect to: "), this); + label1 = new QLabel(QObject::tr("C&onnect to: "), this); l1->addWidget(label1, 0, 1); @@ -119,5 +108,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na l1->addWidget(connectto_c, 0, 2); - ID_Label = new QLabel(i18n("&Login ID:"), this); + ID_Label = new QLabel(QObject::tr("&Login ID:"), this); l1->addWidget(ID_Label, 1, 1); @@ -128,5 +117,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na connect(ID_Edit, SIGNAL(returnPressed()), this, SLOT(enterPressedInID())); - QString tmp = i18n("<p>Type in the username that you got from your\n" + QString tmp = QObject::tr("<p>Type in the username that you got from your\n" "ISP. This is especially important for PAP\n" "and CHAP. You may omit this when you use\n" @@ -139,5 +128,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na QWhatsThis::add(ID_Edit,tmp); - PW_Label = new QLabel(i18n("&Password:"), this); + PW_Label = new QLabel(QObject::tr("&Password:"), this); l1->addWidget(PW_Label, 2, 1); @@ -149,5 +138,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na this, SLOT(enterPressedInPW())); - tmp = i18n("<p>Type in the password that you got from your\n" + tmp = QObject::tr("<p>Type in the password that you got from your\n" "ISP. This is especially important for PAP\n" "and CHAP. You may omit this when you use\n" @@ -165,5 +154,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na tl->addSpacing(5); l3->addSpacing(10); - log = new QCheckBox(i18n("Show lo&g window"), this); + log = new QCheckBox(QObject::tr("Show lo&g window"), this); connect(log, SIGNAL(toggled(bool)), this, SLOT(log_window_toggled(bool))); @@ -172,5 +161,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na QWhatsThis::add(log, - i18n("<p>This controls whether a log window is shown.\n" + QObject::tr("<p>This controls whether a log window is shown.\n" "A log window shows the communication between\n" "<i>kppp</i> and your modem. This will help you\n" @@ -187,12 +176,12 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na int minw = 0; - quit_b = new QPushButton(i18n("&Quit"), this); - // quit_b-> setGuiItem (KGuiItem(i18n("&Quit"), "exit" ) ); + quit_b = new QPushButton(QObject::tr("&Quit"), this); + // quit_b-> setGuiItem (KGuiItem(QObject::tr("&Quit"), "exit" ) ); connect( quit_b, SIGNAL(clicked()), SLOT(quitbutton())); if(quit_b->sizeHint().width() > minw) minw = quit_b->sizeHint().width(); - setup_b = new QPushButton(i18n("&Setup..."), this); -// setup_b->setGuiItem (KGuiItem(i18n("&Setup...")) ); + setup_b = new QPushButton(QObject::tr("&Setup..."), this); +// setup_b->setGuiItem (KGuiItem(QObject::tr("&Setup...")) ); connect( setup_b, SIGNAL(clicked()), SLOT(expandbutton())); if(setup_b->sizeHint().width() > minw) @@ -204,15 +193,15 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na // setup_b->setEnabled(false); -// help_b = new QPushButton(i18n("&Help"), this); +// help_b = new QPushButton(QObject::tr("&Help"), this); // connect( help_b, SIGNAL(clicked()), SLOT(helpbutton())); // KHelpMenu *helpMenu = new KHelpMenu(this, KGlobal::instance()->aboutData(), true); // help_b->setPopup((QPopupMenu*)helpMenu->menu()); -// help_b->setGuiItem (KGuiItem(i18n("&Help"), "help" ) ); +// help_b->setGuiItem (KGuiItem(QObject::tr("&Help"), "help" ) ); // if(help_b->sizeHint().width() > minw) // minw = help_b->sizeHint().width(); - connect_b = new QPushButton(i18n("&Connect"), this); + connect_b = new QPushButton(QObject::tr("&Connect"), this); connect_b->setDefault(true); connect_b->setFocus(); @@ -287,5 +276,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na // if (!result){ // QString string; -// string = i18n("No such Account:\n%1").arg(m_strCmdlAccount); +// string = QObject::tr("No such Account:\n%1").arg(m_strCmdlAccount); // KMessageBox::error(this, string); // m_bCmdlAccount = false; @@ -483,12 +472,12 @@ void KPPPWidget::sigPPPDDied() { QString msg; if (_pppdata->pppdError() == E_IF_TIMEOUT) - msg = i18n("Timeout expired while waiting for the PPP interface " + msg = QObject::tr("Timeout expired while waiting for the PPP interface " "to come up!"); else { - msg = i18n("<p>The pppd daemon died unexpectedly!</p>"); + msg = QObject::tr("<p>The pppd daemon died unexpectedly!</p>"); Modem::modem->pppdExitStatus(); if (Modem::modem->lastStatus != 99) { // more recent pppds only - msg += i18n("<p>Exit status: %1").arg(Modem::modem->lastStatus); - msg += i18n("</p><p>See 'man pppd' for an explanation of the error " + msg += QObject::tr("<p>Exit status: %1").arg(Modem::modem->lastStatus); + msg += QObject::tr("</p><p>See 'man pppd' for an explanation of the error " "codes or take a look at the kppp FAQ on " " <a href=http://devel-home.kde.org/~kppp/index.html>" @@ -497,5 +486,5 @@ void KPPPWidget::sigPPPDDied() { } -// if(QMessageBox::warning(0, msg, i18n("Error"), i18n("&OK"), i18n("&Details...")) == QMessageBox::No) +// if(QMessageBox::warning(0, msg, QObject::tr("Error"), QObject::tr("&OK"), QObject::tr("&Details...")) == QMessageBox::No) // // PPPL_ShowLog(); // } else { /* reconnect on disconnect */ @@ -528,5 +517,5 @@ void KPPPWidget::sigPPPDDied() { // // kdDebug(5002) << "It was the setuid child that died" << endl; // // helperPid = -1; -// QString msg = i18n("kppp's helper process just died.\n" +// QString msg = QObject::tr("kppp's helper process just died.\n" // "Since a further execution would be pointless, " // "kppp will shut down now."); @@ -561,5 +550,5 @@ void KPPPWidget::beginConnect() { if(!info.exists()){ - QMessageBox::warning(this, "error", i18n("Cannot find the PPP daemon!\n" + QMessageBox::warning(this, "error", QObject::tr("Cannot find the PPP daemon!\n" "Make sure that pppd is installed and " "that you have entered the correct path.")); @@ -570,5 +559,5 @@ void KPPPWidget::beginConnect() { QString string; - string = i18n("kppp cannot execute:\n %1\n" + string = QObject::tr("kppp cannot execute:\n %1\n" "Please make sure that you have given kppp " "setuid permission and that " @@ -584,5 +573,5 @@ void KPPPWidget::beginConnect() { if(!info2.exists()){ QString string; - string = i18n("kppp can not find:\n %1\nPlease make sure you have setup " + string = QObject::tr("kppp can not find:\n %1\nPlease make sure you have setup " "your modem device properly " "and/or adjust the location of the modem device on " @@ -600,5 +589,5 @@ void KPPPWidget::beginConnect() { if(ID_Edit->text().isEmpty()) { QMessageBox::warning(this,"error", - i18n("You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!")); + QObject::tr("You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!")); return; } else { @@ -607,5 +596,5 @@ void KPPPWidget::beginConnect() { encodeWord(_pppdata->password()))) { QString s; - s = i18n("Cannot create PAP/CHAP authentication\n" + s = QObject::tr("Cannot create PAP/CHAP authentication\n" "file \"%1\"").arg(PAP_AUTH_FILE); QMessageBox::warning(this, "error", s); @@ -616,5 +605,5 @@ void KPPPWidget::beginConnect() { if (_pppdata->phonenumber().isEmpty()) { - QString s = i18n("You must specify a telephone number!"); + QString s = QObject::tr("You must specify a telephone number!"); QMessageBox::warning(this, "error", s); return; @@ -623,5 +612,5 @@ void KPPPWidget::beginConnect() { this->hide(); - QString tit = i18n("Connecting to: %1").arg(_pppdata->accname()); + QString tit = QObject::tr("Connecting to: %1").arg(_pppdata->accname()); // con->setCaption(tit); @@ -637,6 +626,6 @@ void KPPPWidget::disconnect() { con_win->hide(); con->show(); - con->setCaption(i18n("Disconnecting...")); - con->setMsg(i18n("Executing command before disconnection.")); + con->setCaption(QObject::tr("Disconnecting...")); + con->setMsg(QObject::tr("Executing command before disconnection.")); qApp->processEvents(); @@ -693,6 +682,6 @@ void KPPPWidget::quitbutton() { if(_pppdata->pppdRunning()) { int ok = QMessageBox::warning(this, - i18n("Exiting kPPP will close your PPP Session."), - i18n("Quit kPPP?")); + QObject::tr("Exiting kPPP will close your PPP Session."), + QObject::tr("Quit kPPP?")); if(ok == QMessageBox::Yes) { Modem::modem->killPPPDaemon(); @@ -737,5 +726,5 @@ void KPPPWidget::quitbutton() { // // if(!acct->loadRuleSet(_pppdata->accountingFile())) { -// // QString s= i18n("Can not load the accounting " +// // QString s= QObject::tr("Can not load the accounting " // // "ruleset \"%1\"!").arg(_pppdata->accountingFile()); @@ -827,5 +816,5 @@ void KPPPWidget::showNews() { if(_pppdata->readNumConfig(GENERAL_GRP, QUICKHELP_HINT, 0) == 0) { QDialog dlg(0, 0, true); - dlg.setCaption(i18n("Recent Changes in KPPP")); + dlg.setCaption(QObject::tr("Recent Changes in KPPP")); QVBoxLayout *tl = new QVBoxLayout(&dlg, 10, 10); @@ -840,5 +829,5 @@ void KPPPWidget::showNews() { l1->addLayout(l2); - QLabel *l = new QLabel(i18n("From version 1.4.8 on, kppp has a new feature\n" + QLabel *l = new QLabel(QObject::tr("From version 1.4.8 on, kppp has a new feature\n" "called \"Quickhelp\". It's similar to a tooltip,\n" "but you can activate it whenever you want.\n" @@ -852,10 +841,10 @@ void KPPPWidget::showNews() { &dlg); - QCheckBox *cb = new QCheckBox(i18n("Don't show this hint again"), &dlg); + QCheckBox *cb = new QCheckBox(QObject::tr("Don't show this hint again"), &dlg); cb->setFixedSize(cb->sizeHint()); KButtonBox *bbox = new KButtonBox(&dlg); bbox->addStretch(1); - QPushButton *ok = bbox->addButton(i18n("OK")); + QPushButton *ok = bbox->addButton(QObject::tr("OK")); ok->setDefault(true); dlg.connect(ok, SIGNAL(clicked()), @@ -868,5 +857,5 @@ void KPPPWidget::showNews() { tl->addWidget(bbox); - QString tmp = i18n("This is an example of <b>QuickHelp</b>.\n" + QString tmp = QObject::tr("This is an example of <b>QuickHelp</b>.\n" "This window will stay open until you\n" "click a mouse button or a press a key.\n"); diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp index d23fee4..3dbc8c3 100644 --- a/noncore/settings/networksettings/ppp/modem.cpp +++ b/noncore/settings/networksettings/ppp/modem.cpp @@ -52,9 +52,6 @@ #include "modem.h" #include "pppdata.h" -//#include <klocale.h> -#define i18n QObject::tr #define qError qDebug -//#include <kdebug.h> -//#include <config.h> + #define MY_ASSERT(x) if (!(x)) { \ @@ -100,5 +97,5 @@ Modem::Modem( PPPData* pd ) _pppdExitStatus = -1; pppdPid = -1; - sn = 0L; + sn = m_modemDebug = 0L; data_mode = false; modem_is_locked = false; @@ -170,5 +167,5 @@ bool Modem::opentty() { if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { qDebug("error opening modem device !"); - errmsg = i18n("Unable to open modem."); + errmsg = QObject::tr("Unable to open modem."); return false; } @@ -179,5 +176,5 @@ bool Modem::opentty() { if(_pppdata->UseCDLine()) { if(ioctl(modemfd, TIOCMGET, &flags) == -1) { - errmsg = i18n("Unable to detect state of CD line."); + errmsg = QObject::tr("Unable to detect state of CD line."); ::close(modemfd); modemfd = -1; @@ -185,5 +182,5 @@ bool Modem::opentty() { } if ((flags&TIOCM_CD) == 0) { - errmsg = i18n("The modem is not ready."); + errmsg = QObject::tr("The modem is not ready."); ::close(modemfd); modemfd = -1; @@ -201,5 +198,5 @@ bool Modem::opentty() { sleep(1); if(tcgetattr(modemfd, &tty) < 0){ - errmsg = i18n("The modem is busy."); + errmsg = QObject::tr("The modem is busy."); ::close(modemfd); modemfd = -1; @@ -246,5 +243,5 @@ bool Modem::opentty() { if(tcsetattr(modemfd, TCSANOW, &tty) < 0){ - errmsg = i18n("The modem is busy."); + errmsg = QObject::tr("The modem is busy."); ::close(modemfd); modemfd=-1; @@ -252,5 +249,5 @@ bool Modem::opentty() { } - errmsg = i18n("Modem Ready."); + errmsg = QObject::tr("Modem Ready."); return true; } @@ -264,5 +261,5 @@ bool Modem::closetty() { if(tcsetattr(modemfd, TCSANOW, &initial_tty) < 0){ - errmsg = i18n("Can't restore tty settings: tcsetattr()\n"); + errmsg = QObject::tr("Can't restore tty settings: tcsetattr()\n"); ::close(modemfd); modemfd = -1; @@ -414,5 +411,5 @@ bool Modem::hangup() { close(modemfd); modemfd = -1; - errmsg = i18n("The modem does not respond."); + errmsg = QObject::tr("The modem does not respond."); return false; } @@ -556,5 +553,5 @@ QString Modem::parseModemSpeed(const QString &s) { if(rx == -1 && tx == -1) - result = i18n("Unknown speed"); + result = QObject::tr("Unknown speed"); else if(tx == -1) result.setNum(rx); @@ -878,8 +875,12 @@ bool Modem::execpppd(const char *arguments) { _pppdExitStatus = -1; + (void)::pipe( m_pppdLOG ); + switch(pppdPid = fork()) { case -1: fprintf(stderr,"In parent: fork() failed\n"); + ::close( m_pppdLOG[0] ); + ::close( m_pppdLOG[1] ); return false; break; @@ -903,7 +904,11 @@ bool Modem::execpppd(const char *arguments) { fprintf(stderr, "tcsetpgrp() failed.\n"); + ::close( m_pppdLOG[0] ); + ::setenv( "LANG", "C", 1 ); // overwrite + dup2(m_pppdLOG[1], 11 ); // for logfd 11 dup2(modemfd, 0); dup2(modemfd, 1); + switch (checkForInterface()) { case 1: @@ -925,5 +930,22 @@ bool Modem::execpppd(const char *arguments) { qDebug("In parent: pppd pid %d\n",pppdPid); close(modemfd); + + ::close( m_pppdLOG[1] ); + // set it to nonblocking io + int flag = ::fcntl( m_pppdLOG[0], F_GETFL ); + + if ( !(flag & O_NONBLOCK) ) { + qDebug("Setting nonblocking io"); + flag |= O_NONBLOCK; + ::fcntl(m_pppdLOG[0], F_SETFL, flag ); + } + + delete m_modemDebug; + m_modemDebug = new QSocketNotifier(m_pppdLOG[0], QSocketNotifier::Read, this ); + connect(m_modemDebug, SIGNAL(activated(int) ), + this, SLOT(slotModemDebug(int) ) ); + modemfd = -1; + m_pppdDev = QString::fromLatin1("ppp0"); return true; break; @@ -933,5 +955,8 @@ bool Modem::execpppd(const char *arguments) { bool Modem::killpppd() { + qDebug("In killpppd and pid is %d", pppdPid ); if(pppdPid > 0) { + delete m_modemDebug; + m_modemDebug = 0; qDebug("In killpppd(): Sending SIGTERM to %d\n", pppdPid); if(kill(pppdPid, SIGTERM) < 0) { @@ -1022,2 +1047,34 @@ bool Modem::setHostname(const QString & name) } +QString Modem::pppDevice()const { + return m_pppdDev; +} +void Modem::setPPPDevice( const QString& dev ) { + m_pppdDev = dev; +} +pid_t Modem::pppPID()const { + return pppdPid; +} +void Modem::setPPPDPid( pid_t pid ) { + qDebug("Modem setting pid"); + _pppdExitStatus = -1; + pppdPid = pid; + modemfd = -1; +} +void Modem::slotModemDebug(int fd) { + char buf[2049]; + int len; + + // read in pppd data look for Using interface + // then read the interface + // we limit to 10 device now 0-9 + if((len = ::read(fd, buf, 2048)) > 0) { + buf[len+1] = '\0'; + char *found; + if ( (found = ::strstr(buf, "Using interface ") ) ) { + found += 16; + m_pppdDev = QString::fromLatin1(found, 5 ); + m_pppdDev = m_pppdDev.simplifyWhiteSpace(); + } + } +} diff --git a/noncore/settings/networksettings/ppp/modem.h b/noncore/settings/networksettings/ppp/modem.h index 103cbeb..8ecc354 100644 --- a/noncore/settings/networksettings/ppp/modem.h +++ b/noncore/settings/networksettings/ppp/modem.h @@ -6,5 +6,5 @@ * Copyright (C) 1997 Bernd Johannes Wuebben * wuebben@math.cornell.edu - * + * * This file was added by Harri Porten <porten@tu-harburg.de> * @@ -48,5 +48,7 @@ public: const QString getDevice() {return device;}; - void setDevice(const QString dev) {device = dev;}; + void setDevice(const QString dev) {device = dev;}; + + void save(); bool opentty(); @@ -57,5 +59,5 @@ public: bool dataMode() const { return data_mode; } void setDataMode(bool set) { data_mode = set; } - const QString modemMessage(); + const QString modemMessage(); speed_t modemspeed(); static QString parseModemSpeed(const QString &); @@ -74,5 +76,10 @@ public: int openResolv(int flags); bool setHostname(const QString & name); - + + QString pppDevice()const; + void setPPPDevice( const QString& ); + pid_t pppPID()const; + void setPPPDPid( pid_t ); + public: enum Auth { PAP = 1, CHAP }; @@ -86,5 +93,6 @@ private slots: void startNotifier(); void stopNotifier(); - void readtty(int); + void readtty(int); + void slotModemDebug(int); private: @@ -103,9 +111,10 @@ private: private: QString device; - QString lockfile; + QString lockfile; int modemfd; int pppdPid; int _pppdExitStatus; QSocketNotifier *sn; + QSocketNotifier *m_modemDebug; bool data_mode; QString errmsg; @@ -114,4 +123,6 @@ private: bool modem_is_locked; PPPData *_pppdata; + int m_pppdLOG[2]; + QString m_pppdDev; }; diff --git a/noncore/settings/networksettings/ppp/modemcmds.cpp b/noncore/settings/networksettings/ppp/modemcmds.cpp index 1d9db6e..e797795 100644 --- a/noncore/settings/networksettings/ppp/modemcmds.cpp +++ b/noncore/settings/networksettings/ppp/modemcmds.cpp @@ -28,11 +28,9 @@ #include <qslider.h> #include <qbuttongroup.h> +#include <qscrollview.h> +#include <qapplication.h> #include <stdlib.h> -//#include <kapplication.h> // for getMiniIcon() -//#include <klocale.h> -#define i18n QObject::tr #include "modemcmds.h" #include "pppdata.h" -//#include <kwin.h> #define ADJUSTEDIT(e) //e->setText("XXXXXXXXqy"); e->setMinimumSize(e->sizeHint()); /*e->setFixedHeight(e->sizeHint().height());*/ e->setText(""); e->setMaxLength(MODEMSTR_SIZE); @@ -41,19 +39,31 @@ #define FORMATSLIDERLABEL(l) //l->setFixedWidth(l->sizeHint().width()); l->setFixedHeight(QLineEdit(dummyWidget).sizeHint().height()); l->setAlignment(AlignCenter); l->setFrameStyle(QFrame::WinPanel|QFrame::Sunken); l->setLineWidth(2); -ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) - : QDialog(parent, name, true ), _pppdata(pd) +ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name , bool modal, WFlags f) + : QDialog( parent, name, modal, f ), _pppdata(pd) { - setCaption(i18n("Edit Modem Commands")); + setCaption(QObject::tr("Edit Modem Commands")); const int GRIDROWS = 22; int row = 0; + QVBoxLayout *main = new QVBoxLayout( this ); + QScrollView *sv = new QScrollView( this ); + QWidget *mainW = new QWidget( sv->viewport() ); + sv->setResizePolicy( QScrollView::AutoOneFit ); + sv->setHScrollBarMode( QScrollView::AlwaysOff ); + sv->setFrameShape( QFrame::NoFrame ); + sv->addChild( mainW ); + main->addWidget( sv ); + // evil hack + mainW->setMaximumWidth( QApplication::desktop()->width() - 10 ); + // toplevel layout - QVBoxLayout *tl = new QVBoxLayout(this, 10, 4); + QVBoxLayout *tl = new QVBoxLayout( mainW, 10, 4); // add grid + frame QGridLayout *l1 = new QGridLayout(GRIDROWS, 4); tl->addLayout(l1); - box = new QGroupBox(this, "box"); + box = new QGroupBox(mainW, "box"); + box->setMargin( 0 ); l1->addMultiCellWidget(box, row++, GRIDROWS, 0, 3); @@ -61,9 +71,9 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) QHBoxLayout *l2 = new QHBoxLayout; l1->addLayout(l2, row, 2); - lpreinitslider = new QLabel("MMMM", this); + lpreinitslider = new QLabel("MMMM", mainW); FORMATSLIDERLABEL(lpreinitslider); QSlider *preinitslider = new QSlider(0, 300, 1, 0, - QSlider::Horizontal, this); + QSlider::Horizontal, mainW); // preinitslider->setFixedHeight(preinitslider->sizeHint().height()); connect(preinitslider, SIGNAL(valueChanged(int)), @@ -72,11 +82,11 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) l2->addWidget(preinitslider, 1); - lpreinit = new QLabel(i18n("Pre-init delay (sec/100):"), this); + lpreinit = new QLabel(QObject::tr("Pre-init delay (sec/100):"), mainW); l1->addWidget(lpreinit, row++, 1); for(int i = 0; i < PPPData::NumInitStrings; i++) { - initstr[i] = new QLineEdit(this); - QLabel *initLabel = new QLabel(i18n("Initialization string %1:").arg(i + 1), - this); + initstr[i] = new QLineEdit(mainW); + QLabel *initLabel = new QLabel(QObject::tr("Initialization string %1:").arg(i + 1), + mainW); ADJUSTEDIT(initstr[i]); l1->addWidget(initLabel, row, 1); @@ -86,8 +96,8 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) QHBoxLayout *l3 = new QHBoxLayout; l1->addLayout(l3, row, 2); - linitslider = new QLabel("MMMM", this); + linitslider = new QLabel("MMMM", mainW); FORMATSLIDERLABEL(linitslider); QSlider *initslider = new QSlider(1, 300, 1, 0, - QSlider::Horizontal, this); + QSlider::Horizontal, mainW); // initslider->setFixedHeight(initslider->sizeHint().height()); connect(initslider, SIGNAL(valueChanged(int)), @@ -96,5 +106,5 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) l3->addWidget(initslider, 1); - label3 = new QLabel(i18n("Post-init delay (sec/100):"), this); + label3 = new QLabel(QObject::tr("Post-init delay (sec/100):"), mainW); l1->addWidget(label3, row++, 1); @@ -102,8 +112,8 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) QHBoxLayout *l4 = new QHBoxLayout; l1->addLayout(l4, row, 2); - ldurationslider = new QLabel("MMMM", this); + ldurationslider = new QLabel("MMMM", mainW); FORMATSLIDERLABEL(ldurationslider); QSlider *durationslider = new QSlider(1, 255, 1, 0, - QSlider::Horizontal, this); + QSlider::Horizontal, mainW); // durationslider->setFixedHeight(durationslider->sizeHint().height()); connect(durationslider, SIGNAL(valueChanged(int)), @@ -112,88 +122,88 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) l4->addWidget(durationslider, 1); - lduration = new QLabel(i18n("Dialing speed (sec/100):"), this); + lduration = new QLabel(QObject::tr("Dialing speed (sec/100):"), mainW); l1->addWidget(lduration, row++, 1); - initresp = new QLineEdit(this); - label2 = new QLabel(i18n("Init response:"), this); + initresp = new QLineEdit(mainW); + label2 = new QLabel(QObject::tr("Init response:"), mainW); ADJUSTEDIT(initresp); l1->addWidget(label2, row, 1); l1->addWidget(initresp, row++, 2); - nodetectdialtone = new QLineEdit(this); - lnodetectdialtone = new QLabel(i18n("No dial tone detection:"), this); + nodetectdialtone = new QLineEdit(mainW); + lnodetectdialtone = new QLabel(QObject::tr("No dial tone detection:"), mainW); ADJUSTEDIT(nodetectdialtone); l1->addWidget(lnodetectdialtone, row, 1); l1->addWidget(nodetectdialtone, row++, 2); - dialstr = new QLineEdit(this); - label4 = new QLabel(i18n("Dial string:"),this); + dialstr = new QLineEdit(mainW); + label4 = new QLabel(QObject::tr("Dial string:"),mainW); ADJUSTEDIT(dialstr); l1->addWidget(label4, row, 1); l1->addWidget(dialstr, row++, 2); - connectresp = new QLineEdit(this); - label5 = new QLabel(i18n("Connect response:"), this); + connectresp = new QLineEdit(mainW); + label5 = new QLabel(QObject::tr("Connect response:"), mainW); ADJUSTEDIT(connectresp); l1->addWidget(label5, row, 1); l1->addWidget(connectresp, row++, 2); - busyresp = new QLineEdit(this); - label6 = new QLabel(i18n("Busy response:"), this); + busyresp = new QLineEdit(mainW); + label6 = new QLabel(QObject::tr("Busy response:"), mainW); ADJUSTEDIT(busyresp); l1->addWidget(label6, row, 1); l1->addWidget(busyresp, row++, 2); - nocarrierresp = new QLineEdit(this); - label7 = new QLabel(i18n("No carrier response:"), this); + nocarrierresp = new QLineEdit(mainW); + label7 = new QLabel(QObject::tr("No carrier response:"), mainW); ADJUSTEDIT(nocarrierresp); l1->addWidget(label7, row, 1); l1->addWidget(nocarrierresp, row++, 2); - nodialtoneresp = new QLineEdit(this); - label8 = new QLabel(i18n("No dial tone response:"), this); + nodialtoneresp = new QLineEdit(mainW); + label8 = new QLabel(QObject::tr("No dial tone response:"), mainW); ADJUSTEDIT(nodialtoneresp); l1->addWidget(label8, row, 1); l1->addWidget(nodialtoneresp, row++, 2); - hangupstr = new QLineEdit(this); - label9 = new QLabel(i18n("Hangup string:"), this); + hangupstr = new QLineEdit(mainW); + label9 = new QLabel(QObject::tr("Hangup string:"), mainW); ADJUSTEDIT(hangupstr); l1->addWidget(label9, row, 1); l1->addWidget(hangupstr, row++, 2); - hangupresp = new QLineEdit(this); - label10 = new QLabel(i18n("Hangup response:"), this); + hangupresp = new QLineEdit(mainW); + label10 = new QLabel(QObject::tr("Hangup response:"), mainW); ADJUSTEDIT(hangupresp); l1->addWidget(label10, row, 1); l1->addWidget(hangupresp, row++, 2); - answerstr = new QLineEdit(this); - label11 = new QLabel(i18n("Answer string:"), this); + answerstr = new QLineEdit(mainW); + label11 = new QLabel(QObject::tr("Answer string:"), mainW); ADJUSTEDIT(answerstr); l1->addWidget(label11, row, 1); l1->addWidget(answerstr, row++, 2); - ringresp = new QLineEdit(this); - label12 = new QLabel(i18n("Ring response:"), this); + ringresp = new QLineEdit(mainW); + label12 = new QLabel(QObject::tr("Ring response:"), mainW); ADJUSTEDIT(ringresp); l1->addWidget(label12, row, 1); l1->addWidget(ringresp, row++, 2); - answerresp = new QLineEdit(this); - label13 = new QLabel(i18n("Answer response:"), this); + answerresp = new QLineEdit(mainW); + label13 = new QLabel(QObject::tr("Answer response:"), mainW); ADJUSTEDIT(answerresp); l1->addWidget(label13, row, 1); l1->addWidget(answerresp, row++, 2); - escapestr = new QLineEdit(this); - label14 = new QLabel(i18n("Escape string:"), this); + escapestr = new QLineEdit(mainW); + label14 = new QLabel(QObject::tr("Escape string:"), mainW); ADJUSTEDIT(escapestr); l1->addWidget(label14, row, 1); l1->addWidget(escapestr, row++, 2); - escaperesp = new QLineEdit(this); - label15 = new QLabel(i18n("Escape response:"), this); + escaperesp = new QLineEdit(mainW); + label15 = new QLabel(QObject::tr("Escape response:"), mainW); ADJUSTEDIT(escaperesp); l1->addWidget(label15, row, 1); @@ -202,9 +212,9 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) QHBoxLayout *l5 = new QHBoxLayout; l1->addLayout(l5, row, 2); - lslider = new QLabel("MMMM", this); + lslider = new QLabel("MMMM", mainW); FORMATSLIDERLABEL(lslider); QSlider *slider = new QSlider(0, 255, 1, 0, - QSlider::Horizontal, this); + QSlider::Horizontal, mainW); // slider->setFixedHeight(slider->sizeHint().height()); connect(slider, SIGNAL(valueChanged(int)), @@ -213,18 +223,18 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) l5->addWidget(slider, 1); - label16 = new QLabel(i18n("Guard time (sec/50):"), this); + label16 = new QLabel(QObject::tr("Guard time (sec/50):"), mainW); l1->addWidget(label16, row++, 1); - QLabel *l = new QLabel(i18n("Volume off/low/high:"), this); + QLabel *l = new QLabel(QObject::tr("Volume off/low/high:"), mainW); l1->addWidget(l, row, 1); QHBoxLayout *l6 = new QHBoxLayout; l1->addLayout(l6, row++, 2); - volume_off = new QLineEdit(this); + volume_off = new QLineEdit(mainW); // volume_off->setFixedHeight(volume_off->sizeHint().height()); // volume_off->setMinimumWidth((int)(volume_off->sizeHint().width() / 2)); - volume_medium = new QLineEdit(this); + volume_medium = new QLineEdit(mainW); // volume_medium->setFixedHeight(volume_medium->sizeHint().height()); // volume_medium->setMinimumWidth((int)(volume_medium->sizeHint().width() / 2)); - volume_high = new QLineEdit(this); + volume_high = new QLineEdit(mainW); // volume_high->setFixedHeight(volume_high->sizeHint().height()); // volume_high->setMinimumWidth((int)(volume_high->sizeHint().width() / 2)); @@ -308,5 +318,10 @@ void ModemCommands::slotOk() { _pppdata->save(); - accept(); + QDialog::accept(); +} + +void ModemCommands::accept() +{ + slotOk(); } diff --git a/noncore/settings/networksettings/ppp/modemcmds.h b/noncore/settings/networksettings/ppp/modemcmds.h index ef69fec..81d67f4 100644 --- a/noncore/settings/networksettings/ppp/modemcmds.h +++ b/noncore/settings/networksettings/ppp/modemcmds.h @@ -45,8 +45,9 @@ Q_OBJECT public: - ModemCommands(PPPData*, QWidget *parent=0, const char *name=0); + ModemCommands(PPPData*, QWidget *parent=0, const char *name=0, bool modal=0, WFlags f = 0); ~ModemCommands() {} private slots: + virtual void accept(); void slotCancel(); void slotOk(); diff --git a/noncore/settings/networksettings/ppp/modeminfo.cpp b/noncore/settings/networksettings/ppp/modeminfo.cpp index 0bec186..dbb26db 100644 --- a/noncore/settings/networksettings/ppp/modeminfo.cpp +++ b/noncore/settings/networksettings/ppp/modeminfo.cpp @@ -35,6 +35,4 @@ #include "modeminfo.h" #include "modem.h" -//#include <klocale.h> -#define i18n QObject::tr ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name) @@ -42,5 +40,5 @@ ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name) _modem(mo) { - setCaption(i18n("ATI Query")); + setCaption(QObject::tr("ATI Query")); // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); @@ -59,15 +57,15 @@ ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name) // the longest english message, translate it and give it additional // 20 percent space. Hope this is enough. - statusBar->setText(i18n("Unable to create modem lock file.")); + 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(i18n("Looking for modem...")); + statusBar->setText(QObject::tr("Looking for modem...")); progressBar->setFixedHeight(statusBar->minimumSize().height()); tl->addWidget(progressBar); tl->addWidget(statusBar); - cancel = new QPushButton(i18n("Cancel"), this); + cancel = new QPushButton(QObject::tr("Cancel"), this); cancel->setFocus(); connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); @@ -119,5 +117,5 @@ void ModemTransfer::time_out_slot() { scripttimer->stop(); - QMessageBox::warning(this, tr("Error"), i18n("Modem Query timed out.")); + QMessageBox::warning(this, tr("Error"), QObject::tr("Modem Query timed out.")); reject(); } @@ -131,5 +129,5 @@ void ModemTransfer::init() { if (lock == 1) { - statusBar->setText(i18n("Modem device is locked.")); + statusBar->setText(QObject::tr("Modem device is locked.")); return; } @@ -137,5 +135,5 @@ void ModemTransfer::init() { if (lock == -1) { - statusBar->setText(i18n("Unable to create modem lock file.")); + statusBar->setText(QObject::tr("Unable to create modem lock file.")); return; } @@ -147,5 +145,5 @@ void ModemTransfer::init() { _modem->writeLine("ATE0Q1V1"); // E0 don't echo the commands I send ... - statusBar->setText(i18n("Modem Ready")); + statusBar->setText(QObject::tr("Modem Ready")); qApp->processEvents(); usleep(100000); // wait 0.1 secs @@ -228,5 +226,5 @@ void ModemTransfer::cancelbutton() { timeout_timer->stop(); - statusBar->setText(i18n("One moment please...")); + statusBar->setText(QObject::tr("One moment please...")); qApp->processEvents(); @@ -250,5 +248,5 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name) QString label_text; - setCaption(i18n("Modem Query Results")); + setCaption(QObject::tr("Modem Query Results")); // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); @@ -275,5 +273,5 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name) QHBoxLayout *l2 = new QHBoxLayout; - QPushButton *ok = new QPushButton(i18n("Close"), this); + QPushButton *ok = new QPushButton(QObject::tr("Close"), this); ok->setDefault(TRUE); ok->setFocus(); diff --git a/noncore/settings/networksettings/ppp/ppp.pro b/noncore/settings/networksettings/ppp/ppp.pro index fc89f35..84acd0e 100644 --- a/noncore/settings/networksettings/ppp/ppp.pro +++ b/noncore/settings/networksettings/ppp/ppp.pro @@ -5,10 +5,9 @@ TEMPLATE = lib CONFIG += qt warn_on debug DESTDIR = $(OPIEDIR)/plugins/networksettings -HEADERS = pppmodule.h devices.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h -SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp +HEADERS = pppmodule.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h chooserwidget.h devices.h +SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp chooserwidget.cpp devices.cpp INCLUDEPATH += $(OPIEDIR)/include ../ ../interfaces/ DEPENDPATH += $(OPIEDIR)/include LIBS += -lqpe -L../interfaces/ -linterfaces -INTERFACES = TARGET = kppp VERSION = 1.0.0 diff --git a/noncore/settings/networksettings/ppp/pppconfig.cpp b/noncore/settings/networksettings/ppp/pppconfig.cpp index 5fa7d3f..97baf31 100644 --- a/noncore/settings/networksettings/ppp/pppconfig.cpp +++ b/noncore/settings/networksettings/ppp/pppconfig.cpp @@ -5,4 +5,5 @@ #include "accounts.h" +#include "devices.h" #include "general.h" #include "interfaceppp.h" @@ -29,5 +30,5 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent, qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1()); - qDebug(" _pppdata->currentAccountID() >%i<",interface->data()->currentAccountID()); + QVBoxLayout *layout = new QVBoxLayout( this ); @@ -37,10 +38,14 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent, layout->addWidget( tabWindow ); - accounts = new AccountWidget( interface->data(), tabWindow, "accounts" ); + accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp ); tabWindow->addTab( accounts, tr("&Accounts") ); - modem1 = new ModemWidget( interface, tabWindow, "modem1" ); - tabWindow->addTab( modem1, tr("&Device") ); - modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); - tabWindow->addTab( modem2, tr("&Modem") ); + devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp ); + tabWindow->addTab( devices, tr("&Devices") ); + +//OLD: +// modem1 = new ModemWidget( interface, tabWindow, "modem1" ); +// tabWindow->addTab( modem1, tr("&Device") ); +// modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); +// tabWindow->addTab( modem2, tr("&Modem") ); } @@ -57,5 +62,5 @@ void PPPConfigWidget::accept() qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1()); qDebug(" interface->getHardwareName >%s<", interface->getHardwareName().latin1()); - interface->setInterfaceName( interface->data()->modemDevice() ); + interface->setInterfaceName( interface->data()->devname() ); interface->setHardwareName( interface->data()->accname() ); interface->save(); diff --git a/noncore/settings/networksettings/ppp/pppconfig.h b/noncore/settings/networksettings/ppp/pppconfig.h index 9bab6fe..4d7912f 100644 --- a/noncore/settings/networksettings/ppp/pppconfig.h +++ b/noncore/settings/networksettings/ppp/pppconfig.h @@ -9,4 +9,7 @@ class InterfacePPP; class AccountWidget; class GeneralWidget; +class DevicesWidget; + +//OLD: class ModemWidget; class ModemWidget2; @@ -30,4 +33,7 @@ protected slots: AccountWidget *accounts; GeneralWidget *general; + DevicesWidget* devices; + + //OLD: ModemWidget *modem1; ModemWidget2 *modem2; diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp index 8f45e54..f4727c1 100644 --- a/noncore/settings/networksettings/ppp/pppdata.cpp +++ b/noncore/settings/networksettings/ppp/pppdata.cpp @@ -27,7 +27,6 @@ #include "pppdata.h" #include "runtests.h" -#include "devices.h" +//#include "devices.h" //#include <klocale.h> -#define i18n QObject::tr #include <qpe/config.h> #include <qmessagebox.h> @@ -43,22 +42,30 @@ PPPData::PPPData() - : modemDeviceGroup(-1), - passwd(""), + : passwd(""), + _modemName(""), highcount(-1), // start out with no entries - caccount(-1), // set the current account index also + highcountdev(-1), // start out with no entries +// caccount(-1), // set the current account index also suidprocessid(-1), // process ID of setuid child pppdisrunning(false), pppderror(0) { - highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; + highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; + highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1; + Config cfg = config(); + cfg.setGroup(GENERAL_GRP); + accountList = cfg.readListEntry(ACCOUNT_LIST, ',' ); + deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' ); + qDebug("PPPData::PPPData has a accountList %s", accountList.join("---").latin1()); + qDebug("PPPData::PPPData has a deviceList %s", deviceList.join("---").latin1()); - if (highcount > MAX_ACCOUNTS) - highcount = MAX_ACCOUNTS; +// if (highcount > MAX_ACCOUNTS) +// highcount = MAX_ACCOUNTS; - if(highcount >= 0 && defaultAccount().isEmpty()) { - setAccountbyIndex(0); - setDefaultAccount(accname()); - } else if(!setAccount(defaultAccount())) - setDefaultAccount(accname()); + // if(highcount >= 0 && defaultAccount().isEmpty()) { +// setAccountbyIndex(0); +// setDefaultAccount(accname()); +// } else if(!setAccount(defaultAccount())) + setDefaultAccount(accname()); // start out with internal debugging disabled @@ -82,7 +89,12 @@ void PPPData::save() qDebug("PPPData saving data"); writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); + writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1); QString key; QStringList keys; Config cfg = config(); + cfg.setGroup(GENERAL_GRP); + cfg.writeEntry(ACCOUNT_LIST, accountList, ',' ); + cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' ); + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); it != stringEntries.end(); ++it ){ @@ -91,8 +103,8 @@ void PPPData::save() // qDebug("saving %s -> %s", key.latin1(), val.latin1() ); keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + //qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); cfg.setGroup(keys[0]); cfg.writeEntry(keys[1], val); - } + } for( QMap<QString,int>::Iterator it = intEntries.begin(); it != intEntries.end(); ++it ){ @@ -101,8 +113,8 @@ void PPPData::save() // qDebug("saving %s -> %i", key.latin1(), val ); keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val ); + //qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val ); cfg.setGroup(keys[0]); cfg.writeEntry(keys[1], val); - } + } for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); it != listEntries.end(); ++it ){ @@ -112,8 +124,7 @@ void PPPData::save() // qDebug("saving %s -> %s", key.latin1(), val.join(sep).latin1() ); keys = QStringList::split( "SEPARATOR", key ); - qDebug("group >%s< key >%s<values >%s<", keys[0].latin1(), keys[1].latin1(), val.join(sep).latin1() ); cfg.setGroup(keys[0]); cfg.writeEntry(keys[1], val, sep); - } + } } @@ -345,19 +356,31 @@ void PPPData::setpppdTimeout(int n) { const QString PPPData::modemDevice() { - return readConfig (modemGroup(), MODEMDEV_KEY, devices[DEV_DEFAULT]); + return readConfig (modemGroup(), MODEMDEV_KEY, "/dev/modem" ); } +// const QString PPPData::modemName() +// { +// return readConfig(modemGroup(), MODEMNAME_KEY); +// } + +// bool PPPData::setModemName(const QString &n) { +// qDebug("Setting modem name to >%s<", n.latin1()); +// _modemName = n; +// writeConfig(cgroup, MODEMNAME_KEY, n); +// return true; //FIXME +// } + +// bool PPPData::changeModemName(const QString &n) { +// qDebug("Setting modem name to >%s<", n.latin1()); +// _modemName = n; +// writeConfig(modemGroup(), MODEMNAME_KEY, n); +// return true; //FIXME +// } + bool PPPData::setModemDevice(const QString &n) { qDebug("Setting modem dev to >%s<", n.latin1()); - bool ret = false; - for (int i = 0; devices[i]; i++) - if (devices[i] == n){ - modemDeviceGroup = i; - writeConfig(modemGroup(), MODEMDEV_KEY, n); - ret = true; - } - qDebug(ret?"SUCCESS":"FAILURE"); - return ret; + writeConfig(modemGroup(), MODEMDEV_KEY, n); + return true; //FIXME } @@ -718,87 +741,109 @@ int PPPData::count() const { bool PPPData::setAccount(const QString &aname) { qDebug("setting account to >%s<", aname.latin1()); - for(int i = 0; i <= highcount; i++) { - setAccountbyIndex(i); - if(accname() == aname) { - caccount = i; - qDebug("SUCCESS"); - return true; + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + qDebug("PPPData::setAccount %s", cgroup.latin1()); + qDebug( "iterator %s", (*it).latin1() ); + if(accname() == aname) { + qDebug("SUCCESS"); + return true; + } + } - } - qDebug("FAILURE"); - return false; + qDebug("FAILURE"); + return false; } - +/* bool PPPData::setAccountbyIndex(int i) { if(i >= 0 && i <= highcount) { + QString tmp; + tmp.sprintf("%s%i", ACCOUNT_GRP, i); + if (_deleted.find(tmp)!=_deleted.end()) return false; caccount = i; - cgroup.sprintf("%s%i", ACCOUNT_GRP, i); + cgroup = tmp; return true; } return false; } - +*/ bool PPPData::isUniqueAccname(const QString &n) { - int current = caccount; - for(int i=0; i <= highcount; i++) { - setAccountbyIndex(i); - if(accname() == n && i != current) { - setAccountbyIndex(current); - return false; - } + QString save_cgroup = cgroup; + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + qDebug("PPPData::setAccount %s", cgroup.latin1()); + qDebug( "%s \n", (*it).latin1() ); + if(accname() == n && cgroup != save_cgroup) { + cgroup = save_cgroup; + qDebug("SUCCESS"); + return false; + } + } - setAccountbyIndex(current); + cgroup = save_cgroup; return true; } -bool PPPData::deleteAccount() { - //FIXME: PPPData::deleteAccount -// if(caccount < 0) - return false; - -// QMap <QString, QString> map; -// QMap <QString, QString>::Iterator it; - -// // set all entries of the current account to "" -// map = config->entryMap(cgroup); -// it = map.begin(); -// while (it != map.end()) { -// config->writeEntry(it.key(), ""); -// it++; -// } +bool PPPData::isUniqueDevname(const QString &n) { + QString save_mName = _modemName; + qDebug("PPPData::isUniqueDevname checking if %s is unique", n.latin1()); + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::isUniqueDevname %s == %s", n.latin1() , devname().latin1()); + if(devname() == n && _modemName != save_mName) { + _modemName = save_mName; + qDebug("NOT UNIQUE"); + return false; + } -// // shift the succeeding accounts -// for(int i = caccount+1; i <= highcount; i++) { -// setAccountbyIndex(i); -// map = config->entryMap(cgroup); -// it = map.begin(); -// setAccountbyIndex(i-1); -// config->setGroup(cgroup); -// while (it != map.end()) { -// config->writeEntry(it.key(), *it); -// it++; -// } -// } + } + _modemName = save_mName; + return true; +} -// // make sure the top account is cleared -// setAccountbyIndex(highcount); -// map = config->entryMap(cgroup); -// it = map.begin(); -// config->setGroup(cgroup); -// while (it.key() != QString::null) { -// config->writeEntry(it.key(), ""); -// it++; -// } -// highcount--; -// if(caccount > highcount) -// caccount = highcount; +bool PPPData::deleteAccount() { + // FIXME: check if this account exists in a config... + Config cfg = PPPData::config(); + cfg.setGroup(cgroup); + cfg.clearGroup(); + accountList.remove(cgroup); -// setAccountbyIndex(caccount); + QString key; + QStringList keys; + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); + it != stringEntries.end(); ++it ){ + QString val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==cgroup){ + stringEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + } + } + for( QMap<QString,int>::Iterator it = intEntries.begin(); + it != intEntries.end(); ++it ){ + int val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==cgroup){ + intEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val ); + } + } + for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); + it != listEntries.end(); ++it ){ + QStringList val = it.data(); + key = it.key(); + if(keys[0]==cgroup){ + listEntries.remove( it ); + sepEntries.remove( key ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() ); + } + } -// return true; + return true; } @@ -818,15 +863,17 @@ int PPPData::newaccount() { qDebug("PPPData::newaccount highcount %i/%i",highcount,MAX_ACCOUNTS); // if(!config) open(); - if (highcount >= MAX_ACCOUNTS) return -1; +// if (highcount >= MAX_ACCOUNTS) return -1; - highcount++; - setAccountbyIndex(highcount); + QString tmp; + tmp.sprintf("%s%i", ACCOUNT_GRP, ++highcount); + cgroup = QString(tmp); + accountList << tmp; + qDebug("PPPData::newaccount() Group: >%s<",cgroup.latin1()); setpppdArgumentDefaults(); - qDebug("PPPData::newaccount -> %i",caccount); - return caccount; + return highcount; } -int PPPData::copyaccount(int i) { +int PPPData::copyaccount(const QString&) { // FIXME: PPPData::copyaccount // if(highcount >= MAX_ACCOUNTS) @@ -838,5 +885,5 @@ int PPPData::copyaccount(int i) { // QMap <QString, QString>::ConstIterator it = map.begin(); -// QString newname = i18n("%1_copy").arg(accname()); +// QString newname = QObject::tr("%1_copy").arg(accname()); // newaccount(); @@ -865,4 +912,5 @@ void PPPData::setAccname(const QString &n) { setDefaultAccount(n); } + writeConfig(cgroup, NAME_KEY, n); } @@ -1177,4 +1225,5 @@ void PPPData::setpppdArgument(QStringList &args) { void PPPData::setpppdArgumentDefaults() { QStringList arg; + arg << "lcp-echo-failure 0"; setpppdArgument(arg); } @@ -1248,9 +1297,7 @@ void PPPData::setpppdError(int err) { QString PPPData::modemGroup() { - if (modemDeviceGroup<0){ - qDebug("wrong modem %i\n using 0",modemDeviceGroup); - modemDeviceGroup = 0; //FIXME! - } - return QString("%1_%1").arg(MODEM_GRP).arg(modemDeviceGroup); + if (_modemName.isEmpty()) + _modemName = deviceList[0]; + return _modemName; } @@ -1301,2 +1348,148 @@ QString PPPData::encodeWord(const QString &s) { return r; } + +QStringList PPPData::getDevicesList() +{ + Config cfg("NetworkSetupPPP"); + cfg.setGroup("Devices_General"); + return cfg.readListEntry(DEVICES_LIST,DEVICES_LIST_SEP); +} + +QStringList PPPData::getAccountList() +{ + QStringList list; + QString save_cgroup; + save_cgroup = cgroup; + for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) { + cgroup = *it; + list << accname(); + } + cgroup = save_cgroup; + return list; +}; + + +const QString PPPData::devname() +{ + QString tmp = readConfig(modemGroup(), MODEMNAME_KEY ); + qDebug("PPPData::devname() of %s is %s", modemGroup().latin1(), tmp.latin1()); + return tmp; +} + +void PPPData::setDevname(const QString &n) { + // if(!cgroup.isNull()) { +// // are we manipulating the default account's name ? then change it, too. +// bool def = accname() == defaultAccount(); +// writeConfig(cgroup, NAME_KEY, n); +// if (def) +// setDefaultAccount(n); +// } + writeConfig(modemGroup(), MODEMNAME_KEY, n ); +} + + +bool PPPData::setDevice(const QString &dev ) +{ + qDebug("setting device to >%s<", dev.latin1()); + QString save_mName = _modemName; + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::setDevice %s is named %s", _modemName.latin1(), devname().latin1() ); + qDebug( "iterator %s", (*it).latin1() ); + if(devname() == dev) { + qDebug("SUCCESS"); + return true; + } + + } + _modemName = save_mName; + qDebug("FAILURE"); + return false; +} + +bool PPPData::deleteDevice() +{ + // FIXME: check if this account exists in a config... + Config cfg = PPPData::config(); + cfg.setGroup(modemGroup()); + cfg.clearGroup(); + deviceList.remove(modemGroup()); + + QString key; + QStringList keys; + for( QMap<QString,QString>::Iterator it = stringEntries.begin(); + it != stringEntries.end(); ++it ){ + QString val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==modemGroup()){ + stringEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); + } + } + for( QMap<QString,int>::Iterator it = intEntries.begin(); + it != intEntries.end(); ++it ){ + int val = it.data(); + key = it.key(); + keys = QStringList::split( "SEPARATOR", key ); + if(keys[0]==modemGroup()){ + intEntries.remove( it ); + qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val ); + } + } + for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); + it != listEntries.end(); ++it ){ + QStringList val = it.data(); + key = it.key(); + if(keys[0]==modemGroup()){ + listEntries.remove( it ); + sepEntries.remove( key ); + qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() ); + } + } + + return true; + +} + +bool PPPData::deleteDevice(const QString &dev) +{ + if(!setDevice(dev)) + return false; + + return deleteDevice(); +} + +int PPPData::newdevice() +{ + + qDebug("PPPData::newdevice highcount %i",highcountdev); + + + QString tmp; + tmp.sprintf("%s%i", MODEM_GRP, ++highcountdev); + _modemName = QString(tmp); + deviceList << tmp; + qDebug("PPPData::newdevice() Group: >%s<",cgroup.latin1()); + return highcountdev; +} + +int PPPData::copydevice(const QString&) +{ + return false; +} + + +QStringList PPPData::getDevicesNamesList() +{ + QStringList list; + QString save_mName = _modemName; + qDebug("PPPData::getDevicesNamesList has %s", deviceList.join("---").latin1()); + for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) { + _modemName = *it; + qDebug("PPPData::getDevicesNamesList adding %s as %s",_modemName.latin1(), devname().latin1()); + list << devname(); + } + _modemName = save_mName; + return list; +}; diff --git a/noncore/settings/networksettings/ppp/pppdata.h b/noncore/settings/networksettings/ppp/pppdata.h index 6e1379d..d1cbeb5 100644 --- a/noncore/settings/networksettings/ppp/pppdata.h +++ b/noncore/settings/networksettings/ppp/pppdata.h @@ -65,4 +65,6 @@ class Config; // general +#define ACCOUNT_LIST "AccountList" +#define DEVICE_LIST "DeviceList" #define DEFAULTACCOUNT_KEY "DefaultAccount" #define PPPDVERSION_KEY "pppdVersion" @@ -73,8 +75,10 @@ class Config; #define DISCONNECT_KEY "DisconnectOnXServerExit" #define QUITONDISCONNECT_KEY "QuitOnDisconnect" -#define NUMACCOUNTS_KEY "NumberOfAccounts" +#define NUMACCOUNTS_KEY "HighcountAccounts" +#define NUMDEVICES_KEY "HighcountDevices" #define ID_KEY "ID" // modem +#define MODEMNAME_KEY "Modem_Name" #define MODEMDEV_KEY "Device" #define LOCKFILE_KEY "UseLockFile" @@ -152,4 +156,8 @@ class Config; #define ACOUNTS_ACC "Accounts_Account" +#define DEVICESNAMES_LIST "DevicesNames_List" +#define DEVICES_LIST "Devices_List" +#define DEVICES_LIST_SEP ',' + class PPPData { public: @@ -163,4 +171,6 @@ public: void cancel(); + QStringList getAccountList(); + static QMap<QString,QString> getConfiguredInterfaces(); static void setConfiguredInterfaces( QMap<QString,QString> ); @@ -185,5 +195,5 @@ public: void setPassword(const QString &); - int currentAccountID() { return caccount; }; +// int currentAccountID() { return caccount; }; const QString defaultAccount(); void setDefaultAccount(const QString &); @@ -237,6 +247,10 @@ public: const QString modemEscapeResp(); - const QString modemDevice(); - bool setModemDevice(const QString &); +// const QString modemName(); +// bool setModemName(const QString &); +// bool changeModemName(const QString &); + + const QString modemDevice(); + bool setModemDevice(const QString &); const QString flowcontrol(); @@ -314,12 +328,13 @@ public: int count() const; bool setAccount(const QString &); - bool setAccountbyIndex(int); +// bool setAccountbyIndex(int); bool isUniqueAccname(const QString &); + bool isUniqueDevname(const QString &); bool deleteAccount(); bool deleteAccount(const QString &); int newaccount(); - int copyaccount(int i); + int copyaccount(const QString&); const QString accname(); @@ -410,15 +425,26 @@ public: void setpppdError(int err); + QStringList getDevicesList(); static QString encodeWord(const QString &s); + const QString devname(); + void setDevname(const QString &); + bool setDevice(const QString& ); + bool deleteDevice(); + bool deleteDevice(const QString &); + int newdevice(); + int copydevice(const QString&); + QStringList getDevicesNamesList(); + private: //static PPPData *_data; - int modemDeviceGroup; +// int modemDeviceGroup; QString passwd; - // static Config* config; // configuration object + QString _modemName; int highcount; // index of highest account - int caccount; // index of the current account + int highcountdev; // index of highest device +// int caccount; // index of the current account QString cgroup; // name of current config group pid_t suidprocessid; // process ID of setuid child @@ -428,5 +454,8 @@ private: int pppdVer, pppdMod, pppdPatch; // pppd version + QStringList phonelist; + QStringList accountList; + QStringList deviceList; QMap<QString,QString> stringEntries; QMap<QString,int> intEntries; diff --git a/noncore/settings/networksettings/ppp/pppmodule.cpp b/noncore/settings/networksettings/ppp/pppmodule.cpp index d4c137b..af05eb7 100644 --- a/noncore/settings/networksettings/ppp/pppmodule.cpp +++ b/noncore/settings/networksettings/ppp/pppmodule.cpp @@ -1,3 +1,9 @@ +#include <errno.h> +#include <signal.h> + +#include <qpe/config.h> + +#include "modem.h" #include "pppconfig.h" #include "pppmodule.h" @@ -6,10 +12,42 @@ #include "interfaceppp.h" +// don't polute global 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 { + pid_t pid; + QString device; + QString name; + }; + 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; @@ -17,9 +55,21 @@ PPPModule::PPPModule() : Module() qDebug("getting interfaces"); for( it = ifaces.begin(); it != ifaces.end(); ++it ){ - qDebug("ifaces %s", it.key().latin1()); + 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() ) ) { + 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 ); } @@ -28,7 +78,15 @@ PPPModule::PPPModule() : Module() */ PPPModule::~PPPModule(){ + qDebug("PPPModule::~PPPModule() " ); QMap<QString,QString> ifaces; + InterfaceKeeper keeper; Interface *i; for ( i=list.first(); i != 0; i=list.next() ){ + /* if online save the state */ + 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; @@ -70,5 +128,5 @@ QWidget *PPPModule::configure(Interface *i){ PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i, 0, "PPPConfig", false, - Qt::WDestructiveClose ); + Qt::WDestructiveClose | Qt::WStyle_ContextHelp); return pppconfig; } @@ -136,2 +194,57 @@ void PPPModule::possibleNewInterfaces(QMap<QString, QString> &newIfaces) + +namespace { + InterfaceKeeper::InterfaceKeeper( ) { + } + InterfaceKeeper::~InterfaceKeeper() { + Config cfg("ppp_plugin_keeper"); + QStringList lst = cfg.groupList(); + 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 ) { + 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 ) { + Connection con; + con.pid = pid; + con.device = dev; + con.name = name; + m_interfaces.insert( name, con ); + } + 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 ) { + 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 ) { + qDebug("isAvailable %d", p); + return true; + } + + qDebug("notAvailable %d", p); + return false; + } + +} diff --git a/noncore/settings/networksettings/ppp/runtests.cpp b/noncore/settings/networksettings/ppp/runtests.cpp index 83ef2ea..5548601 100644 --- a/noncore/settings/networksettings/ppp/runtests.cpp +++ b/noncore/settings/networksettings/ppp/runtests.cpp @@ -45,6 +45,4 @@ #endif -//#include <klocale.h> -#define i18n QObject::tr #include "pppdata.h" @@ -218,5 +216,5 @@ int runTests() { if(!access) { QMessageBox::warning(0,"error", - i18n("You're not allowed to dial out with " + QObject::tr("You're not allowed to dial out with " "kppp.\nContact your system administrator.")); return TEST_CRITICAL; @@ -229,5 +227,5 @@ int runTests() { if(!f) { QMessageBox::warning(0,"error", - i18n("Cannot find the PPP daemon!\n" + QObject::tr("Cannot find the PPP daemon!\n" "Make sure that pppd is installed.")); warning++; @@ -239,5 +237,5 @@ int runTests() { if(access(f, X_OK) != 0 /* && geteuid() != 0 */) { KMessageBox::warning(0, - i18n("You do not have the permission " + QObject::tr("You do not have the permission " "to start pppd!\n" "Contact your system administrator " @@ -252,5 +250,5 @@ int runTests() { if(st.st_uid != 0 || (st.st_mode & S_ISUID) == 0) { QMessageBox::warning(0,"error", - i18n("You don't have sufficient permission to run\n" + QObject::tr("You don't have sufficient permission to run\n" "%1\n" "Please make sure that kppp is owned by root " @@ -264,5 +262,5 @@ int runTests() { if (access(_PATH_RESCONF, R_OK) != 0) { QString file = _PATH_RESCONF" "; - QString msgstr = i18n("%1 is missing or can't be read!\n" + QString msgstr = QObject::tr("%1 is missing or can't be read!\n" "Ask your system administrator to create " "this file (can be empty) with appropriate " diff --git a/noncore/settings/networksettings/wlan/keyedit.cpp b/noncore/settings/networksettings/wlan/keyedit.cpp index ad9ecae..13a1c3b 100644 --- a/noncore/settings/networksettings/wlan/keyedit.cpp +++ b/noncore/settings/networksettings/wlan/keyedit.cpp @@ -5,4 +5,5 @@ KeyEdit::KeyEdit(QWidget* parent, const char* name) : QLineEdit(parent, name) { + setEchoMode(Password); } diff --git a/noncore/settings/networksettings/wlan/wlan.ui b/noncore/settings/networksettings/wlan/wlan.ui index 7932445..7e39e23 100644 --- a/noncore/settings/networksettings/wlan/wlan.ui +++ b/noncore/settings/networksettings/wlan/wlan.ui @@ -12,5 +12,5 @@ <x>0</x> <y>0</y> - <width>251</width> + <width>247</width> <height>299</height> </rect> @@ -288,26 +288,10 @@ <property> <name>text</name> - <string>Auto</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Managed</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Ad-Hoc</string> + <string>any</string> </property> </item> <property stdset="1"> <name>name</name> - <cstring>mode</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>true</bool> + <cstring>essid</cstring> </property> <property stdset="1"> @@ -315,5 +299,5 @@ <rect> <x>101</x> - <y>11</y> + <y>46</y> <width>103</width> <height>29</height> @@ -323,8 +307,28 @@ <name>sizePolicy</name> <sizepolicy> - <hsizetype>1</hsizetype> + <hsizetype>7</hsizetype> <vsizetype>0</vsizetype> </sizepolicy> </property> + <property stdset="1"> + <name>editable</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>currentItem</name> + <number>0</number> + </property> + <property stdset="1"> + <name>sizeLimit</name> + <number>5</number> + </property> + <property stdset="1"> + <name>autoCompletion</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>duplicatesEnabled</name> + <bool>false</bool> + </property> </widget> <widget> @@ -333,10 +337,32 @@ <property> <name>text</name> - <string>any</string> + <string>Infrastructure</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>Auto</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>Managed</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>Ad-Hoc</string> </property> </item> <property stdset="1"> <name>name</name> - <cstring>essid</cstring> + <cstring>mode</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> </property> <property stdset="1"> @@ -344,5 +370,5 @@ <rect> <x>101</x> - <y>46</y> + <y>11</y> <width>103</width> <height>29</height> @@ -352,28 +378,8 @@ <name>sizePolicy</name> <sizepolicy> - <hsizetype>7</hsizetype> + <hsizetype>1</hsizetype> <vsizetype>0</vsizetype> </sizepolicy> </property> - <property stdset="1"> - <name>editable</name> - <bool>true</bool> - </property> - <property stdset="1"> - <name>currentItem</name> - <number>0</number> - </property> - <property stdset="1"> - <name>sizeLimit</name> - <number>5</number> - </property> - <property stdset="1"> - <name>autoCompletion</name> - <bool>true</bool> - </property> - <property stdset="1"> - <name>duplicatesEnabled</name> - <bool>false</bool> - </property> </widget> </widget> diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp index cdafb4d..26e3aa9 100644 --- a/noncore/settings/networksettings/wlan/wlanimp2.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp @@ -28,5 +28,5 @@ * Constructor, read in the wireless.opts file for parsing later. */ -WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), currentProfile("*"), interface(i) { +WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { interfaces = new Interfaces(); interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); @@ -68,12 +68,7 @@ void WLANImp::parseOpts() { opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); - if (opt == "Auto") { - mode->setCurrentItem(0); - } else if (opt == "Ad-Hoc") { - mode->setCurrentItem(2); - } else { - // Managed/Infrastructure mode - mode->setCurrentItem(1); - } + + for ( int i = 0; i < mode->count(); i++) + if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); @@ -204,9 +199,18 @@ void WLANImp::accept() { // Close out the dialog - QDialog::accept(); +// FIXME: QDialog::accept(); } void WLANImp::writeOpts() { - bool error = false; + // eh can't really do anything about it other then return. :-D + if(!interfaces->isInterfaceSet()){ + QMessageBox::warning(0,"Inface not set","should not happen!!!"); + return; + } + bool error = false; + + qDebug("setting wlan interface %s", interfaces->getInterfaceName( error ).latin1() ); + + if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText()); @@ -231,11 +235,14 @@ void WLANImp::writeOpts() { keyList += keyLineEdit0->text(); keyList += "[1]"; - } else if (! keyLineEdit1->text().isNull()) { + } //else + if (! keyLineEdit1->text().isNull()) { keyList += keyLineEdit1->text(); keyList += "[2]"; - } else if (! keyLineEdit2->text().isNull()) { + } //else + if (! keyLineEdit2->text().isNull()) { keyList += keyLineEdit2->text(); keyList += "[3]"; - } else if (! keyLineEdit3->text().isNull()) { + } //else + if (! keyLineEdit3->text().isNull()) { keyList += keyLineEdit3->text(); keyList += "[4]"; diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp index a4488f9..b4c3509 100644 --- a/noncore/settings/networksettings/wlan/wlanmodule.cpp +++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp @@ -1,4 +1,4 @@ #include "wlanmodule.h" -#include "wlanimp.h" +#include "wlanimp2.h" #include "infoimp.h" #include "wextensions.h" diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp index c06f639..19b0e84 100644 --- a/noncore/settings/usermanager/userdialog.cpp +++ b/noncore/settings/usermanager/userdialog.cpp @@ -426,5 +426,5 @@ void UserDialog::accept() { */ void UserDialog::clickedPicture() { - QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED,"/opt/QtPalmtop/pics"); + QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED, QString::null); if(!(filename.isEmpty())) { userImage.reset(); diff --git a/noncore/settings/usermanager/userdialog.h b/noncore/settings/usermanager/userdialog.h index b7b925d..3272afc 100644 --- a/noncore/settings/usermanager/userdialog.h +++ b/noncore/settings/usermanager/userdialog.h @@ -17,4 +17,5 @@ #include <qpushbutton.h> #include <qcheckbox.h> +#include <qlabel.h> #include <qpe/resource.h> diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp index 1946013..65bbd8b 100644 --- a/noncore/settings/usermanager/usermanager.cpp +++ b/noncore/settings/usermanager/usermanager.cpp @@ -28,5 +28,5 @@ */ UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { - setCaption(tr("OPIE User Manager")); + setCaption(tr("Opie User Manager")); // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them. diff --git a/noncore/settings/usermanager/usermanager.pro b/noncore/settings/usermanager/usermanager.pro index 576a233..1baccb6 100644 --- a/noncore/settings/usermanager/usermanager.pro +++ b/noncore/settings/usermanager/usermanager.pro @@ -3,5 +3,5 @@ TEMPLATE = app CONFIG = qt warn_on release HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h -SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.cpp main.cpp +SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.h main.cpp INCLUDEPATH += $(OPIEDIR)/include DEPENDPATH += $(OPIEDIR)/include diff --git a/noncore/styles/flat/flat.cpp b/noncore/styles/flat/flat.cpp index b6635c5..24366f6 100644 --- a/noncore/styles/flat/flat.cpp +++ b/noncore/styles/flat/flat.cpp @@ -19,6 +19,5 @@ **********************************************************************/ -#include "flat.h" -#include <qpe/qpeapplication.h> +#include <qtopia/qpeapplication.h> #include <qpushbutton.h> #include <qtoolbutton.h> @@ -33,7 +32,11 @@ #include <qspinbox.h> #include <qlineedit.h> +#include <qmap.h> #define INCLUDE_MENUITEM_DEF #include <qmenudata.h> +#include <qpopupmenu.h> + +#include "flat.h" #define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) @@ -55,21 +58,35 @@ public: bool eventFilter( QObject *o, QEvent *e ) { - if ( e->type() == QEvent::ParentPaletteChange && o->inherits( "QMenuBar" ) ) { - QWidget *w = (QWidget *)o; - if ( w->parentWidget() ) { - QPalette p = w->parentWidget()->palette(); - QColorGroup a = p.active(); - a.setColor( QColorGroup::Light, a.foreground() ); - a.setColor( QColorGroup::Dark, a.foreground() ); - p.setActive( a ); - p.setInactive( a ); - w->setPalette( p ); + if ( e->type() == QEvent::ParentPaletteChange ) { + if ( o->inherits( "QMenuBar" ) ) { + QWidget *w = (QWidget *)o; + if ( w->parentWidget() ) { + QPalette p = w->parentWidget()->palette(); + QColorGroup a = p.active(); + a.setColor( QColorGroup::Light, a.foreground() ); + a.setColor( QColorGroup::Dark, a.foreground() ); + p.setActive( a ); + p.setInactive( a ); + w->setPalette( p ); + } + } else if ( o->inherits( "QHeader" ) ) { + QWidget *w = (QWidget *)o; + if ( w->parentWidget() ) { + QPalette p = w->parentWidget()->palette(); + QColorGroup a = p.active(); + a.setColor( QColorGroup::Light, a.button() ); + p.setActive( a ); + p.setInactive( a ); + w->setPalette( p ); + } } } return FALSE; } + + QMap<QFrame *,int> frameStyles; }; -FlatStyle::FlatStyle() : revItem(FALSE) +FlatStyle::FlatStyle() : revItem(FALSE), fillBtnBorder(FALSE) { setButtonMargin(3); @@ -102,5 +119,7 @@ void FlatStyle::polish( QWidget *w ) if ( w->inherits( "QFrame" ) ) { QFrame *f = (QFrame *)w; - if ( f->frameShape() != QFrame::NoFrame ) + if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) + f->setFrameShadow( QFrame::Plain ); + else if ( f->frameShape() != QFrame::NoFrame ) f->setFrameShape( QFrame::StyledPanel ); f->setLineWidth( 1 ); @@ -118,4 +137,13 @@ void FlatStyle::polish( QWidget *w ) w->setPalette( p ); w->installEventFilter( d ); + } else if ( w->inherits( "QHeader" ) ) { + // make headers look flat + QPalette p = w->palette(); + QColorGroup a = p.active(); + a.setColor( QColorGroup::Light, a.button() ); + p.setActive( a ); + p.setInactive( a ); + w->setPalette( p ); + w->installEventFilter( d ); } } @@ -123,13 +151,16 @@ void FlatStyle::polish( QWidget *w ) void FlatStyle::unPolish( QWidget *w ) { - if ( w->inherits( "QFrame" ) ) { + if ( w->inherits("QFrame") ) { QFrame *f = (QFrame *)w; - if ( f->frameShape() != QFrame::NoFrame ) + if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) { + f->setFrameShadow( QFrame::Sunken ); + } else if ( f->frameShape() != QFrame::NoFrame ) { f->setFrameShape( QFrame::StyledPanel ); - f->setLineWidth( 2 ); + f->setLineWidth( 2 ); + } } - if ( w->inherits( "QSpinBox" ) ) + if ( w->inherits("QSpinBox") ) ((SpinBoxHack*)w)->setFlatButtons( FALSE ); - if ( w->inherits( "QMenuBar" ) ) { + if ( w->inherits("QMenuBar") || w->inherits("QHeader") ) { w->unsetPalette(); w->removeEventFilter( d ); @@ -139,5 +170,5 @@ void FlatStyle::unPolish( QWidget *w ) int FlatStyle::defaultFrameWidth() const { - return 1; + return 2; } @@ -172,14 +203,28 @@ void FlatStyle::drawButton( QPainter *p, int x, int y, int w, int h, QPen oldPen = p->pen(); + int x2 = x+w-1; + int y2 = y+h-1; + + if ( fillBtnBorder && btnBg != cg.color(QColorGroup::Button) ) { + p->setPen( btnBg ); + p->drawLine( x, y, x2, y ); + p->drawLine( x, y2, x2, y2 ); + p->drawLine( x, y+1, x, y2-1 ); + p->drawLine( x2, y+1, x2, y2-1 ); + p->fillRect( x+1, y+1, 3, 3, btnBg ); + p->fillRect( x+1, y2-3, 3, 3, btnBg ); + p->fillRect( x2-3, y2-3, 3, 3, btnBg ); + p->fillRect( x2-3, y+1, 3, 3, btnBg ); + p->fillRect( x+2, y+2, w-4, h-4, fill?(*fill):cg.brush(QColorGroup::Button) ); + } else { + p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) ); + } + if ( h >= 10 ) { x++; y++; + x2--; y2--; w -= 2; h -= 2; } - p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) ); - - int x2 = x+w-1; - int y2 = y+h-1; - p->setPen( cg.foreground() ); @@ -226,4 +271,14 @@ void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h, const QColorGroup &g, bool sunken, const QBrush* fill ) { + if ( p->device()->devType() == QInternal::Widget ) { + QWidget *w = (QWidget *)p->device(); + if ( w->isA("QToolButton") ) { + QToolButton *btn = (QToolButton *)w; + if ( btn->parentWidget() ) { + btnBg = btn->parentWidget()->backgroundColor(); + fillBtnBorder = TRUE; + } + } + } QBrush fb( fill ? *fill : g.button() ); if ( sunken && fb == g.brush( QColorGroup::Button ) ) { @@ -232,4 +287,5 @@ void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h, } drawButton( p, x, y, w, h, g, sunken, &fb ); + fillBtnBorder = FALSE; } @@ -258,4 +314,9 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p ) */ + if ( btn->parentWidget() ) { + btnBg = btn->parentWidget()->backgroundColor(); + fillBtnBorder = TRUE; + } + bool clearButton = TRUE; if ( btn->isDown() ) { @@ -284,4 +345,5 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p ) */ + fillBtnBorder = FALSE; if ( p->brush().style() != NoBrush ) p->setBrush( NoBrush ); @@ -590,5 +652,6 @@ void FlatStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sl if ( controls & SubPage ) p->drawRect( subPageR.x(), subPageR.y(), subPageR.width(), subPageR.height() ); - if ( controls & AddPage && addPageR.y() < addPageR.bottom() ) + if ( controls & AddPage && addPageR.y() < addPageR.bottom() && + addPageR.x() < addPageR.right() ) p->drawRect( addPageR.x(), addPageR.y(), addPageR.width(), addPageR.height() ); if ( controls & Slider ) { @@ -785,4 +848,10 @@ static const int windowsRightBorder = 8; // right border on windows static const int windowsCheckMarkWidth = 2; // checkmarks width on windows +void FlatStyle::polishPopupMenu ( QPopupMenu *m ) +{ + QWindowsStyle::polishPopupMenu( m ); + m->setLineWidth( 1 ); +} + /*! \reimp */ @@ -1009,5 +1078,5 @@ QStyle *FlatStyleImpl::style() QString FlatStyleImpl::name() const { - return QString("Flat"); + return qApp->translate("FlatStyle", "Flat", "Name of the style Flat"); } @@ -1019,7 +1088,8 @@ QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **if else if ( uuid == IID_Style ) *iface = this; + else + return QS_FALSE; - if ( *iface ) - (*iface)->addRef(); + (*iface)->addRef(); return QS_OK; } diff --git a/noncore/styles/flat/flat.h b/noncore/styles/flat/flat.h index e446800..ebea95b 100644 --- a/noncore/styles/flat/flat.h +++ b/noncore/styles/flat/flat.h @@ -22,4 +22,5 @@ #define FLATSTYLE_H +#include <qcolor.h> #include <qwindowsstyle.h> #include <qpe/styleinterface.h> @@ -27,5 +28,5 @@ class FlatStylePrivate; -class Q_EXPORT FlatStyle : public QWindowsStyle +class FlatStyle : public QWindowsStyle { public: @@ -74,4 +75,5 @@ public: void drawSliderGroove ( QPainter * p, int x, int y, int w, int h, const QColorGroup & g, QCOORD c, Orientation ); void drawTab( QPainter *, const QTabBar *, QTab *, bool selected ); + void polishPopupMenu ( QPopupMenu * ); int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& ); int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& ); @@ -87,4 +89,6 @@ private: FlatStylePrivate *d; bool revItem; + bool fillBtnBorder; + QColor btnBg; // Disabled copy constructor and operator= #if defined(Q_DISABLE_COPY) diff --git a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp index 71dd7eb..73f8bb3 100644 --- a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp +++ b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp @@ -10,4 +10,5 @@ #include <qwhatsthis.h> #include <qlabel.h> +#include <qlayout.h> #include <qpe/config.h> #include <qstringlist.h> diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp index d740b6f..915233a 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp @@ -122,5 +122,5 @@ StocktickerPluginConfig::StocktickerPluginConfig( QWidget *parent, const char* cfg.setGroup("Timer"); - timerDelaySpin->setValue( cfg.readNumEntry("Delay",0)); + timerDelaySpin->setValue( cfg.readNumEntry("Delay",15)); layout->addMultiCellWidget( timerDelaySpin , 6, 6, 0, 0); diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h index 2b67a8b..10f9678 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h @@ -29,5 +29,5 @@ class QSpinBox; class StocktickerPluginConfig : public TodayConfigWidget { -//Q_OBJECT + Q_OBJECT public: StocktickerPluginConfig( QWidget *parent, const char *name ); diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp index c3ca52d..fedc79c 100644 --- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp +++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp @@ -1,301 +1,327 @@ -/* - * stocktickerpluginwidget.cpp - * - * copyright : (c) 2002 by L.J. Potter - * email : llornkcor@handhelds.org - * - */ -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ - -#include <qlayout.h> - -#include <qpe/config.h> - -#include <opie/oticker.h> - -extern "C" { -#include "libstocks/stocks.h" -} - -#include <pthread.h> - -#include "stocktickerpluginwidget.h" - -QString output; -OTicker *stocktickerTicker; + /* + * stocktickerpluginwidget.cpp + * + * copyright : (c) 2002 by L.J. Potter + * email : llornkcor@handhelds.org + * + */ + /*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + #include <qlayout.h> + + #include <qpe/config.h> + + #include <opie/oticker.h> + + extern "C" { + #include "libstocks/stocks.h" + } + + #include <pthread.h> + + #include "stocktickerpluginwidget.h" + + QString output; + OTicker *stocktickerTicker; + QCString stock_liste; + bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; + bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; + bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; void getStocks(char *blah) { -// stocktickerTicker->setText( "Downloading stock data."); - stock *stocks_quotes=NULL; - stock *stocks_tmp; - QCString stock_liste = blah; - ::free ( blah ); - // char *stock_liste = (char *)blah->latin1(); - qDebug("%s", stock_liste.data() ); - QString tempString; - output = ""; - - libstocks_return_code error; - - Config cfg( "stockticker"); - cfg.setGroup( "Fields" ); - bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; - bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; - bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; - - dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false; - - dotimeCheck=cfg.readBoolEntry("timeCheck",1); - dodateCheck=cfg.readBoolEntry("dateCheck",1); - dosymbolCheck=cfg.readBoolEntry("symbolCheck",1); - donameCheck=cfg.readBoolEntry("nameCheck",1); - docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1); - dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1); - doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1); - dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1); - domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1); - dovariationCheck=cfg.readBoolEntry("variationCheck",1); - dovolumeCheck=cfg.readBoolEntry("volumeCheck",1); - -// DefProxy(); - { - char *proxy; - libstocks_return_code error; - - /* Proxy support */ - /* Checks for "http_proxy" environment variable */ - proxy = getenv("http_proxy"); - if(proxy) { - /* printf("proxy set\n"); */ - error = set_proxy(proxy); - if (error) { - printf("Proxy error (%d)\n", error); - QString tempString; - tempString.sprintf("Proxy error (%d)\n", error); - output = tempString; - return; -// exit(1); - } - } - } -// char *stock_liste = (char *)blah; - /* Get the stocks and process errors */ - error = get_stocks( stock_liste.data(), &stocks_quotes); - - if (error) { - printf("Error in getting stocks (%d)\n", error); - tempString.sprintf("Error in getting stocks (%d)\n", error); - output =tempString; - return; -// exit(1); - } - - stocks_tmp = stocks_quotes; - - /* Displays the stocks */ - while(stocks_tmp!=0){ - - if (stocks_tmp->Time) { -// printf("%s ", stocks_tmp->Time); - tempString.sprintf("| %s ", stocks_tmp->Time); - tempString.replace(QRegExp("\""),""); - if( dotimeCheck) - output +=tempString; - } - if (stocks_tmp->Date) { -// printf("%s ", stocks_tmp->Date); - tempString.sprintf("| %s ", stocks_tmp->Date); - tempString.replace(QRegExp("\""),""); - if(dodateCheck) - output +=tempString; - } -// printf("\n"); - -// printf("----------------------------------------\n"); - - if ( strlen(stocks_tmp->Symbol) > 20 ) { -// printf("| Symbol | %.20s |\n",stocks_tmp->Symbol); - tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); - if(dosymbolCheck) - output +=tempString; - } - else { -// printf("| Symbol | %-20s |\n",stocks_tmp->Symbol); - tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); - if(dosymbolCheck) - output +=tempString; - } - - if (stocks_tmp->Name) { - if ( strlen(stocks_tmp->Name) > 20 ) { -// printf("| Name %.20s |\n",stocks_tmp->Name); - tempString.sprintf("| Name %s ",stocks_tmp->Name); - tempString.stripWhiteSpace(); - if(donameCheck) - output +=tempString; - } else { -// printf("| Name | %-20s |\n",stocks_tmp->Name); - tempString.sprintf("| Name %s ",stocks_tmp->Name); - tempString.stripWhiteSpace(); - if(donameCheck) - output +=tempString; - } - } - else { -// printf("| Name | |\n"); - tempString.sprintf("| Name | |"); - if(donameCheck) - output +=tempString; - } - -// printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice); - tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice); - if(docurrentPriceCheck) - output +=tempString; - -// printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice); - tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice); - if(dolastPriceCheck) - output +=tempString; - -// printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice); - tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice); - if(doopenPriceCheck) - output +=tempString; - -// printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice); - tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice); - if(dominPriceCheck) - output +=tempString; - -// printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice); - tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice); - if(domaxPriceCheck) - output +=tempString; - -// printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage); - tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage); - if(dovariationCheck) - output +=tempString; - -// printf("| Volume | %-9d |\n", stocks_tmp->Volume); - tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume); - if(dovolumeCheck) - output +=tempString; - -// printf("----------------------------------------\n\n"); - tempString.sprintf("||==++==|"); - output +=tempString; - - /* Simple function which help to browse in the stocks list */ - stocks_tmp = next_stock(stocks_tmp); - } - - /* frees stocks */ - free_stocks(stocks_quotes); - stocktickerTicker->setText( output.latin1() ); - -} - -StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name) - : QWidget(parent, name ) { - init(); - startTimer(1000); - - stocktickerTicker->setTextFormat(Qt::RichText); -// checkConnection(); -} - -StockTickerPluginWidget::~StockTickerPluginWidget() { -} - -void StockTickerPluginWidget::init() { - - QHBoxLayout* layout = new QHBoxLayout( this ); - stocktickerTicker = new OTicker(this); -// stocktickerTicker->setMinimumHeight(15); - connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( checkConnection() )); - layout->addWidget( stocktickerTicker); - wasError = true; -} - -void StockTickerPluginWidget::doStocks() { - Config cfg( "stockticker"); - cfg.setGroup( "Symbols" ); - symbollist=""; - symbollist = cfg.readEntry("Symbols", ""); - symbollist.replace(QRegExp(" "),"+");//seperated by + - - cfg.setGroup("Timer"); - stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50)); - stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10)); - - if (!symbollist.isEmpty()) { - pthread_t thread1; - char *blah = ::strdup(symbollist.latin1()); - pthread_create(&thread1,NULL, (void * (*)(void *))getStocks, (void *) blah); - } -} - -void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) { - killTimer(e->timerId()); - checkConnection(); -} - -void StockTickerPluginWidget::checkConnection() { -// qDebug("checking connection"); -// Sock = new QSocket( this ); - -// if( wasError) -// stocktickerTicker->setText("Checking connection"); - -// if(Sock->state() == QSocket::Idle) { -// Sock->connectToHost("finance.yahoo.com", 80); -// connect( Sock, SIGNAL( error(int) ), SLOT(socketError(int)) ); -// connect( Sock, SIGNAL( hostFound() ), SLOT(isConnected()) ); -// } else { -// qDebug("State is not Idle"); - isConnected(); -// } -} - -void StockTickerPluginWidget::isConnected() { -// qDebug("We connect, so ok to grab stocks"); - doStocks(); - - Config cfg( "stockticker"); - cfg.setGroup("Timer"); - timerDelay= cfg.readNumEntry("Delay",0); - if(timerDelay > 0) - startTimer(timerDelay*60000); - qDebug("timer set for %d",(timerDelay*60000)/60000); - wasError = false; - -// Sock->close(); -} - -void StockTickerPluginWidget::socketError(int errcode) { - switch(errcode) { - case QSocket::ErrConnectionRefused: - output = tr("Connection refused."); - break; - case QSocket::ErrHostNotFound: - output = tr("Could not find server."); - break; - case QSocket::ErrSocketRead : - output = tr("Socket read error."); - break; - }; - stocktickerTicker->setText( output ); - wasError = true; -// Sock->close(); - -} + // stocktickerTicker->setText( "Downloading stock data."); + stock *stocks_quotes=NULL; + stock *stocks_tmp; + stock_liste = blah; + ::free ( blah ); + // char *stock_liste = (char *)blah->latin1(); + // qDebug("%s", stock_liste.data() ); + output = ""; + QString tempString; + libstocks_return_code error; + +// Config cfg( "stockticker"); +// cfg.setGroup( "Fields" ); +// bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; +// bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; +// bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; + + dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false; + + dotimeCheck=1; + dodateCheck=1; + dosymbolCheck=1; + donameCheck=1; + docurrentPriceCheck=1; + dolastPriceCheck=1; + doopenPriceCheck=1; + dominPriceCheck=1; + domaxPriceCheck=1; + dovariationCheck=1; + dovolumeCheck=1; + +// dotimeCheck=cfg.readBoolEntry("timeCheck",1); +// dodateCheck=cfg.readBoolEntry("dateCheck",1); +// dosymbolCheck=cfg.readBoolEntry("symbolCheck",1); +// donameCheck=cfg.readBoolEntry("nameCheck",1); +// docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1); +// dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1); +// doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1); +// dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1); +// domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1); +// dovariationCheck=cfg.readBoolEntry("variationCheck",1); +// dovolumeCheck=cfg.readBoolEntry("volumeCheck",1); + + // DefProxy(); + // { + char *proxy; + // libstocks_return_code error; + + /* Proxy support */ + /* Checks for "http_proxy" environment variable */ + proxy = getenv("http_proxy"); + if(proxy) { + /* printf("proxy set\n"); */ + error = set_proxy(proxy); + if (error) { +// printf("Proxy error (%d)\n", error); +// QString tempString2; +// tempString2.sprintf("Proxy error (%d)\n", error); +// output = tempString2; + // delete tempString2; + return; + // exit(1); + } + } + ::free(proxy); + // } + /* Get the stocks and process errors */ + error = get_stocks( stock_liste.data(), &stocks_quotes); + + if (error) { + printf("Error in getting stocks (%d)\n", error); + tempString.sprintf("Error in getting stocks (%d)\n", error); + output =tempString; + return; + } + + stocks_tmp = stocks_quotes; + + /* Displays the stocks */ + while(stocks_tmp!=0){ + + if (stocks_tmp->Time) { + // printf("%s ", stocks_tmp->Time); + tempString.sprintf("| %s ", stocks_tmp->Time); + tempString.replace(QRegExp("\""),""); + if( dotimeCheck) + output +=tempString; + } + if (stocks_tmp->Date) { + // printf("%s ", stocks_tmp->Date); + tempString.sprintf("| %s ", stocks_tmp->Date); + tempString.replace(QRegExp("\""),""); + if(dodateCheck) + output +=tempString; + } + // printf("\n"); + + // printf("----------------------------------------\n"); + + if ( strlen(stocks_tmp->Symbol) > 20 ) { + // printf("| Symbol | %.20s |\n",stocks_tmp->Symbol); + tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); + if(dosymbolCheck) + output +=tempString; + } + else { + // printf("| Symbol | %-20s |\n",stocks_tmp->Symbol); + tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); + if(dosymbolCheck) + output +=tempString; + } + + if (stocks_tmp->Name) { + if ( strlen(stocks_tmp->Name) > 20 ) { + // printf("| Name %.20s |\n",stocks_tmp->Name); + tempString.sprintf("| Name %s ",stocks_tmp->Name); + tempString.stripWhiteSpace(); + if(donameCheck) + output +=tempString; + } else { + // printf("| Name | %-20s |\n",stocks_tmp->Name); + tempString.sprintf("| Name %s ",stocks_tmp->Name); + tempString.stripWhiteSpace(); + if(donameCheck) + output +=tempString; + } + } + else { + // printf("| Name | |\n"); + tempString.sprintf("| Name | |"); + if(donameCheck) + output +=tempString; + } + + // printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice); + tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice); + if(docurrentPriceCheck) + output +=tempString; + + // printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice); + tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice); + if(dolastPriceCheck) + output +=tempString; + + // printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice); + tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice); + if(doopenPriceCheck) + output +=tempString; + + // printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice); + tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice); + if(dominPriceCheck) + output +=tempString; + + // printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice); + tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice); + if(domaxPriceCheck) + output +=tempString; + + // printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage); + tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage); + if(dovariationCheck) + output +=tempString; + + // printf("| Volume | %-9d |\n", stocks_tmp->Volume); + tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume); + if(dovolumeCheck) + output +=tempString; + + // printf("----------------------------------------\n\n"); + tempString.sprintf("||==++==|"); + output +=tempString; + + /* Simple function which help to browse in the stocks list */ + stocks_tmp = next_stock(stocks_tmp); + } + + stocktickerTicker->setText( output.latin1() ); + + /* frees stocks */ + free_stocks(stocks_quotes); + free_stocks(stocks_tmp); + + stock_liste=""; + //delete stock_liste; + tempString=""; + output=""; + } + + StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name) + : QWidget(parent, name ) { + init(); + startTimer(1000); + + stocktickerTicker->setTextFormat(Qt::RichText); + // checkConnection(); + } + + StockTickerPluginWidget::~StockTickerPluginWidget() { + } + + void StockTickerPluginWidget::init() { + + QHBoxLayout* layout = new QHBoxLayout( this ); + stocktickerTicker = new OTicker(this); + // stocktickerTicker->setMinimumHeight(15); + connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( checkConnection() )); + layout->addWidget( stocktickerTicker); + wasError = true; + } + + void StockTickerPluginWidget::doStocks() { + Config cfg( "stockticker"); + cfg.setGroup( "Symbols" ); + symbollist=""; + symbollist = cfg.readEntry("Symbols", ""); + symbollist.replace(QRegExp(" "),"+");//seperated by + + + cfg.setGroup("Timer"); + stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50)); + stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10)); + + if (!symbollist.isEmpty()) { + pthread_t thread1; + char *blah = ::strdup(symbollist.latin1()); + pthread_create( &thread1, NULL, (void * (*)(void *))getStocks, (void *) blah); + pthread_detach( thread1); + + //::free((void*)thread1); + //getStocks(blah); + } + } + + void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) { + killTimer(e->timerId()); + checkConnection(); + } + + void StockTickerPluginWidget::checkConnection() { + // qDebug("checking connection"); + // Sock = new QSocket( this ); + + // if( wasError) + // stocktickerTicker->setText("Checking connection"); + + // if(Sock->state() == QSocket::Idle) { + // Sock->connectToHost("finance.yahoo.com", 80); + // connect( Sock, SIGNAL( error(int) ), SLOT(socketError(int)) ); + // connect( Sock, SIGNAL( hostFound() ), SLOT(isConnected()) ); + // } else { + // qDebug("State is not Idle"); + isConnected(); + // } + } + + void StockTickerPluginWidget::isConnected() { + // qDebug("We connect, so ok to grab stocks"); + if(this->isVisible()) + doStocks(); + + Config cfg( "stockticker"); + cfg.setGroup("Timer"); + timerDelay= cfg.readNumEntry("Delay",0); + if(timerDelay > 0) + startTimer(timerDelay*60000); + // qDebug("timer set for %d",(timerDelay*60000)/60000); + wasError = false; + + // Sock->close(); + } + + void StockTickerPluginWidget::socketError(int errcode) { + switch(errcode) { + case QSocket::ErrConnectionRefused: + output = tr("Connection refused."); + break; + case QSocket::ErrHostNotFound: + output = tr("Could not find server."); + break; + case QSocket::ErrSocketRead : + output = tr("Socket read error."); + break; + }; + stocktickerTicker->setText( output ); + wasError = true; + // Sock->close(); + + } diff --git a/noncore/todayplugins/weather/weatherconfig.h b/noncore/todayplugins/weather/weatherconfig.h index 3877818..d9ffec2 100644 --- a/noncore/todayplugins/weather/weatherconfig.h +++ b/noncore/todayplugins/weather/weatherconfig.h @@ -42,4 +42,5 @@ class QSpinBox; class WeatherPluginConfig : public TodayConfigWidget { + Q_OBJECT public: WeatherPluginConfig( QWidget *parent, const char *name ); diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp index 41c99a8..ecbf12f 100644 --- a/noncore/tools/clock/clock.cpp +++ b/noncore/tools/clock/clock.cpp @@ -434,5 +434,6 @@ void Clock::alarmOn() "QPE/Application/clock", "alarm(QDateTime,int)", warn ); - setCaption( "Alarm set: " + whenl.toString() ); +// setCaption( "Alarm set: " + whenl.toString() ); + setCaption( tr("Alarm set: %1" ).arg(whenl.toString()) ); } @@ -445,5 +446,5 @@ void Clock::alarmOff() "alarm(QDateTime,int)", warn ); qDebug( "Alarm Off " + when.toString() ); - setCaption( "Clock" ); + setCaption( tr("Clock") ); } @@ -453,5 +454,5 @@ void Clock::clearTimer() alarmBool = FALSE; snoozeBtn->hide(); - setCaption( "Clock" ); + setCaption( tr("Clock") ); } diff --git a/noncore/tools/euroconv/main.cpp b/noncore/tools/euroconv/main.cpp index 2d97f4e..7d69535 100644 --- a/noncore/tools/euroconv/main.cpp +++ b/noncore/tools/euroconv/main.cpp @@ -32,5 +32,5 @@ int main( int argc, char **argv ) { KeyPad num(&lcd, layout, "keypad"); app.setMainWidget(layout); - layout->setCaption("Euroconv"); + layout->setCaption( QObject::tr("Euroconv") ); layout->showMaximized (); layout->show(); diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp index 21de4d2..49f6355 100644 --- a/noncore/tools/formatter/formatter.cpp +++ b/noncore/tools/formatter/formatter.cpp @@ -401,5 +401,6 @@ void FormatterApp::deviceComboSelected(int index) { fsType = getFileSystemType((const QString &)selectedText); - TextLabel5->setText(tr("Type: %1\nFormatted with %1\n%1, %1, %1").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); + TextLabel5->setText(tr("Type: %1\nFormatted with %2\n%3, %4, %5").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); + TextLabel5->setTextFormat( Qt::RichText ); // storageComboSelected(0); } |