summaryrefslogtreecommitdiff
authorkergoth <kergoth>2003-08-09 17:14:54 (UTC)
committer kergoth <kergoth>2003-08-09 17:14:54 (UTC)
commita7e015198a8c5ad3b6e144a9032b059086253e00 (patch) (unidiff)
treeb712b6f11310d88744fe393a92b3160b741a7efe
parentbeba0e73306815337bf04dee39502233595e9739 (diff)
downloadopie-a7e015198a8c5ad3b6e144a9032b059086253e00.zip
opie-a7e015198a8c5ad3b6e144a9032b059086253e00.tar.gz
opie-a7e015198a8c5ad3b6e144a9032b059086253e00.tar.bz2
Merge from BRANCH_1_0
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/appearance2/appearance.cpp13
-rw-r--r--noncore/settings/appearance2/colorlistitem.h7
-rw-r--r--noncore/settings/appearance2/decolistitem.h3
-rw-r--r--noncore/settings/backup/backuprestore.cpp9
-rw-r--r--noncore/settings/language/language.cpp2
-rw-r--r--noncore/settings/mediummount/mainwindow.cc1
-rw-r--r--noncore/settings/mediummount/mediumglobal.cc2
-rw-r--r--noncore/settings/mediummount/mediumwidget.cc2
-rw-r--r--noncore/settings/networksettings/interfaces/interface.cpp68
-rw-r--r--noncore/settings/networksettings/interfaces/interface.h12
-rw-r--r--noncore/settings/networksettings/interfaces/interfaceadvanced.ui2
-rw-r--r--noncore/settings/networksettings/interfaces/interfaceinformation.ui267
-rw-r--r--noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp24
-rw-r--r--noncore/settings/networksettings/interfaces/interfaceinformationimp.h2
-rw-r--r--noncore/settings/networksettings/interfaces/interfaces.cpp60
-rw-r--r--noncore/settings/networksettings/interfaces/interfacesetupimp.cpp4
-rw-r--r--noncore/settings/networksettings/mainwindowimp.cpp23
-rw-r--r--noncore/settings/networksettings/mainwindowimp.h15
-rw-r--r--noncore/settings/networksettings/module.h39
-rw-r--r--noncore/settings/networksettings/ppp/TODO10
-rw-r--r--noncore/settings/networksettings/ppp/accounts.cpp158
-rw-r--r--noncore/settings/networksettings/ppp/accounts.h40
-rw-r--r--noncore/settings/networksettings/ppp/chooserwidget.cpp85
-rw-r--r--noncore/settings/networksettings/ppp/chooserwidget.h73
-rw-r--r--noncore/settings/networksettings/ppp/connect.cpp166
-rw-r--r--noncore/settings/networksettings/ppp/connect.h2
-rw-r--r--noncore/settings/networksettings/ppp/conwindow.cpp27
-rw-r--r--noncore/settings/networksettings/ppp/devices.cpp212
-rw-r--r--noncore/settings/networksettings/ppp/devices.h95
-rw-r--r--noncore/settings/networksettings/ppp/edit.cpp4
-rw-r--r--noncore/settings/networksettings/ppp/general.cpp293
-rw-r--r--noncore/settings/networksettings/ppp/general.h34
-rw-r--r--noncore/settings/networksettings/ppp/interfaceinformationppp.cpp20
-rw-r--r--noncore/settings/networksettings/ppp/interfaceppp.cpp70
-rw-r--r--noncore/settings/networksettings/ppp/interfaceppp.h16
-rw-r--r--noncore/settings/networksettings/ppp/kpppwidget.cpp89
-rw-r--r--noncore/settings/networksettings/ppp/modem.cpp85
-rw-r--r--noncore/settings/networksettings/ppp/modem.h23
-rw-r--r--noncore/settings/networksettings/ppp/modemcmds.cpp129
-rw-r--r--noncore/settings/networksettings/ppp/modemcmds.h3
-rw-r--r--noncore/settings/networksettings/ppp/modeminfo.cpp24
-rw-r--r--noncore/settings/networksettings/ppp/ppp.pro5
-rw-r--r--noncore/settings/networksettings/ppp/pppconfig.cpp19
-rw-r--r--noncore/settings/networksettings/ppp/pppconfig.h6
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.cpp397
-rw-r--r--noncore/settings/networksettings/ppp/pppdata.h47
-rw-r--r--noncore/settings/networksettings/ppp/pppmodule.cpp117
-rw-r--r--noncore/settings/networksettings/ppp/runtests.cpp12
-rw-r--r--noncore/settings/networksettings/wlan/keyedit.cpp1
-rw-r--r--noncore/settings/networksettings/wlan/wlan.ui96
-rw-r--r--noncore/settings/networksettings/wlan/wlanimp2.cpp35
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp2
-rw-r--r--noncore/settings/usermanager/userdialog.cpp2
-rw-r--r--noncore/settings/usermanager/userdialog.h1
-rw-r--r--noncore/settings/usermanager/usermanager.cpp2
-rw-r--r--noncore/settings/usermanager/usermanager.pro2
-rw-r--r--noncore/styles/flat/flat.cpp128
-rw-r--r--noncore/styles/flat/flat.h6
-rw-r--r--noncore/todayplugins/stockticker/stockticker/inputDialog.cpp1
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp2
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h2
-rw-r--r--noncore/todayplugins/stockticker/stocktickerlib/stocktickerpluginwidget.cpp622
-rw-r--r--noncore/todayplugins/weather/weatherconfig.h1
-rw-r--r--noncore/tools/clock/clock.cpp7
-rw-r--r--noncore/tools/euroconv/main.cpp2
-rw-r--r--noncore/tools/formatter/formatter.cpp3
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
@@ -84,7 +84,7 @@ public:
84 QString name() const { 84 QString name() const {
85 return "Default"; 85 return "Default";
86 } 86 }
87 QPixmap icon() const { 87QPixmap icon() const {
88 return QPixmap(); 88 return QPixmap();
89 } 89 }
90 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) { 90 QRESULT queryInterface( const QUuid &uuid, QUnknownInterface **iface ) {
@@ -175,7 +175,7 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg )
175 vertLayout->addWidget( m_deco_list ); 175 vertLayout->addWidget( m_deco_list );
176 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." ) ); 176 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." ) );
177 177
178 QString s = cfg. readEntry ( "Decoration" ); 178 QString s = cfg. readEntry ( "Decoration", "libflat.so" );
179 179
180 m_deco_list-> insertItem ( new DecoListItem ( "QPE" )); 180 m_deco_list-> insertItem ( new DecoListItem ( "QPE" ));
181 181
@@ -402,7 +402,7 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
402 402
403 vertLayout-> addSpacing ( 3 ); 403 vertLayout-> addSpacing ( 3 );
404 QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 ); 404 QHBoxLayout *rotLay = new QHBoxLayout ( vertLayout, 3 );
405 405
406 QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab ); 406 QLabel* rotlabel = new QLabel( tr( "Rotation direction:" ), tab );
407 m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" ); 407 m_rotdir_cw = new QRadioButton( tab, "rotdir_cw" );
408 QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( ); 408 QPixmap cw1 = Resource::loadIconSet("redo"). pixmap( );
@@ -421,8 +421,8 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
421 421
422 ccw1. convertFromImage( ccwImage ); 422 ccw1. convertFromImage( ccwImage );
423 m_rotdir_cw-> setPixmap( cw1 ); 423 m_rotdir_cw-> setPixmap( cw1 );
424 m_rotdir_ccw-> setPixmap( ccw1 ); 424 m_rotdir_ccw-> setPixmap( ccw1 );
425 m_rotdir_flip-> setPixmap( flip1 ); 425 m_rotdir_flip-> setPixmap( flip1 );
426 426
427 rotLay-> addWidget ( rotlabel, 0 ); 427 rotLay-> addWidget ( rotlabel, 0 );
428 rotLay-> addWidget ( m_rotdir_cw, 0 ); 428 rotLay-> addWidget ( m_rotdir_cw, 0 );
@@ -457,7 +457,8 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags )
457 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 ); 457 QVBoxLayout *top = new QVBoxLayout ( this, 3, 3 );
458 458
459 m_sample = new SampleWindow ( this ); 459 m_sample = new SampleWindow ( this );
460 m_sample-> setDecoration ( new DefaultWindowDecoration ( )); 460
461 m_sample-> setDecoration ( new DefaultWindowDecoration ( ) );
461 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) ); 462 QWhatsThis::add( m_sample, tr( "This is a preview window. Look here to see your new appearance as options are changed." ) );
462 463
463 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom ); 464 OTabWidget* tw = new OTabWidget ( this, "tabwidget", OTabWidget::Global, OTabWidget::Bottom );
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
@@ -124,12 +124,13 @@ private:
124 } 124 }
125}; 125};
126 126
127// from etc/colors/Liquid.scheme
127const ColorListItem::colorlut ColorListItem::s_colorlut [] = { 128const ColorListItem::colorlut ColorListItem::s_colorlut [] = {
128 { QColorGroup::Base, "Base", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Base" ) }, 129 { QColorGroup::Base, "Base", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Base" ) },
129 { QColorGroup::Background, "Background", "#E5E1D5", QT_TRANSLATE_NOOP( "Appearance", "Background" ) }, 130 { QColorGroup::Background, "Background", "#E0E0E0", QT_TRANSLATE_NOOP( "Appearance", "Background" ) },
130 { QColorGroup::Button, "Button", "#D6CDBB", QT_TRANSLATE_NOOP( "Appearance", "Button" ) }, 131 { QColorGroup::Button, "Button", "#96c8fa", QT_TRANSLATE_NOOP( "Appearance", "Button" ) },
131 { QColorGroup::ButtonText, "ButtonText", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Button Text" ) }, 132 { QColorGroup::ButtonText, "ButtonText", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Button Text" ) },
132 { QColorGroup::Highlight, "Highlight", "#800000", QT_TRANSLATE_NOOP( "Appearance", "Highlight" ) }, 133 { QColorGroup::Highlight, "Highlight", "#73adef", QT_TRANSLATE_NOOP( "Appearance", "Highlight" ) },
133 { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Highlighted Text" ) }, 134 { QColorGroup::HighlightedText, "HighlightedText", "#FFFFFF", QT_TRANSLATE_NOOP( "Appearance", "Highlighted Text" ) },
134 { QColorGroup::Text, "Text", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Text" ) } 135 { QColorGroup::Text, "Text", "#000000", QT_TRANSLATE_NOOP( "Appearance", "Text" ) }
135}; 136};
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
@@ -103,4 +103,5 @@ private:
103 103
104}; 104};
105 105
106#endif \ No newline at end of file 106#endif
107
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
@@ -71,18 +71,9 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name)
71 71
72//todo make less static here and use Storage class to get infos 72//todo make less static here and use Storage class to get infos
73 if(totalLocations == 0){ 73 if(totalLocations == 0){
74
75/* Ramses has a CF-Slot, but that one is internal and you have to dismount the
76 * the case. There's also almost always a WLAN card inserted there
77*/
78
79 backupLocations.insert("Documents", "/root/Documents"); 74 backupLocations.insert("Documents", "/root/Documents");
80#if defined(QT_QWS_RAMSES)
81 backupLocations.insert("MMC", "/mnt/card");
82#else
83 backupLocations.insert("CF", "/mnt/cf"); 75 backupLocations.insert("CF", "/mnt/cf");
84 backupLocations.insert("SD", "/mnt/card"); 76 backupLocations.insert("SD", "/mnt/card");
85#endif
86 } 77 }
87 else{ 78 else{
88 for(int i = 0; i < totalLocations; i++){ 79 for(int i = 0; i < totalLocations; i++){
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
@@ -115,9 +115,9 @@ void LanguageSettings::reset()
115 Config config("locale"); 115 Config config("locale");
116 config.setGroup("Language"); 116 config.setGroup("Language");
117 l = config.readEntry( "Language", l ); 117 l = config.readEntry( "Language", l );
118 actualLanguage = l;
118 if (l.isEmpty()) 119 if (l.isEmpty())
119 l = "en"; 120 l = "en";
120 actualLanguage = l;
121 121
122 int n = langAvail.find( l ); 122 int n = langAvail.find( l );
123 languages->setCurrentItem( n ); 123 languages->setCurrentItem( n );
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
@@ -14,6 +14,7 @@
14 14
15using namespace MediumMountSetting; 15using namespace MediumMountSetting;
16 16
17/* TRANSLATOR MediumMountSetting::MainWindow */
17 18
18MainWindow::MainWindow( QWidget *parent, const char *name, bool modal, WFlags ) 19MainWindow::MainWindow( QWidget *parent, const char *name, bool modal, WFlags )
19 : QDialog( parent, name, modal, WStyle_ContextHelp ) 20 : QDialog( parent, name, modal, WStyle_ContextHelp )
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
@@ -15,6 +15,8 @@
15 15
16using namespace MediumMountSetting; 16using namespace MediumMountSetting;
17 17
18/* TRANSLATOR MediumMountSetting::MediumGlobalWidget */
19
18MediumGlobalWidget::MediumGlobalWidget(QWidget *wid, const char *name ) 20MediumGlobalWidget::MediumGlobalWidget(QWidget *wid, const char *name )
19 : QWidget( wid, name, WStyle_ContextHelp ) 21 : QWidget( wid, name, WStyle_ContextHelp )
20{ 22{
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
@@ -22,6 +22,8 @@
22 22
23using namespace MediumMountSetting; 23using namespace MediumMountSetting;
24 24
25/* TRANSLATOR MediumMountSetting::MediumMountWidget */
26
25MediumMountWidget::MediumMountWidget(const QString &path, 27MediumMountWidget::MediumMountWidget(const QString &path,
26 const QPixmap &pix, 28 const QPixmap &pix,
27 QWidget *parent, 29 QWidget *parent,
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
@@ -1,7 +1,7 @@
1/** 1/**
2 * $Author$ 2 * $Author$
3 * $Date$ 3 * $Date$
4 */ 4 */
5 5
6#include "interface.h" 6#include "interface.h"
7#include <qdatetime.h> 7#include <qdatetime.h>
@@ -24,7 +24,7 @@ Interface::Interface(QObject * parent, const char * name, bool newSatus): QObjec
24 * Set status 24 * Set status
25 * @param newStatus - the new status 25 * @param newStatus - the new status
26 * emit updateInterface 26 * emit updateInterface
27 */ 27 */
28void Interface::setStatus(bool newStatus){ 28void Interface::setStatus(bool newStatus){
29 if(status != newStatus){ 29 if(status != newStatus){
30 status = newStatus; 30 status = newStatus;
@@ -36,27 +36,27 @@ void Interface::setStatus(bool newStatus){
36 * Set if attached or not (802.11 card pulled out for example) 36 * Set if attached or not (802.11 card pulled out for example)
37 * @param isAttached - if attached 37 * @param isAttached - if attached
38 * emit updateInterface 38 * emit updateInterface
39 */ 39 */
40void Interface::setAttached(bool isAttached){ 40void Interface::setAttached(bool isAttached){
41 attached = isAttached; 41 attached = isAttached;
42 emit(updateInterface(this)); 42 emit(updateInterface(this));
43}; 43};
44 44
45/** 45/**
46 * Set Hardware name 46 * Set Hardware name
47 * @param name - the new name 47 * @param name - the new name
48 * emit updateInterface 48 * emit updateInterface
49 */ 49 */
50void Interface::setHardwareName(const QString &name){ 50void Interface::setHardwareName(const QString &name){
51 hardwareName = name; 51 hardwareName = name;
52 emit(updateInterface(this)); 52 emit(updateInterface(this));
53}; 53};
54 54
55/** 55/**
56 * Set Module owner 56 * Set Module owner
57 * @param owner - the new owner 57 * @param owner - the new owner
58 * emit updateInterface 58 * emit updateInterface
59 */ 59 */
60void Interface::setModuleOwner(Module *owner){ 60void Interface::setModuleOwner(Module *owner){
61 moduleOwner = owner; 61 moduleOwner = owner;
62 emit(updateInterface(this)); 62 emit(updateInterface(this));
@@ -65,14 +65,14 @@ void Interface::setModuleOwner(Module *owner){
65 65
66/** 66/**
67 * Try to start the interface. 67 * Try to start the interface.
68 */ 68 */
69void Interface::start(){ 69void Interface::start(){
70 // check to see if we are already running. 70 // check to see if we are already running.
71 if(true == status){ 71 if(true == status){
72 emit (updateMessage("Unable to start interface,\n already started")); 72 emit (updateMessage("Unable to start interface,\n already started"));
73 return; 73 return;
74 } 74 }
75 75
76 int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1()); 76 int ret = system(QString("%1 %2 up").arg(IFCONFIG).arg(this->name()).latin1());
77 // See if it was successfull... 77 // See if it was successfull...
78 if(ret != 0){ 78 if(ret != 0){
@@ -89,12 +89,12 @@ void Interface::start(){
89 * Try to stop the interface. 89 * Try to stop the interface.
90 */ 90 */
91void Interface::stop(){ 91void Interface::stop(){
92 // check to see if we are already stopped. 92 // check to see if we are already stopped.
93 if(false == status){ 93 if(false == status){
94 emit (updateMessage("Unable to stop interface,\n already stopped")); 94 emit (updateMessage("Unable to stop interface,\n already stopped"));
95 return; 95 return;
96 } 96 }
97 97
98 int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1()); 98 int ret = system(QString("%1 %2 down").arg(IFCONFIG).arg(this->name()).latin1());
99 if(ret != 0){ 99 if(ret != 0){
100 emit (updateMessage("Stopping interface failed")); 100 emit (updateMessage("Stopping interface failed"));
@@ -108,7 +108,7 @@ void Interface::stop(){
108 108
109/** 109/**
110 * Try to restart the interface. 110 * Try to restart the interface.
111 */ 111 */
112void Interface::restart(){ 112void Interface::restart(){
113 stop(); 113 stop();
114 start(); 114 start();
@@ -133,14 +133,14 @@ bool Interface::refresh(){
133 emit(updateInterface(this)); 133 emit(updateInterface(this));
134 return true; 134 return true;
135 } 135 }
136 136
137 QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name()); 137 QString fileName = QString("/tmp/%1_ifconfig_info").arg(this->name());
138 int ret = system(QString("%1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1()); 138 int ret = system(QString("LANG=C %1 %2 > %3").arg(IFCONFIG).arg(this->name()).arg(fileName).latin1());
139 if(ret != 0){ 139 if(ret != 0){
140 qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1()); 140 qDebug(QString("Interface: Ifconfig return value: %1, is not 0").arg(ret).latin1());
141 return false; 141 return false;
142 } 142 }
143 143
144 QFile file(fileName); 144 QFile file(fileName);
145 if (!file.open(IO_ReadOnly)){ 145 if (!file.open(IO_ReadOnly)){
146 qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1()); 146 qDebug(QString("Interface: Can't open file: %1").arg(fileName).latin1());
@@ -152,7 +152,7 @@ bool Interface::refresh(){
152 ip = "0.0.0.0"; 152 ip = "0.0.0.0";
153 subnetMask = "0.0.0.0"; 153 subnetMask = "0.0.0.0";
154 broadcast = ""; 154 broadcast = "";
155 155
156 QTextStream stream( &file ); 156 QTextStream stream( &file );
157 QString line; 157 QString line;
158 while ( !stream.eof() ) { 158 while ( !stream.eof() ) {
@@ -185,30 +185,30 @@ bool Interface::refresh(){
185 leaseObtained = ""; 185 leaseObtained = "";
186 leaseExpires = ""; 186 leaseExpires = "";
187 dhcp = false; 187 dhcp = false;
188 188
189 QString dhcpDirectory(DHCP_INFO_DIR); 189 QString dhcpDirectory(DHCP_INFO_DIR);
190 QDir d(dhcpDirectory); 190 QDir d(dhcpDirectory);
191 if(!d.exists(dhcpDirectory)) 191 if(!d.exists(dhcpDirectory))
192 dhcpDirectory = "/var/run"; 192 dhcpDirectory = "/var/run";
193 193
194 // See if we have 194 // See if we have
195 QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name())); 195 QString dhcpFile(QString(dhcpDirectory+"/dhcpcd-%1.info").arg(this->name()));
196 // If there is no DHCP information then exit now with no errors. 196 // If there is no DHCP information then exit now with no errors.
197 if(!QFile::exists(dhcpFile)){ 197 if(!QFile::exists(dhcpFile)){
198 emit(updateInterface(this)); 198 emit(updateInterface(this));
199 return true; 199 return true;
200 } 200 }
201 201
202 file.setName(dhcpFile); 202 file.setName(dhcpFile);
203 if (!file.open(IO_ReadOnly)){ 203 if (!file.open(IO_ReadOnly)){
204 qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1()); 204 qDebug(QString("Interface: Can't open file: %1").arg(dhcpFile).latin1());
205 return false; 205 return false;
206 } 206 }
207 207
208 // leaseTime and renewalTime and used if pid and deamon exe can be accessed. 208 // leaseTime and renewalTime and used if pid and deamon exe can be accessed.
209 int leaseTime = 0; 209 int leaseTime = 0;
210 int renewalTime = 0; 210 int renewalTime = 0;
211 211
212 stream.setDevice( &file ); 212 stream.setDevice( &file );
213 while ( !stream.eof() ) { 213 while ( !stream.eof() ) {
214 line = stream.readLine(); 214 line = stream.readLine();
@@ -222,7 +222,7 @@ bool Interface::refresh(){
222 file.close(); 222 file.close();
223 //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1()); 223 //qDebug(QString("Interface: leaseTime: %1").arg(leaseTime).latin1());
224 //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1()); 224 //qDebug(QString("Interface: renewalTime: %1").arg(renewalTime).latin1());
225 225
226 // Get the pid of the deamond 226 // Get the pid of the deamond
227 dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name())); 227 dhcpFile = (QString(dhcpDirectory+"/dhcpcd-%1.pid").arg(this->name()));
228 file.setName(dhcpFile); 228 file.setName(dhcpFile);
@@ -244,7 +244,7 @@ bool Interface::refresh(){
244 return false; 244 return false;
245 } 245 }
246 246
247 // Get the start running time of the deamon 247 // Get the start running time of the deamon
248 fileName = (QString("/proc/%1/stat").arg(pid)); 248 fileName = (QString("/proc/%1/stat").arg(pid));
249 file.setName(fileName); 249 file.setName(fileName);
250 stream.setDevice( &file ); 250 stream.setDevice( &file );
@@ -257,7 +257,7 @@ bool Interface::refresh(){
257 } 257 }
258 file.close(); 258 file.close();
259 long time = 0; 259 long time = 0;
260 // Grab the start time 260 // Grab the start time
261 // pid com state ppid pgrp session tty_nr tpgid flags 261 // pid com state ppid pgrp session tty_nr tpgid flags
262 sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u " 262 sscanf(line.latin1(), "%*d %*s %*c %*d %*d %*d %*d %*d %*u "
263 // minflt cminflt majflt cmajflt utime stime cutime cstime priority 263 // minflt cminflt majflt cmajflt utime stime cutime cstime priority
@@ -265,7 +265,7 @@ bool Interface::refresh(){
265 // nice 0 itrealvalue starttime 265 // nice 0 itrealvalue starttime
266 "%*d %*d %*d %lu", (long*) &time); 266 "%*d %*d %*d %lu", (long*) &time);
267 time = time/100; 267 time = time/100;
268 268
269 QDateTime datetime(QDateTime::currentDateTime()); 269 QDateTime datetime(QDateTime::currentDateTime());
270 270
271 // Get the uptime of the computer. 271 // Get the uptime of the computer.
@@ -281,19 +281,19 @@ bool Interface::refresh(){
281 qDebug("Interface: Can't open /proc/uptime to retrive uptime."); 281 qDebug("Interface: Can't open /proc/uptime to retrive uptime.");
282 return false; 282 return false;
283 } 283 }
284 284
285 datetime = datetime.addSecs(time); 285 datetime = datetime.addSecs(time);
286 //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1()); 286 //qDebug(QString("Interface: %1 %2").arg(datetime.toString()).arg(pid).latin1());
287 287
288 // Calculate the start and renew times 288 // Calculate the start and renew times
289 leaseObtained= datetime.toString(); 289 leaseObtained= datetime.toString();
290 290
291 // Calculate the start and renew times 291 // Calculate the start and renew times
292 datetime = datetime.addSecs(leaseTime); 292 datetime = datetime.addSecs(leaseTime);
293 leaseExpires = datetime.toString(); 293 leaseExpires = datetime.toString();
294 294
295 dhcp = true; 295 dhcp = true;
296 296
297 emit(updateInterface(this)); 297 emit(updateInterface(this));
298 return true; 298 return true;
299} 299}
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
@@ -12,22 +12,22 @@ class Interface : public QObject{
12signals: 12signals:
13 void updateInterface(Interface *i); 13 void updateInterface(Interface *i);
14 void updateMessage(const QString &message); 14 void updateMessage(const QString &message);
15 15
16public: 16public:
17 Interface(QObject * parent=0, const char * name= "unknown", bool status = false); 17 Interface(QObject * parent=0, const char * name= "unknown", bool status = false);
18 18
19 QString getInterfaceName() const { QString n(this->name()); return n; }; 19 QString getInterfaceName() const { QString n(this->name()); return n; };
20 void setInterfaceName( const QString &n ) { this->setName(n); }; 20 void setInterfaceName( const QString &n ) { this->setName(n); };
21 21
22 bool getStatus() const { return status; }; 22 bool getStatus() const { return status; };
23 void setStatus(bool newStatus); 23 void setStatus(bool newStatus);
24 24
25 bool isAttached() const { return attached; }; 25 bool isAttached() const { return attached; };
26 void setAttached(bool isAttached=false); 26 void setAttached(bool isAttached=false);
27 27
28 QString getHardwareName() const { return hardwareName; }; 28 QString getHardwareName() const { return hardwareName; };
29 void setHardwareName(const QString &name="Unknown"); 29 void setHardwareName(const QString &name="Unknown");
30 30
31 Module* getModuleOwner() const { return moduleOwner; }; 31 Module* getModuleOwner() const { return moduleOwner; };
32 void setModuleOwner(Module *owner=NULL); 32 void setModuleOwner(Module *owner=NULL);
33 33
@@ -47,7 +47,7 @@ public:
47 virtual void stop(); 47 virtual void stop();
48 virtual void restart(); 48 virtual void restart();
49 49
50private: 50protected:
51 // Interface information 51 // Interface information
52 QString hardwareName; 52 QString hardwareName;
53 Module *moduleOwner; 53 Module *moduleOwner;
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
@@ -18,7 +18,7 @@
18 <property stdset="1"> 18 <property stdset="1">
19 <name>maximumSize</name> 19 <name>maximumSize</name>
20 <size> 20 <size>
21 <width>240</width> 21 <width>32767</width>
22 <height>32767</height> 22 <height>32767</height>
23 </size> 23 </size>
24 </property> 24 </property>
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
@@ -12,95 +12,29 @@
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>219</width> 14 <width>219</width>
15 <height>255</height> 15 <height>323</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Interface Information</string> 20 <string>Interface Information</string>
21 </property> 21 </property>
22 <grid> 22 <property>
23 <name>layoutMargin</name>
24 </property>
25 <property>
26 <name>layoutSpacing</name>
27 </property>
28 <vbox>
23 <property stdset="1"> 29 <property stdset="1">
24 <name>margin</name> 30 <name>margin</name>
25 <number>11</number> 31 <number>4</number>
26 </property> 32 </property>
27 <property stdset="1"> 33 <property stdset="1">
28 <name>spacing</name> 34 <name>spacing</name>
29 <number>6</number> 35 <number>3</number>
30 </property> 36 </property>
31 <widget row="4" column="0" rowspan="1" colspan="2" > 37 <widget>
32 <class>QLayoutWidget</class>
33 <property stdset="1">
34 <name>name</name>
35 <cstring>Layout1</cstring>
36 </property>
37 <grid>
38 <property stdset="1">
39 <name>margin</name>
40 <number>0</number>
41 </property>
42 <property stdset="1">
43 <name>spacing</name>
44 <number>6</number>
45 </property>
46 <widget row="1" column="0" >
47 <class>QPushButton</class>
48 <property stdset="1">
49 <name>name</name>
50 <cstring>refreshButton</cstring>
51 </property>
52 <property stdset="1">
53 <name>text</name>
54 <string>&amp;Refresh</string>
55 </property>
56 </widget>
57 <widget row="0" column="1" >
58 <class>QPushButton</class>
59 <property stdset="1">
60 <name>name</name>
61 <cstring>stopButton</cstring>
62 </property>
63 <property stdset="1">
64 <name>text</name>
65 <string>S&amp;top</string>
66 </property>
67 </widget>
68 <widget row="1" column="1" >
69 <class>QPushButton</class>
70 <property stdset="1">
71 <name>name</name>
72 <cstring>restartButton</cstring>
73 </property>
74 <property stdset="1">
75 <name>text</name>
76 <string>R&amp;estart</string>
77 </property>
78 </widget>
79 <widget row="0" column="0" >
80 <class>QPushButton</class>
81 <property stdset="1">
82 <name>name</name>
83 <cstring>startButton</cstring>
84 </property>
85 <property stdset="1">
86 <name>text</name>
87 <string>&amp;Start</string>
88 </property>
89 </widget>
90 </grid>
91 </widget>
92 <widget row="0" column="0" >
93 <class>Line</class>
94 <property stdset="1">
95 <name>name</name>
96 <cstring>Line1</cstring>
97 </property>
98 <property stdset="1">
99 <name>orientation</name>
100 <enum>Horizontal</enum>
101 </property>
102 </widget>
103 <widget row="0" column="0" >
104 <class>QLabel</class> 38 <class>QLabel</class>
105 <property stdset="1"> 39 <property stdset="1">
106 <name>name</name> 40 <name>name</name>
@@ -111,48 +45,48 @@
111 <string>IP Address</string> 45 <string>IP Address</string>
112 </property> 46 </property>
113 </widget> 47 </widget>
114 <widget row="1" column="0" > 48 <widget>
115 <class>QLabel</class> 49 <class>QLabel</class>
116 <property stdset="1"> 50 <property stdset="1">
117 <name>name</name> 51 <name>name</name>
118 <cstring>TextLabel23</cstring> 52 <cstring>ipAddressLabel</cstring>
119 </property> 53 </property>
120 <property stdset="1"> 54 <property stdset="1">
121 <name>text</name> 55 <name>frameShape</name>
122 <string>Subnet Mask</string> 56 <enum>Panel</enum>
123 </property> 57 </property>
124 </widget>
125 <widget row="2" column="0" >
126 <class>QLabel</class>
127 <property stdset="1"> 58 <property stdset="1">
128 <name>name</name> 59 <name>frameShadow</name>
129 <cstring>TextLabel21</cstring> 60 <enum>Sunken</enum>
130 </property> 61 </property>
131 <property stdset="1"> 62 <property stdset="1">
132 <name>text</name> 63 <name>text</name>
133 <string>MAC Address</string> 64 <string>0.0.0.0</string>
134 </property> 65 </property>
135 </widget> 66 </widget>
136 <widget row="3" column="0" > 67 <widget>
137 <class>QLabel</class> 68 <class>Line</class>
138 <property stdset="1"> 69 <property stdset="1">
139 <name>name</name> 70 <name>name</name>
140 <cstring>TextLabel24</cstring> 71 <cstring>Line1</cstring>
141 </property> 72 </property>
142 <property stdset="1"> 73 <property stdset="1">
143 <name>frameShape</name> 74 <name>orientation</name>
144 <enum>MShape</enum> 75 <enum>Horizontal</enum>
145 </property> 76 </property>
77 </widget>
78 <widget>
79 <class>QLabel</class>
146 <property stdset="1"> 80 <property stdset="1">
147 <name>frameShadow</name> 81 <name>name</name>
148 <enum>MShadow</enum> 82 <cstring>TextLabel23</cstring>
149 </property> 83 </property>
150 <property stdset="1"> 84 <property stdset="1">
151 <name>text</name> 85 <name>text</name>
152 <string>Broadcast</string> 86 <string>Subnet Mask</string>
153 </property> 87 </property>
154 </widget> 88 </widget>
155 <widget row="1" column="1" > 89 <widget>
156 <class>QLabel</class> 90 <class>QLabel</class>
157 <property stdset="1"> 91 <property stdset="1">
158 <name>name</name> 92 <name>name</name>
@@ -171,7 +105,7 @@
171 <string>0.0.0.0</string> 105 <string>0.0.0.0</string>
172 </property> 106 </property>
173 </widget> 107 </widget>
174 <widget row="2" column="1" > 108 <widget>
175 <class>QLabel</class> 109 <class>QLabel</class>
176 <property stdset="1"> 110 <property stdset="1">
177 <name>name</name> 111 <name>name</name>
@@ -190,7 +124,18 @@
190 <string>00:00:00:00:00:00</string> 124 <string>00:00:00:00:00:00</string>
191 </property> 125 </property>
192 </widget> 126 </widget>
193 <widget row="3" column="1" > 127 <widget>
128 <class>QLabel</class>
129 <property stdset="1">
130 <name>name</name>
131 <cstring>TextLabel21</cstring>
132 </property>
133 <property stdset="1">
134 <name>text</name>
135 <string>MAC Address</string>
136 </property>
137 </widget>
138 <widget>
194 <class>QLabel</class> 139 <class>QLabel</class>
195 <property stdset="1"> 140 <property stdset="1">
196 <name>name</name> 141 <name>name</name>
@@ -209,47 +154,98 @@
209 <string></string> 154 <string></string>
210 </property> 155 </property>
211 </widget> 156 </widget>
212 <widget row="0" column="1" > 157 <widget>
213 <class>QLabel</class> 158 <class>QLabel</class>
214 <property stdset="1"> 159 <property stdset="1">
215 <name>name</name> 160 <name>name</name>
216 <cstring>ipAddressLabel</cstring> 161 <cstring>TextLabel24</cstring>
217 </property> 162 </property>
218 <property stdset="1"> 163 <property stdset="1">
219 <name>frameShape</name> 164 <name>frameShape</name>
220 <enum>Panel</enum> 165 <enum>MShape</enum>
221 </property> 166 </property>
222 <property stdset="1"> 167 <property stdset="1">
223 <name>frameShadow</name> 168 <name>frameShadow</name>
224 <enum>Sunken</enum> 169 <enum>MShadow</enum>
225 </property> 170 </property>
226 <property stdset="1"> 171 <property stdset="1">
227 <name>text</name> 172 <name>text</name>
228 <string>0.0.0.0</string> 173 <string>Broadcast</string>
229 </property> 174 </property>
230 </widget> 175 </widget>
231 <spacer row="7" column="1" > 176 <widget>
232 <property> 177 <class>QLayoutWidget</class>
178 <property stdset="1">
233 <name>name</name> 179 <name>name</name>
234 <cstring>Spacer18</cstring> 180 <cstring>Layout1</cstring>
235 </property> 181 </property>
182 <grid>
183 <property stdset="1">
184 <name>margin</name>
185 <number>0</number>
186 </property>
187 <property stdset="1">
188 <name>spacing</name>
189 <number>6</number>
190 </property>
191 <widget row="1" column="0" >
192 <class>QPushButton</class>
193 <property stdset="1">
194 <name>name</name>
195 <cstring>refreshButton</cstring>
196 </property>
197 <property stdset="1">
198 <name>text</name>
199 <string>&amp;Refresh</string>
200 </property>
201 </widget>
202 <widget row="0" column="1" >
203 <class>QPushButton</class>
204 <property stdset="1">
205 <name>name</name>
206 <cstring>stopButton</cstring>
207 </property>
208 <property stdset="1">
209 <name>text</name>
210 <string>S&amp;top</string>
211 </property>
212 </widget>
213 <widget row="1" column="1" >
214 <class>QPushButton</class>
215 <property stdset="1">
216 <name>name</name>
217 <cstring>restartButton</cstring>
218 </property>
219 <property stdset="1">
220 <name>text</name>
221 <string>R&amp;estart</string>
222 </property>
223 </widget>
224 <widget row="0" column="0" >
225 <class>QPushButton</class>
226 <property stdset="1">
227 <name>name</name>
228 <cstring>startButton</cstring>
229 </property>
230 <property stdset="1">
231 <name>text</name>
232 <string>&amp;Start</string>
233 </property>
234 </widget>
235 </grid>
236 </widget>
237 <widget>
238 <class>Line</class>
236 <property stdset="1"> 239 <property stdset="1">
237 <name>orientation</name> 240 <name>name</name>
238 <enum>Vertical</enum> 241 <cstring>Line5</cstring>
239 </property> 242 </property>
240 <property stdset="1"> 243 <property stdset="1">
241 <name>sizeType</name> 244 <name>orientation</name>
242 <enum>Expanding</enum> 245 <enum>Horizontal</enum>
243 </property>
244 <property>
245 <name>sizeHint</name>
246 <size>
247 <width>20</width>
248 <height>20</height>
249 </size>
250 </property> 246 </property>
251 </spacer> 247 </widget>
252 <widget row="6" column="0" rowspan="1" colspan="2" > 248 <widget>
253 <class>QLayoutWidget</class> 249 <class>QLayoutWidget</class>
254 <property stdset="1"> 250 <property stdset="1">
255 <name>name</name> 251 <name>name</name>
@@ -298,18 +294,39 @@
298 </widget> 294 </widget>
299 </hbox> 295 </hbox>
300 </widget> 296 </widget>
301 <widget row="5" column="0" rowspan="1" colspan="2" > 297 <spacer>
302 <class>Line</class> 298 <property>
303 <property stdset="1">
304 <name>name</name> 299 <name>name</name>
305 <cstring>Line5</cstring> 300 <cstring>Spacer18</cstring>
306 </property> 301 </property>
307 <property stdset="1"> 302 <property stdset="1">
308 <name>orientation</name> 303 <name>orientation</name>
309 <enum>Horizontal</enum> 304 <enum>Vertical</enum>
305 </property>
306 <property stdset="1">
307 <name>sizeType</name>
308 <enum>Expanding</enum>
309 </property>
310 <property>
311 <name>sizeHint</name>
312 <size>
313 <width>20</width>
314 <height>20</height>
315 </size>
316 </property>
317 </spacer>
318 <widget>
319 <class>QCheckBox</class>
320 <property stdset="1">
321 <name>name</name>
322 <cstring>CheckBoxSilent</cstring>
323 </property>
324 <property stdset="1">
325 <name>text</name>
326 <string>be &amp;silent</string>
310 </property> 327 </property>
311 </widget> 328 </widget>
312 </grid> 329 </vbox>
313</widget> 330</widget>
314<tabstops> 331<tabstops>
315 <tabstop>startButton</tabstop> 332 <tabstop>startButton</tabstop>
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
@@ -1,12 +1,15 @@
1#include "interfaceinformationimp.h" 1#include "interfaceinformationimp.h"
2#include "interfaceadvanced.h" 2#include "interfaceadvanced.h"
3 3
4#include <qcheckbox.h>
4#include <qpushbutton.h> 5#include <qpushbutton.h>
5#include <qlabel.h> 6#include <qlabel.h>
6#include <qgroupbox.h> 7#include <qgroupbox.h>
7#include <qmessagebox.h> 8#include <qmessagebox.h>
8 9
9#ifdef QWS 10#include <qpe/config.h>
11
12#ifdef QWS
10#else 13#else
11 #define showMaximized show 14 #define showMaximized show
12#endif 15#endif
@@ -14,7 +17,7 @@
14/** 17/**
15 * Constructor for the InterfaceInformationImp class. This class pretty much 18 * Constructor for the InterfaceInformationImp class. This class pretty much
16 * just display's information about the interface that is passed to it. 19 * just display's information about the interface that is passed to it.
17 */ 20 */
18InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i){ 21InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *name, Interface *i, WFlags f):InterfaceInformation(parent, name, f), interface(i){
19 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *))); 22 connect(i, SIGNAL(updateInterface(Interface *)), this, SLOT(updateInterface(Interface *)));
20 connect(i, SIGNAL(updateMessage(const QString &)), this, SLOT(showMessage(const QString &))); 23 connect(i, SIGNAL(updateMessage(const QString &)), this, SLOT(showMessage(const QString &)));
@@ -24,13 +27,23 @@ InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *na
24 connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart())); 27 connect(restartButton, SIGNAL(clicked()), interface, SLOT(restart()));
25 connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh())); 28 connect(refreshButton, SIGNAL(clicked()), interface, SLOT(refresh()));
26 connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced())); 29 connect(advancedButton, SIGNAL(clicked()), this, SLOT(advanced()));
30 Config cfg("networksettings", Config::User);
31 cfg.setGroup("interface");
32 CheckBoxSilent->setChecked( cfg.readBoolEntry("silent", false) );
33}
34
35InterfaceInformationImp::~InterfaceInformationImp()
36{
37 Config cfg("networksettings", Config::User);
38 cfg.setGroup("interface");
39 cfg.writeEntry("silent", CheckBoxSilent->isChecked() );
27} 40}
28 41
29/** 42/**
30 * Update the interface information and buttons. 43 * Update the interface information and buttons.
31 * @param Intarface *i the interface to update (should be the one we already 44 * @param Intarface *i the interface to update (should be the one we already
32 * know about). 45 * know about).
33 */ 46 */
34void InterfaceInformationImp::updateInterface(Interface *){ 47void InterfaceInformationImp::updateInterface(Interface *){
35 if(interface->getStatus()){ 48 if(interface->getStatus()){
36 startButton->setEnabled(false); 49 startButton->setEnabled(false);
@@ -51,7 +64,7 @@ void InterfaceInformationImp::updateInterface(Interface *){
51/** 64/**
52 * Create the advanced widget. Fill it with the current interface's information. 65 * Create the advanced widget. Fill it with the current interface's information.
53 * Display it. 66 * Display it.
54 */ 67 */
55void InterfaceInformationImp::advanced(){ 68void InterfaceInformationImp::advanced(){
56 InterfaceAdvanced *a = new InterfaceAdvanced(this, "InterfaceAdvanced", Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog); 69 InterfaceAdvanced *a = new InterfaceAdvanced(this, "InterfaceAdvanced", Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog);
57 a->interfaceName->setText(interface->getInterfaceName()); 70 a->interfaceName->setText(interface->getInterfaceName());
@@ -70,8 +83,9 @@ void InterfaceInformationImp::advanced(){
70 * Messages from the interface if start/stop went as planned. 83 * Messages from the interface if start/stop went as planned.
71 * Purly for user feedback. 84 * Purly for user feedback.
72 * @param message the message to display. 85 * @param message the message to display.
73 */ 86 */
74void InterfaceInformationImp::showMessage(const QString &message){ 87void InterfaceInformationImp::showMessage(const QString &message){
88 if (CheckBoxSilent->isChecked()) return;
75 QMessageBox::information(this, "Message", message, QMessageBox::Ok); 89 QMessageBox::information(this, "Message", message, QMessageBox::Ok);
76} 90}
77 91
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
@@ -10,7 +10,7 @@ Q_OBJECT
10 10
11public: 11public:
12 InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0); 12 InterfaceInformationImp(QWidget *parent=0, const char *name=0, Interface *i=0, WFlags f=0);
13 ~InterfaceInformationImp(){}; 13 ~InterfaceInformationImp();
14 14
15private slots: 15private slots:
16 void advanced(); 16 void advanced();
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,5 +1,6 @@
1#include "interfaces.h" 1#include "interfaces.h"
2 2
3#include <qcheckbox.h>
3#include <qfile.h> 4#include <qfile.h>
4#include <qtextstream.h> 5#include <qtextstream.h>
5#include <qregexp.h> 6#include <qregexp.h>
@@ -151,6 +152,7 @@ bool Interfaces::isInterfaceSet() const {
151 * @return true if successfull. 152 * @return true if successfull.
152 */ 153 */
153bool Interfaces::addInterface(const QString &interface, const QString &family, const QString &method){ 154bool Interfaces::addInterface(const QString &interface, const QString &family, const QString &method){
155 qDebug("Interfaces::addInterface(%s)",interface.latin1());
154 if(0 == acceptedFamily.contains(family)) 156 if(0 == acceptedFamily.contains(family))
155 return false; 157 return false;
156 QString newInterface = interface.simplifyWhiteSpace(); 158 QString newInterface = interface.simplifyWhiteSpace();
@@ -166,6 +168,7 @@ bool Interfaces::addInterface(const QString &interface, const QString &family, c
166 * @return bool true if successfull 168 * @return bool true if successfull
167 */ 169 */
168bool Interfaces::copyInterface(const QString &interface, const QString &newInterface){ 170bool Interfaces::copyInterface(const QString &interface, const QString &newInterface){
171 qDebug("copy interface %s to %s", interface.latin1(), newInterface.latin1());
169 if(!setInterface(interface)) 172 if(!setInterface(interface))
170 return false; 173 return false;
171 174
@@ -272,12 +275,16 @@ QString Interfaces::getInterfaceMethod(bool &error){
272 * @return bool true if successfull. 275 * @return bool true if successfull.
273 */ 276 */
274bool Interfaces::setInterfaceName(const QString &newName){ 277bool Interfaces::setInterfaceName(const QString &newName){
278 qDebug("setInterfaceName %s", newName.latin1());
275 if(currentIface == interfaces.end()) 279 if(currentIface == interfaces.end())
276 return false; 280 return false;
277 QString name = newName.simplifyWhiteSpace(); 281 QString name = newName.simplifyWhiteSpace();
278 name = name.replace(QRegExp(" "), ""); 282 name = name.replace(QRegExp(" "), "");
279 bool returnValue = false; 283 bool returnValue = false;
280 (*currentIface) = QString("iface %1 %2 %3").arg(name).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue)); 284 QString tmp = QString("iface %1 %2 %3").arg(name).arg(getInterfaceFamily(returnValue)).arg(getInterfaceMethod(returnValue));
285 qDebug("setting %s",tmp.latin1());
286
287 (*currentIface) = tmp;
281 return !returnValue; 288 return !returnValue;
282} 289}
283 290
@@ -327,13 +334,19 @@ QString Interfaces::getInterfaceOption(const QString &option, bool &error){
327/** 334/**
328 * Set a value for an option in the currently selected interface. If option 335 * Set a value for an option in the currently selected interface. If option
329 * doesn't exist then it is added along with the value. 336 * doesn't exist then it is added along with the value.
337 * If value isEmpty() then we will remove the option
338 *
330 * @param option the options to set the value. 339 * @param option the options to set the value.
331 * @param value the value that option should be set to. 340 * @param value the value that option should be set to.
332 * @param error set to true if any error occurs, false otherwise. 341 * @param error set to true if any error occurs, false otherwise.
333 * @return QString the options value. QString::null if error == true 342 * @return QString the options value. QString::null if error == true
334 */ 343 */
335bool Interfaces::setInterfaceOption(const QString &option, const QString &value){ 344bool Interfaces::setInterfaceOption(const QString &option, const QString &value){
336 return setOption(currentIface, option, value); 345 if( value.stripWhiteSpace().isEmpty() )
346 return removeInterfaceOption( option );
347
348 qDebug("iface >%s< option >%s< value >%s<", (*currentIface).latin1(), option.latin1(),value.latin1());
349 return setOption(currentIface, option, value);
337} 350}
338 351
339/** 352/**
@@ -492,30 +505,49 @@ bool Interfaces::setStanza(const QString &stanza, const QString &option, QString
492bool Interfaces::setOption(const QStringList::Iterator &start, const QString &option, const QString &value){ 505bool Interfaces::setOption(const QStringList::Iterator &start, const QString &option, const QString &value){
493 if(start == interfaces.end()) 506 if(start == interfaces.end())
494 return false; 507 return false;
495 508 qDebug("setting option");
496 bool found = false; 509 bool found = false;
510 bool replaced = false;
511 QStringList::Iterator insertAt = NULL;
497 for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) { 512 for ( QStringList::Iterator it = start; it != interfaces.end(); ++it ) {
498 if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) && it != start){ 513 qDebug(" Interfaces::setOption got line >%s<",(*it).latin1());
499 if(!found && value != ""){ 514 // FIXME: was not completly stupid just wrong sice all options got inserted bevore the iface line
500 // Got to the end of the stanza without finding it, so append it. 515 // but since it works with an empty interfaces file I (tille) will not do anything more
501 interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value)); 516 if(((*it).contains(IFACE) || (*it).contains(MAPPING) || (*it).contains(AUTO)) ){
502 } 517 if (found) break;
503 found = true; 518// && it != start){
504 break; 519// if(!found && value != ""){
505 } 520// // Got to the end of the stanza without finding it, so append it.
521// qDebug(" Got to the end of the stanza without finding it, so append it.");
522// interfaces.insert(--it, QString("\t%1 %2").arg(option).arg(value));
523// }
524 qDebug("found 1");
525// interfaces.insert(++it, QString("\t%1 %2").arg(option).arg(value));
526 found = true;
527 insertAt = it;
528
529 }
506 if((*it).contains(option) && it != start && (*it).at(0) != '#'){ 530 if((*it).contains(option) && it != start && (*it).at(0) != '#'){
507 // Found it in stanza so replace it. 531 // Found it in stanza so replace it.
532 qDebug("found 2");
508 if(found) 533 if(found)
509 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 534 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
510 found = true; 535 found = true;
536 replaced = true;
511 (*it) = QString("\t%1 %2").arg(option).arg(value); 537 (*it) = QString("\t%1 %2").arg(option).arg(value);
512 } 538 }
513 } 539 }
514 if(!found){ 540 if(!found){
541 qDebug("! found insert anyway");
515 QStringList::Iterator p = start; 542 QStringList::Iterator p = start;
516 interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value)); 543 interfaces.insert(++p, QString("\t%1 %2").arg(option).arg(value));
517 found = true; 544 found = true;
518 } 545 }
546
547 if(found && !replaced){
548 qDebug("found iface but not the option so insert it here...");
549 interfaces.insert(++insertAt, QString("\t%1 %2").arg(option).arg(value));
550 }
519 return found; 551 return found;
520} 552}
521 553
@@ -552,7 +584,8 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString
552 if(found) 584 if(found)
553 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 585 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
554 found = true; 586 found = true;
555 (*it) = ""; 587 it = interfaces.remove( it ); // we really want to remove the line
588 --it; // we do ++it later in the head of the for loop
556 } 589 }
557 } 590 }
558 return found; 591 return found;
@@ -579,7 +612,8 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString
579 if(found) 612 if(found)
580 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1()); 613 qDebug(QString("Interfaces: Set Options found more then one value for option: %1 in stanza: %1").arg(option).arg((*start)).latin1());
581 found = true; 614 found = true;
582 (*it) = ""; 615 it = interfaces.remove( it ); // we really want to remove the line
616 --it; // we do ++it later in the head of the for loop
583 } 617 }
584 } 618 }
585 return found; 619 return found;
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
@@ -44,6 +44,7 @@ InterfaceSetupImp::~InterfaceSetupImp(){
44bool InterfaceSetupImp::saveChanges(){ 44bool InterfaceSetupImp::saveChanges(){
45 bool error; 45 bool error;
46 QString iface = interfaces->getInterfaceName(error); 46 QString iface = interfaces->getInterfaceName(error);
47 qDebug("InterfaceSetupImp::saveChanges saves interface %s", iface.latin1() );
47 if(!saveSettings()) 48 if(!saveSettings())
48 return false; 49 return false;
49 50
@@ -117,6 +118,9 @@ bool InterfaceSetupImp::saveSettings(){
117 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text(); 118 QString dns = firstDNSLineEdit->text() + " " + secondDNSLineEdit->text();
118 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns); 119 interfaces->setInterfaceOption("up "DNSSCRIPT" -a ", dns);
119 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns); 120 interfaces->setInterfaceOption("down "DNSSCRIPT" -r ", dns);
121 }else{
122 interfaces->removeInterfaceOption("up "DNSSCRIPT" -a ");
123 interfaces->removeInterfaceOption("down "DNSSCRIPT" -r");
120 } 124 }
121 } 125 }
122 126
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
@@ -13,6 +13,7 @@
13#include <qlabel.h> 13#include <qlabel.h>
14#include <qpe/qcopenvelope_qws.h> 14#include <qpe/qcopenvelope_qws.h>
15#include <qtabwidget.h> // in order to disable the profiles tab 15#include <qtabwidget.h> // in order to disable the profiles tab
16#include <qpe/qpeapplication.h>
16 17
17#include <qmessagebox.h> 18#include <qmessagebox.h>
18 19
@@ -49,7 +50,7 @@
49#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme" 50#define DEFAULT_SCHEME "/var/lib/pcmcia/scheme"
50#define _PROCNETDEV "/proc/net/dev" 51#define _PROCNETDEV "/proc/net/dev"
51 52
52MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name), advancedUserMode(true), scheme(DEFAULT_SCHEME){ 53MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(parent, name, Qt::WStyle_ContextHelp), advancedUserMode(true), scheme(DEFAULT_SCHEME){
53 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked())); 54 connect(addConnectionButton, SIGNAL(clicked()), this, SLOT(addClicked()));
54 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked())); 55 connect(removeConnectionButton, SIGNAL(clicked()), this, SLOT(removeClicked()));
55 connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked())); 56 connect(informationConnectionButton, SIGNAL(clicked()), this, SLOT(informationClicked()));
@@ -62,7 +63,7 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
62 connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&))); 63 connect(newProfile, SIGNAL(textChanged(const QString&)), this, SLOT(newProfileChanged(const QString&)));
63 64
64 //FIXME: disable profiles for the moment: 65 //FIXME: disable profiles for the moment:
65// tabWidget->setTabEnabled( tab, false ); 66 tabWidget->setTabEnabled( tab, false );
66 67
67 // Load connections. 68 // Load connections.
68 // /usr/local/kde/lib/libinterfaces.la 69 // /usr/local/kde/lib/libinterfaces.la
@@ -78,6 +79,14 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
78 QStringList list = i.getInterfaceList(); 79 QStringList list = i.getInterfaceList();
79 QMap<QString, Interface*>::Iterator it; 80 QMap<QString, Interface*>::Iterator it;
80 for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) { 81 for ( QStringList::Iterator ni = list.begin(); ni != list.end(); ++ni ) {
82 /*
83 * we skipped it in getAllInterfaces now
84 * we need to ignore it as well
85 */
86 if (m_handledIfaces.contains( *ni) ) {
87 qDebug("Not up iface handled by module");
88 continue;
89 }
81 bool found = false; 90 bool found = false;
82 for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){ 91 for( it = interfaceNames.begin(); it != interfaceNames.end(); ++it ){
83 if(it.key() == (*ni)) 92 if(it.key() == (*ni))
@@ -196,6 +205,10 @@ void MainWindowImp::getAllInterfaces(){
196 205
197 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) { 206 for (QStringList::Iterator it = ifaces.begin(); it != ifaces.end(); ++it) {
198 int flags = 0; 207 int flags = 0;
208 if ( m_handledIfaces.contains( (*it) ) ) {
209 qDebug(" %s is handled by a module", (*it).latin1() );
210 continue;
211 }
199// int family; 212// int family;
200 i = NULL; 213 i = NULL;
201 214
@@ -307,6 +320,7 @@ Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &
307 return NULL; 320 return NULL;
308 } 321 }
309 322
323 m_handledIfaces += object->handledInterfaceNames();
310 // Store for deletion later 324 // Store for deletion later
311 libraries.insert(object, lib); 325 libraries.insert(object, lib);
312 return object; 326 return object;
@@ -426,7 +440,7 @@ void MainWindowImp::configureClicked(){
426 } 440 }
427 } 441 }
428 442
429 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose ); 443 InterfaceSetupImpDialog *configure = new InterfaceSetupImpDialog(this, "InterfaceSetupImp", i, true, Qt::WDestructiveClose | Qt::WStyle_ContextHelp );
430 configure->setProfile(currentProfileText); 444 configure->setProfile(currentProfileText);
431 configure->showMaximized(); 445 configure->showMaximized();
432} 446}
@@ -459,7 +473,7 @@ void MainWindowImp::informationClicked(){
459 return; 473 return;
460 } 474 }
461 } 475 }
462 InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog); 476 InterfaceInformationImp *information = new InterfaceInformationImp(this, "InterfaceSetupImp", i, Qt::WType_Modal | Qt::WDestructiveClose | Qt::WStyle_Dialog | Qt::WStyle_ContextHelp);
463 information->showMaximized(); 477 information->showMaximized();
464} 478}
465 479
@@ -639,7 +653,6 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
639{ 653{
640 bool found = false; 654 bool found = false;
641 qDebug("MainWindowImp::receive QCop msg >"+msg+"<"); 655 qDebug("MainWindowImp::receive QCop msg >"+msg+"<");
642
643 if (msg == "raise") { 656 if (msg == "raise") {
644 raise(); 657 raise();
645 return; 658 return;
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
@@ -10,7 +10,7 @@ class Interface;
10class QLibrary; 10class QLibrary;
11class KProcess; 11class KProcess;
12class QCopChannel; 12class QCopChannel;
13#ifdef QWS 13#ifdef QWS
14class QLibrary; 14class QLibrary;
15#else 15#else
16class KLibrary; 16class KLibrary;
@@ -25,21 +25,21 @@ class MainWindowImp : public MainWindow {
25public: 25public:
26 MainWindowImp(QWidget *parent=0, const char *name=0); 26 MainWindowImp(QWidget *parent=0, const char *name=0);
27 ~MainWindowImp(); 27 ~MainWindowImp();
28 28
29 QCopChannel *channel; 29 QCopChannel *channel;
30 30
31private slots: 31private slots:
32 void getAllInterfaces(); 32 void getAllInterfaces();
33 33
34 void addClicked(); 34 void addClicked();
35 void removeClicked(); 35 void removeClicked();
36 void configureClicked(); 36 void configureClicked();
37 void informationClicked(); 37 void informationClicked();
38 38
39 void addProfile(); 39 void addProfile();
40 void removeProfile(); 40 void removeProfile();
41 void changeProfile(); 41 void changeProfile();
42 42
43 void updateInterface(Interface *i); 43 void updateInterface(Interface *i);
44 void newProfileChanged(const QString& newText); 44 void newProfileChanged(const QString& newText);
45 45
@@ -48,7 +48,7 @@ private slots:
48private: 48private:
49 void makeChannel(); 49 void makeChannel();
50 void loadModules(const QString &path); 50 void loadModules(const QString &path);
51 51
52 Module* loadPlugin(const QString &pluginFileName, 52 Module* loadPlugin(const QString &pluginFileName,
53 const QString &resolveString = "create_plugin"); 53 const QString &resolveString = "create_plugin");
54 54
@@ -58,7 +58,8 @@ private:
58 QMap<Module*, QLibrary*> libraries; 58 QMap<Module*, QLibrary*> libraries;
59 QMap<Interface*, QListViewItem*> items; 59 QMap<Interface*, QListViewItem*> items;
60 QMap<QListViewItem*, Interface*> interfaceItems; 60 QMap<QListViewItem*, Interface*> interfaceItems;
61 61 QStringList m_handledIfaces;
62
62 QMap<KProcess*, QString> threads; 63 QMap<KProcess*, QString> threads;
63 QStringList profiles; 64 QStringList profiles;
64 65
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
@@ -18,7 +18,7 @@ class Module : QObject{
18signals: 18signals:
19 void updateInterface(Interface *i); 19 void updateInterface(Interface *i);
20 20
21 21
22public: 22public:
23 Module(){}; 23 Module(){};
24 24
@@ -32,14 +32,14 @@ public:
32 * The current profile has been changed and the module should do any 32 * The current profile has been changed and the module should do any
33 * neccesary changes also. 33 * neccesary changes also.
34 * @param newProfile what the profile should be changed to. 34 * @param newProfile what the profile should be changed to.
35 */ 35 */
36 virtual void setProfile(const QString &newProfile) = 0; 36 virtual void setProfile(const QString &newProfile) = 0;
37 37
38 /** 38 /**
39 * get the icon name for this device. 39 * get the icon name for this device.
40 * @param Interface* can be used in determining the icon. 40 * @param Interface* can be used in determining the icon.
41 * @return QString the icon name (minus .png, .gif etc) 41 * @return QString the icon name (minus .png, .gif etc)
42 */ 42 */
43 virtual QString getPixmapName(Interface *) = 0; 43 virtual QString getPixmapName(Interface *) = 0;
44 44
45 /** 45 /**
@@ -48,41 +48,41 @@ public:
48 * @return bool true if i is owned by this module, false otherwise. 48 * @return bool true if i is owned by this module, false otherwise.
49 */ 49 */
50 virtual bool isOwner(Interface *){ return false; }; 50 virtual bool isOwner(Interface *){ return false; };
51 51
52 /** 52 /**
53 * Create and return the WLANConfigure Module 53 * Create and return the WLANConfigure Module
54 * @param Interface *i the interface to configure. 54 * @param Interface *i the interface to configure.
55 * @return QWidget* pointer to this modules configure. 55 * @return QWidget* pointer to this modules configure.
56 */ 56 */
57 virtual QWidget *configure(Interface *){ return NULL; } ; 57 virtual QWidget *configure(Interface *){ return NULL; } ;
58 58
59 /** 59 /**
60 * Create, and return the Information Module 60 * Create, and return the Information Module
61 * @param Interface *i the interface to get info on. 61 * @param Interface *i the interface to get info on.
62 * @return QWidget* pointer to this modules info. 62 * @return QWidget* pointer to this modules info.
63 */ 63 */
64 virtual QWidget *information(Interface *){ return NULL; }; 64 virtual QWidget *information(Interface *){ return NULL; };
65 65
66 /** 66 /**
67 * Get all active (up or down) interfaces 67 * Get all active (up or down) interfaces
68 * @return QList<Interface> A list of interfaces that exsist that havn't 68 * @return QList<Interface> A list of interfaces that exsist that havn't
69 * been called by isOwner() 69 * been called by isOwner()
70 */ 70 */
71 virtual QList<Interface> getInterfaces() = 0; 71 virtual QList<Interface> getInterfaces() = 0;
72 72
73 /** 73 /**
74 * Adds possible new interfaces to the list (Example: usb(ppp), ir(ppp), 74 * Adds possible new interfaces to the list (Example: usb(ppp), ir(ppp),
75 * modem ppp) 75 * modem ppp)
76 */ 76 */
77 virtual void possibleNewInterfaces(QMap<QString, QString> &list) = 0; 77 virtual void possibleNewInterfaces(QMap<QString, QString> &list) = 0;
78 78
79 /** 79 /**
80 * Attempts to create a new interface from name 80 * Attempts to create a new interface from name
81 * @return Interface* NULL if it was unable to be created. 81 * @return Interface* NULL if it was unable to be created.
82 * @param name the type of interface to create 82 * @param name the type of interface to create
83 */ 83 */
84 virtual Interface *addNewInterface(const QString &name) = 0; 84 virtual Interface *addNewInterface(const QString &name) = 0;
85 85
86 /** 86 /**
87 * Attempts to remove the interface, doesn't delete i 87 * Attempts to remove the interface, doesn't delete i
88 * @return bool true if successfull, false otherwise. 88 * @return bool true if successfull, false otherwise.
@@ -90,10 +90,21 @@ public:
90 virtual bool remove(Interface* i) = 0; 90 virtual bool remove(Interface* i) = 0;
91 91
92 /** 92 /**
93 * get dcop calls 93 * get dcop calls
94 */ 94 */
95 virtual void receive(const QCString &msg, const QByteArray &arg) = 0; 95 virtual void receive(const QCString &msg, const QByteArray &arg) = 0;
96 96
97 QStringList handledInterfaceNames()const { return m_inter; }
98protected:
99 /**
100 * set which interfaceNames should not be shown cause they're handled
101 * internally of this module.. An already running ppp link or
102 * a tunnel...
103 */
104 void setHandledInterfaceNames( const QStringList& in) { m_inter = in; }
105
106private:
107 QStringList m_inter;
97}; 108};
98 109
99#endif 110#endif
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 @@
1- ask for password is non is set 1- impl. PPPData::copyaccount
2
3- stop pppd, i.e. fix interfaceinformationppp
4
5- update modem attribute inputs when modem has changed
6- impl. PPPData::copyaccount & PPPData::deleteAccount
7
8- check if the same interface device combination allready exists 2- check if the same interface device combination allready exists
9- fix layout of edit account, i.e. get it shown maximised 3- 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
@@ -44,102 +44,66 @@
44 44
45void parseargs(char* buf, char** args); 45void parseargs(char* buf, char** args);
46 46
47AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name ) 47
48 : QWidget( parent, name )//, _pppdata(pd) 48AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f )
49 : ChooserWidget( pd, parent, name, f )
49{ 50{
50 _pppdata = pd;
51 QVBoxLayout *l1 = new QVBoxLayout(this, 10, 10);
52 accountlist_l = new QListBox(this);
53
54 connect(accountlist_l, SIGNAL(highlighted(int)),
55 this, SLOT(slotListBoxSelect(int)));
56 connect(accountlist_l, SIGNAL(selected(int)),
57 this, SLOT(editaccount()));
58 l1->addWidget(accountlist_l, 10);
59
60 edit_b = new QPushButton(tr("&Edit..."), this);
61 connect(edit_b, SIGNAL(clicked()), SLOT(editaccount()));
62 QWhatsThis::add(edit_b, tr("Allows you to modify the selected account"));
63 l1->addWidget(edit_b);
64 51
65 new_b = new QPushButton(tr("&New..."), this); 52 QWhatsThis::add(edit_b, tr("Allows you to modify the selected account"));
66 connect(new_b, SIGNAL(clicked()), SLOT(newaccount()));
67 l1->addWidget(new_b);
68 QWhatsThis::add(new_b, tr("Create a new dialup connection\n" 53 QWhatsThis::add(new_b, tr("Create a new dialup connection\n"
69 "to the Internet")); 54 "to the Internet"));
70
71 copy_b = new QPushButton(tr("Co&py"), this);
72 connect(copy_b, SIGNAL(clicked()), SLOT(copyaccount()));
73 l1->addWidget(copy_b);
74 QWhatsThis::add(copy_b, 55 QWhatsThis::add(copy_b,
75 tr("Makes a copy of the selected account. All\n" 56 tr("Makes a copy of the selected account. All\n"
76 "settings of the selected account are copied\n" 57 "settings of the selected account are copied\n"
77 "to a new account, that you can modify to fit your\n" 58 "to a new account, that you can modify to fit your\n"
78 "needs")); 59 "needs"));
79
80 delete_b = new QPushButton(tr("De&lete"), this);
81 connect(delete_b, SIGNAL(clicked()), SLOT(deleteaccount()));
82 l1->addWidget(delete_b);
83 QWhatsThis::add(delete_b, 60 QWhatsThis::add(delete_b,
84 tr("<p>Deletes the selected account\n\n" 61 tr("<p>Deletes the selected account\n\n"
85 "<font color=\"red\"><b>Use with care!</b></font>")); 62 "<font color=\"red\"><b>Use with care!</b></font>"));
86 63
87 QHBoxLayout *l12 = new QHBoxLayout;
88 l1->addStretch(1);
89 l1->addLayout(l12);
90 64
91 int currAccId = _pppdata->currentAccountID();
92 qDebug("currentAccountID %i", currAccId);
93 65
94 //load up account list from gppdata to the list box 66 copy_b->setEnabled( false ); //FIXME
95 if(_pppdata->count() > 0) { 67 // delete_b->setEnabled( false ); //FIXME
96 for(int i=0; i <= _pppdata->count()-1; i++) {
97 _pppdata->setAccountbyIndex(i);
98 accountlist_l->insertItem(_pppdata->accname());
99 }
100 }
101 _pppdata->setAccountbyIndex( currAccId );
102 68
103 qDebug("setting listview index to %i",_pppdata->currentAccountID() ); 69 listListbox->insertStringList(_pppdata->getAccountList());
104 accountlist_l->setCurrentItem( _pppdata->currentAccountID() );
105 slotListBoxSelect( _pppdata->currentAccountID() );
106 70
107 l1->activate(); 71 for (uint i = 0; i < listListbox->count(); i++){
72 if ( listListbox->text(i) == _pppdata->accname() )
73 listListbox->setCurrentItem( i );
74 }
108} 75}
109 76
110 77
111 78
112void AccountWidget::slotListBoxSelect(int idx) { 79void AccountWidget::slotListBoxSelect(int idx) {
113 delete_b->setEnabled((bool)(idx != -1)); 80 bool ok = _pppdata->setAccount( listListbox->text(idx) );
114 edit_b->setEnabled((bool)(idx != -1)); 81 ok = (bool)(idx != -1);
115 copy_b->setEnabled((bool)(idx != -1)); 82 delete_b->setEnabled(ok);
116 if(idx!=-1) { 83 edit_b->setEnabled(ok);
117 qDebug("setting account to %i", idx); 84//FIXME copy_b->setEnabled(ok);
118 QString account = _pppdata->accname();
119 _pppdata->setAccountbyIndex(accountlist_l->currentItem());
120 }
121} 85}
122 86
123void AccountWidget::editaccount() { 87void AccountWidget::edit() {
124 _pppdata->setAccount(accountlist_l->text(accountlist_l->currentItem())); 88 _pppdata->setAccount(listListbox->text(listListbox->currentItem()));
125 89
126 int result = doTab(); 90 int result = doTab();
127 91
128 if(result == QDialog::Accepted) { 92 if(result == QDialog::Accepted) {
129 accountlist_l->changeItem(_pppdata->accname(),accountlist_l->currentItem()); 93 listListbox->changeItem(_pppdata->accname(),listListbox->currentItem());
130// emit resetaccounts(); 94// emit resetaccounts();
131 _pppdata->save(); 95 _pppdata->save();
132 } 96 }
133} 97}
134 98
135 99
136void AccountWidget::newaccount() { 100void AccountWidget::create() {
137 101
138 if(accountlist_l->count() == MAX_ACCOUNTS) { 102// if(listListbox->count() == MAX_ACCOUNTS) {
139 QMessageBox::information(this, "sorry", 103// QMessageBox::information(this, "sorry",
140 tr("Maximum number of accounts reached.")); 104// tr("Maximum number of accounts reached."));
141 return; 105// return;
142 } 106// }
143 107
144 int result; 108 int result;
145 if (_pppdata->newaccount() == -1){ 109 if (_pppdata->newaccount() == -1){
@@ -149,8 +113,8 @@ void AccountWidget::newaccount() {
149 result = doTab(); 113 result = doTab();
150 114
151 if(result == QDialog::Accepted) { 115 if(result == QDialog::Accepted) {
152 accountlist_l->insertItem(_pppdata->accname()); 116 listListbox->insertItem(_pppdata->accname());
153 accountlist_l->setSelected(accountlist_l->findItem(_pppdata->accname()),true); 117 listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true);
154 118
155 _pppdata->save(); 119 _pppdata->save();
156 } else 120 } else
@@ -158,53 +122,55 @@ void AccountWidget::newaccount() {
158} 122}
159 123
160 124
161void AccountWidget::copyaccount() { 125void AccountWidget::copy() {
162 if(accountlist_l->count() == MAX_ACCOUNTS) { 126// if(listListbox->count() == MAX_ACCOUNTS) {
163 QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); 127// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
164 return; 128// return;
165 } 129// }
166 130
167 if(accountlist_l->currentItem()<0) { 131 if(listListbox->currentItem()<0) {
168 QMessageBox::information(this, "sorry", tr("No account selected.")); 132 QMessageBox::information(this, "sorry", tr("No account selected."));
169 return; 133 return;
170 } 134 }
171 135
172 _pppdata->copyaccount(accountlist_l->currentItem()); 136 _pppdata->copyaccount(listListbox->currentText());
173 137
174 accountlist_l->insertItem(_pppdata->accname()); 138 listListbox->insertItem(_pppdata->accname());
175// emit resetaccounts(); 139// emit resetaccounts();
176 _pppdata->save(); 140 _pppdata->save();
177} 141}
178 142
179 143
180void AccountWidget::deleteaccount() { 144void AccountWidget::remove() {
181 145
182 QString s = tr("Are you sure you want to delete\nthe account \"%1\"?") 146 QString s = tr("Are you sure you want to delete\nthe account \"%1\"?")
183 .arg(accountlist_l->text(accountlist_l->currentItem())); 147 .arg(listListbox->text(listListbox->currentItem()));
184 148
185 if(QMessageBox::warning(this,tr("Confirm"),s, 149 if(QMessageBox::warning(this,tr("Confirm"),s,
186 QMessageBox::Yes,QMessageBox::No 150 QMessageBox::Yes,QMessageBox::No
187 ) != QMessageBox::Yes) 151 ) != QMessageBox::Yes)
188 return; 152 return;
189 153
190 if(_pppdata->deleteAccount(accountlist_l->text(accountlist_l->currentItem()))) 154 if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem())))
191 accountlist_l->removeItem(accountlist_l->currentItem()); 155 listListbox->removeItem(listListbox->currentItem());
192 156
193 emit resetaccounts();
194 _pppdata->save();
195 157
196 slotListBoxSelect(accountlist_l->currentItem()); 158// emit resetaccounts();
159// _pppdata->save();
160
161
162 slotListBoxSelect(listListbox->currentItem());
197 163
198} 164}
199 165
200 166
201int AccountWidget::doTab(){ 167int AccountWidget::doTab(){
202 QDialog *dlg = new QDialog( 0, "newAccount", true ); 168 QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp );
203 QVBoxLayout *layout = new QVBoxLayout( dlg ); 169 QVBoxLayout *layout = new QVBoxLayout( dlg );
204 layout->setSpacing( 0 ); 170 layout->setSpacing( 0 );
205 layout->setMargin( 1 ); 171 layout->setMargin( 1 );
206 172
207 tabWindow = new QTabWidget( dlg, "tabWindow" ); 173 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
208 layout->addWidget( tabWindow ); 174 layout->addWidget( tabWindow );
209 175
210 bool isnewaccount; 176 bool isnewaccount;
@@ -273,25 +239,25 @@ int AccountWidget::doTab(){
273} 239}
274 240
275 241
276QString AccountWidget::prettyPrintVolume(unsigned int n) { 242// QString AccountWidget::prettyPrintVolume(unsigned int n) {
277 int idx = 0; 243// int idx = 0;
278 const QString quant[] = {tr("Byte"), tr("KB"), 244// const QString quant[] = {tr("Byte"), tr("KB"),
279 tr("MB"), tr("GB"), QString::null}; 245 // tr("MB"), tr("GB"), QString::null};
280 246
281 float n1 = n; 247// float n1 = n;
282 while(n >= 1024 && quant[idx] != QString::null) { 248// while(n >= 1024 && quant[idx] != QString::null) {
283 idx++; 249// idx++;
284 n /= 1024; 250// n /= 1024;
285 } 251// }
286 252
287 int i = idx; 253// int i = idx;
288 while(i--) 254// while(i--)
289 n1 = n1 / 1024.0; 255// n1 = n1 / 1024.0;
290 256
291 QString s = QString::number( n1, 'f', idx==0 ? 0 : 1 ); 257// QString s = QString::number( n1, 'f', idx==0 ? 0 : 1 );
292 s += " " + quant[idx]; 258// s += " " + quant[idx];
293 return s; 259// return s;
294} 260// }
295 261
296 262
297///////////////////////////////////////////////////////////////////////////// 263/////////////////////////////////////////////////////////////////////////////
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
@@ -27,16 +27,18 @@
27#ifndef _ACCOUNTS_H_ 27#ifndef _ACCOUNTS_H_
28#define _ACCOUNTS_H_ 28#define _ACCOUNTS_H_
29 29
30#include <qwidget.h>
31#include <qdialog.h> 30#include <qdialog.h>
32#include <qpushbutton.h> 31#include <qpushbutton.h>
33#include <qlistbox.h> 32#include <qlistbox.h>
34//#include "acctselect.h" 33#include "chooserwidget.h"
35 34
36class QDialog;
37class QCheckBox; 35class QCheckBox;
38class QLineEdit; 36class QLineEdit;
39class QTabWidget; 37class QTabWidget;
38class ModemWidget;
39class ModemWidget2;
40
41
40class DialWidget; 42class DialWidget;
41class AuthWidget; 43class AuthWidget;
42class IPWidget; 44class IPWidget;
@@ -44,41 +46,33 @@ class DNSWidget;
44class GatewayWidget; 46class GatewayWidget;
45class PPPData; 47class PPPData;
46 48
47class AccountWidget : public QWidget { 49
50class AccountWidget : public ChooserWidget {
51
48 Q_OBJECT 52 Q_OBJECT
49public: 53public:
50 AccountWidget( PPPData *pd, QWidget *parent=0, const char *name=0 ); 54 AccountWidget( PPPData *pd, QWidget *parent=0, const char *name=0, WFlags f=0 );
51 ~AccountWidget() {} 55 ~AccountWidget() {}
52 56
53private slots:
54 void editaccount();
55 void copyaccount();
56 void newaccount();
57 void deleteaccount();
58 void slotListBoxSelect(int);
59 57
60private: 58private slots:
59 virtual void edit();
60 virtual void copy();
61 virtual void remove();
62 virtual void create();
63 virtual void slotListBoxSelect(int);
61 int doTab(); 64 int doTab();
62 65
63signals: 66 signals:
64 void resetaccounts(); 67 void resetaccounts();
65 68
66private: 69private:
67 QString prettyPrintVolume(unsigned int);
68
69 PPPData *_pppdata;
70 QTabWidget *tabWindow;
71 DialWidget *dial_w; 70 DialWidget *dial_w;
72 IPWidget *ip_w; 71 IPWidget *ip_w;
73 DNSWidget *dns_w; 72 DNSWidget *dns_w;
74 GatewayWidget *gateway_w; 73 GatewayWidget *gateway_w;
75 AuthWidget *auth_w; 74 AuthWidget *auth_w;
76 75
77 QListBox *accountlist_l;
78 QPushButton *edit_b;
79 QPushButton *copy_b;
80 QPushButton *new_b;
81 QPushButton *delete_b;
82}; 76};
83 77
84 78
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 @@
1/*
2 * kPPP: A pppd front end for the KDE project
3 *
4 * $Id$
5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu
8 *
9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details.
21 *
22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */
26
27#include <qdir.h>
28#include <stdlib.h>
29#include <qlayout.h>
30#include <qtabwidget.h>
31#include <qtabdialog.h>
32#include <qwhatsthis.h>
33#include <qmessagebox.h>
34
35#include <qapplication.h>
36#include <qbuttongroup.h>
37#include <qmessagebox.h>
38#include <qvgroupbox.h>
39#include <qwidget.h>
40
41#include "accounts.h"
42#include "authwidget.h"
43#include "pppdata.h"
44#include "edit.h"
45
46void parseargs(char* buf, char** args);
47
48ChooserWidget::ChooserWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f )
49 : QWidget( parent, name, f )
50{
51 _pppdata = pd;
52 QVBoxLayout *l1 = new QVBoxLayout(this, 10, 10);
53 listListbox = new QListBox(this);
54
55 connect(listListbox, SIGNAL(highlighted(int)),
56 this, SLOT(slotListBoxSelect(int)));
57 connect(listListbox, SIGNAL(selected(int)),this, SLOT(edit()));
58 l1->addWidget(listListbox, 10);
59
60 edit_b = new QPushButton(tr("&Edit..."), this);
61 connect(edit_b, SIGNAL(clicked()), SLOT(edit()));
62 l1->addWidget(edit_b);
63
64 new_b = new QPushButton(tr("&New..."), this);
65 connect(new_b, SIGNAL(clicked()), SLOT(create()));
66 l1->addWidget(new_b);
67
68
69 copy_b = new QPushButton(tr("Co&py"), this);
70 connect(copy_b, SIGNAL(clicked()), SLOT(copy()));
71 l1->addWidget(copy_b);
72
73 delete_b = new QPushButton(tr("De&lete"), this);
74 connect(delete_b, SIGNAL(clicked()), SLOT(remove()));
75 l1->addWidget(delete_b);
76
77
78 QHBoxLayout *l12 = new QHBoxLayout;
79 l1->addStretch(1);
80 l1->addLayout(l12);
81
82 l1->activate();
83
84}
85
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 @@
1/* -*- C++ -*-
2 * kPPP: A pppd front end for the KDE project
3 *
4 * $Id$
5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu
8 *
9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details.
21 *
22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */
26
27#ifndef _CHOOSERWIDGET_H_
28#define _CHOOSERWIDGET_H_
29
30#include <qwidget.h>
31#include <qdialog.h>
32#include <qpushbutton.h>
33#include <qlistbox.h>
34//#include "acctselect.h"
35
36class QDialog;
37class QCheckBox;
38class QLineEdit;
39class QTabWidget;
40class DialWidget;
41class AuthWidget;
42class IPWidget;
43class DNSWidget;
44class GatewayWidget;
45class PPPData;
46
47class ChooserWidget : public QWidget {
48 Q_OBJECT
49public:
50 ChooserWidget( PPPData *pd, QWidget *parent=0, const char *name=0, WFlags f=0 );
51 ~ChooserWidget() {}
52
53private slots:
54 virtual void edit() = 0;
55 virtual void copy() = 0;
56 virtual void create()= 0;
57 virtual void remove()= 0;
58 virtual void slotListBoxSelect(int) = 0;
59
60
61protected:
62 PPPData *_pppdata;
63
64 QListBox *listListbox;
65 QPushButton *edit_b;
66 QPushButton *copy_b;
67 QPushButton *new_b;
68 QPushButton *delete_b;
69};
70
71
72#endif
73
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
@@ -32,7 +32,6 @@
32#include <qapplication.h> 32#include <qapplication.h>
33//#include <kdebug.h> 33//#include <kdebug.h>
34//#include <klocale.h> 34//#include <klocale.h>
35#define i18n QObject::tr
36#include <qmessagebox.h> 35#include <qmessagebox.h>
37#include <qpushbutton.h> 36#include <qpushbutton.h>
38 37
@@ -99,7 +98,7 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
99 modified_hostname = false; 98 modified_hostname = false;
100 99
101 QVBoxLayout *tl = new QVBoxLayout(this, 8, 10); 100 QVBoxLayout *tl = new QVBoxLayout(this, 8, 10);
102 QString tit = i18n("Connecting to: "); 101 QString tit = QObject::tr("Connecting to: ");
103 setCaption(tit); 102 setCaption(tit);
104 103
105 QHBoxLayout *l0 = new QHBoxLayout(10); 104 QHBoxLayout *l0 = new QHBoxLayout(10);
@@ -108,15 +107,15 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
108 messg = new QLabel(this, "messg"); 107 messg = new QLabel(this, "messg");
109 messg->setFrameStyle(QFrame::Panel|QFrame::Sunken); 108 messg->setFrameStyle(QFrame::Panel|QFrame::Sunken);
110 messg->setAlignment(AlignCenter); 109 messg->setAlignment(AlignCenter);
111 messg->setText(i18n("Unable to create modem lock file.")); 110 messg->setText(QObject::tr("Unable to create modem lock file."));
112 messg->setMinimumHeight(messg->sizeHint().height() + 5); 111 messg->setMinimumHeight(messg->sizeHint().height() + 5);
113// int messw = (messg->sizeHint().width() * 12) / 10; 112// int messw = (messg->sizeHint().width() * 12) / 10;
114// messw = QMAX(messw,280); 113// messw = QMAX(messw,280);
115// messg->setMinimumWidth(messw); 114// messg->setMinimumWidth(messw);
116 if (_ifaceppp->getStatus()) 115 if (_ifaceppp->getStatus())
117 messg->setText(i18n("Online")); 116 messg->setText(QObject::tr("Online"));
118 else 117 else
119 messg->setText(i18n("Offline")); 118 messg->setText(QObject::tr("Offline"));
120 l0->addSpacing(10); 119 l0->addSpacing(10);
121 l0->addWidget(messg); 120 l0->addWidget(messg);
122 l0->addSpacing(10); 121 l0->addSpacing(10);
@@ -125,12 +124,12 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
125 tl->addLayout(l1); 124 tl->addLayout(l1);
126 l1->addStretch(1); 125 l1->addStretch(1);
127 126
128 debug = new QPushButton(i18n("Log"), this); 127 debug = new QPushButton(QObject::tr("Log"), this);
129 debug->setToggleButton(true); 128 debug->setToggleButton(true);
130 debug->setEnabled( false ); // FIXME: disable the log button 129 debug->setEnabled( false ); // FIXME: disable the log button
131 connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow())); 130 connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow()));
132 131
133 cancel = new QPushButton(i18n("Cancel"), this); 132 cancel = new QPushButton(QObject::tr("Cancel"), this);
134 cancel->setFocus(); 133 cancel->setFocus();
135 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); 134 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton()));
136 135
@@ -173,7 +172,7 @@ ConnectWidget::~ConnectWidget() {
173void ConnectWidget::preinit() { 172void ConnectWidget::preinit() {
174 // this is all just to keep the GUI nice and snappy .... 173 // this is all just to keep the GUI nice and snappy ....
175 // you have to see to believe ... 174 // you have to see to believe ...
176 messg->setText(i18n("Looking for modem...")); 175 messg->setText(QObject::tr("Looking for modem..."));
177 inittimer->start(100); 176 inittimer->start(100);
178} 177}
179 178
@@ -201,15 +200,15 @@ void ConnectWidget::init() {
201 comlist = &_ifaceppp->data()->scriptType(); 200 comlist = &_ifaceppp->data()->scriptType();
202 arglist = &_ifaceppp->data()->script(); 201 arglist = &_ifaceppp->data()->script();
203 202
204 QString tit = i18n("Connecting to: %1").arg(_ifaceppp->data()->accname()); 203 QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname());
205 setCaption(tit); 204 setCaption(tit);
206 205
207 qApp->processEvents(); 206 qApp->processEvents();
208 207
209 // run the "before-connect" command 208 // run the "before-connect" command
210 if (!_ifaceppp->data()->command_before_connect().isEmpty()) { 209 if (!_ifaceppp->data()->command_before_connect().isEmpty()) {
211 messg->setText(i18n("Running pre-startup command...")); 210 messg->setText(QObject::tr("Running pre-startup command..."));
212 emit debugMessage(i18n("Running pre-startup command...")); 211 emit debugMessage(QObject::tr("Running pre-startup command..."));
213 212
214 qApp->processEvents(); 213 qApp->processEvents();
215 QApplication::flushX(); 214 QApplication::flushX();
@@ -226,13 +225,13 @@ void ConnectWidget::init() {
226 int lock = _ifaceppp->modem()->lockdevice(); 225 int lock = _ifaceppp->modem()->lockdevice();
227 226
228 if (lock == 1) { 227 if (lock == 1) {
229 messg->setText(i18n("Modem device is locked.")); 228 messg->setText(QObject::tr("Modem device is locked."));
230 vmain = 20; // wait until cancel is pressed 229 vmain = 20; // wait until cancel is pressed
231 return; 230 return;
232 } 231 }
233 232
234 if (lock == -1) { 233 if (lock == -1) {
235 messg->setText(i18n("Unable to create modem lock file.")); 234 messg->setText(QObject::tr("Unable to create modem lock file."));
236 vmain = 20; // wait until cancel is pressed 235 vmain = 20; // wait until cancel is pressed
237 return; 236 return;
238 } 237 }
@@ -279,8 +278,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
279 assert(PPPData::NumInitStrings > 0); 278 assert(PPPData::NumInitStrings > 0);
280 // first init string ? 279 // first init string ?
281 if(substate == -1) { 280 if(substate == -1) {
282 messg->setText(i18n("Initializing modem...")); 281 messg->setText(QObject::tr("Initializing modem..."));
283 emit debugMessage(i18n("Initializing modem...")); 282 emit debugMessage(QObject::tr("Initializing modem..."));
284 substate = 0; 283 substate = 0;
285 } 284 }
286 285
@@ -317,7 +316,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
317 if (vmain == 5) { 316 if (vmain == 5) {
318 if(!expecting) { 317 if(!expecting) {
319 QString sToneDuration = "ATS11=" + QString::number(_ifaceppp->data()->modemToneDuration()); 318 QString sToneDuration = "ATS11=" + QString::number(_ifaceppp->data()->modemToneDuration());
320 QString msg = i18n("Setting ") + sToneDuration; 319 QString msg = QObject::tr("Setting ") + sToneDuration;
321 messg->setText(msg); 320 messg->setText(msg);
322 emit debugMessage(msg); 321 emit debugMessage(msg);
323 setExpect(_ifaceppp->data()->modemInitResp()); 322 setExpect(_ifaceppp->data()->modemInitResp());
@@ -340,8 +339,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
340 vmain = 4; 339 vmain = 4;
341 return; 340 return;
342 } 341 }
343 messg->setText(i18n("Setting speaker volume...")); 342 messg->setText(QObject::tr("Setting speaker volume..."));
344 emit debugMessage(i18n("Setting speaker volume...")); 343 emit debugMessage(QObject::tr("Setting speaker volume..."));
345 344
346 setExpect(_ifaceppp->data()->modemInitResp()); 345 setExpect(_ifaceppp->data()->modemInitResp());
347 QString vol("AT"); 346 QString vol("AT");
@@ -356,7 +355,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
356 if(vmain == 4) { 355 if(vmain == 4) {
357 if(!expecting) { 356 if(!expecting) {
358 if(!_ifaceppp->data()->waitForDialTone()) { 357 if(!_ifaceppp->data()->waitForDialTone()) {
359 QString msg = i18n("Turning off dial tone waiting..."); 358 QString msg = QObject::tr("Turning off dial tone waiting...");
360 messg->setText(msg); 359 messg->setText(msg);
361 emit debugMessage(msg); 360 emit debugMessage(msg);
362 setExpect(_ifaceppp->data()->modemInitResp()); 361 setExpect(_ifaceppp->data()->modemInitResp());
@@ -377,7 +376,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
377 QStringList &plist = _ifaceppp->data()->phonenumbers(); 376 QStringList &plist = _ifaceppp->data()->phonenumbers();
378 QString bmarg= _ifaceppp->data()->dialPrefix(); 377 QString bmarg= _ifaceppp->data()->dialPrefix();
379 bmarg += *plist.at(dialnumber); 378 bmarg += *plist.at(dialnumber);
380 QString bm = i18n("Dialing %1").arg(bmarg); 379 QString bm = QObject::tr("Dialing %1").arg(bmarg);
381 messg->setText(bm); 380 messg->setText(bm);
382 emit debugMessage(bm); 381 emit debugMessage(bm);
383 382
@@ -408,12 +407,12 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
408 timeout_timer->stop(); 407 timeout_timer->stop();
409 timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000); 408 timeout_timer->start(_ifaceppp->data()->modemTimeout()*1000);
410 409
411 messg->setText(i18n("Line busy. Hanging up...")); 410 messg->setText(QObject::tr("Line busy. Hanging up..."));
412 emit debugPutChar('\n'); 411 emit debugPutChar('\n');
413 _ifaceppp->modem()->hangup(); 412 _ifaceppp->modem()->hangup();
414 413
415 if(_ifaceppp->data()->busyWait() > 0) { 414 if(_ifaceppp->data()->busyWait() > 0) {
416 QString bm = i18n("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait()); 415 QString bm = QObject::tr("Line busy. Waiting: %1 seconds").arg(_ifaceppp->data()->busyWait());
417 messg->setText(bm); 416 messg->setText(bm);
418 emit debugMessage(bm); 417 emit debugMessage(bm);
419 418
@@ -432,7 +431,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
432 if(readbuffer.contains(_ifaceppp->data()->modemNoDialtoneResp())) { 431 if(readbuffer.contains(_ifaceppp->data()->modemNoDialtoneResp())) {
433 timeout_timer->stop(); 432 timeout_timer->stop();
434 433
435 messg->setText(i18n("No Dialtone")); 434 messg->setText(QObject::tr("No Dialtone"));
436 vmain = 20; 435 vmain = 20;
437 _ifaceppp->modem()->unlockdevice(); 436 _ifaceppp->modem()->unlockdevice();
438 return; 437 return;
@@ -441,7 +440,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
441 if(readbuffer.contains(_ifaceppp->data()->modemNoCarrierResp())) { 440 if(readbuffer.contains(_ifaceppp->data()->modemNoCarrierResp())) {
442 timeout_timer->stop(); 441 timeout_timer->stop();
443 442
444 messg->setText(i18n("No Carrier")); 443 messg->setText(QObject::tr("No Carrier"));
445 vmain = 20; 444 vmain = 20;
446 _ifaceppp->modem()->unlockdevice(); 445 _ifaceppp->modem()->unlockdevice();
447 return; 446 return;
@@ -479,7 +478,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
479 } 478 }
480 479
481 if (scriptCommand == "Scan") { 480 if (scriptCommand == "Scan") {
482 QString bm = i18n("Scanning %1").arg(scriptArgument); 481 QString bm = QObject::tr("Scanning %1").arg(scriptArgument);
483 messg->setText(bm); 482 messg->setText(bm);
484 emit debugMessage(bm); 483 emit debugMessage(bm);
485 484
@@ -489,7 +488,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
489 } 488 }
490 489
491 if (scriptCommand == "Save") { 490 if (scriptCommand == "Save") {
492 QString bm = i18n("Saving %1").arg(scriptArgument); 491 QString bm = QObject::tr("Saving %1").arg(scriptArgument);
493 messg->setText(bm); 492 messg->setText(bm);
494 emit debugMessage(bm); 493 emit debugMessage(bm);
495 494
@@ -507,7 +506,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
507 506
508 507
509 if (scriptCommand == "Send" || scriptCommand == "SendNoEcho") { 508 if (scriptCommand == "Send" || scriptCommand == "SendNoEcho") {
510 QString bm = i18n("Sending %1"); 509 QString bm = QObject::tr("Sending %1");
511 510
512 // replace %USERNAME% and %PASSWORD% 511 // replace %USERNAME% and %PASSWORD%
513 QString arg = scriptArgument; 512 QString arg = scriptArgument;
@@ -532,7 +531,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
532 } 531 }
533 532
534 if (scriptCommand == "Expect") { 533 if (scriptCommand == "Expect") {
535 QString bm = i18n("Expecting %1").arg(scriptArgument); 534 QString bm = QObject::tr("Expecting %1").arg(scriptArgument);
536 messg->setText(bm); 535 messg->setText(bm);
537 emit debugMessage(bm); 536 emit debugMessage(bm);
538 537
@@ -546,7 +545,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
546 545
547 546
548 if (scriptCommand == "Pause") { 547 if (scriptCommand == "Pause") {
549 QString bm = i18n("Pause %1 seconds").arg(scriptArgument); 548 QString bm = QObject::tr("Pause %1 seconds").arg(scriptArgument);
550 messg->setText(bm); 549 messg->setText(bm);
551 emit debugMessage(bm); 550 emit debugMessage(bm);
552 551
@@ -563,7 +562,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
563 562
564 timeout_timer->stop(); 563 timeout_timer->stop();
565 564
566 QString bm = i18n("Timeout %1 seconds").arg(scriptArgument); 565 QString bm = QObject::tr("Timeout %1 seconds").arg(scriptArgument);
567 messg->setText(bm); 566 messg->setText(bm);
568 emit debugMessage(bm); 567 emit debugMessage(bm);
569 568
@@ -575,8 +574,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
575 } 574 }
576 575
577 if (scriptCommand == "Hangup") { 576 if (scriptCommand == "Hangup") {
578 messg->setText(i18n("Hangup")); 577 messg->setText(QObject::tr("Hangup"));
579 emit debugMessage(i18n("Hangup")); 578 emit debugMessage(QObject::tr("Hangup"));
580 579
581 writeline(_ifaceppp->data()->modemHangupStr()); 580 writeline(_ifaceppp->data()->modemHangupStr());
582 setExpect(_ifaceppp->data()->modemHangupResp()); 581 setExpect(_ifaceppp->data()->modemHangupResp());
@@ -589,8 +588,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
589 588
590 timeout_timer->stop(); 589 timeout_timer->stop();
591 590
592 messg->setText(i18n("Answer")); 591 messg->setText(QObject::tr("Answer"));
593 emit debugMessage(i18n("Answer")); 592 emit debugMessage(QObject::tr("Answer"));
594 593
595 setExpect(_ifaceppp->data()->modemRingResp()); 594 setExpect(_ifaceppp->data()->modemRingResp());
596 vmain = 150; 595 vmain = 150;
@@ -598,7 +597,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
598 } 597 }
599 598
600 if (scriptCommand == "ID") { 599 if (scriptCommand == "ID") {
601 QString bm = i18n("ID %1").arg(scriptArgument); 600 QString bm = QObject::tr("ID %1").arg(scriptArgument);
602 messg->setText(bm); 601 messg->setText(bm);
603 emit debugMessage(bm); 602 emit debugMessage(bm);
604 603
@@ -634,7 +633,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
634 } 633 }
635 634
636 if (scriptCommand == "Password") { 635 if (scriptCommand == "Password") {
637 QString bm = i18n("Password %1").arg(scriptArgument); 636 QString bm = QObject::tr("Password %1").arg(scriptArgument);
638 messg->setText(bm); 637 messg->setText(bm);
639 emit debugMessage(bm); 638 emit debugMessage(bm);
640 639
@@ -671,7 +670,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
671 } 670 }
672 671
673 if (scriptCommand == "Prompt") { 672 if (scriptCommand == "Prompt") {
674 QString bm = i18n("Prompting %1"); 673 QString bm = QObject::tr("Prompting %1");
675 674
676 // if the scriptindex (aka the prompt text) includes a ## marker 675 // if the scriptindex (aka the prompt text) includes a ## marker
677 // this marker should get substituted with the contents of our stored 676 // this marker should get substituted with the contents of our stored
@@ -708,7 +707,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
708 } 707 }
709 708
710 if (scriptCommand == "PWPrompt") { 709 if (scriptCommand == "PWPrompt") {
711 QString bm = i18n("PW Prompt %1").arg(scriptArgument); 710 QString bm = QObject::tr("PW Prompt %1").arg(scriptArgument);
712 messg->setText(bm); 711 messg->setText(bm);
713 emit debugMessage(bm); 712 emit debugMessage(bm);
714 713
@@ -733,7 +732,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
733 732
734 if (scriptCommand == "LoopStart") { 733 if (scriptCommand == "LoopStart") {
735 734
736 QString bm = i18n("Loop Start %1").arg(scriptArgument); 735 QString bm = QObject::tr("Loop Start %1").arg(scriptArgument);
737 736
738 // The incrementing of the scriptindex MUST be before the 737 // The incrementing of the scriptindex MUST be before the
739 // call to setExpect otherwise the expect will miss a string that is 738 // call to setExpect otherwise the expect will miss a string that is
@@ -741,10 +740,10 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
741 scriptindex++; 740 scriptindex++;
742 741
743 if ( loopnest > (MAXLOOPNEST-2) ) { 742 if ( loopnest > (MAXLOOPNEST-2) ) {
744 bm += i18n("ERROR: Nested too deep, ignored."); 743 bm += QObject::tr("ERROR: Nested too deep, ignored.");
745 vmain=20; 744 vmain=20;
746 cancelbutton(); 745 cancelbutton();
747 QMessageBox::critical(0, "error", i18n("Loops nested too deeply!")); 746 QMessageBox::critical(0, "error", QObject::tr("Loops nested too deeply!"));
748 } else { 747 } else {
749 setExpect(scriptArgument); 748 setExpect(scriptArgument);
750 loopstartindex[loopnest] = scriptindex; 749 loopstartindex[loopnest] = scriptindex;
@@ -758,9 +757,9 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
758 } 757 }
759 758
760 if (scriptCommand == "LoopEnd") { 759 if (scriptCommand == "LoopEnd") {
761 QString bm = i18n("Loop End %1").arg(scriptArgument); 760 QString bm = QObject::tr("Loop End %1").arg(scriptArgument);
762 if ( loopnest <= 0 ) { 761 if ( loopnest <= 0 ) {
763 bm = i18n("LoopEnd without matching Start! Line: %1").arg(bm); 762 bm = QObject::tr("LoopEnd without matching Start! Line: %1").arg(bm);
764 vmain=20; 763 vmain=20;
765 cancelbutton(); 764 cancelbutton();
766 QMessageBox::critical(0, "error", bm); 765 QMessageBox::critical(0, "error", bm);
@@ -848,7 +847,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
848 semaphore = true; 847 semaphore = true;
849 result = execppp(); 848 result = execppp();
850 849
851 emit debugMessage(i18n("Starting pppd...")); 850 emit debugMessage(QObject::tr("Starting pppd..."));
852 qDebug("execppp() returned with return-code %i", result ); 851 qDebug("execppp() returned with return-code %i", result );
853 852
854 if(result) { 853 if(result) {
@@ -930,7 +929,7 @@ void ConnectWidget::checkBuffers() {
930 scanvar = scanvar.stripWhiteSpace(); 929 scanvar = scanvar.stripWhiteSpace();
931 930
932 // Show the Variabel content in the debug window 931 // Show the Variabel content in the debug window
933 QString sv = i18n("Scan Var: %1").arg(scanvar); 932 QString sv = QObject::tr("Scan Var: %1").arg(scanvar);
934 emit debugMessage(sv); 933 emit debugMessage(sv);
935 } 934 }
936 935
@@ -940,7 +939,7 @@ void ConnectWidget::checkBuffers() {
940 // keep everything after the expected string 939 // keep everything after the expected string
941 readbuffer.remove(0, readbuffer.find(expectstr) + expectstr.length()); 940 readbuffer.remove(0, readbuffer.find(expectstr) + expectstr.length());
942 941
943 QString ts = i18n("Found: %1").arg(expectstr); 942 QString ts = QObject::tr("Found: %1").arg(expectstr);
944 emit debugMessage(ts); 943 emit debugMessage(ts);
945 944
946 if (loopend) { 945 if (loopend) {
@@ -951,7 +950,7 @@ void ConnectWidget::checkBuffers() {
951 if (loopend && readbuffer.contains(loopstr[loopnest])) { 950 if (loopend && readbuffer.contains(loopstr[loopnest])) {
952 expecting = false; 951 expecting = false;
953 readbuffer = ""; 952 readbuffer = "";
954 QString ts = i18n("Looping: %1").arg(loopstr[loopnest]); 953 QString ts = QObject::tr("Looping: %1").arg(loopstr[loopnest]);
955 emit debugMessage(ts); 954 emit debugMessage(ts);
956 scriptindex = loopstartindex[loopnest]; 955 scriptindex = loopstartindex[loopnest];
957 loopend = false; 956 loopend = false;
@@ -984,7 +983,7 @@ void ConnectWidget::cancelbutton() {
984// this->show(); 983// this->show();
985// } 984// }
986 985
987 messg->setText(i18n("One moment please...")); 986 messg->setText(QObject::tr("One moment please..."));
988 987
989 // just to be sure 988 // just to be sure
990 _ifaceppp->modem()->removeSecret(AUTH_PAP); 989 _ifaceppp->modem()->removeSecret(AUTH_PAP);
@@ -1006,11 +1005,14 @@ void ConnectWidget::cancelbutton() {
1006 1005
1007 //abort prompt window... 1006 //abort prompt window...
1008 if (prompt->isVisible()) { 1007 if (prompt->isVisible()) {
1009 prompt->hide(); 1008 prompt->hide();
1010 } 1009 }
1011 prompt->setConsumed(); 1010 prompt->setConsumed();
1012 1011
1013 messg->setText(tr("offline")); 1012 _ifaceppp->setStatus( false );
1013 _ifaceppp->refresh();
1014// messg->setText(tr("offline"));
1015 refresh();
1014} 1016}
1015 1017
1016 1018
@@ -1026,7 +1028,7 @@ void ConnectWidget::script_timed_out() {
1026 prompt->hide(); 1028 prompt->hide();
1027 1029
1028 prompt->setConsumed(); 1030 prompt->setConsumed();
1029 messg->setText(i18n("Script timed out!")); 1031 messg->setText(QObject::tr("Script timed out!"));
1030 _ifaceppp->modem()->hangup(); 1032 _ifaceppp->modem()->hangup();
1031 emit stopAccounting(); 1033 emit stopAccounting();
1032// p_kppp->con_win->stopClock(); 1034// p_kppp->con_win->stopClock();
@@ -1041,7 +1043,7 @@ void ConnectWidget::setScan(const QString &n) {
1041 scanstr = n; 1043 scanstr = n;
1042 scanbuffer = ""; 1044 scanbuffer = "";
1043 1045
1044 QString ts = i18n("Scanning: %1").arg(n); 1046 QString ts = QObject::tr("Scanning: %1").arg(n);
1045 emit debugMessage(ts); 1047 emit debugMessage(ts);
1046} 1048}
1047 1049
@@ -1050,7 +1052,7 @@ void ConnectWidget::setExpect(const QString &n) {
1050 expecting = true; 1052 expecting = true;
1051 expectstr = n; 1053 expectstr = n;
1052 1054
1053 QString ts = i18n("Expecting: %1").arg(n); 1055 QString ts = QObject::tr("Expecting: %1").arg(n);
1054 ts.replace(QRegExp("\n"), "<LF>"); 1056 ts.replace(QRegExp("\n"), "<LF>");
1055 emit debugMessage(ts); 1057 emit debugMessage(ts);
1056 1058
@@ -1085,7 +1087,7 @@ void ConnectWidget::pppdDied()
1085} 1087}
1086 1088
1087void ConnectWidget::if_waiting_slot() { 1089void ConnectWidget::if_waiting_slot() {
1088 messg->setText(i18n("Logging on to network...")); 1090 messg->setText(QObject::tr("Logging on to network..."));
1089 1091
1090// if(!stats->ifIsUp()) { 1092// if(!stats->ifIsUp()) {
1091 1093
@@ -1116,26 +1118,31 @@ void ConnectWidget::if_waiting_slot() {
1116 auto_hostname(_ifaceppp); 1118 auto_hostname(_ifaceppp);
1117 1119
1118 if(!_ifaceppp->data()->command_on_connect().isEmpty()) { 1120 if(!_ifaceppp->data()->command_on_connect().isEmpty()) {
1119 messg->setText(i18n("Running startup command...")); 1121 messg->setText(QObject::tr("Running startup command..."));
1120 1122
1121 // make sure that we don't get any async errors 1123 // make sure that we don't get any async errors
1122 qApp->flushX(); 1124 qApp->flushX();
1123 execute_command(_ifaceppp->data()->command_on_connect()); 1125 execute_command(_ifaceppp->data()->command_on_connect());
1124 messg->setText(i18n("Done")); 1126 messg->setText(QObject::tr("Done"));
1125 } 1127 }
1126 1128
1127 // remove the authentication file 1129 // remove the authentication file
1128 _ifaceppp->modem()->removeSecret(AUTH_PAP); 1130 _ifaceppp->modem()->removeSecret(AUTH_PAP);
1129 _ifaceppp->modem()->removeSecret(AUTH_CHAP); 1131 _ifaceppp->modem()->removeSecret(AUTH_CHAP);
1130 1132
1131 emit debugMessage(i18n("Done")); 1133 emit debugMessage(QObject::tr("Done"));
1132 set_con_speed_string(); 1134 set_con_speed_string();
1133 1135
1134// p_kppp->con_win->setConnectionSpeed(p_kppp->con_speed); 1136// p_kppp->con_win->setConnectionSpeed(p_kppp->con_speed);
1135 this->hide(); 1137// this->hide();
1136 messg->setText(""); 1138// messg->setText("");
1137 1139
1138 _ifaceppp->setStatus( true ); 1140 _ifaceppp->setStatus( true );
1141
1142 m_refreshTimer = new QTimer( this );
1143 connect( m_refreshTimer, SIGNAL( timeout() ), this, SLOT( refresh() ) );
1144 m_refreshTimer->start( 3000 );
1145 //_ifaceppp->refresh();
1139 // emit _ifaceppp->updateInterface(_ifaceppp); 1146 // emit _ifaceppp->updateInterface(_ifaceppp);
1140 1147
1141 // prepare the con_win so as to have the right size for 1148 // prepare the con_win so as to have the right size for
@@ -1161,6 +1168,15 @@ void ConnectWidget::if_waiting_slot() {
1161 _ifaceppp->modem()->closetty(); 1168 _ifaceppp->modem()->closetty();
1162} 1169}
1163 1170
1171void ConnectWidget::refresh() {
1172 _ifaceppp->refresh();
1173 if ( _ifaceppp->getStatus() ) {
1174 messg->setText(QObject::tr("Online"));
1175 } else {
1176 messg->setText(QObject::tr("Offline"));
1177 }
1178}
1179
1164 1180
1165bool ConnectWidget::execppp() { 1181bool ConnectWidget::execppp() {
1166 QString command; 1182 QString command;
@@ -1210,38 +1226,44 @@ bool ConnectWidget::execppp() {
1210 if(_ifaceppp->data()->autoDNS()) 1226 if(_ifaceppp->data()->autoDNS())
1211 command += " usepeerdns"; 1227 command += " usepeerdns";
1212 1228
1213 QStringList &arglist = _ifaceppp->data()->pppdArgument();
1214 for ( QStringList::Iterator it = arglist.begin();
1215 it != arglist.end();
1216 ++it )
1217 {
1218 command += " " + *it;
1219 }
1220 1229
1221 // PAP settings 1230 // PAP settings
1222 if(_ifaceppp->data()->authMethod() == AUTH_PAP) { 1231 if(_ifaceppp->data()->authMethod() == AUTH_PAP) {
1223 command += " -chap user "; 1232 command += " -chap user ";
1224 command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; 1233 command = command + _ifaceppp->data()->storedUsername();
1225 } 1234 }
1226 1235
1227 // CHAP settings 1236 // CHAP settings
1228 if(_ifaceppp->data()->authMethod() == AUTH_CHAP) { 1237 if(_ifaceppp->data()->authMethod() == AUTH_CHAP) {
1229 command += " -pap user "; 1238 command += " -pap user ";
1230 command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; 1239 command = command + _ifaceppp->data()->storedUsername();
1231 } 1240 }
1232 1241
1233 // PAP/CHAP settings 1242 // PAP/CHAP settings
1234 if(_ifaceppp->data()->authMethod() == AUTH_PAPCHAP) { 1243 if(_ifaceppp->data()->authMethod() == AUTH_PAPCHAP) {
1235 command += " user "; 1244 QString tmpName = _ifaceppp->data()->storedUsername();
1236 command = command + "\"" + _ifaceppp->data()->storedUsername() + "\""; 1245 if ( !tmpName.isEmpty() ) {
1246 command += " user ";
1247 command = command + tmpName;
1248 }
1237 } 1249 }
1238 1250
1239 // check for debug 1251 // check for debug
1240 if(_ifaceppp->data()->getPPPDebug()) 1252 if(_ifaceppp->data()->getPPPDebug())
1241 command += " debug"; 1253 command += " debug";
1242 1254
1255 QStringList &arglist = _ifaceppp->data()->pppdArgument();
1256 for ( QStringList::Iterator it = arglist.begin();
1257 it != arglist.end();
1258 ++it )
1259 {
1260 command += " " + *it;
1261 }
1262
1263 command += " call opie-kppp logfd 11";
1264
1243 if (command.length() > MAX_CMDLEN) { 1265 if (command.length() > MAX_CMDLEN) {
1244 QMessageBox::critical(this, "error", i18n( 1266 QMessageBox::critical(this, "error", QObject::tr(
1245 "pppd command + command-line arguments exceed " 1267 "pppd command + command-line arguments exceed "
1246 "2024 characters in length." 1268 "2024 characters in length."
1247 )); 1269 ));
@@ -1249,6 +1271,8 @@ bool ConnectWidget::execppp() {
1249 return false; // nonsensically long command which would bust my buffer buf. 1271 return false; // nonsensically long command which would bust my buffer buf.
1250 } 1272 }
1251 1273
1274 qWarning("Command IS: %s",command.latin1() );
1275
1252 qApp->flushX(); 1276 qApp->flushX();
1253 1277
1254 return _ifaceppp->modem()->execPPPDaemon(command); 1278 return _ifaceppp->modem()->execPPPDaemon(command);
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
@@ -62,6 +62,7 @@ private slots:
62 void readChar(unsigned char); 62 void readChar(unsigned char);
63 void pause(); 63 void pause();
64 void if_waiting_slot(); 64 void if_waiting_slot();
65 void refresh();
65 66
66public slots: 67public slots:
67 void init(); 68 void init();
@@ -127,6 +128,7 @@ private:
127 QTimer *pausetimer; 128 QTimer *pausetimer;
128 QTimer *if_timer; 129 QTimer *if_timer;
129 QTimer *if_timeout_timer; 130 QTimer *if_timeout_timer;
131 QTimer *m_refreshTimer;
130 132
131 QLabel *messg; 133 QLabel *messg;
132 QPushButton *cancel; 134 QPushButton *cancel;
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
@@ -24,12 +24,7 @@
24#include <qtooltip.h> 24#include <qtooltip.h>
25#include <qdialog.h> 25#include <qdialog.h>
26#include "conwindow.h" 26#include "conwindow.h"
27//#include "docking.h"
28#include "pppdata.h" 27#include "pppdata.h"
29// #include "pppstats.h"
30// #include <klocale.h>
31#define i18n QObject::tr
32// #include <kglobal.h>
33 28
34 29
35ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name, 30ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name,
@@ -42,29 +37,29 @@ ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name,
42 tl1(0), 37 tl1(0),
43 _pppdata(pd) 38 _pppdata(pd)
44{ 39{
45 info1 = new QLabel(i18n("Connected at:"), this); 40 info1 = new QLabel(QObject::tr("Connected at:"), this);
46 info2 = new QLabel("", this); 41 info2 = new QLabel("", this);
47 42
48 timelabel1 = new QLabel(i18n("Time connected:"), this); 43 timelabel1 = new QLabel(QObject::tr("Time connected:"), this);
49 timelabel2 = new QLabel("000:00:00", this); 44 timelabel2 = new QLabel("000:00:00", this);
50 45
51 vollabel = new QLabel(i18n("Volume:"), this); 46 vollabel = new QLabel(QObject::tr("Volume:"), this);
52 volinfo = new QLabel("", this); 47 volinfo = new QLabel("", this);
53 48
54 // now the stuff for accounting 49 // now the stuff for accounting
55 session_bill_l = new QLabel(i18n("Session Bill:"), this); 50 session_bill_l = new QLabel(QObject::tr("Session Bill:"), this);
56 session_bill = new QLabel("", this); 51 session_bill = new QLabel("", this);
57 total_bill_l = new QLabel(i18n("Total Bill:"), this); 52 total_bill_l = new QLabel(QObject::tr("Total Bill:"), this);
58 total_bill = new QLabel("", this); 53 total_bill = new QLabel("", this);
59 54
60 this->setCaption("kppp"); 55 this->setCaption("kppp");
61 56
62 cancelbutton = new QPushButton(this); 57 cancelbutton = new QPushButton(this);
63 cancelbutton->setText(i18n("Disconnect")); 58 cancelbutton->setText(QObject::tr("Disconnect"));
64 connect(cancelbutton, SIGNAL(clicked()), mainwidget, SLOT(disconnect())); 59 connect(cancelbutton, SIGNAL(clicked()), mainwidget, SLOT(disconnect()));
65 60
66 // statsbutton = new QPushButton(this); 61 // statsbutton = new QPushButton(this);
67// statsbutton->setText(i18n("Details")); 62// statsbutton->setText(QObject::tr("Details"));
68// statsbutton->setFocus(); 63// statsbutton->setFocus();
69// connect(statsbutton, SIGNAL(clicked()), mainwidget, SLOT(showStats())); 64// connect(statsbutton, SIGNAL(clicked()), mainwidget, SLOT(showStats()));
70 65
@@ -94,8 +89,8 @@ bool ConWindow::event(QEvent *e) {
94 89
95QString ConWindow::prettyPrintVolume(unsigned int n) { 90QString ConWindow::prettyPrintVolume(unsigned int n) {
96 int idx = 0; 91 int idx = 0;
97 const QString quant[] = {i18n("Byte"), i18n("KB"), 92 const QString quant[] = {QObject::tr("Byte"), QObject::tr("KB"),
98 i18n("MB"), i18n("GB"), QString::null}; 93 QObject::tr("MB"), QObject::tr("GB"), QString::null};
99 94
100 float n1 = n; 95 float n1 = n;
101 while(n >= 1024 && quant[idx] != QString::null) { 96 while(n >= 1024 && quant[idx] != QString::null) {
@@ -259,14 +254,14 @@ void ConWindow::stopClock() {
259 254
260 255
261void ConWindow::timeclick() { 256void ConWindow::timeclick() {
262// QString tooltip = i18n("Connection: %1\n" 257// QString tooltip = QObject::tr("Connection: %1\n"
263 // "Connected at: %2\n" 258 // "Connected at: %2\n"
264 // "Time connected: %3") 259 // "Time connected: %3")
265 // .arg(_pppdata->accname()).arg(info2->text()) 260 // .arg(_pppdata->accname()).arg(info2->text())
266 // .arg(time_string2); 261 // .arg(time_string2);
267 262
268// if(accountingEnabled) 263// if(accountingEnabled)
269// tooltip += i18n("\nSession Bill: %1\nTotal Bill: %2") 264// tooltip += QObject::tr("\nSession Bill: %1\nTotal Bill: %2")
270 // .arg(session_bill->text()).arg(total_bill->text()); 265 // .arg(session_bill->text()).arg(total_bill->text());
271// // volume accounting 266// // volume accounting
272// if(volumeAccountingEnabled) { 267// if(volumeAccountingEnabled) {
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 @@
1/*
2 * kPPP: A pppd front end for the KDE project
3 *
4 * $Id$
5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu
8 *
9 * based on EzPPP:
10 * Copyright (C) 1997 Jay Painter
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details.
21 *
22 * You should have received a copy of the GNU Library General Public
23 * License along with this program; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */
26
27#include <qdir.h>
28#include <stdlib.h>
29#include <qlayout.h>
30#include <qtabwidget.h>
31#include <qtabdialog.h>
32#include <qwhatsthis.h>
33#include <qmessagebox.h>
34
35#include <qapplication.h>
36#include <qbuttongroup.h>
37#include <qmessagebox.h>
38#include <qvgroupbox.h>
39
40#include "interfaceppp.h"
41#include "devices.h"
42#include "authwidget.h"
43#include "pppdata.h"
44#include "edit.h"
45#include "general.h"
46
47void parseargs(char* buf, char** args);
48
49DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f )
50 : ChooserWidget(ip->data(), parent, name, f)
51{
52 _ifaceppp = ip;
53 QWhatsThis::add(edit_b, tr("Allows you to modify the selected device"));
54 QWhatsThis::add(new_b, tr("Create a new device") );
55
56 QWhatsThis::add(copy_b,
57 tr("Makes a copy of the selected device. All\n"
58 "settings of the selected device are copied\n"
59 "to a new device, that you can modify to fit your\n"
60 "needs"));
61 QWhatsThis::add(delete_b,
62 tr("<p>Deletes the selected device\n\n"
63 "<font color=\"red\"><b>Use with care!</b></font>"));
64
65 copy_b->setEnabled( false ); //FIXME
66// delete_b->setEnabled( false ); //FIXME
67
68 QStringList tmp = _pppdata->getDevicesNamesList();
69 qDebug("DevicesWidget::DevicesWidget got devices %s",tmp.join("--").latin1());
70 listListbox->insertStringList(tmp);
71
72 for (uint i = 0; i < listListbox->count(); i++){
73 qDebug("listListbox->text(i) %s == _pppdata->devname() %s",listListbox->text(i).latin1(), _pppdata->devname().latin1());
74 if ( listListbox->text(i) == _pppdata->devname() )
75 listListbox->setCurrentItem( i );
76 }
77}
78
79
80
81void DevicesWidget::slotListBoxSelect(int idx) {
82 bool ok = _pppdata->setDevice( listListbox->text(idx) );
83 delete_b->setEnabled((bool)(idx != -1));
84 edit_b->setEnabled((bool)(idx != -1));
85//FIXME copy_b->setEnabled((bool)(idx != -1));
86}
87
88void DevicesWidget::edit() {
89 _pppdata->setDevice(listListbox->text(listListbox->currentItem()));
90
91 int result = doTab();
92
93 if(result == QDialog::Accepted) {
94 listListbox->changeItem(_pppdata->devname(),listListbox->currentItem());
95 _pppdata->save();
96 }
97}
98
99
100void DevicesWidget::create() {
101
102// if(listListbox->count() == MAX_ACCOUNTS) {
103// QMessageBox::information(this, "sorry",
104// tr("Maximum number of accounts reached."));
105// return;
106// }
107
108 int result;
109 if (_pppdata->newdevice() == -1){
110 return;
111 }
112 result = doTab();
113
114 if(result == QDialog::Accepted) {
115 listListbox->insertItem(_pppdata->devname());
116 listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true );
117
118 _pppdata->save();
119 } else
120 _pppdata->deleteDevice();
121}
122
123
124void DevicesWidget::copy() {
125// if(listListbox->count() == MAX_ACCOUNTS) {
126// QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached."));
127// return;
128// }
129
130 if(listListbox->currentItem()<0) {
131 QMessageBox::information(this, "sorry", tr("No devices selected."));
132 return;
133 }
134
135 _pppdata->copydevice(listListbox->currentText());
136
137 listListbox->insertItem(_pppdata->devname());
138 _pppdata->save();
139}
140
141
142void DevicesWidget::remove() {
143
144 QString s = tr("Are you sure you want to delete\nthe device \"%1\"?")
145 .arg(listListbox->text(listListbox->currentItem()));
146
147 if(QMessageBox::warning(this,tr("Confirm"),s,
148 QMessageBox::Yes,QMessageBox::No
149 ) != QMessageBox::Yes)
150 return;
151
152 if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem())))
153 listListbox->removeItem(listListbox->currentItem());
154
155
156// _pppdata->save();
157
158
159 slotListBoxSelect(listListbox->currentItem());
160
161}
162
163
164int DevicesWidget::doTab(){
165 QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp );
166 QVBoxLayout *layout = new QVBoxLayout( dlg );
167 layout->setSpacing( 0 );
168 layout->setMargin( 1 );
169
170 QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" );
171 layout->addWidget( tabWindow );
172
173 bool isnew;
174
175 if(_pppdata->devname().isEmpty()) {
176 dlg->setCaption(tr("New Device"));
177 isnew = true;
178 } else {
179 QString tit = tr("Edit Device: ");
180 tit += _pppdata->devname();
181 dlg->setCaption(tit);
182 isnew = false;
183 }
184
185 modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" );
186 tabWindow->addTab( modem1, tr("&Device") );
187 modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" );
188 tabWindow->addTab( modem2, tr("&Modem") );
189
190 int result = 0;
191 bool ok = false;
192
193 while (!ok){
194 dlg->showMaximized();
195 result = dlg->exec();
196 ok = true;
197
198 if(result == QDialog::Accepted) {
199 if (!modem1->save()){
200 QMessageBox::critical(this, "error", tr( "You must enter a unique device name"));
201 ok = false;
202 }else{
203 modem2->save();
204 }
205 }
206 }
207
208 delete dlg;
209
210 return result;
211}
212
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
@@ -3,58 +3,49 @@
3 3
4#include "kpppconfig.h" 4#include "kpppconfig.h"
5 5
6static const char *devices[] = { 6#include <qwidget.h>
7#ifdef __FreeBSD__ 7#include <qdialog.h>
8 "/dev/cuaa0", 8#include <qpushbutton.h>
9 "/dev/cuaa1", 9#include <qlistbox.h>
10 "/dev/cuaa2", 10#include "chooserwidget.h"
11 "/dev/cuaa3", 11
12 "/dev/cuaa4", 12class QCheckBox;
13#elif defined(__NetBSD__) 13class QLineEdit;
14 "/dev/tty00", /* "normal" modem lines */ 14class QTabWidget;
15 "/dev/tty01", 15class DialWidget;
16 "/dev/tty02", 16class AuthWidget;
17 "/dev/tty03", 17class IPWidget;
18 "/dev/dty00", /* Dial out devices */ 18class DNSWidget;
19 "/dev/dty01", 19class GatewayWidget;
20 "/dev/dty02", 20class InterfacePPP;
21 "/dev/dty03", 21class PPPData;
22 "/dev/ttyU0", /* USB stuff modems */ 22class ModemWidget;
23 "/dev/ttyU1", 23class ModemWidget2;
24 "/dev/ttyU2", 24
25 "/dev/ttyU3", 25class DevicesWidget : public ChooserWidget {
26 "/dev/dtyU0", /* USB stuff, too (dial out device) */ 26 Q_OBJECT
27 "/dev/dtyU1", 27public:
28 "/dev/dtyU2", 28 DevicesWidget( InterfacePPP* ip, QWidget *parent=0, const char *name=0, WFlags f=0 );
29 "/dev/dtyU3", 29 ~DevicesWidget() {}
30#elif defined (__linux__) 30
31 "/dev/modem", 31
32 "/dev/ttyS0", 32private slots:
33 "/dev/ttyS1", 33 virtual void edit();
34 "/dev/ttyS2", 34 virtual void copy();
35 "/dev/ttyS3", 35 virtual void remove();
36#ifdef ISDNSUPPORT 36 virtual void create();
37 "/dev/ttyI0", 37 virtual void slotListBoxSelect(int);
38 "/dev/ttyI1", 38 int doTab();
39 "/dev/ttyI2", 39
40 "/dev/ttyI3", 40// signals:
41#endif 41// void resetaccounts();
42 "/dev/usb/ttyACM0", /* USB stuff modems */ 42
43 "/dev/usb/ttyACM1", 43private:
44 "/dev/usb/ttyACM2", 44 ModemWidget *modem1;
45 "/dev/usb/ttyACM3", 45 ModemWidget2 *modem2;
46 "/dev/ircomm0", 46 InterfacePPP *_ifaceppp;
47 "/dev/rfcomm0", 47
48 "/dev/rfcomm1", 48};
49#elif defined(__svr4__)
50 "/dev/cua/a",
51 "/dev/cua/b",
52 "/dev/ttya",
53 "/dev/ttyb",
54#endif
55 0};
56 49
57// default device number from the list above
58const int DEV_DEFAULT = 0;
59 50
60#endif 51#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
@@ -76,9 +76,9 @@ DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount
76 del = new QPushButton(tr("&Remove"), this); 76 del = new QPushButton(tr("&Remove"), this);
77 77
78 up = new QPushButton(this); 78 up = new QPushButton(this);
79 up->setPixmap( Resource::loadPixmap("inline/up") ); 79 up->setPixmap( Resource::loadPixmap("up") );
80 down = new QPushButton(this); 80 down = new QPushButton(this);
81 down->setPixmap( Resource::loadPixmap("inline/down") ); 81 down->setPixmap( Resource::loadPixmap("down") );
82 lpn1->addWidget(add); 82 lpn1->addWidget(add);
83 lpn1->addWidget(del); 83 lpn1->addWidget(del);
84 lpn1->addStretch(1); 84 lpn1->addStretch(1);
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
@@ -35,42 +35,61 @@
35#include <qslider.h> 35#include <qslider.h>
36#include <qspinbox.h> 36#include <qspinbox.h>
37#include <qwhatsthis.h> 37#include <qwhatsthis.h>
38 38#include <qpe/config.h>
39// #include <qgroupbox.h> 39// #include <qgroupbox.h>
40 40
41
41#include "general.h" 42#include "general.h"
42#include "interfaceppp.h" 43#include "interfaceppp.h"
43//#include "miniterm.h" 44//#include "miniterm.h"
44#include "modeminfo.h" 45#include "modeminfo.h"
45#include "modemcmds.h" 46#include "modemcmds.h"
46#include "devices.h" 47//#include "devices.h"
47#include "pppdata.h" 48#include "pppdata.h"
48//#include <klocale.h> 49//#include <klocale.h>
49#define i18n QObject::tr
50 50
51 51
52 52
53ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name ) 53
54 : QWidget(parent, name), _ifaceppp(ifppp) 54ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name )
55 : QWidget(parent, name), _pppdata(pd)
55{ 56{
56 int k; 57 int k;
57 58
58 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); 59 QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint());
59 60
60 QLabel *label1; 61 QLabel *label1;
61 label1 = new QLabel(i18n("Modem de&vice:"), this); 62
63 label1 = new QLabel(tr("Modem &name:"), this);
62 tl->addWidget(label1, 0, 0); 64 tl->addWidget(label1, 0, 0);
63 65
66 modemname = new QLineEdit(this, "modemName");
67 modemname->setText( _pppdata->devname() );
68 label1->setBuddy(modemname);
69 tl->addWidget(modemname, 0, 1);
70
71 label1 = new QLabel(tr("Modem de&vice:"), this);
72 tl->addWidget(label1, 1, 0);
73
64 modemdevice = new QComboBox(false, this); 74 modemdevice = new QComboBox(false, this);
75 modemdevice->setEditable( true );
76 modemdevice->setDuplicatesEnabled ( false );
77 modemdevice->setInsertionPolicy( QComboBox::AtTop );
65 label1->setBuddy(modemdevice); 78 label1->setBuddy(modemdevice);
66 79
67 for(k = 0; devices[k]; k++) 80 Config cfg("NetworkSetupPPP");
68 modemdevice->insertItem(devices[k]); 81 cfg.setGroup("Devices_General");
82 QStringList devs = cfg.readListEntry("devices",',');
83 if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0";
84 modemdevice->insertStringList( devs );
85 tl->addWidget(modemdevice, 1, 1);
86
87// connect(modemdevice, SIGNAL(activated(int)),
88 // SLOT(setmodemdc(int)));
89// connect(modemdevice, SIGNAL(textChanged( const QString & ) ),
90// SLOT( setmodemdc( const QString &) ) );
69 91
70 tl->addWidget(modemdevice, 0, 1); 92 QString tmp = tr("This specifies the serial port your modem is attached \n"
71 connect(modemdevice, SIGNAL(activated(int)),
72 SLOT(setmodemdc(int)));
73 QString tmp = i18n("This specifies the serial port your modem is attached \n"
74 "to. On Linux/x86, typically this is either /dev/ttyS0 \n" 93 "to. On Linux/x86, typically this is either /dev/ttyS0 \n"
75 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" 94 "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n"
76 "\n" 95 "\n"
@@ -82,19 +101,19 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
82 QWhatsThis::add(modemdevice,tmp); 101 QWhatsThis::add(modemdevice,tmp);
83 102
84 103
85 label1 = new QLabel(i18n("&Flow control:"), this); 104 label1 = new QLabel(tr("&Flow control:"), this);
86 tl->addWidget(label1, 1, 0); 105 tl->addWidget(label1, 2, 0);
87 106
88 flowcontrol = new QComboBox(false, this); 107 flowcontrol = new QComboBox(false, this);
89 label1->setBuddy(flowcontrol); 108 label1->setBuddy(flowcontrol);
90 flowcontrol->insertItem(i18n("Hardware [CRTSCTS]")); 109 flowcontrol->insertItem(tr("Hardware [CRTSCTS]"));
91 flowcontrol->insertItem(i18n("Software [XON/XOFF]")); 110 flowcontrol->insertItem(tr("Software [XON/XOFF]"));
92 flowcontrol->insertItem(i18n("None")); 111 flowcontrol->insertItem(tr("None"));
93 tl->addWidget(flowcontrol, 1, 1); 112 tl->addWidget(flowcontrol, 2, 1);
94 connect(flowcontrol, SIGNAL(activated(int)), 113// connect(flowcontrol, SIGNAL(activated(int)),
95 SLOT(setflowcontrol(int))); 114 // SLOT(setflowcontrol(int)));
96 115
97 tmp = i18n("<p>Specifies how the serial port and modem\n" 116 tmp = tr("<p>Specifies how the serial port and modem\n"
98 "communicate. You should not change this unless\n" 117 "communicate. You should not change this unless\n"
99 "you know what you are doing.\n" 118 "you know what you are doing.\n"
100 "\n" 119 "\n"
@@ -103,17 +122,17 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
103 QWhatsThis::add(label1,tmp); 122 QWhatsThis::add(label1,tmp);
104 QWhatsThis::add(flowcontrol,tmp); 123 QWhatsThis::add(flowcontrol,tmp);
105 124
106 QLabel *labelenter = new QLabel(i18n("&Line termination:"), this); 125 QLabel *labelenter = new QLabel(tr("&Line termination:"), this);
107 tl->addWidget(labelenter, 2, 0); 126 tl->addWidget(labelenter, 3, 0);
108 127
109 enter = new QComboBox(false, this); 128 enter = new QComboBox(false, this);
110 labelenter->setBuddy(enter); 129 labelenter->setBuddy(enter);
111 enter->insertItem("CR"); 130 enter->insertItem("CR");
112 enter->insertItem("LF"); 131 enter->insertItem("LF");
113 enter->insertItem("CR/LF"); 132 enter->insertItem("CR/LF");
114 tl->addWidget(enter, 2, 1); 133 tl->addWidget(enter, 3, 1);
115 connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); 134// connect(enter, SIGNAL(activated(int)), SLOT(setenter(int)));
116 tmp = i18n("<p>Specifies how AT commands are sent to your\n" 135 tmp = tr("<p>Specifies how AT commands are sent to your\n"
117 "modem. Most modems will work fine with the\n" 136 "modem. Most modems will work fine with the\n"
118 "default <i>CR/LF</i>. If your modem does not react\n" 137 "default <i>CR/LF</i>. If your modem does not react\n"
119 "to the init string, you should try different\n" 138 "to the init string, you should try different\n"
@@ -124,8 +143,8 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
124 QWhatsThis::add(labelenter,tmp); 143 QWhatsThis::add(labelenter,tmp);
125 QWhatsThis::add(enter, tmp); 144 QWhatsThis::add(enter, tmp);
126 145
127 QLabel *baud_label = new QLabel(i18n("Co&nnection speed:"), this); 146 QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this);
128 tl->addWidget(baud_label, 3, 0); 147 tl->addWidget(baud_label, 4, 0);
129 baud_c = new QComboBox(this); 148 baud_c = new QComboBox(this);
130 baud_label->setBuddy(baud_c); 149 baud_label->setBuddy(baud_c);
131 150
@@ -157,11 +176,11 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
157 baud_c->insertItem(baudrates[k]); 176 baud_c->insertItem(baudrates[k]);
158 177
159 baud_c->setCurrentItem(3); 178 baud_c->setCurrentItem(3);
160 connect(baud_c, SIGNAL(activated(int)), 179// connect(baud_c, SIGNAL(activated(int)),
161 this, SLOT(speed_selection(int))); 180 // this, SLOT(speed_selection(int)));
162 tl->addWidget(baud_c, 3, 1); 181 tl->addWidget(baud_c, 4, 1);
163 182
164 tmp = i18n("Specifies the speed your modem and the serial\n" 183 tmp = tr("Specifies the speed your modem and the serial\n"
165 "port talk to each other. You should begin with\n" 184 "port talk to each other. You should begin with\n"
166 "the default of 38400 bits/sec. If everything\n" 185 "the default of 38400 bits/sec. If everything\n"
167 "works you can try to increase this value, but to\n" 186 "works you can try to increase this value, but to\n"
@@ -172,22 +191,22 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
172 QWhatsThis::add(baud_c,tmp); 191 QWhatsThis::add(baud_c,tmp);
173 192
174 for(int i=0; i <= enter->count()-1; i++) { 193 for(int i=0; i <= enter->count()-1; i++) {
175 if(_ifaceppp->data()->enter() == enter->text(i)) 194 if(_pppdata->enter() == enter->text(i))
176 enter->setCurrentItem(i); 195 enter->setCurrentItem(i);
177 } 196 }
178 197
179 tl->addRowSpacing(4, 10); 198 tl->addRowSpacing(5, 10);
180 199
181 //Modem Lock File 200 //Modem Lock File
182 modemlockfile = new QCheckBox(i18n("&Use lock file"), this); 201 modemlockfile = new QCheckBox(tr("&Use lock file"), this);
183 202
184 modemlockfile->setChecked(_ifaceppp->data()->modemLockFile()); 203 modemlockfile->setChecked(_pppdata->modemLockFile());
185 connect(modemlockfile, SIGNAL(toggled(bool)), 204// connect(modemlockfile, SIGNAL(toggled(bool)),
186 SLOT(modemlockfilechanged(bool))); 205// SLOT(modemlockfilechanged(bool)));
187 tl->addMultiCellWidget(modemlockfile, 5, 5, 0, 1); 206 tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1);
188 // l12->addStretch(1); 207 // l12->addStretch(1);
189 QWhatsThis::add(modemlockfile, 208 QWhatsThis::add(modemlockfile,
190 i18n("<p>To prevent other programs from accessing the\n" 209 tr("<p>To prevent other programs from accessing the\n"
191 "modem while a connection is established, a\n" 210 "modem while a connection is established, a\n"
192 "file can be created to indicate that the modem\n" 211 "file can be created to indicate that the modem\n"
193 "is in use. On Linux an example file would be\n" 212 "is in use. On Linux an example file would be\n"
@@ -202,89 +221,139 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
202 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); 221 QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" );
203 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); 222 modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" );
204// modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); 223// modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this);
205// modemtimeout->setLabel(i18n("Modem &timeout:")); 224// modemtimeout->setLabel(tr("Modem &timeout:"));
206// modemtimeout->setRange(1, 120, 1); 225// modemtimeout->setRange(1, 120, 1);
207 modemtimeout->setSuffix(i18n(" sec")); 226 modemtimeout->setSuffix(tr(" sec"));
208 modemtimeout->setValue( _ifaceppp->data()->modemTimeout() ); 227 modemtimeout->setValue( _pppdata->modemTimeout() );
209 connect(modemtimeout, SIGNAL(valueChanged(int)), 228// connect(modemtimeout, SIGNAL(valueChanged(int)),
210 SLOT(modemtimeoutchanged(int))); 229 // SLOT(modemtimeoutchanged(int)));
211 timeoutLayout->addWidget(timeoutlabel); 230 timeoutLayout->addWidget(timeoutlabel);
212 timeoutLayout->addWidget(modemtimeout); 231 timeoutLayout->addWidget(modemtimeout);
213 tl->addMultiCellLayout(timeoutLayout, 6, 6, 0, 1); 232 tl->addMultiCellLayout(timeoutLayout, 7, 7, 0, 1);
214 233
215 QWhatsThis::add(modemtimeout, 234 QWhatsThis::add(modemtimeout,
216 i18n("This specifies how long <i>kppp</i> waits for a\n" 235 tr("This specifies how long <i>kppp</i> waits for a\n"
217 "<i>CONNECT</i> response from your modem. The\n" 236 "<i>CONNECT</i> response from your modem. The\n"
218 "recommended value is 30 seconds.")); 237 "recommended value is 30 seconds."));
219 238
220 //set stuff from gpppdata 239 //set stuff from gpppdata
221 for(int i=0; i <= enter->count()-1; i++) { 240 for(int i=0; i <= enter->count()-1; i++) {
222 if(_ifaceppp->data()->enter() == enter->text(i)) 241 if(_pppdata->enter() == enter->text(i))
223 enter->setCurrentItem(i); 242 enter->setCurrentItem(i);
224 } 243 }
225 244
226 for(int i=0; i <= modemdevice->count()-1; i++) { 245 for(int i=0; i <= modemdevice->count()-1; i++) {
227 if(_ifaceppp->data()->modemDevice() == modemdevice->text(i)) 246 if(_pppdata->modemDevice() == modemdevice->text(i))
228 modemdevice->setCurrentItem(i); 247 modemdevice->setCurrentItem(i);
229 } 248 }
230 249
231 for(int i=0; i <= flowcontrol->count()-1; i++) { 250 for(int i=0; i <= flowcontrol->count()-1; i++) {
232 if(_ifaceppp->data()->flowcontrol() == flowcontrol->text(i)) 251 if(_pppdata->flowcontrol() == flowcontrol->text(i))
233 flowcontrol->setCurrentItem(i); 252 flowcontrol->setCurrentItem(i);
234 } 253 }
235 254
236 //set the modem speed 255 //set the modem speed
237 for(int i=0; i < baud_c->count(); i++) 256 for(int i=0; i < baud_c->count(); i++)
238 if(baud_c->text(i) == _ifaceppp->data()->speed()) 257 if(baud_c->text(i) == _pppdata->speed())
239 baud_c->setCurrentItem(i); 258 baud_c->setCurrentItem(i);
240 259
241 tl->setRowStretch(7, 1); 260 tl->setRowStretch(1, 1);
242} 261}
243 262
263ModemWidget::~ModemWidget()
264{
265 QStringList devs;
244 266
245void ModemWidget::speed_selection(int) { 267 for (int i=0;i<modemdevice->count();i++)
246 _ifaceppp->data()->setSpeed(baud_c->text(baud_c->currentItem())); 268 {
247} 269 QString s = modemdevice->text(i);
270 s.simplifyWhiteSpace();
271 if (! s.isEmpty() ) devs << s;
272 }
248 273
249 274
250void ModemWidget::setenter(int ) { 275 QString edited = modemdevice->currentText();
251 _ifaceppp->data()->setEnter(enter->text(enter->currentItem())); 276 if ( !( edited ).isEmpty() ) {
252} 277 edited.simplifyWhiteSpace();
278 if ( devs.contains( edited ) == 0 ) {
279 devs << edited;
280 }
281 _pppdata->setModemDevice( edited );
282 }
283
253 284
285 Config cfg("NetworkSetupPPP");
286 cfg.setGroup("Devices_General");
287 cfg.writeEntry("devices",devs,',');
254 288
255void ModemWidget::setmodemdc(int i) {
256 _ifaceppp->data()->setModemDevice(modemdevice->text(i));
257} 289}
258 290
291// void ModemWidget::speed_selection(int) {
292// _pppdata->setSpeed(baud_c->text(baud_c->currentItem()));
293// }
259 294
260void ModemWidget::setflowcontrol(int i) {
261 _ifaceppp->data()->setFlowcontrol(flowcontrol->text(i));
262}
263 295
296// void ModemWidget::setenter(int ) {
297// _pppdata->setEnter(enter->text(enter->currentItem()));
298// }
264 299
265void ModemWidget::modemlockfilechanged(bool set) {
266 _ifaceppp->data()->setModemLockFile(set);
267}
268 300
301// void ModemWidget::setmodemdc(int i) {
302// _pppdata->setModemDevice(modemdevice->text(i));
303// }
269 304
270void ModemWidget::modemtimeoutchanged(int n) { 305// void ModemWidget::setmodemdc( const QString &string ) {
271 _ifaceppp->data()->setModemTimeout(n); 306// _pppdata->setModemDevice( string );
272} 307// }
308
309// void ModemWidget::setflowcontrol(int i) {
310// _pppdata->setFlowcontrol(flowcontrol->text(i));
311// }
273 312
274 313
275ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent, 314// void ModemWidget::modemlockfilechanged(bool set) {
315// _pppdata->setModemLockFile(set);
316// }
317
318
319// void ModemWidget::modemtimeoutchanged(int n) {
320// _pppdata->setModemTimeout(n);
321// }
322
323
324
325bool ModemWidget::save()
326{
327 //first check to make sure that the device name is unique!
328 if(modemname->text().isEmpty() ||
329 !_pppdata->isUniqueDevname(modemname->text()))
330 return false;
331
332 qDebug("ModemWidget::save saving modem1 data");
333 _pppdata->setDevname( modemname->text() );
334 _pppdata->setModemDevice( modemdevice->currentText() );
335 _pppdata->setFlowcontrol(flowcontrol->currentText());
336 _pppdata->setFlowcontrol(flowcontrol->currentText());
337 _pppdata->setSpeed(baud_c->currentText());
338 _pppdata->setModemLockFile( modemlockfile->isChecked());
339 _pppdata->setModemTimeout( modemtimeout->value() );
340 return true;
341
342}
343
344ModemWidget2::ModemWidget2( PPPData *pd, InterfacePPP *ip, QWidget *parent,
276 const char *name) 345 const char *name)
277 : QWidget(parent, name), _ifaceppp(ifp) 346 : QWidget(parent, name), _pppdata(pd), _ifaceppp(ip)
278{ 347{
279 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint()); 348 QVBoxLayout *l1 = new QVBoxLayout(this, 0 );//, KDialog::spacingHint());
280 349
281 350
282 waitfordt = new QCheckBox(i18n("&Wait for dial tone before dialing"), this); 351 waitfordt = new QCheckBox(tr("&Wait for dial tone before dialing"), this);
283 waitfordt->setChecked(_ifaceppp->data()->waitForDialTone()); 352 waitfordt->setChecked(_pppdata->waitForDialTone());
284 connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool))); 353// connect(waitfordt, SIGNAL(toggled(bool)), SLOT(waitfordtchanged(bool)));
285 l1->addWidget(waitfordt); 354 l1->addWidget(waitfordt);
286 QWhatsThis::add(waitfordt, 355 QWhatsThis::add(waitfordt,
287 i18n("<p>Normally the modem waits for a dial tone\n" 356 tr("<p>Normally the modem waits for a dial tone\n"
288 "from your phone line, indicating that it can\n" 357 "from your phone line, indicating that it can\n"
289 "start to dial a number. If your modem does not\n" 358 "start to dial a number. If your modem does not\n"
290 "recognize this sound, or your local phone system\n" 359 "recognize this sound, or your local phone system\n"
@@ -296,16 +365,16 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
296 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" ); 365 QLabel *waitLabel = new QLabel( tr("Busy wait:"), this, "busyWait" );
297 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" ); 366 busywait = new QSpinBox( 0, 300, 5, this, "busyWait" );
298// busywait = new KIntNumInput(_pppdata->busyWait(), this); 367// busywait = new KIntNumInput(_pppdata->busyWait(), this);
299// busywait->setLabel(i18n("B&usy wait:")); 368// busywait->setLabel(tr("B&usy wait:"));
300// busywait->setRange(0, 300, 5, true); 369// busywait->setRange(0, 300, 5, true);
301 busywait->setSuffix(i18n(" sec")); 370 busywait->setSuffix(tr(" sec"));
302 connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int))); 371// connect(busywait, SIGNAL(valueChanged(int)), SLOT(busywaitchanged(int)));
303 waitLayout->addWidget(waitLabel); 372 waitLayout->addWidget(waitLabel);
304 waitLayout->addWidget(busywait); 373 waitLayout->addWidget(busywait);
305 l1->addLayout( waitLayout ); 374 l1->addLayout( waitLayout );
306 375
307 QWhatsThis::add(busywait, 376 QWhatsThis::add(busywait,
308 i18n("Specifies the number of seconds to wait before\n" 377 tr("Specifies the number of seconds to wait before\n"
309 "redial if all dialed numbers are busy. This is\n" 378 "redial if all dialed numbers are busy. This is\n"
310 "necessary because some modems get stuck if the\n" 379 "necessary because some modems get stuck if the\n"
311 "same number is busy too often.\n" 380 "same number is busy too often.\n"
@@ -318,9 +387,9 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
318 QHBoxLayout *hbl = new QHBoxLayout; 387 QHBoxLayout *hbl = new QHBoxLayout;
319 hbl->setSpacing(2);//KDialog::spacingHint()); 388 hbl->setSpacing(2);//KDialog::spacingHint());
320 389
321 QLabel *volumeLabel = new QLabel(i18n("Modem &volume:"), this); 390 QLabel *volumeLabel = new QLabel(tr("Modem &volume:"), this);
322 hbl->addWidget(volumeLabel); 391 hbl->addWidget(volumeLabel);
323 volume = new QSlider(0, 2, 1, _ifaceppp->data()->volume(), 392 volume = new QSlider(0, 2, 1, _pppdata->volume(),
324 QSlider::Horizontal, this); 393 QSlider::Horizontal, this);
325 volumeLabel->setBuddy(volume); 394 volumeLabel->setBuddy(volume);
326 volume->setTickmarks(QSlider::Below); 395 volume->setTickmarks(QSlider::Below);
@@ -328,9 +397,9 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
328 397
329 l1->addLayout(hbl); 398 l1->addLayout(hbl);
330 399
331 connect(volume, SIGNAL(valueChanged(int)), 400// connect(volume, SIGNAL(valueChanged(int)),
332 this, SLOT(volumeChanged(int))); 401 // this, SLOT(volumeChanged(int)));
333 QString tmp = i18n("Most modems have a speaker which makes\n" 402 QString tmp = tr("Most modems have a speaker which makes\n"
334 "a lot of noise when dialing. Here you can\n" 403 "a lot of noise when dialing. Here you can\n"
335 "either turn this completely off or select a\n" 404 "either turn this completely off or select a\n"
336 "lower volume.\n" 405 "lower volume.\n"
@@ -344,38 +413,38 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
344 l1->addSpacing(20); 413 l1->addSpacing(20);
345 414
346#if 0 415#if 0
347 chkbox1 = new QCheckBox(i18n("Modem asserts CD line"), this); 416 chkbox1 = new QCheckBox(tr("Modem asserts CD line"), this);
348 chkbox1->setChecked(_ifaceppp->data()->UseCDLine()); 417 chkbox1->setChecked(_pppdata->UseCDLine());
349 connect(chkbox1,SIGNAL(toggled(bool)), 418 connect(chkbox1,SIGNAL(toggled(bool)),
350 this,SLOT(use_cdline_toggled(bool))); 419 this,SLOT(use_cdline_toggled(bool)));
351 l12->addWidget(chkbox1); 420 l12->addWidget(chkbox1);
352 l12->addStretch(1); 421 l12->addStretch(1);
353 l1->addStretch(1); 422 l1->addStretch(1);
354 QWhatsThis::add(chkbox1, 423 QWhatsThis::add(chkbox1,
355 i18n("This controls how <i>kppp</i> detects that the modem\n" 424 tr("This controls how <i>kppp</i> detects that the modem\n"
356 "is not responding. Unless you are having\n" 425 "is not responding. Unless you are having\n"
357 "problems with this, do not modify this setting.\n" 426 "problems with this, do not modify this setting.\n"
358 "\n" 427 "\n"
359 "<b>Default</b>: Off")); 428 "<b>Default</b>: Off"));
360#endif 429#endif
361 430
362 modemcmds = new QPushButton(i18n("Mod&em Commands..."), this); 431 modemcmds = new QPushButton(tr("Mod&em Commands..."), this);
363 QWhatsThis::add(modemcmds, 432 QWhatsThis::add(modemcmds,
364 i18n("Allows you to change the AT command for\n" 433 tr("Allows you to change the AT command for\n"
365 "your modem.")); 434 "your modem."));
366 435
367 modeminfo_button = new QPushButton(i18n("&Query Modem..."), this); 436 modeminfo_button = new QPushButton(tr("&Query Modem..."), this);
368 QWhatsThis::add(modeminfo_button, 437 QWhatsThis::add(modeminfo_button,
369 i18n("Most modems support the ATI command set to\n" 438 tr("Most modems support the ATI command set to\n"
370 "find out vendor and revision of your modem.\n" 439 "find out vendor and revision of your modem.\n"
371 "\n" 440 "\n"
372 "Press this button to query your modem for\n" 441 "Press this button to query your modem for\n"
373 "this information. It can be useful to help\n" 442 "this information. It can be useful to help\n"
374 "you setup the modem")); 443 "you setup the modem"));
375 444
376// terminal_button = new QPushButton(i18n("&Terminal..."), this); 445// terminal_button = new QPushButton(tr("&Terminal..."), this);
377// QWhatsThis::add(terminal_button, 446// QWhatsThis::add(terminal_button,
378 // i18n("Opens the built-in terminal program. You\n" 447 // tr("Opens the built-in terminal program. You\n"
379 // "can use this if you want to play around\n" 448 // "can use this if you want to play around\n"
380 // "with your modem's AT command set")); 449 // "with your modem's AT command set"));
381 450
@@ -402,7 +471,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
402 471
403 472
404void ModemWidget2::modemcmdsbutton() { 473void ModemWidget2::modemcmdsbutton() {
405 ModemCommands mc(_ifaceppp->data(), this); 474 ModemCommands mc(_ifaceppp->data(), this, "commands" , true, Qt::WStyle_ContextHelp);
406 mc.showMaximized(); 475 mc.showMaximized();
407 mc.exec(); 476 mc.exec();
408} 477}
@@ -420,22 +489,30 @@ void ModemWidget2::query_modem() {
420// } 489// }
421 490
422 491
423#if 0 492// #if 0
424void ModemWidget2::use_cdline_toggled(bool on) { 493// void ModemWidget2::use_cdline_toggled(bool on) {
425 _ifaceppp->data()->setUseCDLine(on); 494// _pppdata->setUseCDLine(on);
426} 495// }
427#endif 496// #endif
428 497
429void ModemWidget2::waitfordtchanged(bool b) { 498// void ModemWidget2::waitfordtchanged(bool b) {
430 _ifaceppp->data()->setWaitForDialTone((int)b); 499// _pppdata->setWaitForDialTone((int)b);
431} 500// }
432 501
433void ModemWidget2::busywaitchanged(int n) { 502// void ModemWidget2::busywaitchanged(int n) {
434 _ifaceppp->data()->setbusyWait(n); 503// _pppdata->setbusyWait(n);
435} 504// }
436 505
437 506
438void ModemWidget2::volumeChanged(int v) { 507// void ModemWidget2::volumeChanged(int v) {
439 _ifaceppp->data()->setVolume(v); 508// _pppdata->setVolume(v);
509// }
510
511bool ModemWidget2::save()
512{
513 _pppdata->setWaitForDialTone(waitfordt->isChecked());
514 _pppdata->setbusyWait(busywait->value());
515 _pppdata->setVolume(volume->value());
516 return true;
440} 517}
441 518
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
@@ -36,19 +36,24 @@ class QCheckBox;
36class QComboBox; 36class QComboBox;
37class PPPData; 37class PPPData;
38class InterfacePPP; 38class InterfacePPP;
39class QLineEdit;
39 40
40class ModemWidget : public QWidget { 41class ModemWidget : public QWidget {
41 Q_OBJECT 42 Q_OBJECT
42public: 43public:
43 ModemWidget( InterfacePPP*, QWidget *parent=0, const char *name=0 ); 44 ModemWidget(PPPData*, QWidget *parent=0, const char *name=0 );
45 ~ModemWidget();
44 46
45private slots: 47 bool save();
46 void setmodemdc(int); 48
47 void setflowcontrol(int); 49/* private slots: */
48 void modemtimeoutchanged(int); 50 /* void setmodemdc(int); */
49 void modemlockfilechanged(bool); 51/* void setmodemdc(const QString &); */
50 void setenter(int); 52 /* void setflowcontrol(int); */
51 void speed_selection(int); 53 /* void modemtimeoutchanged(int); */
54 /* void modemlockfilechanged(bool); */
55 /* void setenter(int); */
56/* void speed_selection(int); */
52 57
53private: 58private:
54 QComboBox *enter; 59 QComboBox *enter;
@@ -56,6 +61,7 @@ private:
56 /* QLabel *label2; */ 61 /* QLabel *label2; */
57 /* QLabel *labeltmp; */ 62 /* QLabel *labeltmp; */
58 /* QLabel *labelenter; */ 63 /* QLabel *labelenter; */
64 QLineEdit *modemname;
59 QComboBox *modemdevice; 65 QComboBox *modemdevice;
60 QComboBox *flowcontrol; 66 QComboBox *flowcontrol;
61 67
@@ -64,23 +70,24 @@ private:
64 70
65 QSpinBox *modemtimeout; 71 QSpinBox *modemtimeout;
66 QCheckBox *modemlockfile; 72 QCheckBox *modemlockfile;
67 InterfacePPP *_ifaceppp; 73 PPPData *_pppdata;
68}; 74};
69 75
70 76
71class ModemWidget2 : public QWidget { 77class ModemWidget2 : public QWidget {
72 Q_OBJECT 78 Q_OBJECT
73public: 79public:
74 ModemWidget2( InterfacePPP*, QWidget *parent=0, const char *name=0 ); 80 ModemWidget2( PPPData*, InterfacePPP*, QWidget *parent=0, const char *name=0 );
81 bool save();
75 82
76private slots: 83private slots:
77 void waitfordtchanged(bool); 84/* void waitfordtchanged(bool); */
78 void busywaitchanged(int); 85 /* void busywaitchanged(int); */
79 // void use_cdline_toggled(bool); 86 // void use_cdline_toggled(bool);
80 void modemcmdsbutton(); 87 void modemcmdsbutton();
81 // void terminal(); 88 // void terminal();
82 void query_modem(); 89 void query_modem();
83 void volumeChanged(int); 90 // void volumeChanged(int);
84 91
85private: 92private:
86 QLabel *labeltmp; 93 QLabel *labeltmp;
@@ -92,6 +99,7 @@ private:
92 QSpinBox *busywait; 99 QSpinBox *busywait;
93 QCheckBox *chkbox1; 100 QCheckBox *chkbox1;
94 QSlider *volume; 101 QSlider *volume;
102 PPPData *_pppdata;
95 InterfacePPP *_ifaceppp; 103 InterfacePPP *_ifaceppp;
96}; 104};
97 105
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,9 +1,7 @@
1#include "interfaceinformationppp.h" 1#include "interfaceinformationppp.h"
2 2
3
4#include <qpushbutton.h> 3#include <qpushbutton.h>
5#include <qlabel.h> 4#include <qlabel.h>
6//#include <qgroupbox.h>
7#include <qmessagebox.h> 5#include <qmessagebox.h>
8#include <qabstractlayout.h> 6#include <qabstractlayout.h>
9 7
@@ -20,17 +18,23 @@
20 * just display's information about the interface that is passed to it. 18 * just display's information about the interface that is passed to it.
21 */ 19 */
22InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f) 20InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f)
23 :InterfaceInformationImp(parent, name, i, f) 21 :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp)
24{ 22{
25 qDebug("InterfaceInformationPPP::InterfaceInformationPPP"); 23 qDebug("InterfaceInformationPPP::InterfaceInformationPPP %s", name);
26 con = new ConnectWidget( (InterfacePPP*)i, this, "con" ); 24 con = new ConnectWidget( (InterfacePPP*)i, this, "con" );
27 con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, 25 con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding,
28 QSizePolicy::Fixed) ); 26 QSizePolicy::Fixed) );
29 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum ); 27
30 InterfaceInformationLayout->addItem( spacer, 7, 0 ); 28 macAddressLabel->hide();
31 InterfaceInformationLayout->addMultiCellWidget( con, 8, 8, 0, 1 ); 29 subnetMaskLabel->hide();
32 // InterfaceInformationLayout->addWidget( con, 7, 0 ); 30 broadcastLabel->hide();
31 TextLabel23->hide();
32 TextLabel21->hide();
33 TextLabel24->hide();
34
35 InterfaceInformationLayout->addWidget( con, 1, 0 );
33 connect(i, SIGNAL(begin_connect()),con, SLOT(preinit())); 36 connect(i, SIGNAL(begin_connect()),con, SLOT(preinit()));
37 connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) );
34} 38}
35 39
36 40
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,6 +1,8 @@
1 1
2#include <qmessagebox.h> 2#include <qmessagebox.h>
3#define i18n QObject::tr 3#include <qlayout.h>
4#include <qlineedit.h>
5#include <qlabel.h>
4 6
5#include "auth.h" 7#include "auth.h"
6#include "interfaceppp.h" 8#include "interfaceppp.h"
@@ -15,18 +17,18 @@ InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status)
15 qDebug("InterfacePPP::InterfacePPP("); 17 qDebug("InterfacePPP::InterfacePPP(");
16} 18}
17 19
18PPPData* InterfacePPP::data() 20PPPData* InterfacePPP::data()const
19{ 21{
20 if (!_dataPtr){ 22 if (!_dataPtr){
21 qDebug("creating new Data obj"); 23 qDebug("creating new Data obj");
22 _dataPtr = new PPPData(); 24 _dataPtr = new PPPData();
23 _dataPtr->setModemDevice( getInterfaceName() ); 25 _dataPtr->setDevice( getInterfaceName() );
24 _dataPtr->setAccount( getHardwareName() ); 26 _dataPtr->setAccount( getHardwareName() );
25 } 27 }
26 return _dataPtr; 28 return _dataPtr;
27} 29}
28 30
29Modem* InterfacePPP::modem() 31Modem* InterfacePPP::modem()const
30{ 32{
31 if (!_modemPtr){ 33 if (!_modemPtr){
32 qDebug("creating new modem obj"); 34 qDebug("creating new modem obj");
@@ -38,27 +40,42 @@ Modem* InterfacePPP::modem()
38bool InterfacePPP::refresh() 40bool InterfacePPP::refresh()
39{ 41{
40 qDebug("InterfacePPP::refresh()"); 42 qDebug("InterfacePPP::refresh()");
41 updateInterface(this); 43 QString old = getInterfaceName();
42 QMessageBox::information(0,"Not Implemented","This feature is not yet implemneted... ;-("); 44 setInterfaceName( modem()->pppDevice() );
43 return false; 45
46 (void)Interface::refresh();
47
48 setInterfaceName( old );
49 emit updateInterface(this);
50
51 return true;
44} 52}
45 53
46void InterfacePPP::start() 54void InterfacePPP::start()
47{ 55{
48 qDebug("InterfacePPP::start"); 56 qDebug("InterfacePPP::start");
49// should work...
50// if (data()->password().isEmpty() ){
51// //FIXME: ask for password
52// qDebug("using dummy password");
53// QMessageBox::critical( 0, "no password", "you should be prompted for a password, but you are not! ;-)");
54// }
55 57
58 if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) {
59
60 QDialog mb( 0, "Dialog", true );
61 mb.setCaption( tr( "No password" ) );
62 QVBoxLayout layout( &mb );
63 QLabel text ( &mb );
64 text.setText( tr("Username defined but no password\n Please enter a password") );
65 QLineEdit lineedit( &mb );
66 lineedit.setEchoMode( QLineEdit::Password );
67 layout.addWidget( &text );
68 layout.addWidget( &lineedit );
69 if ( mb.exec() == QDialog::Accepted ) {
70 data()->setPassword( lineedit.text() );
71 }
72 }
56 73
57 QFileInfo info(pppdPath()); 74 QFileInfo info(pppdPath());
58 75
59 if(!info.exists()){ 76 if(!info.exists()){
60 QMessageBox::warning(0, tr("Error"), 77 QMessageBox::warning(0, tr("Error"),
61 i18n("<qt>Cannot find the PPP daemon!<br>" 78 QObject::tr("<qt>Cannot find the PPP daemon!<br>"
62 "Make sure that pppd is installed and " 79 "Make sure that pppd is installed and "
63 "that you have entered the correct path.</qt>")); 80 "that you have entered the correct path.</qt>"));
64 return; 81 return;
@@ -67,7 +84,7 @@ void InterfacePPP::start()
67 if(!info.isExecutable()){ 84 if(!info.isExecutable()){
68 85
69 QString string; 86 QString string;
70 string = i18n( "<qt>Cannot execute:<br> %1<br>" 87 string = QObject::tr( "<qt>Cannot execute:<br> %1<br>"
71 "Please make sure that you have given " 88 "Please make sure that you have given "
72 "setuid permission and that " 89 "setuid permission and that "
73 "pppd is executable.<br>").arg(pppdPath()); 90 "pppd is executable.<br>").arg(pppdPath());
@@ -81,7 +98,7 @@ void InterfacePPP::start()
81 98
82 if(!info2.exists()){ 99 if(!info2.exists()){
83 QString string; 100 QString string;
84 string = i18n( "<qt>Cannot find:<br> %1<br>" 101 string = QObject::tr( "<qt>Cannot find:<br> %1<br>"
85 "Please make sure you have setup " 102 "Please make sure you have setup "
86 "your modem device properly " 103 "your modem device properly "
87 "and/or adjust the location of the modem device on " 104 "and/or adjust the location of the modem device on "
@@ -98,7 +115,7 @@ void InterfacePPP::start()
98 data()->authMethod() == AUTH_PAPCHAP ) { 115 data()->authMethod() == AUTH_PAPCHAP ) {
99 if(false){ //FIXME: ID_Edit->text().isEmpty()) { 116 if(false){ //FIXME: ID_Edit->text().isEmpty()) {
100 QMessageBox::warning(0,tr("Error"), 117 QMessageBox::warning(0,tr("Error"),
101 i18n("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); 118 QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>"));
102// FIXME: return; 119// FIXME: return;
103 } else { 120 } else {
104 if(!modem()->setSecret(data()->authMethod(), 121 if(!modem()->setSecret(data()->authMethod(),
@@ -106,7 +123,7 @@ void InterfacePPP::start()
106 PPPData::encodeWord(data()->password())) 123 PPPData::encodeWord(data()->password()))
107 ) { 124 ) {
108 QString s; 125 QString s;
109 s = i18n("<qt>Cannot create PAP/CHAP authentication<br>" 126 s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>"
110 "file \"%1\"</qt>").arg(PAP_AUTH_FILE); 127 "file \"%1\"</qt>").arg(PAP_AUTH_FILE);
111 QMessageBox::warning(0, tr("Error"), s); 128 QMessageBox::warning(0, tr("Error"), s);
112 return; 129 return;
@@ -115,7 +132,7 @@ void InterfacePPP::start()
115 } 132 }
116 133
117 if (data()->phonenumber().isEmpty()) { 134 if (data()->phonenumber().isEmpty()) {
118 QString s = i18n("You must specify a telephone number!"); 135 QString s = QObject::tr("You must specify a telephone number!");
119 QMessageBox::warning(0, tr("Error"), s); 136 QMessageBox::warning(0, tr("Error"), s);
120 return; 137 return;
121 } 138 }
@@ -132,6 +149,11 @@ void InterfacePPP::start()
132void InterfacePPP::stop() 149void InterfacePPP::stop()
133{ 150{
134 qDebug("InterfacePPP::stop"); 151 qDebug("InterfacePPP::stop");
152 // emit hangup_now();
153 status = false; // not connected
154 setStatus( false );
155 emit hangup_now();
156 refresh();
135 157
136} 158}
137 159
@@ -140,3 +162,13 @@ void InterfacePPP::save()
140 data()->save(); 162 data()->save();
141 emit updateInterface((Interface*) this); 163 emit updateInterface((Interface*) this);
142} 164}
165QString InterfacePPP::pppDev()const {
166 return modem()->pppDevice();
167}
168pid_t InterfacePPP::pppPID()const{
169 return modem()->pppPID();
170}
171void InterfacePPP::setPPPDpid( pid_t pid) {
172 setStatus( true );
173 modem()->setPPPDPid( pid );
174}
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,6 +1,8 @@
1#ifndef INTERFACEPPP_H 1#ifndef INTERFACEPPP_H
2#define INTERFACEPPP_H 2#define INTERFACEPPP_H
3 3
4#include <sys/types.h>
5
4#include "interface.h" 6#include "interface.h"
5 7
6class PPPData; 8class PPPData;
@@ -13,21 +15,25 @@ class InterfacePPP : public Interface
13public: 15public:
14 InterfacePPP(QObject *parent=0, const char *name="PPP", bool status=false); 16 InterfacePPP(QObject *parent=0, const char *name="PPP", bool status=false);
15 17
16 PPPData* data(); 18 PPPData* data()const;
17 Modem* modem(); 19 Modem* modem()const;
20 QString pppDev()const; // returns the ppp device.... /dev/ppp0...
21 pid_t pppPID()const;
18 22
19signals: 23signals:
20 void begin_connect(); 24 void begin_connect();
25 void hangup_now();
21 26
22public slots: 27public slots:
23 virtual bool refresh(); 28 virtual bool refresh();
24 virtual void start(); 29 virtual void start();
25 virtual void stop(); 30 virtual void stop();
26 void save(); 31 void save();
32 void setPPPDpid( pid_t ); // sets the pppd pid for modem...
27 33
28 private: 34 private:
29 Modem *_modemPtr; 35 mutable Modem *_modemPtr;
30 PPPData *_dataPtr; 36 mutable PPPData *_dataPtr;
31}; 37};
32 38
33 39
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
@@ -42,19 +42,8 @@
42// #include <kaboutdata.h> 42// #include <kaboutdata.h>
43// #include <kapplication.h> 43// #include <kapplication.h>
44#include <qbuttongroup.h> 44#include <qbuttongroup.h>
45//#include <kcmdlineargs.h>
46//#include <kconfig.h>
47//#include <kdebug.h>
48#define i18n QObject::tr
49//#include <kiconloader.h> // For BarIcon
50//#include <klocale.h>
51#include <qmessagebox.h> 45#include <qmessagebox.h>
52// #include <kseparator.h>
53// #include <kstandarddirs.h>
54// #include <kwin.h>
55// #include <khelpmenu.h>
56#include <qpushbutton.h> 46#include <qpushbutton.h>
57//#include <kguiitem.h>
58 47
59#include <stdlib.h> 48#include <stdlib.h>
60#include <errno.h> 49#include <errno.h>
@@ -78,7 +67,7 @@
78KPPPWidget *p_kppp = 0; 67KPPPWidget *p_kppp = 0;
79 68
80KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *name, bool modal, WFlags fl ) 69KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *name, bool modal, WFlags fl )
81 : QDialog(parent, name, modal, fl), _pppdata(pd) 70 : QDialog(parent, name, modal, Qt::WStyle_ContextHelp ), _pppdata(pd)
82{ 71{
83// tabWindow = 0; 72// tabWindow = 0;
84 p_kppp = this; 73 p_kppp = this;
@@ -108,7 +97,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
108 l1->setColStretch(1, 3); 97 l1->setColStretch(1, 3);
109 l1->setColStretch(2, 4); 98 l1->setColStretch(2, 4);
110 99
111 label1 = new QLabel(i18n("C&onnect to: "), this); 100 label1 = new QLabel(QObject::tr("C&onnect to: "), this);
112 l1->addWidget(label1, 0, 1); 101 l1->addWidget(label1, 0, 1);
113 102
114 connectto_c = new QComboBox(false, this); 103 connectto_c = new QComboBox(false, this);
@@ -118,7 +107,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
118 SLOT(newdefaultaccount(int))); 107 SLOT(newdefaultaccount(int)));
119 l1->addWidget(connectto_c, 0, 2); 108 l1->addWidget(connectto_c, 0, 2);
120 109
121 ID_Label = new QLabel(i18n("&Login ID:"), this); 110 ID_Label = new QLabel(QObject::tr("&Login ID:"), this);
122 l1->addWidget(ID_Label, 1, 1); 111 l1->addWidget(ID_Label, 1, 1);
123 112
124 // the entry line for usernames 113 // the entry line for usernames
@@ -127,7 +116,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
127 l1->addWidget(ID_Edit, 1, 2); 116 l1->addWidget(ID_Edit, 1, 2);
128 connect(ID_Edit, SIGNAL(returnPressed()), 117 connect(ID_Edit, SIGNAL(returnPressed()),
129 this, SLOT(enterPressedInID())); 118 this, SLOT(enterPressedInID()));
130 QString tmp = i18n("<p>Type in the username that you got from your\n" 119 QString tmp = QObject::tr("<p>Type in the username that you got from your\n"
131 "ISP. This is especially important for PAP\n" 120 "ISP. This is especially important for PAP\n"
132 "and CHAP. You may omit this when you use\n" 121 "and CHAP. You may omit this when you use\n"
133 "terminal-based or script-based authentication.\n" 122 "terminal-based or script-based authentication.\n"
@@ -138,7 +127,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
138 QWhatsThis::add(ID_Label,tmp); 127 QWhatsThis::add(ID_Label,tmp);
139 QWhatsThis::add(ID_Edit,tmp); 128 QWhatsThis::add(ID_Edit,tmp);
140 129
141 PW_Label = new QLabel(i18n("&Password:"), this); 130 PW_Label = new QLabel(QObject::tr("&Password:"), this);
142 l1->addWidget(PW_Label, 2, 1); 131 l1->addWidget(PW_Label, 2, 1);
143 132
144 PW_Edit= new QLineEdit(this); 133 PW_Edit= new QLineEdit(this);
@@ -148,7 +137,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
148 connect(PW_Edit, SIGNAL(returnPressed()), 137 connect(PW_Edit, SIGNAL(returnPressed()),
149 this, SLOT(enterPressedInPW())); 138 this, SLOT(enterPressedInPW()));
150 139
151 tmp = i18n("<p>Type in the password that you got from your\n" 140 tmp = QObject::tr("<p>Type in the password that you got from your\n"
152 "ISP. This is especially important for PAP\n" 141 "ISP. This is especially important for PAP\n"
153 "and CHAP. You may omit this when you use\n" 142 "and CHAP. You may omit this when you use\n"
154 "terminal-based or script-based authentication.\n" 143 "terminal-based or script-based authentication.\n"
@@ -164,14 +153,14 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
164 tl->addLayout(l3); 153 tl->addLayout(l3);
165 tl->addSpacing(5); 154 tl->addSpacing(5);
166 l3->addSpacing(10); 155 l3->addSpacing(10);
167 log = new QCheckBox(i18n("Show lo&g window"), this); 156 log = new QCheckBox(QObject::tr("Show lo&g window"), this);
168 connect(log, SIGNAL(toggled(bool)), 157 connect(log, SIGNAL(toggled(bool)),
169 this, SLOT(log_window_toggled(bool))); 158 this, SLOT(log_window_toggled(bool)));
170 log->setChecked(_pppdata->get_show_log_window()); 159 log->setChecked(_pppdata->get_show_log_window());
171 l3->addWidget(log); 160 l3->addWidget(log);
172 161
173 QWhatsThis::add(log, 162 QWhatsThis::add(log,
174 i18n("<p>This controls whether a log window is shown.\n" 163 QObject::tr("<p>This controls whether a log window is shown.\n"
175 "A log window shows the communication between\n" 164 "A log window shows the communication between\n"
176 "<i>kppp</i> and your modem. This will help you\n" 165 "<i>kppp</i> and your modem. This will help you\n"
177 "in tracking down problems.\n" 166 "in tracking down problems.\n"
@@ -186,14 +175,14 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
186 tl->addLayout(l2); 175 tl->addLayout(l2);
187 176
188 int minw = 0; 177 int minw = 0;
189 quit_b = new QPushButton(i18n("&Quit"), this); 178 quit_b = new QPushButton(QObject::tr("&Quit"), this);
190 // quit_b-> setGuiItem (KGuiItem(i18n("&Quit"), "exit" ) ); 179 // quit_b-> setGuiItem (KGuiItem(QObject::tr("&Quit"), "exit" ) );
191 connect( quit_b, SIGNAL(clicked()), SLOT(quitbutton())); 180 connect( quit_b, SIGNAL(clicked()), SLOT(quitbutton()));
192 if(quit_b->sizeHint().width() > minw) 181 if(quit_b->sizeHint().width() > minw)
193 minw = quit_b->sizeHint().width(); 182 minw = quit_b->sizeHint().width();
194 183
195 setup_b = new QPushButton(i18n("&Setup..."), this); 184 setup_b = new QPushButton(QObject::tr("&Setup..."), this);
196// setup_b->setGuiItem (KGuiItem(i18n("&Setup...")) ); 185// setup_b->setGuiItem (KGuiItem(QObject::tr("&Setup...")) );
197 connect( setup_b, SIGNAL(clicked()), SLOT(expandbutton())); 186 connect( setup_b, SIGNAL(clicked()), SLOT(expandbutton()));
198 if(setup_b->sizeHint().width() > minw) 187 if(setup_b->sizeHint().width() > minw)
199 minw = setup_b->sizeHint().width(); 188 minw = setup_b->sizeHint().width();
@@ -203,17 +192,17 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
203// if(_pppdata->access() != KConfig::ReadWrite) 192// if(_pppdata->access() != KConfig::ReadWrite)
204 // setup_b->setEnabled(false); 193 // setup_b->setEnabled(false);
205 194
206// help_b = new QPushButton(i18n("&Help"), this); 195// help_b = new QPushButton(QObject::tr("&Help"), this);
207// connect( help_b, SIGNAL(clicked()), SLOT(helpbutton())); 196// connect( help_b, SIGNAL(clicked()), SLOT(helpbutton()));
208 197
209// KHelpMenu *helpMenu = new KHelpMenu(this, KGlobal::instance()->aboutData(), true); 198// KHelpMenu *helpMenu = new KHelpMenu(this, KGlobal::instance()->aboutData(), true);
210// help_b->setPopup((QPopupMenu*)helpMenu->menu()); 199// help_b->setPopup((QPopupMenu*)helpMenu->menu());
211// help_b->setGuiItem (KGuiItem(i18n("&Help"), "help" ) ); 200// help_b->setGuiItem (KGuiItem(QObject::tr("&Help"), "help" ) );
212 201
213// if(help_b->sizeHint().width() > minw) 202// if(help_b->sizeHint().width() > minw)
214// minw = help_b->sizeHint().width(); 203// minw = help_b->sizeHint().width();
215 204
216 connect_b = new QPushButton(i18n("&Connect"), this); 205 connect_b = new QPushButton(QObject::tr("&Connect"), this);
217 connect_b->setDefault(true); 206 connect_b->setDefault(true);
218 connect_b->setFocus(); 207 connect_b->setFocus();
219 connect(connect_b, SIGNAL(clicked()), SLOT(beginConnect())); 208 connect(connect_b, SIGNAL(clicked()), SLOT(beginConnect()));
@@ -286,7 +275,7 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
286// bool result = _pppdata->setAccount(m_strCmdlAccount); 275// bool result = _pppdata->setAccount(m_strCmdlAccount);
287// if (!result){ 276// if (!result){
288// QString string; 277// QString string;
289// string = i18n("No such Account:\n%1").arg(m_strCmdlAccount); 278// string = QObject::tr("No such Account:\n%1").arg(m_strCmdlAccount);
290// KMessageBox::error(this, string); 279// KMessageBox::error(this, string);
291// m_bCmdlAccount = false; 280// m_bCmdlAccount = false;
292// this->show(); 281// this->show();
@@ -482,21 +471,21 @@ void KPPPWidget::sigPPPDDied() {
482 // // not in a signal handler !!! KNotifyClient::beep(); 471 // // not in a signal handler !!! KNotifyClient::beep();
483 QString msg; 472 QString msg;
484 if (_pppdata->pppdError() == E_IF_TIMEOUT) 473 if (_pppdata->pppdError() == E_IF_TIMEOUT)
485 msg = i18n("Timeout expired while waiting for the PPP interface " 474 msg = QObject::tr("Timeout expired while waiting for the PPP interface "
486 "to come up!"); 475 "to come up!");
487 else { 476 else {
488 msg = i18n("<p>The pppd daemon died unexpectedly!</p>"); 477 msg = QObject::tr("<p>The pppd daemon died unexpectedly!</p>");
489 Modem::modem->pppdExitStatus(); 478 Modem::modem->pppdExitStatus();
490 if (Modem::modem->lastStatus != 99) {// more recent pppds only 479 if (Modem::modem->lastStatus != 99) {// more recent pppds only
491 msg += i18n("<p>Exit status: %1").arg(Modem::modem->lastStatus); 480 msg += QObject::tr("<p>Exit status: %1").arg(Modem::modem->lastStatus);
492 msg += i18n("</p><p>See 'man pppd' for an explanation of the error " 481 msg += QObject::tr("</p><p>See 'man pppd' for an explanation of the error "
493 "codes or take a look at the kppp FAQ on " 482 "codes or take a look at the kppp FAQ on "
494 " <a href=http://devel-home.kde.org/~kppp/index.html>" 483 " <a href=http://devel-home.kde.org/~kppp/index.html>"
495 "http://devel-home.kde.org/~kppp/index.html</a></p>"); 484 "http://devel-home.kde.org/~kppp/index.html</a></p>");
496 } 485 }
497 } 486 }
498 487
499 // if(QMessageBox::warning(0, msg, i18n("Error"), i18n("&OK"), i18n("&Details...")) == QMessageBox::No) 488 // if(QMessageBox::warning(0, msg, QObject::tr("Error"), QObject::tr("&OK"), QObject::tr("&Details...")) == QMessageBox::No)
500 // // PPPL_ShowLog(); 489 // // PPPL_ShowLog();
501// } else { /* reconnect on disconnect */ 490// } else { /* reconnect on disconnect */
502 if (false){ 491 if (false){
@@ -527,7 +516,7 @@ void KPPPWidget::sigPPPDDied() {
527// // if(id == helperPid && helperPid != -1) { 516// // if(id == helperPid && helperPid != -1) {
528// // kdDebug(5002) << "It was the setuid child that died" << endl; 517// // kdDebug(5002) << "It was the setuid child that died" << endl;
529// // helperPid = -1; 518// // helperPid = -1;
530// QString msg = i18n("kppp's helper process just died.\n" 519// QString msg = QObject::tr("kppp's helper process just died.\n"
531// "Since a further execution would be pointless, " 520// "Since a further execution would be pointless, "
532// "kppp will shut down now."); 521// "kppp will shut down now.");
533// QMessageBox::warning(0L,"error", msg); 522// QMessageBox::warning(0L,"error", msg);
@@ -560,7 +549,7 @@ void KPPPWidget::beginConnect() {
560 QFileInfo info(pppdPath()); 549 QFileInfo info(pppdPath());
561 550
562 if(!info.exists()){ 551 if(!info.exists()){
563 QMessageBox::warning(this, "error", i18n("Cannot find the PPP daemon!\n" 552 QMessageBox::warning(this, "error", QObject::tr("Cannot find the PPP daemon!\n"
564 "Make sure that pppd is installed and " 553 "Make sure that pppd is installed and "
565 "that you have entered the correct path.")); 554 "that you have entered the correct path."));
566 return; 555 return;
@@ -569,7 +558,7 @@ void KPPPWidget::beginConnect() {
569 if(!info.isExecutable()){ 558 if(!info.isExecutable()){
570 559
571 QString string; 560 QString string;
572 string = i18n("kppp cannot execute:\n %1\n" 561 string = QObject::tr("kppp cannot execute:\n %1\n"
573 "Please make sure that you have given kppp " 562 "Please make sure that you have given kppp "
574 "setuid permission and that " 563 "setuid permission and that "
575 "pppd is executable.").arg(_pppdata->pppdPath()); 564 "pppd is executable.").arg(_pppdata->pppdPath());
@@ -583,7 +572,7 @@ void KPPPWidget::beginConnect() {
583 572
584 if(!info2.exists()){ 573 if(!info2.exists()){
585 QString string; 574 QString string;
586 string = i18n("kppp can not find:\n %1\nPlease make sure you have setup " 575 string = QObject::tr("kppp can not find:\n %1\nPlease make sure you have setup "
587 "your modem device properly " 576 "your modem device properly "
588 "and/or adjust the location of the modem device on " 577 "and/or adjust the location of the modem device on "
589 "the modem tab of " 578 "the modem tab of "
@@ -599,14 +588,14 @@ void KPPPWidget::beginConnect() {
599 _pppdata->authMethod() == AUTH_PAPCHAP ) { 588 _pppdata->authMethod() == AUTH_PAPCHAP ) {
600 if(ID_Edit->text().isEmpty()) { 589 if(ID_Edit->text().isEmpty()) {
601 QMessageBox::warning(this,"error", 590 QMessageBox::warning(this,"error",
602 i18n("You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!")); 591 QObject::tr("You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!"));
603 return; 592 return;
604 } else { 593 } else {
605 if(!Modem::modem->setSecret(_pppdata->authMethod(), 594 if(!Modem::modem->setSecret(_pppdata->authMethod(),
606 encodeWord(_pppdata->storedUsername()), 595 encodeWord(_pppdata->storedUsername()),
607 encodeWord(_pppdata->password()))) { 596 encodeWord(_pppdata->password()))) {
608 QString s; 597 QString s;
609 s = i18n("Cannot create PAP/CHAP authentication\n" 598 s = QObject::tr("Cannot create PAP/CHAP authentication\n"
610 "file \"%1\"").arg(PAP_AUTH_FILE); 599 "file \"%1\"").arg(PAP_AUTH_FILE);
611 QMessageBox::warning(this, "error", s); 600 QMessageBox::warning(this, "error", s);
612 return; 601 return;
@@ -615,14 +604,14 @@ void KPPPWidget::beginConnect() {
615 } 604 }
616 605
617 if (_pppdata->phonenumber().isEmpty()) { 606 if (_pppdata->phonenumber().isEmpty()) {
618 QString s = i18n("You must specify a telephone number!"); 607 QString s = QObject::tr("You must specify a telephone number!");
619 QMessageBox::warning(this, "error", s); 608 QMessageBox::warning(this, "error", s);
620 return; 609 return;
621 } 610 }
622 611
623 this->hide(); 612 this->hide();
624 613
625 QString tit = i18n("Connecting to: %1").arg(_pppdata->accname()); 614 QString tit = QObject::tr("Connecting to: %1").arg(_pppdata->accname());
626// con->setCaption(tit); 615// con->setCaption(tit);
627 616
628// con->show(); 617// con->show();
@@ -636,8 +625,8 @@ void KPPPWidget::disconnect() {
636 if (!_pppdata->command_before_disconnect().isEmpty()) { 625 if (!_pppdata->command_before_disconnect().isEmpty()) {
637 con_win->hide(); 626 con_win->hide();
638 con->show(); 627 con->show();
639 con->setCaption(i18n("Disconnecting...")); 628 con->setCaption(QObject::tr("Disconnecting..."));
640 con->setMsg(i18n("Executing command before disconnection.")); 629 con->setMsg(QObject::tr("Executing command before disconnection."));
641 630
642 qApp->processEvents(); 631 qApp->processEvents();
643 QApplication::flushX(); 632 QApplication::flushX();
@@ -692,8 +681,8 @@ void KPPPWidget::disconnect() {
692void KPPPWidget::quitbutton() { 681void KPPPWidget::quitbutton() {
693 if(_pppdata->pppdRunning()) { 682 if(_pppdata->pppdRunning()) {
694 int ok = QMessageBox::warning(this, 683 int ok = QMessageBox::warning(this,
695 i18n("Exiting kPPP will close your PPP Session."), 684 QObject::tr("Exiting kPPP will close your PPP Session."),
696 i18n("Quit kPPP?")); 685 QObject::tr("Quit kPPP?"));
697 if(ok == QMessageBox::Yes) { 686 if(ok == QMessageBox::Yes) {
698 Modem::modem->killPPPDaemon(); 687 Modem::modem->killPPPDaemon();
699 QApplication::flushX(); 688 QApplication::flushX();
@@ -736,7 +725,7 @@ void KPPPWidget::quitbutton() {
736 // con_win, SLOT(slotAccounting(QString, QString))); 725 // con_win, SLOT(slotAccounting(QString, QString)));
737 726
738// // if(!acct->loadRuleSet(_pppdata->accountingFile())) { 727// // if(!acct->loadRuleSet(_pppdata->accountingFile())) {
739// // QString s= i18n("Can not load the accounting " 728// // QString s= QObject::tr("Can not load the accounting "
740 // // "ruleset \"%1\"!").arg(_pppdata->accountingFile()); 729 // // "ruleset \"%1\"!").arg(_pppdata->accountingFile());
741 730
742// // starting the messagebox with a timer will prevent us 731// // starting the messagebox with a timer will prevent us
@@ -826,7 +815,7 @@ void KPPPWidget::showNews() {
826 #define QUICKHELP_HINT "Hint_QuickHelp" 815 #define QUICKHELP_HINT "Hint_QuickHelp"
827 if(_pppdata->readNumConfig(GENERAL_GRP, QUICKHELP_HINT, 0) == 0) { 816 if(_pppdata->readNumConfig(GENERAL_GRP, QUICKHELP_HINT, 0) == 0) {
828 QDialog dlg(0, 0, true); 817 QDialog dlg(0, 0, true);
829 dlg.setCaption(i18n("Recent Changes in KPPP")); 818 dlg.setCaption(QObject::tr("Recent Changes in KPPP"));
830 819
831 QVBoxLayout *tl = new QVBoxLayout(&dlg, 10, 10); 820 QVBoxLayout *tl = new QVBoxLayout(&dlg, 10, 10);
832 QHBoxLayout *l1 = new QHBoxLayout(10); 821 QHBoxLayout *l1 = new QHBoxLayout(10);
@@ -839,7 +828,7 @@ void KPPPWidget::showNews() {
839 l1->addWidget(icon); 828 l1->addWidget(icon);
840 l1->addLayout(l2); 829 l1->addLayout(l2);
841 830
842 QLabel *l = new QLabel(i18n("From version 1.4.8 on, kppp has a new feature\n" 831 QLabel *l = new QLabel(QObject::tr("From version 1.4.8 on, kppp has a new feature\n"
843 "called \"Quickhelp\". It's similar to a tooltip,\n" 832 "called \"Quickhelp\". It's similar to a tooltip,\n"
844 "but you can activate it whenever you want.\n" 833 "but you can activate it whenever you want.\n"
845 "\n" 834 "\n"
@@ -851,12 +840,12 @@ void KPPPWidget::showNews() {
851 "To test it, right-click somewhere in this text."), 840 "To test it, right-click somewhere in this text."),
852 &dlg); 841 &dlg);
853 842
854 QCheckBox *cb = new QCheckBox(i18n("Don't show this hint again"), &dlg); 843 QCheckBox *cb = new QCheckBox(QObject::tr("Don't show this hint again"), &dlg);
855 cb->setFixedSize(cb->sizeHint()); 844 cb->setFixedSize(cb->sizeHint());
856 845
857 KButtonBox *bbox = new KButtonBox(&dlg); 846 KButtonBox *bbox = new KButtonBox(&dlg);
858 bbox->addStretch(1); 847 bbox->addStretch(1);
859 QPushButton *ok = bbox->addButton(i18n("OK")); 848 QPushButton *ok = bbox->addButton(QObject::tr("OK"));
860 ok->setDefault(true); 849 ok->setDefault(true);
861 dlg.connect(ok, SIGNAL(clicked()), 850 dlg.connect(ok, SIGNAL(clicked()),
862 &dlg, SLOT(accept())); 851 &dlg, SLOT(accept()));
@@ -867,7 +856,7 @@ void KPPPWidget::showNews() {
867 l2->addWidget(cb); 856 l2->addWidget(cb);
868 tl->addWidget(bbox); 857 tl->addWidget(bbox);
869 858
870 QString tmp = i18n("This is an example of <b>QuickHelp</b>.\n" 859 QString tmp = QObject::tr("This is an example of <b>QuickHelp</b>.\n"
871 "This window will stay open until you\n" 860 "This window will stay open until you\n"
872 "click a mouse button or a press a key.\n"); 861 "click a mouse button or a press a key.\n");
873 862
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
@@ -51,11 +51,8 @@
51#include "auth.h" 51#include "auth.h"
52#include "modem.h" 52#include "modem.h"
53#include "pppdata.h" 53#include "pppdata.h"
54//#include <klocale.h>
55#define i18n QObject::tr
56#define qError qDebug 54#define qError qDebug
57//#include <kdebug.h> 55
58//#include <config.h>
59 56
60#define MY_ASSERT(x) if (!(x)) { \ 57#define MY_ASSERT(x) if (!(x)) { \
61 qFatal( "ASSERT: \"%s\" in %s (%d)\n",#x,__FILE__,__LINE__); \ 58 qFatal( "ASSERT: \"%s\" in %s (%d)\n",#x,__FILE__,__LINE__); \
@@ -99,7 +96,7 @@ Modem::Modem( PPPData* pd )
99 modemfd = -1; 96 modemfd = -1;
100 _pppdExitStatus = -1; 97 _pppdExitStatus = -1;
101 pppdPid = -1; 98 pppdPid = -1;
102 sn = 0L; 99 sn = m_modemDebug = 0L;
103 data_mode = false; 100 data_mode = false;
104 modem_is_locked = false; 101 modem_is_locked = false;
105 lockfile[0] = '\0'; 102 lockfile[0] = '\0';
@@ -169,7 +166,7 @@ bool Modem::opentty() {
169 device = _pppdata->modemDevice(); 166 device = _pppdata->modemDevice();
170 if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { 167 if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) {
171 qDebug("error opening modem device !"); 168 qDebug("error opening modem device !");
172 errmsg = i18n("Unable to open modem."); 169 errmsg = QObject::tr("Unable to open modem.");
173 return false; 170 return false;
174 } 171 }
175//bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { 172//bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) {
@@ -178,13 +175,13 @@ bool Modem::opentty() {
178#if 0 175#if 0
179 if(_pppdata->UseCDLine()) { 176 if(_pppdata->UseCDLine()) {
180 if(ioctl(modemfd, TIOCMGET, &flags) == -1) { 177 if(ioctl(modemfd, TIOCMGET, &flags) == -1) {
181 errmsg = i18n("Unable to detect state of CD line."); 178 errmsg = QObject::tr("Unable to detect state of CD line.");
182 ::close(modemfd); 179 ::close(modemfd);
183 modemfd = -1; 180 modemfd = -1;
184 return false; 181 return false;
185 } 182 }
186 if ((flags&TIOCM_CD) == 0) { 183 if ((flags&TIOCM_CD) == 0) {
187 errmsg = i18n("The modem is not ready."); 184 errmsg = QObject::tr("The modem is not ready.");
188 ::close(modemfd); 185 ::close(modemfd);
189 modemfd = -1; 186 modemfd = -1;
190 return false; 187 return false;
@@ -200,7 +197,7 @@ bool Modem::opentty() {
200 tcsendbreak(modemfd, 0); 197 tcsendbreak(modemfd, 0);
201 sleep(1); 198 sleep(1);
202 if(tcgetattr(modemfd, &tty) < 0){ 199 if(tcgetattr(modemfd, &tty) < 0){
203 errmsg = i18n("The modem is busy."); 200 errmsg = QObject::tr("The modem is busy.");
204 ::close(modemfd); 201 ::close(modemfd);
205 modemfd = -1; 202 modemfd = -1;
206 return false; 203 return false;
@@ -245,13 +242,13 @@ bool Modem::opentty() {
245 tcdrain(modemfd); 242 tcdrain(modemfd);
246 243
247 if(tcsetattr(modemfd, TCSANOW, &tty) < 0){ 244 if(tcsetattr(modemfd, TCSANOW, &tty) < 0){
248 errmsg = i18n("The modem is busy."); 245 errmsg = QObject::tr("The modem is busy.");
249 ::close(modemfd); 246 ::close(modemfd);
250 modemfd=-1; 247 modemfd=-1;
251 return false; 248 return false;
252 } 249 }
253 250
254 errmsg = i18n("Modem Ready."); 251 errmsg = QObject::tr("Modem Ready.");
255 return true; 252 return true;
256} 253}
257 254
@@ -263,7 +260,7 @@ bool Modem::closetty() {
263 tcflush(modemfd, TCIOFLUSH); 260 tcflush(modemfd, TCIOFLUSH);
264 261
265 if(tcsetattr(modemfd, TCSANOW, &initial_tty) < 0){ 262 if(tcsetattr(modemfd, TCSANOW, &initial_tty) < 0){
266 errmsg = i18n("Can't restore tty settings: tcsetattr()\n"); 263 errmsg = QObject::tr("Can't restore tty settings: tcsetattr()\n");
267 ::close(modemfd); 264 ::close(modemfd);
268 modemfd = -1; 265 modemfd = -1;
269 return false; 266 return false;
@@ -413,7 +410,7 @@ bool Modem::hangup() {
413 closetty(); 410 closetty();
414 close(modemfd); 411 close(modemfd);
415 modemfd = -1; 412 modemfd = -1;
416 errmsg = i18n("The modem does not respond."); 413 errmsg = QObject::tr("The modem does not respond.");
417 return false; 414 return false;
418 } 415 }
419 416
@@ -555,7 +552,7 @@ QString Modem::parseModemSpeed(const QString &s) {
555 } 552 }
556 553
557 if(rx == -1 && tx == -1) 554 if(rx == -1 && tx == -1)
558 result = i18n("Unknown speed"); 555 result = QObject::tr("Unknown speed");
559 else if(tx == -1) 556 else if(tx == -1)
560 result.setNum(rx); 557 result.setNum(rx);
561 else if(rx == -1) // should not happen 558 else if(rx == -1) // should not happen
@@ -877,10 +874,14 @@ bool Modem::execpppd(const char *arguments) {
877 874
878 _pppdExitStatus = -1; 875 _pppdExitStatus = -1;
879 876
877 (void)::pipe( m_pppdLOG );
878
880 switch(pppdPid = fork()) 879 switch(pppdPid = fork())
881 { 880 {
882 case -1: 881 case -1:
883 fprintf(stderr,"In parent: fork() failed\n"); 882 fprintf(stderr,"In parent: fork() failed\n");
883 ::close( m_pppdLOG[0] );
884 ::close( m_pppdLOG[1] );
884 return false; 885 return false;
885 break; 886 break;
886 887
@@ -902,9 +903,13 @@ bool Modem::execpppd(const char *arguments) {
902 if(tcsetpgrp(modemfd, pgrpid)<0) 903 if(tcsetpgrp(modemfd, pgrpid)<0)
903 fprintf(stderr, "tcsetpgrp() failed.\n"); 904 fprintf(stderr, "tcsetpgrp() failed.\n");
904 905
906 ::close( m_pppdLOG[0] );
907 ::setenv( "LANG", "C", 1 ); // overwrite
908 dup2(m_pppdLOG[1], 11 ); // for logfd 11
905 dup2(modemfd, 0); 909 dup2(modemfd, 0);
906 dup2(modemfd, 1); 910 dup2(modemfd, 1);
907 911
912
908 switch (checkForInterface()) { 913 switch (checkForInterface()) {
909 case 1: 914 case 1:
910 fprintf(stderr, "Cannot determine if kernel supports ppp.\n"); 915 fprintf(stderr, "Cannot determine if kernel supports ppp.\n");
@@ -924,7 +929,24 @@ bool Modem::execpppd(const char *arguments) {
924 default: 929 default:
925 qDebug("In parent: pppd pid %d\n",pppdPid); 930 qDebug("In parent: pppd pid %d\n",pppdPid);
926 close(modemfd); 931 close(modemfd);
932
933 ::close( m_pppdLOG[1] );
934 // set it to nonblocking io
935 int flag = ::fcntl( m_pppdLOG[0], F_GETFL );
936
937 if ( !(flag & O_NONBLOCK) ) {
938 qDebug("Setting nonblocking io");
939 flag |= O_NONBLOCK;
940 ::fcntl(m_pppdLOG[0], F_SETFL, flag );
941 }
942
943 delete m_modemDebug;
944 m_modemDebug = new QSocketNotifier(m_pppdLOG[0], QSocketNotifier::Read, this );
945 connect(m_modemDebug, SIGNAL(activated(int) ),
946 this, SLOT(slotModemDebug(int) ) );
947
927 modemfd = -1; 948 modemfd = -1;
949 m_pppdDev = QString::fromLatin1("ppp0");
928 return true; 950 return true;
929 break; 951 break;
930 } 952 }
@@ -932,7 +954,10 @@ bool Modem::execpppd(const char *arguments) {
932 954
933 955
934bool Modem::killpppd() { 956bool Modem::killpppd() {
957 qDebug("In killpppd and pid is %d", pppdPid );
935 if(pppdPid > 0) { 958 if(pppdPid > 0) {
959 delete m_modemDebug;
960 m_modemDebug = 0;
936 qDebug("In killpppd(): Sending SIGTERM to %d\n", pppdPid); 961 qDebug("In killpppd(): Sending SIGTERM to %d\n", pppdPid);
937 if(kill(pppdPid, SIGTERM) < 0) { 962 if(kill(pppdPid, SIGTERM) < 0) {
938 qDebug("Error terminating %d. Sending SIGKILL\n", pppdPid); 963 qDebug("Error terminating %d. Sending SIGKILL\n", pppdPid);
@@ -1021,3 +1046,35 @@ bool Modem::setHostname(const QString & name)
1021 return sethostname(name, name.length()) == 0; 1046 return sethostname(name, name.length()) == 0;
1022} 1047}
1023 1048
1049QString Modem::pppDevice()const {
1050 return m_pppdDev;
1051}
1052void Modem::setPPPDevice( const QString& dev ) {
1053 m_pppdDev = dev;
1054}
1055pid_t Modem::pppPID()const {
1056 return pppdPid;
1057}
1058void Modem::setPPPDPid( pid_t pid ) {
1059 qDebug("Modem setting pid");
1060 _pppdExitStatus = -1;
1061 pppdPid = pid;
1062 modemfd = -1;
1063}
1064void Modem::slotModemDebug(int fd) {
1065 char buf[2049];
1066 int len;
1067
1068 // read in pppd data look for Using interface
1069 // then read the interface
1070 // we limit to 10 device now 0-9
1071 if((len = ::read(fd, buf, 2048)) > 0) {
1072 buf[len+1] = '\0';
1073 char *found;
1074 if ( (found = ::strstr(buf, "Using interface ") ) ) {
1075 found += 16;
1076 m_pppdDev = QString::fromLatin1(found, 5 );
1077 m_pppdDev = m_pppdDev.simplifyWhiteSpace();
1078 }
1079 }
1080}
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
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 1997 Bernd Johannes Wuebben 6 * Copyright (C) 1997 Bernd Johannes Wuebben
7 * wuebben@math.cornell.edu 7 * wuebben@math.cornell.edu
8 * 8 *
9 * This file was added by Harri Porten <porten@tu-harburg.de> 9 * This file was added by Harri Porten <porten@tu-harburg.de>
10 * 10 *
11 * 11 *
@@ -47,7 +47,9 @@ public:
47 ~Modem(); 47 ~Modem();
48 48
49 const QString getDevice() {return device;}; 49 const QString getDevice() {return device;};
50 void setDevice(const QString dev) {device = dev;}; 50 void setDevice(const QString dev) {device = dev;};
51
52 void save();
51 53
52 bool opentty(); 54 bool opentty();
53 bool closetty(); 55 bool closetty();
@@ -56,7 +58,7 @@ public:
56 bool writeLine(const char *); 58 bool writeLine(const char *);
57 bool dataMode() const { return data_mode; } 59 bool dataMode() const { return data_mode; }
58 void setDataMode(bool set) { data_mode = set; } 60 void setDataMode(bool set) { data_mode = set; }
59 const QString modemMessage(); 61 const QString modemMessage();
60 speed_t modemspeed(); 62 speed_t modemspeed();
61 static QString parseModemSpeed(const QString &); 63 static QString parseModemSpeed(const QString &);
62 void notify(const QObject *, const char *); 64 void notify(const QObject *, const char *);
@@ -73,7 +75,12 @@ public:
73 bool execPPPDaemon(const QString & arguments); 75 bool execPPPDaemon(const QString & arguments);
74 int openResolv(int flags); 76 int openResolv(int flags);
75 bool setHostname(const QString & name); 77 bool setHostname(const QString & name);
76 78
79 QString pppDevice()const;
80 void setPPPDevice( const QString& );
81 pid_t pppPID()const;
82 void setPPPDPid( pid_t );
83
77public: 84public:
78 enum Auth { PAP = 1, CHAP }; 85 enum Auth { PAP = 1, CHAP };
79 // static Modem *modem; 86 // static Modem *modem;
@@ -85,7 +92,8 @@ signals:
85private slots: 92private slots:
86 void startNotifier(); 93 void startNotifier();
87 void stopNotifier(); 94 void stopNotifier();
88 void readtty(int); 95 void readtty(int);
96 void slotModemDebug(int);
89 97
90private: 98private:
91 enum { MaxPathLen = 30, MaxStrLen = 40, MaxArgs = 100 }; 99 enum { MaxPathLen = 30, MaxStrLen = 40, MaxArgs = 100 };
@@ -102,17 +110,20 @@ private:
102 110
103private: 111private:
104 QString device; 112 QString device;
105 QString lockfile; 113 QString lockfile;
106 int modemfd; 114 int modemfd;
107 int pppdPid; 115 int pppdPid;
108 int _pppdExitStatus; 116 int _pppdExitStatus;
109 QSocketNotifier *sn; 117 QSocketNotifier *sn;
118 QSocketNotifier *m_modemDebug;
110 bool data_mode; 119 bool data_mode;
111 QString errmsg; 120 QString errmsg;
112 struct termios initial_tty; 121 struct termios initial_tty;
113 struct termios tty; 122 struct termios tty;
114 bool modem_is_locked; 123 bool modem_is_locked;
115 PPPData *_pppdata; 124 PPPData *_pppdata;
125 int m_pppdLOG[2];
126 QString m_pppdDev;
116}; 127};
117 128
118#endif 129#endif
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
@@ -27,57 +27,67 @@
27#include <qlayout.h> 27#include <qlayout.h>
28#include <qslider.h> 28#include <qslider.h>
29#include <qbuttongroup.h> 29#include <qbuttongroup.h>
30#include <qscrollview.h>
31#include <qapplication.h>
30#include <stdlib.h> 32#include <stdlib.h>
31//#include <kapplication.h> // for getMiniIcon()
32//#include <klocale.h>
33#define i18n QObject::tr
34#include "modemcmds.h" 33#include "modemcmds.h"
35#include "pppdata.h" 34#include "pppdata.h"
36//#include <kwin.h>
37 35
38#define ADJUSTEDIT(e) //e->setText("XXXXXXXXqy"); e->setMinimumSize(e->sizeHint()); /*e->setFixedHeight(e->sizeHint().height());*/ e->setText(""); e->setMaxLength(MODEMSTR_SIZE); 36#define ADJUSTEDIT(e) //e->setText("XXXXXXXXqy"); e->setMinimumSize(e->sizeHint()); /*e->setFixedHeight(e->sizeHint().height());*/ e->setText(""); e->setMaxLength(MODEMSTR_SIZE);
39 37
40// a little trick to make the label look like a disabled lineedit 38// a little trick to make the label look like a disabled lineedit
41#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); 39#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);
42 40
43ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name) 41ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name , bool modal, WFlags f)
44 : QDialog(parent, name, true ), _pppdata(pd) 42 : QDialog( parent, name, modal, f ), _pppdata(pd)
45{ 43{
46 setCaption(i18n("Edit Modem Commands")); 44 setCaption(QObject::tr("Edit Modem Commands"));
47 45
48 const int GRIDROWS = 22; 46 const int GRIDROWS = 22;
49 int row = 0; 47 int row = 0;
50 48
49 QVBoxLayout *main = new QVBoxLayout( this );
50 QScrollView *sv = new QScrollView( this );
51 QWidget *mainW = new QWidget( sv->viewport() );
52 sv->setResizePolicy( QScrollView::AutoOneFit );
53 sv->setHScrollBarMode( QScrollView::AlwaysOff );
54 sv->setFrameShape( QFrame::NoFrame );
55 sv->addChild( mainW );
56 main->addWidget( sv );
57 // evil hack
58 mainW->setMaximumWidth( QApplication::desktop()->width() - 10 );
59
51 // toplevel layout 60 // toplevel layout
52 QVBoxLayout *tl = new QVBoxLayout(this, 10, 4); 61 QVBoxLayout *tl = new QVBoxLayout( mainW, 10, 4);
53 62
54 // add grid + frame 63 // add grid + frame
55 QGridLayout *l1 = new QGridLayout(GRIDROWS, 4); 64 QGridLayout *l1 = new QGridLayout(GRIDROWS, 4);
56 tl->addLayout(l1); 65 tl->addLayout(l1);
57 box = new QGroupBox(this, "box"); 66 box = new QGroupBox(mainW, "box");
67 box->setMargin( 0 );
58 l1->addMultiCellWidget(box, row++, GRIDROWS, 0, 3); 68 l1->addMultiCellWidget(box, row++, GRIDROWS, 0, 3);
59 69
60 // put slider and label into a separate H-Box 70 // put slider and label into a separate H-Box
61 QHBoxLayout *l2 = new QHBoxLayout; 71 QHBoxLayout *l2 = new QHBoxLayout;
62 l1->addLayout(l2, row, 2); 72 l1->addLayout(l2, row, 2);
63 lpreinitslider = new QLabel("MMMM", this); 73 lpreinitslider = new QLabel("MMMM", mainW);
64 FORMATSLIDERLABEL(lpreinitslider); 74 FORMATSLIDERLABEL(lpreinitslider);
65 75
66 QSlider *preinitslider = new QSlider(0, 300, 1, 0, 76 QSlider *preinitslider = new QSlider(0, 300, 1, 0,
67 QSlider::Horizontal, this); 77 QSlider::Horizontal, mainW);
68// preinitslider->setFixedHeight(preinitslider->sizeHint().height()); 78// preinitslider->setFixedHeight(preinitslider->sizeHint().height());
69 connect(preinitslider, SIGNAL(valueChanged(int)), 79 connect(preinitslider, SIGNAL(valueChanged(int)),
70 lpreinitslider, SLOT(setNum(int))); 80 lpreinitslider, SLOT(setNum(int)));
71 l2->addWidget(lpreinitslider, 0); 81 l2->addWidget(lpreinitslider, 0);
72 l2->addWidget(preinitslider, 1); 82 l2->addWidget(preinitslider, 1);
73 83
74 lpreinit = new QLabel(i18n("Pre-init delay (sec/100):"), this); 84 lpreinit = new QLabel(QObject::tr("Pre-init delay (sec/100):"), mainW);
75 l1->addWidget(lpreinit, row++, 1); 85 l1->addWidget(lpreinit, row++, 1);
76 86
77 for(int i = 0; i < PPPData::NumInitStrings; i++) { 87 for(int i = 0; i < PPPData::NumInitStrings; i++) {
78 initstr[i] = new QLineEdit(this); 88 initstr[i] = new QLineEdit(mainW);
79 QLabel *initLabel = new QLabel(i18n("Initialization string %1:").arg(i + 1), 89 QLabel *initLabel = new QLabel(QObject::tr("Initialization string %1:").arg(i + 1),
80 this); 90 mainW);
81 ADJUSTEDIT(initstr[i]); 91 ADJUSTEDIT(initstr[i]);
82 l1->addWidget(initLabel, row, 1); 92 l1->addWidget(initLabel, row, 1);
83 l1->addWidget(initstr[i], row++, 2); 93 l1->addWidget(initstr[i], row++, 2);
@@ -85,147 +95,147 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
85 95
86 QHBoxLayout *l3 = new QHBoxLayout; 96 QHBoxLayout *l3 = new QHBoxLayout;
87 l1->addLayout(l3, row, 2); 97 l1->addLayout(l3, row, 2);
88 linitslider = new QLabel("MMMM", this); 98 linitslider = new QLabel("MMMM", mainW);
89 FORMATSLIDERLABEL(linitslider); 99 FORMATSLIDERLABEL(linitslider);
90 QSlider *initslider = new QSlider(1, 300, 1, 0, 100 QSlider *initslider = new QSlider(1, 300, 1, 0,
91 QSlider::Horizontal, this); 101 QSlider::Horizontal, mainW);
92// initslider->setFixedHeight(initslider->sizeHint().height()); 102// initslider->setFixedHeight(initslider->sizeHint().height());
93 connect(initslider, SIGNAL(valueChanged(int)), 103 connect(initslider, SIGNAL(valueChanged(int)),
94 linitslider, SLOT(setNum(int))); 104 linitslider, SLOT(setNum(int)));
95 l3->addWidget(linitslider, 0); 105 l3->addWidget(linitslider, 0);
96 l3->addWidget(initslider, 1); 106 l3->addWidget(initslider, 1);
97 107
98 label3 = new QLabel(i18n("Post-init delay (sec/100):"), this); 108 label3 = new QLabel(QObject::tr("Post-init delay (sec/100):"), mainW);
99 l1->addWidget(label3, row++, 1); 109 l1->addWidget(label3, row++, 1);
100 110
101 /* Set ATS11 (Dial tone duration) between 0-255 (Default ~ 70) */ 111 /* Set ATS11 (Dial tone duration) between 0-255 (Default ~ 70) */
102 QHBoxLayout *l4 = new QHBoxLayout; 112 QHBoxLayout *l4 = new QHBoxLayout;
103 l1->addLayout(l4, row, 2); 113 l1->addLayout(l4, row, 2);
104 ldurationslider = new QLabel("MMMM", this); 114 ldurationslider = new QLabel("MMMM", mainW);
105 FORMATSLIDERLABEL(ldurationslider); 115 FORMATSLIDERLABEL(ldurationslider);
106 QSlider *durationslider = new QSlider(1, 255, 1, 0, 116 QSlider *durationslider = new QSlider(1, 255, 1, 0,
107 QSlider::Horizontal, this); 117 QSlider::Horizontal, mainW);
108// durationslider->setFixedHeight(durationslider->sizeHint().height()); 118// durationslider->setFixedHeight(durationslider->sizeHint().height());
109 connect(durationslider, SIGNAL(valueChanged(int)), 119 connect(durationslider, SIGNAL(valueChanged(int)),
110 ldurationslider, SLOT(setNum(int))); 120 ldurationslider, SLOT(setNum(int)));
111 l4->addWidget(ldurationslider, 0); 121 l4->addWidget(ldurationslider, 0);
112 l4->addWidget(durationslider, 1); 122 l4->addWidget(durationslider, 1);
113 123
114 lduration = new QLabel(i18n("Dialing speed (sec/100):"), this); 124 lduration = new QLabel(QObject::tr("Dialing speed (sec/100):"), mainW);
115 l1->addWidget(lduration, row++, 1); 125 l1->addWidget(lduration, row++, 1);
116 126
117 127
118 initresp = new QLineEdit(this); 128 initresp = new QLineEdit(mainW);
119 label2 = new QLabel(i18n("Init response:"), this); 129 label2 = new QLabel(QObject::tr("Init response:"), mainW);
120 ADJUSTEDIT(initresp); 130 ADJUSTEDIT(initresp);
121 l1->addWidget(label2, row, 1); 131 l1->addWidget(label2, row, 1);
122 l1->addWidget(initresp, row++, 2); 132 l1->addWidget(initresp, row++, 2);
123 133
124 nodetectdialtone = new QLineEdit(this); 134 nodetectdialtone = new QLineEdit(mainW);
125 lnodetectdialtone = new QLabel(i18n("No dial tone detection:"), this); 135 lnodetectdialtone = new QLabel(QObject::tr("No dial tone detection:"), mainW);
126 ADJUSTEDIT(nodetectdialtone); 136 ADJUSTEDIT(nodetectdialtone);
127 l1->addWidget(lnodetectdialtone, row, 1); 137 l1->addWidget(lnodetectdialtone, row, 1);
128 l1->addWidget(nodetectdialtone, row++, 2); 138 l1->addWidget(nodetectdialtone, row++, 2);
129 139
130 dialstr = new QLineEdit(this); 140 dialstr = new QLineEdit(mainW);
131 label4 = new QLabel(i18n("Dial string:"),this); 141 label4 = new QLabel(QObject::tr("Dial string:"),mainW);
132 ADJUSTEDIT(dialstr); 142 ADJUSTEDIT(dialstr);
133 l1->addWidget(label4, row, 1); 143 l1->addWidget(label4, row, 1);
134 l1->addWidget(dialstr, row++, 2); 144 l1->addWidget(dialstr, row++, 2);
135 145
136 connectresp = new QLineEdit(this); 146 connectresp = new QLineEdit(mainW);
137 label5 = new QLabel(i18n("Connect response:"), this); 147 label5 = new QLabel(QObject::tr("Connect response:"), mainW);
138 ADJUSTEDIT(connectresp); 148 ADJUSTEDIT(connectresp);
139 l1->addWidget(label5, row, 1); 149 l1->addWidget(label5, row, 1);
140 l1->addWidget(connectresp, row++, 2); 150 l1->addWidget(connectresp, row++, 2);
141 151
142 busyresp = new QLineEdit(this); 152 busyresp = new QLineEdit(mainW);
143 label6 = new QLabel(i18n("Busy response:"), this); 153 label6 = new QLabel(QObject::tr("Busy response:"), mainW);
144 ADJUSTEDIT(busyresp); 154 ADJUSTEDIT(busyresp);
145 l1->addWidget(label6, row, 1); 155 l1->addWidget(label6, row, 1);
146 l1->addWidget(busyresp, row++, 2); 156 l1->addWidget(busyresp, row++, 2);
147 157
148 nocarrierresp = new QLineEdit(this); 158 nocarrierresp = new QLineEdit(mainW);
149 label7 = new QLabel(i18n("No carrier response:"), this); 159 label7 = new QLabel(QObject::tr("No carrier response:"), mainW);
150 ADJUSTEDIT(nocarrierresp); 160 ADJUSTEDIT(nocarrierresp);
151 l1->addWidget(label7, row, 1); 161 l1->addWidget(label7, row, 1);
152 l1->addWidget(nocarrierresp, row++, 2); 162 l1->addWidget(nocarrierresp, row++, 2);
153 163
154 nodialtoneresp = new QLineEdit(this); 164 nodialtoneresp = new QLineEdit(mainW);
155 label8 = new QLabel(i18n("No dial tone response:"), this); 165 label8 = new QLabel(QObject::tr("No dial tone response:"), mainW);
156 ADJUSTEDIT(nodialtoneresp); 166 ADJUSTEDIT(nodialtoneresp);
157 l1->addWidget(label8, row, 1); 167 l1->addWidget(label8, row, 1);
158 l1->addWidget(nodialtoneresp, row++, 2); 168 l1->addWidget(nodialtoneresp, row++, 2);
159 169
160 hangupstr = new QLineEdit(this); 170 hangupstr = new QLineEdit(mainW);
161 label9 = new QLabel(i18n("Hangup string:"), this); 171 label9 = new QLabel(QObject::tr("Hangup string:"), mainW);
162 ADJUSTEDIT(hangupstr); 172 ADJUSTEDIT(hangupstr);
163 l1->addWidget(label9, row, 1); 173 l1->addWidget(label9, row, 1);
164 l1->addWidget(hangupstr, row++, 2); 174 l1->addWidget(hangupstr, row++, 2);
165 175
166 hangupresp = new QLineEdit(this); 176 hangupresp = new QLineEdit(mainW);
167 label10 = new QLabel(i18n("Hangup response:"), this); 177 label10 = new QLabel(QObject::tr("Hangup response:"), mainW);
168 ADJUSTEDIT(hangupresp); 178 ADJUSTEDIT(hangupresp);
169 l1->addWidget(label10, row, 1); 179 l1->addWidget(label10, row, 1);
170 l1->addWidget(hangupresp, row++, 2); 180 l1->addWidget(hangupresp, row++, 2);
171 181
172 answerstr = new QLineEdit(this); 182 answerstr = new QLineEdit(mainW);
173 label11 = new QLabel(i18n("Answer string:"), this); 183 label11 = new QLabel(QObject::tr("Answer string:"), mainW);
174 ADJUSTEDIT(answerstr); 184 ADJUSTEDIT(answerstr);
175 l1->addWidget(label11, row, 1); 185 l1->addWidget(label11, row, 1);
176 l1->addWidget(answerstr, row++, 2); 186 l1->addWidget(answerstr, row++, 2);
177 187
178 ringresp = new QLineEdit(this); 188 ringresp = new QLineEdit(mainW);
179 label12 = new QLabel(i18n("Ring response:"), this); 189 label12 = new QLabel(QObject::tr("Ring response:"), mainW);
180 ADJUSTEDIT(ringresp); 190 ADJUSTEDIT(ringresp);
181 l1->addWidget(label12, row, 1); 191 l1->addWidget(label12, row, 1);
182 l1->addWidget(ringresp, row++, 2); 192 l1->addWidget(ringresp, row++, 2);
183 193
184 answerresp = new QLineEdit(this); 194 answerresp = new QLineEdit(mainW);
185 label13 = new QLabel(i18n("Answer response:"), this); 195 label13 = new QLabel(QObject::tr("Answer response:"), mainW);
186 ADJUSTEDIT(answerresp); 196 ADJUSTEDIT(answerresp);
187 l1->addWidget(label13, row, 1); 197 l1->addWidget(label13, row, 1);
188 l1->addWidget(answerresp, row++, 2); 198 l1->addWidget(answerresp, row++, 2);
189 199
190 escapestr = new QLineEdit(this); 200 escapestr = new QLineEdit(mainW);
191 label14 = new QLabel(i18n("Escape string:"), this); 201 label14 = new QLabel(QObject::tr("Escape string:"), mainW);
192 ADJUSTEDIT(escapestr); 202 ADJUSTEDIT(escapestr);
193 l1->addWidget(label14, row, 1); 203 l1->addWidget(label14, row, 1);
194 l1->addWidget(escapestr, row++, 2); 204 l1->addWidget(escapestr, row++, 2);
195 205
196 escaperesp = new QLineEdit(this); 206 escaperesp = new QLineEdit(mainW);
197 label15 = new QLabel(i18n("Escape response:"), this); 207 label15 = new QLabel(QObject::tr("Escape response:"), mainW);
198 ADJUSTEDIT(escaperesp); 208 ADJUSTEDIT(escaperesp);
199 l1->addWidget(label15, row, 1); 209 l1->addWidget(label15, row, 1);
200 l1->addWidget(escaperesp, row++, 2); 210 l1->addWidget(escaperesp, row++, 2);
201 211
202 QHBoxLayout *l5 = new QHBoxLayout; 212 QHBoxLayout *l5 = new QHBoxLayout;
203 l1->addLayout(l5, row, 2); 213 l1->addLayout(l5, row, 2);
204 lslider = new QLabel("MMMM", this); 214 lslider = new QLabel("MMMM", mainW);
205 FORMATSLIDERLABEL(lslider); 215 FORMATSLIDERLABEL(lslider);
206 216
207 QSlider *slider = new QSlider(0, 255, 1, 0, 217 QSlider *slider = new QSlider(0, 255, 1, 0,
208 QSlider::Horizontal, this); 218 QSlider::Horizontal, mainW);
209// slider->setFixedHeight(slider->sizeHint().height()); 219// slider->setFixedHeight(slider->sizeHint().height());
210 connect(slider, SIGNAL(valueChanged(int)), 220 connect(slider, SIGNAL(valueChanged(int)),
211 lslider, SLOT(setNum(int))); 221 lslider, SLOT(setNum(int)));
212 l5->addWidget(lslider, 0); 222 l5->addWidget(lslider, 0);
213 l5->addWidget(slider, 1); 223 l5->addWidget(slider, 1);
214 224
215 label16 = new QLabel(i18n("Guard time (sec/50):"), this); 225 label16 = new QLabel(QObject::tr("Guard time (sec/50):"), mainW);
216 l1->addWidget(label16, row++, 1); 226 l1->addWidget(label16, row++, 1);
217 227
218 QLabel *l = new QLabel(i18n("Volume off/low/high:"), this); 228 QLabel *l = new QLabel(QObject::tr("Volume off/low/high:"), mainW);
219 l1->addWidget(l, row, 1); 229 l1->addWidget(l, row, 1);
220 QHBoxLayout *l6 = new QHBoxLayout; 230 QHBoxLayout *l6 = new QHBoxLayout;
221 l1->addLayout(l6, row++, 2); 231 l1->addLayout(l6, row++, 2);
222 volume_off = new QLineEdit(this); 232 volume_off = new QLineEdit(mainW);
223// volume_off->setFixedHeight(volume_off->sizeHint().height()); 233// volume_off->setFixedHeight(volume_off->sizeHint().height());
224 // volume_off->setMinimumWidth((int)(volume_off->sizeHint().width() / 2)); 234 // volume_off->setMinimumWidth((int)(volume_off->sizeHint().width() / 2));
225 volume_medium = new QLineEdit(this); 235 volume_medium = new QLineEdit(mainW);
226// volume_medium->setFixedHeight(volume_medium->sizeHint().height()); 236// volume_medium->setFixedHeight(volume_medium->sizeHint().height());
227 // volume_medium->setMinimumWidth((int)(volume_medium->sizeHint().width() / 2)); 237 // volume_medium->setMinimumWidth((int)(volume_medium->sizeHint().width() / 2));
228 volume_high = new QLineEdit(this); 238 volume_high = new QLineEdit(mainW);
229 // volume_high->setFixedHeight(volume_high->sizeHint().height()); 239 // volume_high->setFixedHeight(volume_high->sizeHint().height());
230 // volume_high->setMinimumWidth((int)(volume_high->sizeHint().width() / 2)); 240 // volume_high->setMinimumWidth((int)(volume_high->sizeHint().width() / 2));
231 l6->addWidget(volume_off); 241 l6->addWidget(volume_off);
@@ -307,7 +317,12 @@ void ModemCommands::slotOk() {
307 _pppdata->setVolumeOff(volume_off->text()); 317 _pppdata->setVolumeOff(volume_off->text());
308 318
309 _pppdata->save(); 319 _pppdata->save();
310 accept(); 320 QDialog::accept();
321}
322
323void ModemCommands::accept()
324{
325 slotOk();
311} 326}
312 327
313 328
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
@@ -44,10 +44,11 @@ Q_OBJECT
44 44
45public: 45public:
46 46
47 ModemCommands(PPPData*, QWidget *parent=0, const char *name=0); 47 ModemCommands(PPPData*, QWidget *parent=0, const char *name=0, bool modal=0, WFlags f = 0);
48 ~ModemCommands() {} 48 ~ModemCommands() {}
49 49
50private slots: 50private slots:
51 virtual void accept();
51 void slotCancel(); 52 void slotCancel();
52 void slotOk(); 53 void slotOk();
53 54
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
@@ -34,14 +34,12 @@
34#include <qapplication.h> 34#include <qapplication.h>
35#include "modeminfo.h" 35#include "modeminfo.h"
36#include "modem.h" 36#include "modem.h"
37//#include <klocale.h>
38#define i18n QObject::tr
39 37
40ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name) 38ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name)
41 : QDialog(parent, name,TRUE, WStyle_Customize|WStyle_NormalBorder), 39 : QDialog(parent, name,TRUE, WStyle_Customize|WStyle_NormalBorder),
42 _modem(mo) 40 _modem(mo)
43{ 41{
44 setCaption(i18n("ATI Query")); 42 setCaption(QObject::tr("ATI Query"));
45// KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); 43// KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
46 44
47 QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); 45 QVBoxLayout *tl = new QVBoxLayout(this, 10, 10);
@@ -58,17 +56,17 @@ ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name)
58 // search all these messages. This is a little overkill, so I take 56 // search all these messages. This is a little overkill, so I take
59 // the longest english message, translate it and give it additional 57 // the longest english message, translate it and give it additional
60 // 20 percent space. Hope this is enough. 58 // 20 percent space. Hope this is enough.
61 statusBar->setText(i18n("Unable to create modem lock file.")); 59 statusBar->setText(QObject::tr("Unable to create modem lock file."));
62 statusBar->setFixedWidth((statusBar->sizeHint().width() * 12) / 10); 60 statusBar->setFixedWidth((statusBar->sizeHint().width() * 12) / 10);
63 statusBar->setFixedHeight(statusBar->sizeHint().height() + 4); 61 statusBar->setFixedHeight(statusBar->sizeHint().height() + 4);
64 62
65 // set original text 63 // set original text
66 statusBar->setText(i18n("Looking for modem...")); 64 statusBar->setText(QObject::tr("Looking for modem..."));
67 progressBar->setFixedHeight(statusBar->minimumSize().height()); 65 progressBar->setFixedHeight(statusBar->minimumSize().height());
68 tl->addWidget(progressBar); 66 tl->addWidget(progressBar);
69 tl->addWidget(statusBar); 67 tl->addWidget(statusBar);
70 68
71 cancel = new QPushButton(i18n("Cancel"), this); 69 cancel = new QPushButton(QObject::tr("Cancel"), this);
72 cancel->setFocus(); 70 cancel->setFocus();
73 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); 71 connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton()));
74 72
@@ -118,7 +116,7 @@ void ModemTransfer::time_out_slot() {
118 timeout_timer->stop(); 116 timeout_timer->stop();
119 scripttimer->stop(); 117 scripttimer->stop();
120 118
121 QMessageBox::warning(this, tr("Error"), i18n("Modem Query timed out.")); 119 QMessageBox::warning(this, tr("Error"), QObject::tr("Modem Query timed out."));
122 reject(); 120 reject();
123} 121}
124 122
@@ -130,13 +128,13 @@ void ModemTransfer::init() {
130 int lock = _modem->lockdevice(); 128 int lock = _modem->lockdevice();
131 if (lock == 1) { 129 if (lock == 1) {
132 130
133 statusBar->setText(i18n("Modem device is locked.")); 131 statusBar->setText(QObject::tr("Modem device is locked."));
134 return; 132 return;
135 } 133 }
136 134
137 if (lock == -1) { 135 if (lock == -1) {
138 136
139 statusBar->setText(i18n("Unable to create modem lock file.")); 137 statusBar->setText(QObject::tr("Unable to create modem lock file."));
140 return; 138 return;
141 } 139 }
142 140
@@ -146,7 +144,7 @@ void ModemTransfer::init() {
146 usleep(100000); // wait 0.1 secs 144 usleep(100000); // wait 0.1 secs
147 _modem->writeLine("ATE0Q1V1"); // E0 don't echo the commands I send ... 145 _modem->writeLine("ATE0Q1V1"); // E0 don't echo the commands I send ...
148 146
149 statusBar->setText(i18n("Modem Ready")); 147 statusBar->setText(QObject::tr("Modem Ready"));
150 qApp->processEvents(); 148 qApp->processEvents();
151 usleep(100000); // wait 0.1 secs 149 usleep(100000); // wait 0.1 secs
152 qApp->processEvents(); 150 qApp->processEvents();
@@ -227,7 +225,7 @@ void ModemTransfer::cancelbutton() {
227 _modem->stop(); 225 _modem->stop();
228 timeout_timer->stop(); 226 timeout_timer->stop();
229 227
230 statusBar->setText(i18n("One moment please...")); 228 statusBar->setText(QObject::tr("One moment please..."));
231 qApp->processEvents(); 229 qApp->processEvents();
232 230
233 _modem->hangup(); 231 _modem->hangup();
@@ -249,7 +247,7 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name)
249{ 247{
250 QString label_text; 248 QString label_text;
251 249
252 setCaption(i18n("Modem Query Results")); 250 setCaption(QObject::tr("Modem Query Results"));
253 // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon()); 251 // KWin::setIcons(winId(), kapp->icon(), kapp->miniIcon());
254 252
255 QVBoxLayout *tl = new QVBoxLayout(this, 10, 10); 253 QVBoxLayout *tl = new QVBoxLayout(this, 10, 10);
@@ -274,7 +272,7 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name)
274 //tl->addSpacing(1); 272 //tl->addSpacing(1);
275 273
276 QHBoxLayout *l2 = new QHBoxLayout; 274 QHBoxLayout *l2 = new QHBoxLayout;
277 QPushButton *ok = new QPushButton(i18n("Close"), this); 275 QPushButton *ok = new QPushButton(QObject::tr("Close"), this);
278 ok->setDefault(TRUE); 276 ok->setDefault(TRUE);
279 ok->setFocus(); 277 ok->setFocus();
280 278
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
@@ -4,12 +4,11 @@ TEMPLATE = lib
4#CONFIG += qt warn_on release 4#CONFIG += qt warn_on release
5 CONFIG += qt warn_on debug 5 CONFIG += qt warn_on debug
6DESTDIR = $(OPIEDIR)/plugins/networksettings 6DESTDIR = $(OPIEDIR)/plugins/networksettings
7 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 7 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
8 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 8 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
9 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ 9 INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/
10 DEPENDPATH+= $(OPIEDIR)/include 10 DEPENDPATH+= $(OPIEDIR)/include
11LIBS += -lqpe -L../interfaces/ -linterfaces 11LIBS += -lqpe -L../interfaces/ -linterfaces
12 INTERFACES=
13 TARGET = kppp 12 TARGET = kppp
14 VERSION = 1.0.0 13 VERSION = 1.0.0
15 14
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
@@ -4,6 +4,7 @@
4#include <qtabwidget.h> 4#include <qtabwidget.h>
5 5
6#include "accounts.h" 6#include "accounts.h"
7#include "devices.h"
7#include "general.h" 8#include "general.h"
8#include "interfaceppp.h" 9#include "interfaceppp.h"
9#include "modem.h" 10#include "modem.h"
@@ -28,7 +29,7 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent,
28 qDebug(" interface->getHardwareName >%s<", interface->getHardwareName().latin1()); 29 qDebug(" interface->getHardwareName >%s<", interface->getHardwareName().latin1());
29 30
30 qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1()); 31 qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1());
31 qDebug(" _pppdata->currentAccountID() >%i<",interface->data()->currentAccountID()); 32
32 33
33 QVBoxLayout *layout = new QVBoxLayout( this ); 34 QVBoxLayout *layout = new QVBoxLayout( this );
34 layout->setSpacing( 0 ); 35 layout->setSpacing( 0 );
@@ -36,12 +37,16 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent,
36 tabWindow = new QTabWidget( this, "tabWidget" ); 37 tabWindow = new QTabWidget( this, "tabWidget" );
37 layout->addWidget( tabWindow ); 38 layout->addWidget( tabWindow );
38 39
39 accounts = new AccountWidget( interface->data(), tabWindow, "accounts" ); 40 accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp );
40 tabWindow->addTab( accounts, tr("&Accounts") ); 41 tabWindow->addTab( accounts, tr("&Accounts") );
41 modem1 = new ModemWidget( interface, tabWindow, "modem1" ); 42 devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp );
42 tabWindow->addTab( modem1, tr("&Device") ); 43 tabWindow->addTab( devices, tr("&Devices") );
43 modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); 44
44 tabWindow->addTab( modem2, tr("&Modem") ); 45//OLD:
46// modem1 = new ModemWidget( interface, tabWindow, "modem1" );
47// tabWindow->addTab( modem1, tr("&Device") );
48// modem2 = new ModemWidget2( interface, tabWindow, "modem2" );
49// tabWindow->addTab( modem2, tr("&Modem") );
45 50
46} 51}
47 52
@@ -56,7 +61,7 @@ void PPPConfigWidget::accept()
56 qDebug("PPPConfigWidget::accept"); 61 qDebug("PPPConfigWidget::accept");
57 qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1()); 62 qDebug(" _pppdata->accname >%s<",interface->data()->accname().latin1());
58 qDebug(" interface->getHardwareName >%s<", interface->getHardwareName().latin1()); 63 qDebug(" interface->getHardwareName >%s<", interface->getHardwareName().latin1());
59 interface->setInterfaceName( interface->data()->modemDevice() ); 64 interface->setInterfaceName( interface->data()->devname() );
60 interface->setHardwareName( interface->data()->accname() ); 65 interface->setHardwareName( interface->data()->accname() );
61 interface->save(); 66 interface->save();
62 QDialog::accept(); 67 QDialog::accept();
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
@@ -8,6 +8,9 @@ class QTabWidget;
8class InterfacePPP; 8class InterfacePPP;
9class AccountWidget; 9class AccountWidget;
10class GeneralWidget; 10class GeneralWidget;
11class DevicesWidget;
12
13//OLD:
11class ModemWidget; 14class ModemWidget;
12class ModemWidget2; 15class ModemWidget2;
13 16
@@ -29,6 +32,9 @@ protected slots:
29 QTabWidget *tabWindow; 32 QTabWidget *tabWindow;
30 AccountWidget *accounts; 33 AccountWidget *accounts;
31 GeneralWidget *general; 34 GeneralWidget *general;
35 DevicesWidget* devices;
36
37 //OLD:
32 ModemWidget *modem1; 38 ModemWidget *modem1;
33 ModemWidget2 *modem2; 39 ModemWidget2 *modem2;
34}; 40};
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
@@ -26,9 +26,8 @@
26 26
27#include "pppdata.h" 27#include "pppdata.h"
28#include "runtests.h" 28#include "runtests.h"
29#include "devices.h" 29//#include "devices.h"
30//#include <klocale.h> 30//#include <klocale.h>
31#define i18n QObject::tr
32#include <qpe/config.h> 31#include <qpe/config.h>
33#include <qmessagebox.h> 32#include <qmessagebox.h>
34#include <qapplication.h> 33#include <qapplication.h>
@@ -42,24 +41,32 @@
42#define SEP QString("%1SEPARATOR%1") 41#define SEP QString("%1SEPARATOR%1")
43 42
44PPPData::PPPData() 43PPPData::PPPData()
45 : modemDeviceGroup(-1), 44 : passwd(""),
46 passwd(""), 45 _modemName(""),
47 highcount(-1), // start out with no entries 46 highcount(-1), // start out with no entries
48 caccount(-1), // set the current account index also 47 highcountdev(-1), // start out with no entries
48// caccount(-1), // set the current account index also
49 suidprocessid(-1), // process ID of setuid child 49 suidprocessid(-1), // process ID of setuid child
50 pppdisrunning(false), 50 pppdisrunning(false),
51 pppderror(0) 51 pppderror(0)
52{ 52{
53 highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; 53 highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1;
54 highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1;
55 Config cfg = config();
56 cfg.setGroup(GENERAL_GRP);
57 accountList = cfg.readListEntry(ACCOUNT_LIST, ',' );
58 deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' );
59 qDebug("PPPData::PPPData has a accountList %s", accountList.join("---").latin1());
60 qDebug("PPPData::PPPData has a deviceList %s", deviceList.join("---").latin1());
54 61
55 if (highcount > MAX_ACCOUNTS) 62// if (highcount > MAX_ACCOUNTS)
56 highcount = MAX_ACCOUNTS; 63// highcount = MAX_ACCOUNTS;
57 64
58 if(highcount >= 0 && defaultAccount().isEmpty()) { 65 // if(highcount >= 0 && defaultAccount().isEmpty()) {
59 setAccountbyIndex(0); 66// setAccountbyIndex(0);
60 setDefaultAccount(accname()); 67// setDefaultAccount(accname());
61 } else if(!setAccount(defaultAccount())) 68// } else if(!setAccount(defaultAccount()))
62 setDefaultAccount(accname()); 69 setDefaultAccount(accname());
63 70
64 // start out with internal debugging disabled 71 // start out with internal debugging disabled
65 // the user is still free to specify `debug' on his own 72 // the user is still free to specify `debug' on his own
@@ -81,29 +88,34 @@ void PPPData::save()
81{ 88{
82 qDebug("PPPData saving data"); 89 qDebug("PPPData saving data");
83 writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); 90 writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count());
91 writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1);
84 QString key; 92 QString key;
85 QStringList keys; 93 QStringList keys;
86 Config cfg = config(); 94 Config cfg = config();
95 cfg.setGroup(GENERAL_GRP);
96 cfg.writeEntry(ACCOUNT_LIST, accountList, ',' );
97 cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' );
98
87 for( QMap<QString,QString>::Iterator it = stringEntries.begin(); 99 for( QMap<QString,QString>::Iterator it = stringEntries.begin();
88 it != stringEntries.end(); ++it ){ 100 it != stringEntries.end(); ++it ){
89 QString val = it.data(); 101 QString val = it.data();
90 key = it.key(); 102 key = it.key();
91// qDebug("saving %s -> %s", key.latin1(), val.latin1() ); 103// qDebug("saving %s -> %s", key.latin1(), val.latin1() );
92 keys = QStringList::split( "SEPARATOR", key ); 104 keys = QStringList::split( "SEPARATOR", key );
93 qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() ); 105 //qDebug("group >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() );
94 cfg.setGroup(keys[0]); 106 cfg.setGroup(keys[0]);
95 cfg.writeEntry(keys[1], val); 107 cfg.writeEntry(keys[1], val);
96 } 108 }
97 for( QMap<QString,int>::Iterator it = intEntries.begin(); 109 for( QMap<QString,int>::Iterator it = intEntries.begin();
98 it != intEntries.end(); ++it ){ 110 it != intEntries.end(); ++it ){
99 int val = it.data(); 111 int val = it.data();
100 key = it.key(); 112 key = it.key();
101// qDebug("saving %s -> %i", key.latin1(), val ); 113// qDebug("saving %s -> %i", key.latin1(), val );
102 keys = QStringList::split( "SEPARATOR", key ); 114 keys = QStringList::split( "SEPARATOR", key );
103 qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val ); 115 //qDebug("group >%s< key >%s< val %i", keys[0].latin1(), keys[1].latin1(), val );
104 cfg.setGroup(keys[0]); 116 cfg.setGroup(keys[0]);
105 cfg.writeEntry(keys[1], val); 117 cfg.writeEntry(keys[1], val);
106 } 118 }
107 for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); 119 for( QMap<QString,QStringList>::Iterator it = listEntries.begin();
108 it != listEntries.end(); ++it ){ 120 it != listEntries.end(); ++it ){
109 QStringList val = it.data(); 121 QStringList val = it.data();
@@ -111,10 +123,9 @@ void PPPData::save()
111 QChar sep = sepEntries[key]; 123 QChar sep = sepEntries[key];
112// qDebug("saving %s -> %s", key.latin1(), val.join(sep).latin1() ); 124// qDebug("saving %s -> %s", key.latin1(), val.join(sep).latin1() );
113 keys = QStringList::split( "SEPARATOR", key ); 125 keys = QStringList::split( "SEPARATOR", key );
114 qDebug("group >%s< key >%s<values >%s<", keys[0].latin1(), keys[1].latin1(), val.join(sep).latin1() );
115 cfg.setGroup(keys[0]); 126 cfg.setGroup(keys[0]);
116 cfg.writeEntry(keys[1], val, sep); 127 cfg.writeEntry(keys[1], val, sep);
117 } 128 }
118} 129}
119 130
120 131
@@ -344,21 +355,33 @@ void PPPData::setpppdTimeout(int n) {
344 355
345 356
346const QString PPPData::modemDevice() { 357const QString PPPData::modemDevice() {
347 return readConfig (modemGroup(), MODEMDEV_KEY, devices[DEV_DEFAULT]); 358 return readConfig (modemGroup(), MODEMDEV_KEY, "/dev/modem" );
348} 359}
349 360
350 361
362// const QString PPPData::modemName()
363// {
364// return readConfig(modemGroup(), MODEMNAME_KEY);
365// }
366
367// bool PPPData::setModemName(const QString &n) {
368// qDebug("Setting modem name to >%s<", n.latin1());
369// _modemName = n;
370// writeConfig(cgroup, MODEMNAME_KEY, n);
371// return true; //FIXME
372// }
373
374// bool PPPData::changeModemName(const QString &n) {
375// qDebug("Setting modem name to >%s<", n.latin1());
376// _modemName = n;
377// writeConfig(modemGroup(), MODEMNAME_KEY, n);
378// return true; //FIXME
379// }
380
351bool PPPData::setModemDevice(const QString &n) { 381bool PPPData::setModemDevice(const QString &n) {
352 qDebug("Setting modem dev to >%s<", n.latin1()); 382 qDebug("Setting modem dev to >%s<", n.latin1());
353 bool ret = false; 383 writeConfig(modemGroup(), MODEMDEV_KEY, n);
354 for (int i = 0; devices[i]; i++) 384 return true; //FIXME
355 if (devices[i] == n){
356 modemDeviceGroup = i;
357 writeConfig(modemGroup(), MODEMDEV_KEY, n);
358 ret = true;
359 }
360 qDebug(ret?"SUCCESS":"FAILURE");
361 return ret;
362} 385}
363 386
364 387
@@ -717,89 +740,111 @@ int PPPData::count() const {
717 740
718bool PPPData::setAccount(const QString &aname) { 741bool PPPData::setAccount(const QString &aname) {
719 qDebug("setting account to >%s<", aname.latin1()); 742 qDebug("setting account to >%s<", aname.latin1());
720 for(int i = 0; i <= highcount; i++) { 743 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) {
721 setAccountbyIndex(i); 744 cgroup = *it;
722 if(accname() == aname) { 745 qDebug("PPPData::setAccount %s", cgroup.latin1());
723 caccount = i; 746 qDebug( "iterator %s", (*it).latin1() );
724 qDebug("SUCCESS"); 747 if(accname() == aname) {
725 return true; 748 qDebug("SUCCESS");
749 return true;
750 }
751
726 } 752 }
727 } 753 qDebug("FAILURE");
728 qDebug("FAILURE"); 754 return false;
729 return false;
730} 755}
731 756
732 757/*
733bool PPPData::setAccountbyIndex(int i) { 758bool PPPData::setAccountbyIndex(int i) {
734 if(i >= 0 && i <= highcount) { 759 if(i >= 0 && i <= highcount) {
760 QString tmp;
761 tmp.sprintf("%s%i", ACCOUNT_GRP, i);
762 if (_deleted.find(tmp)!=_deleted.end()) return false;
735 caccount = i; 763 caccount = i;
736 cgroup.sprintf("%s%i", ACCOUNT_GRP, i); 764 cgroup = tmp;
737 return true; 765 return true;
738 } 766 }
739 return false; 767 return false;
740} 768}
741 769*/
742 770
743bool PPPData::isUniqueAccname(const QString &n) { 771bool PPPData::isUniqueAccname(const QString &n) {
744 int current = caccount; 772 QString save_cgroup = cgroup;
745 for(int i=0; i <= highcount; i++) { 773 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) {
746 setAccountbyIndex(i); 774 cgroup = *it;
747 if(accname() == n && i != current) { 775 qDebug("PPPData::setAccount %s", cgroup.latin1());
748 setAccountbyIndex(current); 776 qDebug( "%s \n", (*it).latin1() );
749 return false; 777 if(accname() == n && cgroup != save_cgroup) {
750 } 778 cgroup = save_cgroup;
779 qDebug("SUCCESS");
780 return false;
781 }
782
751 } 783 }
752 setAccountbyIndex(current); 784 cgroup = save_cgroup;
753 return true; 785 return true;
754} 786}
755 787
756 788
757bool PPPData::deleteAccount() { 789bool PPPData::isUniqueDevname(const QString &n) {
758 //FIXME: PPPData::deleteAccount 790 QString save_mName = _modemName;
759// if(caccount < 0) 791 qDebug("PPPData::isUniqueDevname checking if %s is unique", n.latin1());
760 return false; 792 for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) {
761 793 _modemName = *it;
762// QMap <QString, QString> map; 794 qDebug("PPPData::isUniqueDevname %s == %s", n.latin1() , devname().latin1());
763// QMap <QString, QString>::Iterator it; 795 if(devname() == n && _modemName != save_mName) {
764 796 _modemName = save_mName;
765// // set all entries of the current account to "" 797 qDebug("NOT UNIQUE");
766// map = config->entryMap(cgroup); 798 return false;
767// it = map.begin(); 799 }
768// while (it != map.end()) {
769// config->writeEntry(it.key(), "");
770// it++;
771// }
772 800
773// // shift the succeeding accounts 801 }
774// for(int i = caccount+1; i <= highcount; i++) { 802 _modemName = save_mName;
775// setAccountbyIndex(i); 803 return true;
776// map = config->entryMap(cgroup); 804}
777// it = map.begin();
778// setAccountbyIndex(i-1);
779// config->setGroup(cgroup);
780// while (it != map.end()) {
781// config->writeEntry(it.key(), *it);
782// it++;
783// }
784// }
785 805
786// // make sure the top account is cleared
787// setAccountbyIndex(highcount);
788// map = config->entryMap(cgroup);
789// it = map.begin();
790// config->setGroup(cgroup);
791// while (it.key() != QString::null) {
792// config->writeEntry(it.key(), "");
793// it++;
794// }
795 806
796// highcount--; 807bool PPPData::deleteAccount() {
797// if(caccount > highcount) 808 // FIXME: check if this account exists in a config...
798// caccount = highcount; 809 Config cfg = PPPData::config();
810 cfg.setGroup(cgroup);
811 cfg.clearGroup();
812 accountList.remove(cgroup);
799 813
800// setAccountbyIndex(caccount); 814 QString key;
815 QStringList keys;
816 for( QMap<QString,QString>::Iterator it = stringEntries.begin();
817 it != stringEntries.end(); ++it ){
818 QString val = it.data();
819 key = it.key();
820 keys = QStringList::split( "SEPARATOR", key );
821 if(keys[0]==cgroup){
822 stringEntries.remove( it );
823 qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() );
824 }
825 }
826 for( QMap<QString,int>::Iterator it = intEntries.begin();
827 it != intEntries.end(); ++it ){
828 int val = it.data();
829 key = it.key();
830 keys = QStringList::split( "SEPARATOR", key );
831 if(keys[0]==cgroup){
832 intEntries.remove( it );
833 qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val );
834 }
835 }
836 for( QMap<QString,QStringList>::Iterator it = listEntries.begin();
837 it != listEntries.end(); ++it ){
838 QStringList val = it.data();
839 key = it.key();
840 if(keys[0]==cgroup){
841 listEntries.remove( it );
842 sepEntries.remove( key );
843 qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() );
844 }
845 }
801 846
802// return true; 847 return true;
803} 848}
804 849
805 850
@@ -817,17 +862,19 @@ int PPPData::newaccount() {
817 862
818 qDebug("PPPData::newaccount highcount %i/%i",highcount,MAX_ACCOUNTS); 863 qDebug("PPPData::newaccount highcount %i/%i",highcount,MAX_ACCOUNTS);
819// if(!config) open(); 864// if(!config) open();
820 if (highcount >= MAX_ACCOUNTS) return -1; 865// if (highcount >= MAX_ACCOUNTS) return -1;
821 866
822 highcount++;
823 setAccountbyIndex(highcount);
824 867
868 QString tmp;
869 tmp.sprintf("%s%i", ACCOUNT_GRP, ++highcount);
870 cgroup = QString(tmp);
871 accountList << tmp;
872 qDebug("PPPData::newaccount() Group: >%s<",cgroup.latin1());
825 setpppdArgumentDefaults(); 873 setpppdArgumentDefaults();
826 qDebug("PPPData::newaccount -> %i",caccount); 874 return highcount;
827 return caccount;
828} 875}
829 876
830int PPPData::copyaccount(int i) { 877int PPPData::copyaccount(const QString&) {
831// FIXME: PPPData::copyaccount 878// FIXME: PPPData::copyaccount
832// if(highcount >= MAX_ACCOUNTS) 879// if(highcount >= MAX_ACCOUNTS)
833 return -1; 880 return -1;
@@ -837,7 +884,7 @@ int PPPData::copyaccount(int i) {
837// QMap <QString, QString> map = config->entryMap(cgroup); 884// QMap <QString, QString> map = config->entryMap(cgroup);
838// QMap <QString, QString>::ConstIterator it = map.begin(); 885// QMap <QString, QString>::ConstIterator it = map.begin();
839 886
840// QString newname = i18n("%1_copy").arg(accname()); 887// QString newname = QObject::tr("%1_copy").arg(accname());
841 888
842// newaccount(); 889// newaccount();
843 890
@@ -864,6 +911,7 @@ void PPPData::setAccname(const QString &n) {
864 if (def) 911 if (def)
865 setDefaultAccount(n); 912 setDefaultAccount(n);
866 } 913 }
914 writeConfig(cgroup, NAME_KEY, n);
867} 915}
868 916
869 917
@@ -1176,6 +1224,7 @@ void PPPData::setpppdArgument(QStringList &args) {
1176 1224
1177void PPPData::setpppdArgumentDefaults() { 1225void PPPData::setpppdArgumentDefaults() {
1178 QStringList arg; 1226 QStringList arg;
1227 arg << "lcp-echo-failure 0";
1179 setpppdArgument(arg); 1228 setpppdArgument(arg);
1180} 1229}
1181 1230
@@ -1247,11 +1296,9 @@ void PPPData::setpppdError(int err) {
1247 1296
1248QString PPPData::modemGroup() 1297QString PPPData::modemGroup()
1249{ 1298{
1250 if (modemDeviceGroup<0){ 1299 if (_modemName.isEmpty())
1251 qDebug("wrong modem %i\n using 0",modemDeviceGroup); 1300 _modemName = deviceList[0];
1252 modemDeviceGroup = 0; //FIXME! 1301 return _modemName;
1253 }
1254 return QString("%1_%1").arg(MODEM_GRP).arg(modemDeviceGroup);
1255} 1302}
1256 1303
1257 1304
@@ -1300,3 +1347,149 @@ QString PPPData::encodeWord(const QString &s) {
1300 r.replace(QRegExp("\\"), "\\\\"); 1347 r.replace(QRegExp("\\"), "\\\\");
1301 return r; 1348 return r;
1302} 1349}
1350
1351QStringList PPPData::getDevicesList()
1352{
1353 Config cfg("NetworkSetupPPP");
1354 cfg.setGroup("Devices_General");
1355 return cfg.readListEntry(DEVICES_LIST,DEVICES_LIST_SEP);
1356}
1357
1358QStringList PPPData::getAccountList()
1359{
1360 QStringList list;
1361 QString save_cgroup;
1362 save_cgroup = cgroup;
1363 for ( QStringList::Iterator it = accountList.begin(); it != accountList.end(); ++it ) {
1364 cgroup = *it;
1365 list << accname();
1366 }
1367 cgroup = save_cgroup;
1368 return list;
1369};
1370
1371
1372const QString PPPData::devname()
1373{
1374 QString tmp = readConfig(modemGroup(), MODEMNAME_KEY );
1375 qDebug("PPPData::devname() of %s is %s", modemGroup().latin1(), tmp.latin1());
1376 return tmp;
1377}
1378
1379void PPPData::setDevname(const QString &n) {
1380 // if(!cgroup.isNull()) {
1381// // are we manipulating the default account's name ? then change it, too.
1382// bool def = accname() == defaultAccount();
1383// writeConfig(cgroup, NAME_KEY, n);
1384// if (def)
1385// setDefaultAccount(n);
1386// }
1387 writeConfig(modemGroup(), MODEMNAME_KEY, n );
1388}
1389
1390
1391bool PPPData::setDevice(const QString &dev )
1392{
1393 qDebug("setting device to >%s<", dev.latin1());
1394 QString save_mName = _modemName;
1395 for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) {
1396 _modemName = *it;
1397 qDebug("PPPData::setDevice %s is named %s", _modemName.latin1(), devname().latin1() );
1398 qDebug( "iterator %s", (*it).latin1() );
1399 if(devname() == dev) {
1400 qDebug("SUCCESS");
1401 return true;
1402 }
1403
1404 }
1405 _modemName = save_mName;
1406 qDebug("FAILURE");
1407 return false;
1408}
1409
1410bool PPPData::deleteDevice()
1411{
1412 // FIXME: check if this account exists in a config...
1413 Config cfg = PPPData::config();
1414 cfg.setGroup(modemGroup());
1415 cfg.clearGroup();
1416 deviceList.remove(modemGroup());
1417
1418 QString key;
1419 QStringList keys;
1420 for( QMap<QString,QString>::Iterator it = stringEntries.begin();
1421 it != stringEntries.end(); ++it ){
1422 QString val = it.data();
1423 key = it.key();
1424 keys = QStringList::split( "SEPARATOR", key );
1425 if(keys[0]==modemGroup()){
1426 stringEntries.remove( it );
1427 qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.latin1() );
1428 }
1429 }
1430 for( QMap<QString,int>::Iterator it = intEntries.begin();
1431 it != intEntries.end(); ++it ){
1432 int val = it.data();
1433 key = it.key();
1434 keys = QStringList::split( "SEPARATOR", key );
1435 if(keys[0]==modemGroup()){
1436 intEntries.remove( it );
1437 qDebug("deleting >%s< key >%s< value >%i<", keys[0].latin1(), keys[1].latin1(), val );
1438 }
1439 }
1440 for( QMap<QString,QStringList>::Iterator it = listEntries.begin();
1441 it != listEntries.end(); ++it ){
1442 QStringList val = it.data();
1443 key = it.key();
1444 if(keys[0]==modemGroup()){
1445 listEntries.remove( it );
1446 sepEntries.remove( key );
1447 qDebug("deleting >%s< key >%s< value >%s<", keys[0].latin1(), keys[1].latin1(), val.join("").latin1() );
1448 }
1449 }
1450
1451 return true;
1452
1453}
1454
1455bool PPPData::deleteDevice(const QString &dev)
1456{
1457 if(!setDevice(dev))
1458 return false;
1459
1460 return deleteDevice();
1461}
1462
1463int PPPData::newdevice()
1464{
1465
1466 qDebug("PPPData::newdevice highcount %i",highcountdev);
1467
1468
1469 QString tmp;
1470 tmp.sprintf("%s%i", MODEM_GRP, ++highcountdev);
1471 _modemName = QString(tmp);
1472 deviceList << tmp;
1473 qDebug("PPPData::newdevice() Group: >%s<",cgroup.latin1());
1474 return highcountdev;
1475}
1476
1477int PPPData::copydevice(const QString&)
1478{
1479 return false;
1480}
1481
1482
1483QStringList PPPData::getDevicesNamesList()
1484{
1485 QStringList list;
1486 QString save_mName = _modemName;
1487 qDebug("PPPData::getDevicesNamesList has %s", deviceList.join("---").latin1());
1488 for ( QStringList::Iterator it = deviceList.begin(); it != deviceList.end(); ++it ) {
1489 _modemName = *it;
1490 qDebug("PPPData::getDevicesNamesList adding %s as %s",_modemName.latin1(), devname().latin1());
1491 list << devname();
1492 }
1493 _modemName = save_mName;
1494 return list;
1495};
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
@@ -64,6 +64,8 @@ class Config;
64//#define WINPOS_GRP "WindowPosition" 64//#define WINPOS_GRP "WindowPosition"
65 65
66// general 66// general
67#define ACCOUNT_LIST "AccountList"
68#define DEVICE_LIST "DeviceList"
67#define DEFAULTACCOUNT_KEY "DefaultAccount" 69#define DEFAULTACCOUNT_KEY "DefaultAccount"
68#define PPPDVERSION_KEY "pppdVersion" 70#define PPPDVERSION_KEY "pppdVersion"
69#define PPPDTIMEOUT_KEY "pppdTimeout" 71#define PPPDTIMEOUT_KEY "pppdTimeout"
@@ -72,10 +74,12 @@ class Config;
72#define AUTOREDIAL_KEY "AutomaticRedial" 74#define AUTOREDIAL_KEY "AutomaticRedial"
73#define DISCONNECT_KEY "DisconnectOnXServerExit" 75#define DISCONNECT_KEY "DisconnectOnXServerExit"
74#define QUITONDISCONNECT_KEY "QuitOnDisconnect" 76#define QUITONDISCONNECT_KEY "QuitOnDisconnect"
75#define NUMACCOUNTS_KEY "NumberOfAccounts" 77#define NUMACCOUNTS_KEY "HighcountAccounts"
78#define NUMDEVICES_KEY "HighcountDevices"
76 #define ID_KEY "ID" 79 #define ID_KEY "ID"
77 80
78// modem 81// modem
82#define MODEMNAME_KEY "Modem_Name"
79#define MODEMDEV_KEY "Device" 83#define MODEMDEV_KEY "Device"
80#define LOCKFILE_KEY "UseLockFile" 84#define LOCKFILE_KEY "UseLockFile"
81#define FLOWCONTROL_KEY "FlowControl" 85#define FLOWCONTROL_KEY "FlowControl"
@@ -151,6 +155,10 @@ class Config;
151#define ACOUNTS_DEV "Accounts_Modem" 155#define ACOUNTS_DEV "Accounts_Modem"
152#define ACOUNTS_ACC "Accounts_Account" 156#define ACOUNTS_ACC "Accounts_Account"
153 157
158#define DEVICESNAMES_LIST "DevicesNames_List"
159#define DEVICES_LIST "Devices_List"
160#define DEVICES_LIST_SEP ','
161
154class PPPData { 162class PPPData {
155public: 163public:
156 PPPData(); 164 PPPData();
@@ -162,6 +170,8 @@ public:
162 void save(); 170 void save();
163 void cancel(); 171 void cancel();
164 172
173 QStringList getAccountList();
174
165 static QMap<QString,QString> getConfiguredInterfaces(); 175 static QMap<QString,QString> getConfiguredInterfaces();
166 static void setConfiguredInterfaces( QMap<QString,QString> ); 176 static void setConfiguredInterfaces( QMap<QString,QString> );
167 177
@@ -184,7 +194,7 @@ public:
184 QString password(); 194 QString password();
185 void setPassword(const QString &); 195 void setPassword(const QString &);
186 196
187 int currentAccountID() { return caccount; }; 197// int currentAccountID() { return caccount; };
188 const QString defaultAccount(); 198 const QString defaultAccount();
189 void setDefaultAccount(const QString &); 199 void setDefaultAccount(const QString &);
190 200
@@ -236,8 +246,12 @@ public:
236 void setModemEscapeResp(const QString &); 246 void setModemEscapeResp(const QString &);
237 const QString modemEscapeResp(); 247 const QString modemEscapeResp();
238 248
239 const QString modemDevice(); 249// const QString modemName();
240 bool setModemDevice(const QString &); 250// bool setModemName(const QString &);
251// bool changeModemName(const QString &);
252
253 const QString modemDevice();
254 bool setModemDevice(const QString &);
241 255
242 const QString flowcontrol(); 256 const QString flowcontrol();
243 void setFlowcontrol(const QString &); 257 void setFlowcontrol(const QString &);
@@ -313,14 +327,15 @@ public:
313 // functions to set/get account information 327 // functions to set/get account information
314 int count() const; 328 int count() const;
315 bool setAccount(const QString &); 329 bool setAccount(const QString &);
316 bool setAccountbyIndex(int); 330// bool setAccountbyIndex(int);
317 331
318 bool isUniqueAccname(const QString &); 332 bool isUniqueAccname(const QString &);
333 bool isUniqueDevname(const QString &);
319 334
320 bool deleteAccount(); 335 bool deleteAccount();
321 bool deleteAccount(const QString &); 336 bool deleteAccount(const QString &);
322 int newaccount(); 337 int newaccount();
323 int copyaccount(int i); 338 int copyaccount(const QString&);
324 339
325 const QString accname(); 340 const QString accname();
326 void setAccname(const QString &); 341 void setAccname(const QString &);
@@ -409,17 +424,28 @@ public:
409 int pppdError() const; 424 int pppdError() const;
410 void setpppdError(int err); 425 void setpppdError(int err);
411 426
427 QStringList getDevicesList();
412 428
413 static QString encodeWord(const QString &s); 429 static QString encodeWord(const QString &s);
414 430
431 const QString devname();
432 void setDevname(const QString &);
433 bool setDevice(const QString& );
434 bool deleteDevice();
435 bool deleteDevice(const QString &);
436 int newdevice();
437 int copydevice(const QString&);
438 QStringList getDevicesNamesList();
439
415private: 440private:
416 441
417 //static PPPData *_data; 442 //static PPPData *_data;
418 int modemDeviceGroup; 443// int modemDeviceGroup;
419 QString passwd; 444 QString passwd;
420 // static Config* config; // configuration object 445 QString _modemName;
421 int highcount; // index of highest account 446 int highcount; // index of highest account
422 int caccount; // index of the current account 447 int highcountdev; // index of highest device
448// int caccount; // index of the current account
423 QString cgroup; // name of current config group 449 QString cgroup; // name of current config group
424 pid_t suidprocessid; // process ID of setuid child 450 pid_t suidprocessid; // process ID of setuid child
425 bool pppdisrunning; // pppd process 451 bool pppdisrunning; // pppd process
@@ -427,7 +453,10 @@ private:
427 int pppderror; // error encounterd running pppd 453 int pppderror; // error encounterd running pppd
428 int pppdVer, pppdMod, pppdPatch; // pppd version 454 int pppdVer, pppdMod, pppdPatch; // pppd version
429 455
456
430 QStringList phonelist; 457 QStringList phonelist;
458 QStringList accountList;
459 QStringList deviceList;
431 QMap<QString,QString> stringEntries; 460 QMap<QString,QString> stringEntries;
432 QMap<QString,int> intEntries; 461 QMap<QString,int> intEntries;
433 QMap<QString,QStringList> listEntries; 462 QMap<QString,QStringList> listEntries;
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,35 +1,93 @@
1#include <errno.h>
2#include <signal.h>
1 3
4
5#include <qpe/config.h>
6
7#include "modem.h"
2#include "pppconfig.h" 8#include "pppconfig.h"
3#include "pppmodule.h" 9#include "pppmodule.h"
4#include "pppdata.h" 10#include "pppdata.h"
5#include "interfaceinformationppp.h" 11#include "interfaceinformationppp.h"
6#include "interfaceppp.h" 12#include "interfaceppp.h"
7 13
14// don't polute global namespace
15namespace {
16 /*
17 * If network settings is qutting and we've ppp
18 * devices open we need to save the pid_t the PPData
19 * and the interface number
20 */
21 struct Connection {
22 pid_t pid;
23 QString device;
24 QString name;
25 };
26 class InterfaceKeeper {
27 public:
28 InterfaceKeeper();
29 ~InterfaceKeeper();
30
31 void addInterface( pid_t, const QString& pppDev, const QString& name );
32 QMap<QString, Connection> interfaces()const; // will check if still available
33 private:
34 bool isAvailable( pid_t )const;
35 QMap<QString, Connection> m_interfaces;
36 };
37}
38
8 39
9/** 40/**
10 * Constructor, find all of the possible interfaces 41 * Constructor, find all of the possible interfaces
42 * We also need to restore the state.. it could be that
43 * an interface was up while closing the application
44 * we need to be able to shut it down...
11 */ 45 */
12PPPModule::PPPModule() : Module() 46PPPModule::PPPModule() : Module()
13{ 47{
48 InterfaceKeeper inFace;
49 QMap<QString,Connection> running = inFace.interfaces();
50 QStringList handledInterfaceNames;
51
14 QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces(); 52 QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces();
15 QMap<QString,QString>::Iterator it; 53 QMap<QString,QString>::Iterator it;
16 InterfacePPP *iface; 54 InterfacePPP *iface;
17 qDebug("getting interfaces"); 55 qDebug("getting interfaces");
18 for( it = ifaces.begin(); it != ifaces.end(); ++it ){ 56 for( it = ifaces.begin(); it != ifaces.end(); ++it ){
19 qDebug("ifaces %s", it.key().latin1()); 57 qDebug("ifaces %s %s", it.key().latin1(), it.data().latin1() );
20 iface = new InterfacePPP( 0, it.key() ); 58 iface = new InterfacePPP( 0, it.key() );
21 iface->setHardwareName( it.data() ); 59 iface->setHardwareName( it.data() );
22 list.append( (Interface*)iface ); 60 list.append( (Interface*)iface );
61
62 // check if (*it) is one of the running ifaces
63 if ( running.contains( it.data() ) ) {
64 qDebug("iface is running %s", it.key().latin1() );
65 handledInterfaceNames << running[it.data()].device;
66 iface->setStatus( true );
67 iface->setPPPDpid( running[it.data()].pid );
68 iface->modem()->setPPPDevice( running[it.data()].device );
69 iface->refresh();
70 }
23 } 71 }
72
73 setHandledInterfaceNames( handledInterfaceNames );
24} 74}
25 75
26/** 76/**
27 * Delete any interfaces that we own. 77 * Delete any interfaces that we own.
28 */ 78 */
29PPPModule::~PPPModule(){ 79PPPModule::~PPPModule(){
80 qDebug("PPPModule::~PPPModule() " );
30 QMap<QString,QString> ifaces; 81 QMap<QString,QString> ifaces;
82 InterfaceKeeper keeper;
31 Interface *i; 83 Interface *i;
32 for ( i=list.first(); i != 0; i=list.next() ){ 84 for ( i=list.first(); i != 0; i=list.next() ){
85 /* if online save the state */
86 if ( i->getStatus() ) {
87 qDebug("Iface %s is still up", i->getHardwareName().latin1() );
88 InterfacePPP* ppp = static_cast<InterfacePPP*>(i);
89 keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() );
90 }
33 ifaces.insert( i->getInterfaceName(), i->getHardwareName() ); 91 ifaces.insert( i->getInterfaceName(), i->getHardwareName() );
34 delete i; 92 delete i;
35 } 93 }
@@ -69,7 +127,7 @@ QWidget *PPPModule::configure(Interface *i){
69 qDebug("return ModemWidget"); 127 qDebug("return ModemWidget");
70 PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i, 128 PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i,
71 0, "PPPConfig", false, 129 0, "PPPConfig", false,
72 Qt::WDestructiveClose ); 130 Qt::WDestructiveClose | Qt::WStyle_ContextHelp);
73 return pppconfig; 131 return pppconfig;
74} 132}
75 133
@@ -135,3 +193,58 @@ void PPPModule::possibleNewInterfaces(QMap<QString, QString> &newIfaces)
135} 193}
136 194
137 195
196
197namespace {
198 InterfaceKeeper::InterfaceKeeper( ) {
199 }
200 InterfaceKeeper::~InterfaceKeeper() {
201 Config cfg("ppp_plugin_keeper");
202 QStringList lst = cfg.groupList();
203 for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
204 Connection con;
205 cfg.setGroup( (*it) );
206 cfg.clearGroup();
207 }
208
209 for (QMap<QString, Connection>::Iterator it = m_interfaces.begin(); it != m_interfaces.end(); ++it ) {
210 Connection con = it.data();
211 cfg.setGroup( con.name );
212 cfg.writeEntry( "pid", con.pid );
213 cfg.writeEntry( "device", con.device );
214 }
215 }
216 void InterfaceKeeper::addInterface(pid_t pid, const QString& dev, const QString& name ) {
217 Connection con;
218 con.pid = pid;
219 con.device = dev;
220 con.name = name;
221 m_interfaces.insert( name, con );
222 }
223 QMap<QString, Connection> InterfaceKeeper::interfaces()const {
224 Config cfg("ppp_plugin_keeper");
225 QMap<QString, Connection> ifaces;
226 QStringList lst = cfg.groupList();
227 for (QStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
228 Connection con;
229 cfg.setGroup( (*it) );
230 con.name = (*it);
231 con.pid = cfg.readNumEntry("pid");
232 con.device = cfg.readEntry("device");
233 qDebug(" %s %s %d", con.name.latin1(), con.device.latin1(), con.pid );
234
235 if ( con.pid != -1 && isAvailable( con.pid ) )
236 ifaces.insert( con.name, con );
237 }
238 return ifaces;
239 }
240 bool InterfaceKeeper::isAvailable( pid_t p)const {
241 if (::kill(p, 0 ) == 0 || errno != ESRCH ) {
242 qDebug("isAvailable %d", p);
243 return true;
244 }
245
246 qDebug("notAvailable %d", p);
247 return false;
248 }
249
250}
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
@@ -44,8 +44,6 @@
44#define _PATH_RESCONF "/etc/resolv.conf" 44#define _PATH_RESCONF "/etc/resolv.conf"
45#endif 45#endif
46 46
47//#include <klocale.h>
48#define i18n QObject::tr
49#include "pppdata.h" 47#include "pppdata.h"
50 48
51// initial effective uid (main.cpp) 49// initial effective uid (main.cpp)
@@ -217,7 +215,7 @@ int runTests() {
217 215
218 if(!access) { 216 if(!access) {
219 QMessageBox::warning(0,"error", 217 QMessageBox::warning(0,"error",
220 i18n("You're not allowed to dial out with " 218 QObject::tr("You're not allowed to dial out with "
221 "kppp.\nContact your system administrator.")); 219 "kppp.\nContact your system administrator."));
222 return TEST_CRITICAL; 220 return TEST_CRITICAL;
223 } 221 }
@@ -228,7 +226,7 @@ int runTests() {
228 226
229 if(!f) { 227 if(!f) {
230 QMessageBox::warning(0,"error", 228 QMessageBox::warning(0,"error",
231 i18n("Cannot find the PPP daemon!\n" 229 QObject::tr("Cannot find the PPP daemon!\n"
232 "Make sure that pppd is installed.")); 230 "Make sure that pppd is installed."));
233 warning++; 231 warning++;
234 } 232 }
@@ -238,7 +236,7 @@ int runTests() {
238#if 0 236#if 0
239 if(access(f, X_OK) != 0 /* && geteuid() != 0 */) { 237 if(access(f, X_OK) != 0 /* && geteuid() != 0 */) {
240 KMessageBox::warning(0, 238 KMessageBox::warning(0,
241 i18n("You do not have the permission " 239 QObject::tr("You do not have the permission "
242 "to start pppd!\n" 240 "to start pppd!\n"
243 "Contact your system administrator " 241 "Contact your system administrator "
244 "and ask to get access to pppd.")); 242 "and ask to get access to pppd."));
@@ -251,7 +249,7 @@ int runTests() {
251 stat(f, &st); 249 stat(f, &st);
252 if(st.st_uid != 0 || (st.st_mode & S_ISUID) == 0) { 250 if(st.st_uid != 0 || (st.st_mode & S_ISUID) == 0) {
253 QMessageBox::warning(0,"error", 251 QMessageBox::warning(0,"error",
254 i18n("You don't have sufficient permission to run\n" 252 QObject::tr("You don't have sufficient permission to run\n"
255 "%1\n" 253 "%1\n"
256 "Please make sure that kppp is owned by root " 254 "Please make sure that kppp is owned by root "
257 "and has the SUID bit set.").arg(f)); 255 "and has the SUID bit set.").arg(f));
@@ -263,7 +261,7 @@ int runTests() {
263 // Test 5: check for existence of /etc/resolv.conf 261 // Test 5: check for existence of /etc/resolv.conf
264 if (access(_PATH_RESCONF, R_OK) != 0) { 262 if (access(_PATH_RESCONF, R_OK) != 0) {
265 QString file = _PATH_RESCONF" "; 263 QString file = _PATH_RESCONF" ";
266 QString msgstr = i18n("%1 is missing or can't be read!\n" 264 QString msgstr = QObject::tr("%1 is missing or can't be read!\n"
267 "Ask your system administrator to create " 265 "Ask your system administrator to create "
268 "this file (can be empty) with appropriate " 266 "this file (can be empty) with appropriate "
269 "read and write permissions.").arg(file); 267 "read and write permissions.").arg(file);
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
@@ -4,6 +4,7 @@
4KeyEdit::KeyEdit(QWidget* parent, const char* name) : 4KeyEdit::KeyEdit(QWidget* parent, const char* name) :
5 QLineEdit(parent, name) 5 QLineEdit(parent, name)
6{ 6{
7 setEchoMode(Password);
7} 8}
8 9
9KeyEdit::~KeyEdit() 10KeyEdit::~KeyEdit()
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
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>251</width> 14 <width>247</width>
15 <height>299</height> 15 <height>299</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -287,34 +287,18 @@
287 <item> 287 <item>
288 <property> 288 <property>
289 <name>text</name> 289 <name>text</name>
290 <string>Auto</string> 290 <string>any</string>
291 </property>
292 </item>
293 <item>
294 <property>
295 <name>text</name>
296 <string>Managed</string>
297 </property>
298 </item>
299 <item>
300 <property>
301 <name>text</name>
302 <string>Ad-Hoc</string>
303 </property> 291 </property>
304 </item> 292 </item>
305 <property stdset="1"> 293 <property stdset="1">
306 <name>name</name> 294 <name>name</name>
307 <cstring>mode</cstring> 295 <cstring>essid</cstring>
308 </property>
309 <property stdset="1">
310 <name>enabled</name>
311 <bool>true</bool>
312 </property> 296 </property>
313 <property stdset="1"> 297 <property stdset="1">
314 <name>geometry</name> 298 <name>geometry</name>
315 <rect> 299 <rect>
316 <x>101</x> 300 <x>101</x>
317 <y>11</y> 301 <y>46</y>
318 <width>103</width> 302 <width>103</width>
319 <height>29</height> 303 <height>29</height>
320 </rect> 304 </rect>
@@ -322,28 +306,70 @@
322 <property stdset="1"> 306 <property stdset="1">
323 <name>sizePolicy</name> 307 <name>sizePolicy</name>
324 <sizepolicy> 308 <sizepolicy>
325 <hsizetype>1</hsizetype> 309 <hsizetype>7</hsizetype>
326 <vsizetype>0</vsizetype> 310 <vsizetype>0</vsizetype>
327 </sizepolicy> 311 </sizepolicy>
328 </property> 312 </property>
313 <property stdset="1">
314 <name>editable</name>
315 <bool>true</bool>
316 </property>
317 <property stdset="1">
318 <name>currentItem</name>
319 <number>0</number>
320 </property>
321 <property stdset="1">
322 <name>sizeLimit</name>
323 <number>5</number>
324 </property>
325 <property stdset="1">
326 <name>autoCompletion</name>
327 <bool>true</bool>
328 </property>
329 <property stdset="1">
330 <name>duplicatesEnabled</name>
331 <bool>false</bool>
332 </property>
329 </widget> 333 </widget>
330 <widget> 334 <widget>
331 <class>QComboBox</class> 335 <class>QComboBox</class>
332 <item> 336 <item>
333 <property> 337 <property>
334 <name>text</name> 338 <name>text</name>
335 <string>any</string> 339 <string>Infrastructure</string>
340 </property>
341 </item>
342 <item>
343 <property>
344 <name>text</name>
345 <string>Auto</string>
346 </property>
347 </item>
348 <item>
349 <property>
350 <name>text</name>
351 <string>Managed</string>
352 </property>
353 </item>
354 <item>
355 <property>
356 <name>text</name>
357 <string>Ad-Hoc</string>
336 </property> 358 </property>
337 </item> 359 </item>
338 <property stdset="1"> 360 <property stdset="1">
339 <name>name</name> 361 <name>name</name>
340 <cstring>essid</cstring> 362 <cstring>mode</cstring>
363 </property>
364 <property stdset="1">
365 <name>enabled</name>
366 <bool>true</bool>
341 </property> 367 </property>
342 <property stdset="1"> 368 <property stdset="1">
343 <name>geometry</name> 369 <name>geometry</name>
344 <rect> 370 <rect>
345 <x>101</x> 371 <x>101</x>
346 <y>46</y> 372 <y>11</y>
347 <width>103</width> 373 <width>103</width>
348 <height>29</height> 374 <height>29</height>
349 </rect> 375 </rect>
@@ -351,30 +377,10 @@
351 <property stdset="1"> 377 <property stdset="1">
352 <name>sizePolicy</name> 378 <name>sizePolicy</name>
353 <sizepolicy> 379 <sizepolicy>
354 <hsizetype>7</hsizetype> 380 <hsizetype>1</hsizetype>
355 <vsizetype>0</vsizetype> 381 <vsizetype>0</vsizetype>
356 </sizepolicy> 382 </sizepolicy>
357 </property> 383 </property>
358 <property stdset="1">
359 <name>editable</name>
360 <bool>true</bool>
361 </property>
362 <property stdset="1">
363 <name>currentItem</name>
364 <number>0</number>
365 </property>
366 <property stdset="1">
367 <name>sizeLimit</name>
368 <number>5</number>
369 </property>
370 <property stdset="1">
371 <name>autoCompletion</name>
372 <bool>true</bool>
373 </property>
374 <property stdset="1">
375 <name>duplicatesEnabled</name>
376 <bool>false</bool>
377 </property>
378 </widget> 384 </widget>
379 </widget> 385 </widget>
380 <widget> 386 <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
@@ -27,7 +27,7 @@
27/** 27/**
28 * Constructor, read in the wireless.opts file for parsing later. 28 * Constructor, read in the wireless.opts file for parsing later.
29 */ 29 */
30WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), currentProfile("*"), interface(i) { 30WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") {
31 interfaces = new Interfaces(); 31 interfaces = new Interfaces();
32 interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); 32 interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces);
33 tabWidget->insertTab(interfaceSetup, "TCP/IP"); 33 tabWidget->insertTab(interfaceSetup, "TCP/IP");
@@ -67,14 +67,9 @@ void WLANImp::parseOpts() {
67 } 67 }
68 68
69 opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); 69 opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace();
70 if (opt == "Auto") { 70
71 mode->setCurrentItem(0); 71 for ( int i = 0; i < mode->count(); i++)
72 } else if (opt == "Ad-Hoc") { 72 if ( mode->text( i ) == opt ) mode->setCurrentItem( i );
73 mode->setCurrentItem(2);
74 } else {
75 // Managed/Infrastructure mode
76 mode->setCurrentItem(1);
77 }
78 73
79 opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); 74 opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace();
80 if (! opt.isNull()) { 75 if (! opt.isNull()) {
@@ -203,11 +198,20 @@ void WLANImp::accept() {
203 writeOpts(); 198 writeOpts();
204 199
205 // Close out the dialog 200 // Close out the dialog
206 QDialog::accept(); 201// FIXME: QDialog::accept();
207} 202}
208 203
209void WLANImp::writeOpts() { 204void WLANImp::writeOpts() {
210 bool error = false; 205 // eh can't really do anything about it other then return. :-D
206 if(!interfaces->isInterfaceSet()){
207 QMessageBox::warning(0,"Inface not set","should not happen!!!");
208 return;
209 }
210 bool error = false;
211
212 qDebug("setting wlan interface %s", interfaces->getInterfaceName( error ).latin1() );
213
214 if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!");
211 215
212 interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText()); 216 interfaces->setInterfaceOption(QString("wireless_mode"), mode->currentText());
213 interfaces->setInterfaceOption(QString("wireless_essid"), essid->currentText()); 217 interfaces->setInterfaceOption(QString("wireless_essid"), essid->currentText());
@@ -230,13 +234,16 @@ void WLANImp::writeOpts() {
230 if (! keyLineEdit0->text().isNull()) { 234 if (! keyLineEdit0->text().isNull()) {
231 keyList += keyLineEdit0->text(); 235 keyList += keyLineEdit0->text();
232 keyList += "[1]"; 236 keyList += "[1]";
233 } else if (! keyLineEdit1->text().isNull()) { 237 } //else
238 if (! keyLineEdit1->text().isNull()) {
234 keyList += keyLineEdit1->text(); 239 keyList += keyLineEdit1->text();
235 keyList += "[2]"; 240 keyList += "[2]";
236 } else if (! keyLineEdit2->text().isNull()) { 241 } //else
242 if (! keyLineEdit2->text().isNull()) {
237 keyList += keyLineEdit2->text(); 243 keyList += keyLineEdit2->text();
238 keyList += "[3]"; 244 keyList += "[3]";
239 } else if (! keyLineEdit3->text().isNull()) { 245 } //else
246 if (! keyLineEdit3->text().isNull()) {
240 keyList += keyLineEdit3->text(); 247 keyList += keyLineEdit3->text();
241 keyList += "[4]"; 248 keyList += "[4]";
242 } 249 }
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,5 +1,5 @@
1#include "wlanmodule.h" 1#include "wlanmodule.h"
2#include "wlanimp.h" 2#include "wlanimp2.h"
3#include "infoimp.h" 3#include "infoimp.h"
4#include "wextensions.h" 4#include "wextensions.h"
5#include "interfaceinformationimp.h" 5#include "interfaceinformationimp.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
@@ -425,7 +425,7 @@ void UserDialog::accept() {
425 * 425 *
426 */ 426 */
427void UserDialog::clickedPicture() { 427void UserDialog::clickedPicture() {
428 QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED,"/opt/QtPalmtop/pics"); 428 QString filename=OFileDialog::getOpenFileName(OFileSelector::EXTENDED, QString::null);
429 if(!(filename.isEmpty())) { 429 if(!(filename.isEmpty())) {
430 userImage.reset(); 430 userImage.reset();
431 if(!(userImage.load(filename))) { 431 if(!(userImage.load(filename))) {
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
@@ -16,6 +16,7 @@
16#include <qtabwidget.h> 16#include <qtabwidget.h>
17#include <qpushbutton.h> 17#include <qpushbutton.h>
18#include <qcheckbox.h> 18#include <qcheckbox.h>
19#include <qlabel.h>
19 20
20#include <qpe/resource.h> 21#include <qpe/resource.h>
21 22
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
@@ -27,7 +27,7 @@
27 * 27 *
28 */ 28 */
29UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) { 29UserConfig::UserConfig(QWidget* parent, const char* name, WFlags fl) : QMainWindow(parent, name, fl) {
30 setCaption(tr("OPIE User Manager")); 30 setCaption(tr("Opie User Manager"));
31 31
32 // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them. 32 // Create an instance of the global object 'accounts'. This holds all user/group info, and functions to modify them.
33 accounts=new Passwd(); 33 accounts=new Passwd();
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
@@ -2,7 +2,7 @@ TEMPLATE = app
2 #CONFIG = qt warn_on debug 2 #CONFIG = qt warn_on debug
3 CONFIG = qt warn_on release 3 CONFIG = qt warn_on release
4 HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h 4 HEADERS = usermanager.h userdialog.h groupdialog.h passwd.h
5 SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.cpp main.cpp 5 SOURCES = usermanager.cpp userdialog.cpp groupdialog.cpp passwd.h main.cpp
6 INCLUDEPATH+= $(OPIEDIR)/include 6 INCLUDEPATH+= $(OPIEDIR)/include
7 DEPENDPATH+= $(OPIEDIR)/include 7 DEPENDPATH+= $(OPIEDIR)/include
8LIBS += -lqpe -lopie -lcrypt 8LIBS += -lqpe -lopie -lcrypt
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
@@ -18,8 +18,7 @@
18** 18**
19**********************************************************************/ 19**********************************************************************/
20 20
21#include "flat.h" 21#include <qtopia/qpeapplication.h>
22#include <qpe/qpeapplication.h>
23#include <qpushbutton.h> 22#include <qpushbutton.h>
24#include <qtoolbutton.h> 23#include <qtoolbutton.h>
25#include <qpainter.h> 24#include <qpainter.h>
@@ -32,9 +31,13 @@
32#include <qtabbar.h> 31#include <qtabbar.h>
33#include <qspinbox.h> 32#include <qspinbox.h>
34#include <qlineedit.h> 33#include <qlineedit.h>
34#include <qmap.h>
35 35
36#define INCLUDE_MENUITEM_DEF 36#define INCLUDE_MENUITEM_DEF
37#include <qmenudata.h> 37#include <qmenudata.h>
38#include <qpopupmenu.h>
39
40#include "flat.h"
38 41
39#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2) 42#define QCOORDARRLEN(x) sizeof(x)/(sizeof(QCOORD)*2)
40 43
@@ -54,23 +57,37 @@ public:
54 FlatStylePrivate() : QObject() {} 57 FlatStylePrivate() : QObject() {}
55 58
56 bool eventFilter( QObject *o, QEvent *e ) { 59 bool eventFilter( QObject *o, QEvent *e ) {
57 if ( e->type() == QEvent::ParentPaletteChange && o->inherits( "QMenuBar" ) ) { 60 if ( e->type() == QEvent::ParentPaletteChange ) {
58 QWidget *w = (QWidget *)o; 61 if ( o->inherits( "QMenuBar" ) ) {
59 if ( w->parentWidget() ) { 62 QWidget *w = (QWidget *)o;
60 QPalette p = w->parentWidget()->palette(); 63 if ( w->parentWidget() ) {
61 QColorGroup a = p.active(); 64 QPalette p = w->parentWidget()->palette();
62 a.setColor( QColorGroup::Light, a.foreground() ); 65 QColorGroup a = p.active();
63 a.setColor( QColorGroup::Dark, a.foreground() ); 66 a.setColor( QColorGroup::Light, a.foreground() );
64 p.setActive( a ); 67 a.setColor( QColorGroup::Dark, a.foreground() );
65 p.setInactive( a ); 68 p.setActive( a );
66 w->setPalette( p ); 69 p.setInactive( a );
70 w->setPalette( p );
71 }
72 } else if ( o->inherits( "QHeader" ) ) {
73 QWidget *w = (QWidget *)o;
74 if ( w->parentWidget() ) {
75 QPalette p = w->parentWidget()->palette();
76 QColorGroup a = p.active();
77 a.setColor( QColorGroup::Light, a.button() );
78 p.setActive( a );
79 p.setInactive( a );
80 w->setPalette( p );
81 }
67 } 82 }
68 } 83 }
69 return FALSE; 84 return FALSE;
70 } 85 }
86
87 QMap<QFrame *,int> frameStyles;
71}; 88};
72 89
73FlatStyle::FlatStyle() : revItem(FALSE) 90FlatStyle::FlatStyle() : revItem(FALSE), fillBtnBorder(FALSE)
74{ 91{
75 setButtonMargin(3); 92 setButtonMargin(3);
76 setScrollBarExtent(13,13); 93 setScrollBarExtent(13,13);
@@ -101,7 +118,9 @@ void FlatStyle::polish( QWidget *w )
101{ 118{
102 if ( w->inherits( "QFrame" ) ) { 119 if ( w->inherits( "QFrame" ) ) {
103 QFrame *f = (QFrame *)w; 120 QFrame *f = (QFrame *)w;
104 if ( f->frameShape() != QFrame::NoFrame ) 121 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine )
122 f->setFrameShadow( QFrame::Plain );
123 else if ( f->frameShape() != QFrame::NoFrame )
105 f->setFrameShape( QFrame::StyledPanel ); 124 f->setFrameShape( QFrame::StyledPanel );
106 f->setLineWidth( 1 ); 125 f->setLineWidth( 1 );
107 } 126 }
@@ -117,20 +136,32 @@ void FlatStyle::polish( QWidget *w )
117 p.setInactive( a ); 136 p.setInactive( a );
118 w->setPalette( p ); 137 w->setPalette( p );
119 w->installEventFilter( d ); 138 w->installEventFilter( d );
139 } else if ( w->inherits( "QHeader" ) ) {
140 // make headers look flat
141 QPalette p = w->palette();
142 QColorGroup a = p.active();
143 a.setColor( QColorGroup::Light, a.button() );
144 p.setActive( a );
145 p.setInactive( a );
146 w->setPalette( p );
147 w->installEventFilter( d );
120 } 148 }
121} 149}
122 150
123void FlatStyle::unPolish( QWidget *w ) 151void FlatStyle::unPolish( QWidget *w )
124{ 152{
125 if ( w->inherits( "QFrame" ) ) { 153 if ( w->inherits("QFrame") ) {
126 QFrame *f = (QFrame *)w; 154 QFrame *f = (QFrame *)w;
127 if ( f->frameShape() != QFrame::NoFrame ) 155 if ( f->frameShape() == QFrame::HLine || f->frameShape() == QFrame::VLine ) {
156 f->setFrameShadow( QFrame::Sunken );
157 } else if ( f->frameShape() != QFrame::NoFrame ) {
128 f->setFrameShape( QFrame::StyledPanel ); 158 f->setFrameShape( QFrame::StyledPanel );
129 f->setLineWidth( 2 ); 159 f->setLineWidth( 2 );
160 }
130 } 161 }
131 if ( w->inherits( "QSpinBox" ) ) 162 if ( w->inherits("QSpinBox") )
132 ((SpinBoxHack*)w)->setFlatButtons( FALSE ); 163 ((SpinBoxHack*)w)->setFlatButtons( FALSE );
133 if ( w->inherits( "QMenuBar" ) ) { 164 if ( w->inherits("QMenuBar") || w->inherits("QHeader") ) {
134 w->unsetPalette(); 165 w->unsetPalette();
135 w->removeEventFilter( d ); 166 w->removeEventFilter( d );
136 } 167 }
@@ -138,7 +169,7 @@ void FlatStyle::unPolish( QWidget *w )
138 169
139int FlatStyle::defaultFrameWidth() const 170int FlatStyle::defaultFrameWidth() const
140{ 171{
141 return 1; 172 return 2;
142} 173}
143 174
144void FlatStyle::drawItem( QPainter *p, int x, int y, int w, int h, 175void FlatStyle::drawItem( QPainter *p, int x, int y, int w, int h,
@@ -171,16 +202,30 @@ void FlatStyle::drawButton( QPainter *p, int x, int y, int w, int h,
171{ 202{
172 QPen oldPen = p->pen(); 203 QPen oldPen = p->pen();
173 204
205 int x2 = x+w-1;
206 int y2 = y+h-1;
207
208 if ( fillBtnBorder && btnBg != cg.color(QColorGroup::Button) ) {
209 p->setPen( btnBg );
210 p->drawLine( x, y, x2, y );
211 p->drawLine( x, y2, x2, y2 );
212 p->drawLine( x, y+1, x, y2-1 );
213 p->drawLine( x2, y+1, x2, y2-1 );
214 p->fillRect( x+1, y+1, 3, 3, btnBg );
215 p->fillRect( x+1, y2-3, 3, 3, btnBg );
216 p->fillRect( x2-3, y2-3, 3, 3, btnBg );
217 p->fillRect( x2-3, y+1, 3, 3, btnBg );
218 p->fillRect( x+2, y+2, w-4, h-4, fill?(*fill):cg.brush(QColorGroup::Button) );
219 } else {
220 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) );
221 }
222
174 if ( h >= 10 ) { 223 if ( h >= 10 ) {
175 x++; y++; 224 x++; y++;
225 x2--; y2--;
176 w -= 2; h -= 2; 226 w -= 2; h -= 2;
177 } 227 }
178 228
179 p->fillRect( x+1, y+1, w-2, h-2, fill?(*fill):cg.brush(QColorGroup::Button) );
180
181 int x2 = x+w-1;
182 int y2 = y+h-1;
183
184 p->setPen( cg.foreground() ); 229 p->setPen( cg.foreground() );
185 230
186 if ( h < 10 ) { 231 if ( h < 10 ) {
@@ -225,12 +270,23 @@ void FlatStyle::drawBevelButton( QPainter *p, int x, int y, int w, int h,
225void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h, 270void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h,
226 const QColorGroup &g, bool sunken, const QBrush* fill ) 271 const QColorGroup &g, bool sunken, const QBrush* fill )
227{ 272{
273 if ( p->device()->devType() == QInternal::Widget ) {
274 QWidget *w = (QWidget *)p->device();
275 if ( w->isA("QToolButton") ) {
276 QToolButton *btn = (QToolButton *)w;
277 if ( btn->parentWidget() ) {
278 btnBg = btn->parentWidget()->backgroundColor();
279 fillBtnBorder = TRUE;
280 }
281 }
282 }
228 QBrush fb( fill ? *fill : g.button() ); 283 QBrush fb( fill ? *fill : g.button() );
229 if ( sunken && fb == g.brush( QColorGroup::Button ) ) { 284 if ( sunken && fb == g.brush( QColorGroup::Button ) ) {
230 fb = g.buttonText(); 285 fb = g.buttonText();
231 revItem = TRUE;// ugh 286 revItem = TRUE;// ugh
232 } 287 }
233 drawButton( p, x, y, w, h, g, sunken, &fb ); 288 drawButton( p, x, y, w, h, g, sunken, &fb );
289 fillBtnBorder = FALSE;
234} 290}
235 291
236void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p ) 292void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
@@ -257,6 +313,11 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
257 } 313 }
258 */ 314 */
259 315
316 if ( btn->parentWidget() ) {
317 btnBg = btn->parentWidget()->backgroundColor();
318 fillBtnBorder = TRUE;
319 }
320
260 bool clearButton = TRUE; 321 bool clearButton = TRUE;
261 if ( btn->isDown() ) { 322 if ( btn->isDown() ) {
262 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE, 323 drawButton( p, x1, y1, x2-x1+1, y2-y1+1, g, TRUE,
@@ -283,6 +344,7 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
283 } 344 }
284 */ 345 */
285 346
347 fillBtnBorder = FALSE;
286 if ( p->brush().style() != NoBrush ) 348 if ( p->brush().style() != NoBrush )
287 p->setBrush( NoBrush ); 349 p->setBrush( NoBrush );
288} 350}
@@ -589,7 +651,8 @@ void FlatStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sl
589 p->setBrush( g.brush( QColorGroup::Mid ) ); 651 p->setBrush( g.brush( QColorGroup::Mid ) );
590 if ( controls & SubPage ) 652 if ( controls & SubPage )
591 p->drawRect( subPageR.x(), subPageR.y(), subPageR.width(), subPageR.height() ); 653 p->drawRect( subPageR.x(), subPageR.y(), subPageR.width(), subPageR.height() );
592 if ( controls & AddPage && addPageR.y() < addPageR.bottom() ) 654 if ( controls & AddPage && addPageR.y() < addPageR.bottom() &&
655 addPageR.x() < addPageR.right() )
593 p->drawRect( addPageR.x(), addPageR.y(), addPageR.width(), addPageR.height() ); 656 p->drawRect( addPageR.x(), addPageR.y(), addPageR.width(), addPageR.height() );
594 if ( controls & Slider ) { 657 if ( controls & Slider ) {
595 QPoint bo = p->brushOrigin(); 658 QPoint bo = p->brushOrigin();
@@ -784,6 +847,12 @@ static const int motifCheckMarkHMargin = 1; // horiz. margins of check mark
784 static const int windowsRightBorder= 8; // right border on windows 847 static const int windowsRightBorder= 8; // right border on windows
785static const int windowsCheckMarkWidth = 2; // checkmarks width on windows 848static const int windowsCheckMarkWidth = 2; // checkmarks width on windows
786 849
850void FlatStyle::polishPopupMenu ( QPopupMenu *m )
851{
852 QWindowsStyle::polishPopupMenu( m );
853 m->setLineWidth( 1 );
854}
855
787/*! \reimp 856/*! \reimp
788*/ 857*/
789int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ ) 858int FlatStyle::extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem* mi, const QFontMetrics& /*fm*/ )
@@ -1008,7 +1077,7 @@ QStyle *FlatStyleImpl::style()
1008 1077
1009QString FlatStyleImpl::name() const 1078QString FlatStyleImpl::name() const
1010{ 1079{
1011 return QString("Flat"); 1080 return qApp->translate("FlatStyle", "Flat", "Name of the style Flat");
1012} 1081}
1013 1082
1014QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface ) 1083QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **iface )
@@ -1018,9 +1087,10 @@ QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **if
1018 *iface = this; 1087 *iface = this;
1019 else if ( uuid == IID_Style ) 1088 else if ( uuid == IID_Style )
1020 *iface = this; 1089 *iface = this;
1090 else
1091 return QS_FALSE;
1021 1092
1022 if ( *iface ) 1093 (*iface)->addRef();
1023 (*iface)->addRef();
1024 return QS_OK; 1094 return QS_OK;
1025} 1095}
1026 1096
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
@@ -21,12 +21,13 @@
21#ifndef FLATSTYLE_H 21#ifndef FLATSTYLE_H
22#define FLATSTYLE_H 22#define FLATSTYLE_H
23 23
24#include <qcolor.h>
24#include <qwindowsstyle.h> 25#include <qwindowsstyle.h>
25#include <qpe/styleinterface.h> 26#include <qpe/styleinterface.h>
26 27
27class FlatStylePrivate; 28class FlatStylePrivate;
28 29
29class Q_EXPORT FlatStyle : public QWindowsStyle 30class FlatStyle : public QWindowsStyle
30{ 31{
31public: 32public:
32 FlatStyle(); 33 FlatStyle();
@@ -73,6 +74,7 @@ public:
73 const QColorGroup& , QCOORD c, Orientation orient ); 74 const QColorGroup& , QCOORD c, Orientation orient );
74 void drawSliderGroove ( QPainter * p, int x, int y, int w, int h, const QColorGroup & g, QCOORD c, Orientation ); 75 void drawSliderGroove ( QPainter * p, int x, int y, int w, int h, const QColorGroup & g, QCOORD c, Orientation );
75 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected ); 76 void drawTab( QPainter *, const QTabBar *, QTab *, bool selected );
77 void polishPopupMenu ( QPopupMenu * );
76 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& ); 78 int extraPopupMenuItemWidth( bool checkable, int maxpmw, QMenuItem*, const QFontMetrics& );
77 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& ); 79 int popupMenuItemHeight( bool checkable, QMenuItem*, const QFontMetrics& );
78 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi, 80 void drawPopupMenuItem( QPainter* p, bool checkable, int maxpmw, int tab, QMenuItem* mi,
@@ -86,6 +88,8 @@ public:
86private: 88private:
87 FlatStylePrivate *d; 89 FlatStylePrivate *d;
88 bool revItem; 90 bool revItem;
91 bool fillBtnBorder;
92 QColor btnBg;
89 // Disabled copy constructor and operator= 93 // Disabled copy constructor and operator=
90#if defined(Q_DISABLE_COPY) 94#if defined(Q_DISABLE_COPY)
91 FlatStyle( const FlatStyle & ); 95 FlatStyle( const FlatStyle & );
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
@@ -9,6 +9,7 @@
9#include <qpushbutton.h> 9#include <qpushbutton.h>
10#include <qwhatsthis.h> 10#include <qwhatsthis.h>
11#include <qlabel.h> 11#include <qlabel.h>
12#include <qlayout.h>
12#include <qpe/config.h> 13#include <qpe/config.h>
13#include <qstringlist.h> 14#include <qstringlist.h>
14#include <qmainwindow.h> 15#include <qmainwindow.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
@@ -121,7 +121,7 @@ StocktickerPluginConfig::StocktickerPluginConfig( QWidget *parent, const char*
121 timerDelaySpin->setMaxValue( 60); 121 timerDelaySpin->setMaxValue( 60);
122 122
123 cfg.setGroup("Timer"); 123 cfg.setGroup("Timer");
124 timerDelaySpin->setValue( cfg.readNumEntry("Delay",0)); 124 timerDelaySpin->setValue( cfg.readNumEntry("Delay",15));
125 layout->addMultiCellWidget( timerDelaySpin , 6, 6, 0, 0); 125 layout->addMultiCellWidget( timerDelaySpin , 6, 6, 0, 0);
126 126
127 QLabel *label2; 127 QLabel *label2;
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
@@ -28,7 +28,7 @@ class QCheckBox;
28class QSpinBox; 28class QSpinBox;
29 29
30class StocktickerPluginConfig : public TodayConfigWidget { 30class StocktickerPluginConfig : public TodayConfigWidget {
31//Q_OBJECT 31 Q_OBJECT
32public: 32public:
33 StocktickerPluginConfig( QWidget *parent, const char *name ); 33 StocktickerPluginConfig( QWidget *parent, const char *name );
34 ~StocktickerPluginConfig(); 34 ~StocktickerPluginConfig();
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 @@
1/* 1 /*
2 * stocktickerpluginwidget.cpp 2 * stocktickerpluginwidget.cpp
3 * 3 *
4 * copyright : (c) 2002 by L.J. Potter 4 * copyright : (c) 2002 by L.J. Potter
5 * email : llornkcor@handhelds.org 5 * email : llornkcor@handhelds.org
6 * 6 *
7 */ 7 */
8/*************************************************************************** 8 /***************************************************************************
9 * * 9 * *
10 * This program is free software; you can redistribute it and/or modify * 10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by * 11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or * 12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. * 13 * (at your option) any later version. *
14 * * 14 * *
15 ***************************************************************************/ 15 ***************************************************************************/
16 16
17#include <qlayout.h> 17 #include <qlayout.h>
18 18
19#include <qpe/config.h> 19 #include <qpe/config.h>
20 20
21#include <opie/oticker.h> 21 #include <opie/oticker.h>
22 22
23extern "C" { 23 extern "C" {
24#include "libstocks/stocks.h" 24 #include "libstocks/stocks.h"
25} 25 }
26 26
27#include <pthread.h> 27 #include <pthread.h>
28 28
29#include "stocktickerpluginwidget.h" 29 #include "stocktickerpluginwidget.h"
30 30
31QString output; 31 QString output;
32OTicker *stocktickerTicker; 32 OTicker *stocktickerTicker;
33 QCString stock_liste;
34 bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck;
35 bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck;
36 bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck;
33 37
34void getStocks(char *blah) { 38void getStocks(char *blah) {
35 39
36// stocktickerTicker->setText( "Downloading stock data."); 40 // stocktickerTicker->setText( "Downloading stock data.");
37 stock *stocks_quotes=NULL; 41 stock *stocks_quotes=NULL;
38 stock *stocks_tmp; 42 stock *stocks_tmp;
39 QCString stock_liste = blah; 43 stock_liste = blah;
40 ::free ( blah ); 44 ::free ( blah );
41 // char *stock_liste = (char *)blah->latin1(); 45 // char *stock_liste = (char *)blah->latin1();
42 qDebug("%s", stock_liste.data() ); 46 // qDebug("%s", stock_liste.data() );
43 QString tempString; 47 output = "";
44 output = ""; 48 QString tempString;
45 49 libstocks_return_code error;
46 libstocks_return_code error; 50
47 51// Config cfg( "stockticker");
48 Config cfg( "stockticker"); 52// cfg.setGroup( "Fields" );
49 cfg.setGroup( "Fields" ); 53// bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck;
50 bool dotimeCheck, dodateCheck, dosymbolCheck, donameCheck; 54// bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck;
51 bool docurrentPriceCheck, dolastPriceCheck, doopenPriceCheck; 55// bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck;
52 bool dominPriceCheck, domaxPriceCheck, dovariationCheck, dovolumeCheck; 56
53 57 dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false;
54 dotimeCheck=dodateCheck=dosymbolCheck=donameCheck= docurrentPriceCheck=dolastPriceCheck=doopenPriceCheck=dominPriceCheck=domaxPriceCheck=dovariationCheck=dovolumeCheck=false; 58
55 59 dotimeCheck=1;
56 dotimeCheck=cfg.readBoolEntry("timeCheck",1); 60 dodateCheck=1;
57 dodateCheck=cfg.readBoolEntry("dateCheck",1); 61 dosymbolCheck=1;
58 dosymbolCheck=cfg.readBoolEntry("symbolCheck",1); 62 donameCheck=1;
59 donameCheck=cfg.readBoolEntry("nameCheck",1); 63 docurrentPriceCheck=1;
60 docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1); 64 dolastPriceCheck=1;
61 dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1); 65 doopenPriceCheck=1;
62 doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1); 66 dominPriceCheck=1;
63 dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1); 67 domaxPriceCheck=1;
64 domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1); 68 dovariationCheck=1;
65 dovariationCheck=cfg.readBoolEntry("variationCheck",1); 69 dovolumeCheck=1;
66 dovolumeCheck=cfg.readBoolEntry("volumeCheck",1); 70
67 71// dotimeCheck=cfg.readBoolEntry("timeCheck",1);
68// DefProxy(); 72// dodateCheck=cfg.readBoolEntry("dateCheck",1);
69 { 73// dosymbolCheck=cfg.readBoolEntry("symbolCheck",1);
70 char *proxy; 74// donameCheck=cfg.readBoolEntry("nameCheck",1);
71 libstocks_return_code error; 75// docurrentPriceCheck=cfg.readBoolEntry("currentPriceCheck",1);
72 76// dolastPriceCheck=cfg.readBoolEntry("lastPriceCheck",1);
73 /* Proxy support */ 77// doopenPriceCheck=cfg.readBoolEntry("openPriceCheck",1);
74 /* Checks for "http_proxy" environment variable */ 78// dominPriceCheck=cfg.readBoolEntry("minPriceCheck",1);
75 proxy = getenv("http_proxy"); 79// domaxPriceCheck=cfg.readBoolEntry("maxPriceCheck",1);
76 if(proxy) { 80// dovariationCheck=cfg.readBoolEntry("variationCheck",1);
77 /* printf("proxy set\n"); */ 81// dovolumeCheck=cfg.readBoolEntry("volumeCheck",1);
78 error = set_proxy(proxy); 82
79 if (error) { 83 // DefProxy();
80 printf("Proxy error (%d)\n", error); 84 // {
81 QString tempString; 85 char *proxy;
82 tempString.sprintf("Proxy error (%d)\n", error); 86 // libstocks_return_code error;
83 output = tempString; 87
84 return; 88 /* Proxy support */
85// exit(1); 89 /* Checks for "http_proxy" environment variable */
86 } 90 proxy = getenv("http_proxy");
87 } 91 if(proxy) {
88 } 92 /* printf("proxy set\n"); */
89// char *stock_liste = (char *)blah; 93 error = set_proxy(proxy);
90 /* Get the stocks and process errors */ 94 if (error) {
91 error = get_stocks( stock_liste.data(), &stocks_quotes); 95// printf("Proxy error (%d)\n", error);
92 96// QString tempString2;
93 if (error) { 97// tempString2.sprintf("Proxy error (%d)\n", error);
94 printf("Error in getting stocks (%d)\n", error); 98// output = tempString2;
95 tempString.sprintf("Error in getting stocks (%d)\n", error); 99 // delete tempString2;
96 output =tempString; 100 return;
97 return; 101 // exit(1);
98// exit(1); 102 }
99 } 103 }
100 104 ::free(proxy);
101 stocks_tmp = stocks_quotes; 105 // }
102 106 /* Get the stocks and process errors */
103 /* Displays the stocks */ 107 error = get_stocks( stock_liste.data(), &stocks_quotes);
104 while(stocks_tmp!=0){ 108
105 109 if (error) {
106 if (stocks_tmp->Time) { 110 printf("Error in getting stocks (%d)\n", error);
107// printf("%s ", stocks_tmp->Time); 111 tempString.sprintf("Error in getting stocks (%d)\n", error);
108 tempString.sprintf("| %s ", stocks_tmp->Time); 112 output =tempString;
109 tempString.replace(QRegExp("\""),""); 113 return;
110 if( dotimeCheck) 114 }
111 output +=tempString; 115
112 } 116 stocks_tmp = stocks_quotes;
113 if (stocks_tmp->Date) { 117
114// printf("%s ", stocks_tmp->Date); 118 /* Displays the stocks */
115 tempString.sprintf("| %s ", stocks_tmp->Date); 119 while(stocks_tmp!=0){
116 tempString.replace(QRegExp("\""),""); 120
117 if(dodateCheck) 121 if (stocks_tmp->Time) {
118 output +=tempString; 122 // printf("%s ", stocks_tmp->Time);
119 } 123 tempString.sprintf("| %s ", stocks_tmp->Time);
120// printf("\n"); 124 tempString.replace(QRegExp("\""),"");
121 125 if( dotimeCheck)
122// printf("----------------------------------------\n"); 126 output +=tempString;
123 127 }
124 if ( strlen(stocks_tmp->Symbol) > 20 ) { 128 if (stocks_tmp->Date) {
125// printf("| Symbol | %.20s |\n",stocks_tmp->Symbol); 129 // printf("%s ", stocks_tmp->Date);
126 tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); 130 tempString.sprintf("| %s ", stocks_tmp->Date);
127 if(dosymbolCheck) 131 tempString.replace(QRegExp("\""),"");
128 output +=tempString; 132 if(dodateCheck)
129 } 133 output +=tempString;
130 else { 134 }
131// printf("| Symbol | %-20s |\n",stocks_tmp->Symbol); 135 // printf("\n");
132 tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol); 136
133 if(dosymbolCheck) 137 // printf("----------------------------------------\n");
134 output +=tempString; 138
135 } 139 if ( strlen(stocks_tmp->Symbol) > 20 ) {
136 140 // printf("| Symbol | %.20s |\n",stocks_tmp->Symbol);
137 if (stocks_tmp->Name) { 141 tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol);
138 if ( strlen(stocks_tmp->Name) > 20 ) { 142 if(dosymbolCheck)
139// printf("| Name %.20s |\n",stocks_tmp->Name); 143 output +=tempString;
140 tempString.sprintf("| Name %s ",stocks_tmp->Name); 144 }
141 tempString.stripWhiteSpace(); 145 else {
142 if(donameCheck) 146 // printf("| Symbol | %-20s |\n",stocks_tmp->Symbol);
143 output +=tempString; 147 tempString.sprintf("| Symbol %s ",stocks_tmp->Symbol);
144 } else { 148 if(dosymbolCheck)
145// printf("| Name | %-20s |\n",stocks_tmp->Name); 149 output +=tempString;
146 tempString.sprintf("| Name %s ",stocks_tmp->Name); 150 }
147 tempString.stripWhiteSpace(); 151
148 if(donameCheck) 152 if (stocks_tmp->Name) {
149 output +=tempString; 153 if ( strlen(stocks_tmp->Name) > 20 ) {
150 } 154 // printf("| Name %.20s |\n",stocks_tmp->Name);
151 } 155 tempString.sprintf("| Name %s ",stocks_tmp->Name);
152 else { 156 tempString.stripWhiteSpace();
153// printf("| Name | |\n"); 157 if(donameCheck)
154 tempString.sprintf("| Name | |"); 158 output +=tempString;
155 if(donameCheck) 159 } else {
156 output +=tempString; 160 // printf("| Name | %-20s |\n",stocks_tmp->Name);
157 } 161 tempString.sprintf("| Name %s ",stocks_tmp->Name);
158 162 tempString.stripWhiteSpace();
159// printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice); 163 if(donameCheck)
160 tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice); 164 output +=tempString;
161 if(docurrentPriceCheck) 165 }
162 output +=tempString; 166 }
163 167 else {
164// printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice); 168 // printf("| Name | |\n");
165 tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice); 169 tempString.sprintf("| Name | |");
166 if(dolastPriceCheck) 170 if(donameCheck)
167 output +=tempString; 171 output +=tempString;
168 172 }
169// printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice); 173
170 tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice); 174 // printf("| Price | %-7.2f |\n", stocks_tmp->CurrentPrice);
171 if(doopenPriceCheck) 175 tempString.sprintf("| Price %-7.2f ", stocks_tmp->CurrentPrice);
172 output +=tempString; 176 if(docurrentPriceCheck)
173 177 output +=tempString;
174// printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice); 178
175 tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice); 179 // printf("| Yesterday | %-7.2f |\n",stocks_tmp->LastPrice);
176 if(dominPriceCheck) 180 tempString.sprintf("| Yesterday %-7.2f ",stocks_tmp->LastPrice);
177 output +=tempString; 181 if(dolastPriceCheck)
178 182 output +=tempString;
179// printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice); 183
180 tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice); 184 // printf("| Open | %-7.2f |\n",stocks_tmp->OpenPrice);
181 if(domaxPriceCheck) 185 tempString.sprintf("| Open %-7.2f ",stocks_tmp->OpenPrice);
182 output +=tempString; 186 if(doopenPriceCheck)
183 187 output +=tempString;
184// printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage); 188
185 tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage); 189 // printf("| Min | %-7.2f |\n", stocks_tmp->MinPrice);
186 if(dovariationCheck) 190 tempString.sprintf("| Min %-7.2f ", stocks_tmp->MinPrice);
187 output +=tempString; 191 if(dominPriceCheck)
188 192 output +=tempString;
189// printf("| Volume | %-9d |\n", stocks_tmp->Volume); 193
190 tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume); 194 // printf("| Max | %-7.2f |\n",stocks_tmp->MaxPrice);
191 if(dovolumeCheck) 195 tempString.sprintf("| Max %-7.2f ",stocks_tmp->MaxPrice);
192 output +=tempString; 196 if(domaxPriceCheck)
193 197 output +=tempString;
194// printf("----------------------------------------\n\n"); 198
195 tempString.sprintf("||==++==|"); 199 // printf("| Var | %-6.2f (%5.2f %%) |\n", stocks_tmp->Variation, stocks_tmp->Pourcentage);
196 output +=tempString; 200 tempString.sprintf("| Var %-6.2f (%5.2f %%) ", stocks_tmp->Variation, stocks_tmp->Pourcentage);
197 201 if(dovariationCheck)
198 /* Simple function which help to browse in the stocks list */ 202 output +=tempString;
199 stocks_tmp = next_stock(stocks_tmp); 203
200 } 204 // printf("| Volume | %-9d |\n", stocks_tmp->Volume);
201 205 tempString.sprintf("| Volume %-9d ", stocks_tmp->Volume);
202 /* frees stocks */ 206 if(dovolumeCheck)
203 free_stocks(stocks_quotes); 207 output +=tempString;
204 stocktickerTicker->setText( output.latin1() ); 208
205 209 // printf("----------------------------------------\n\n");
206} 210 tempString.sprintf("||==++==|");
207 211 output +=tempString;
208StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name) 212
209 : QWidget(parent, name ) { 213 /* Simple function which help to browse in the stocks list */
210 init(); 214 stocks_tmp = next_stock(stocks_tmp);
211 startTimer(1000); 215 }
212 216
213 stocktickerTicker->setTextFormat(Qt::RichText); 217 stocktickerTicker->setText( output.latin1() );
214// checkConnection(); 218
215} 219 /* frees stocks */
216 220 free_stocks(stocks_quotes);
217StockTickerPluginWidget::~StockTickerPluginWidget() { 221 free_stocks(stocks_tmp);
218} 222
219 223 stock_liste="";
220void StockTickerPluginWidget::init() { 224 //delete stock_liste;
221 225 tempString="";
222 QHBoxLayout* layout = new QHBoxLayout( this ); 226 output="";
223 stocktickerTicker = new OTicker(this); 227 }
224// stocktickerTicker->setMinimumHeight(15); 228
225 connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( checkConnection() )); 229 StockTickerPluginWidget::StockTickerPluginWidget( QWidget *parent, const char* name)
226 layout->addWidget( stocktickerTicker); 230 : QWidget(parent, name ) {
227 wasError = true; 231 init();
228} 232 startTimer(1000);
229 233
230void StockTickerPluginWidget::doStocks() { 234 stocktickerTicker->setTextFormat(Qt::RichText);
231 Config cfg( "stockticker"); 235 // checkConnection();
232 cfg.setGroup( "Symbols" ); 236 }
233 symbollist=""; 237
234 symbollist = cfg.readEntry("Symbols", ""); 238 StockTickerPluginWidget::~StockTickerPluginWidget() {
235 symbollist.replace(QRegExp(" "),"+");//seperated by + 239 }
236 240
237 cfg.setGroup("Timer"); 241 void StockTickerPluginWidget::init() {
238 stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50)); 242
239 stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10)); 243 QHBoxLayout* layout = new QHBoxLayout( this );
240 244 stocktickerTicker = new OTicker(this);
241 if (!symbollist.isEmpty()) { 245 // stocktickerTicker->setMinimumHeight(15);
242 pthread_t thread1; 246 connect( stocktickerTicker, SIGNAL( mousePressed()), this, SLOT( checkConnection() ));
243 char *blah = ::strdup(symbollist.latin1()); 247 layout->addWidget( stocktickerTicker);
244 pthread_create(&thread1,NULL, (void * (*)(void *))getStocks, (void *) blah); 248 wasError = true;
245 } 249 }
246} 250
247 251 void StockTickerPluginWidget::doStocks() {
248void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) { 252 Config cfg( "stockticker");
249 killTimer(e->timerId()); 253 cfg.setGroup( "Symbols" );
250 checkConnection(); 254 symbollist="";
251} 255 symbollist = cfg.readEntry("Symbols", "");
252 256 symbollist.replace(QRegExp(" "),"+");//seperated by +
253void StockTickerPluginWidget::checkConnection() { 257
254// qDebug("checking connection"); 258 cfg.setGroup("Timer");
255// Sock = new QSocket( this ); 259 stocktickerTicker->setUpdateTime( cfg.readNumEntry("ScrollSpeed",50));
256 260 stocktickerTicker->setScrollLength( cfg.readNumEntry("ScrollLength",10));
257// if( wasError) 261
258// stocktickerTicker->setText("Checking connection"); 262 if (!symbollist.isEmpty()) {
259 263 pthread_t thread1;
260// if(Sock->state() == QSocket::Idle) { 264 char *blah = ::strdup(symbollist.latin1());
261// Sock->connectToHost("finance.yahoo.com", 80); 265 pthread_create( &thread1, NULL, (void * (*)(void *))getStocks, (void *) blah);
262// connect( Sock, SIGNAL( error(int) ), SLOT(socketError(int)) ); 266 pthread_detach( thread1);
263// connect( Sock, SIGNAL( hostFound() ), SLOT(isConnected()) ); 267
264// } else { 268 //::free((void*)thread1);
265// qDebug("State is not Idle"); 269 //getStocks(blah);
266 isConnected(); 270 }
267// } 271 }
268} 272
269 273 void StockTickerPluginWidget::timerEvent( QTimerEvent *e ) {
270void StockTickerPluginWidget::isConnected() { 274 killTimer(e->timerId());
271// qDebug("We connect, so ok to grab stocks"); 275 checkConnection();
272 doStocks(); 276 }
273 277
274 Config cfg( "stockticker"); 278 void StockTickerPluginWidget::checkConnection() {
275 cfg.setGroup("Timer"); 279 // qDebug("checking connection");
276 timerDelay= cfg.readNumEntry("Delay",0); 280 // Sock = new QSocket( this );
277 if(timerDelay > 0) 281
278 startTimer(timerDelay*60000); 282 // if( wasError)
279 qDebug("timer set for %d",(timerDelay*60000)/60000); 283 // stocktickerTicker->setText("Checking connection");
280 wasError = false; 284
281 285 // if(Sock->state() == QSocket::Idle) {
282// Sock->close(); 286 // Sock->connectToHost("finance.yahoo.com", 80);
283} 287 // connect( Sock, SIGNAL( error(int) ), SLOT(socketError(int)) );
284 288 // connect( Sock, SIGNAL( hostFound() ), SLOT(isConnected()) );
285void StockTickerPluginWidget::socketError(int errcode) { 289 // } else {
286 switch(errcode) { 290 // qDebug("State is not Idle");
287 case QSocket::ErrConnectionRefused: 291 isConnected();
288 output = tr("Connection refused."); 292 // }
289 break; 293 }
290 case QSocket::ErrHostNotFound: 294
291 output = tr("Could not find server."); 295 void StockTickerPluginWidget::isConnected() {
292 break; 296 // qDebug("We connect, so ok to grab stocks");
293 case QSocket::ErrSocketRead : 297 if(this->isVisible())
294 output = tr("Socket read error."); 298 doStocks();
295 break; 299
296 }; 300 Config cfg( "stockticker");
297 stocktickerTicker->setText( output ); 301 cfg.setGroup("Timer");
298 wasError = true; 302 timerDelay= cfg.readNumEntry("Delay",0);
299// Sock->close(); 303 if(timerDelay > 0)
300 304 startTimer(timerDelay*60000);
301} 305 // qDebug("timer set for %d",(timerDelay*60000)/60000);
306 wasError = false;
307
308 // Sock->close();
309 }
310
311 void StockTickerPluginWidget::socketError(int errcode) {
312 switch(errcode) {
313 case QSocket::ErrConnectionRefused:
314 output = tr("Connection refused.");
315 break;
316 case QSocket::ErrHostNotFound:
317 output = tr("Could not find server.");
318 break;
319 case QSocket::ErrSocketRead :
320 output = tr("Socket read error.");
321 break;
322 };
323 stocktickerTicker->setText( output );
324 wasError = true;
325 // Sock->close();
326
327 }
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
@@ -41,6 +41,7 @@ class QSpinBox;
41 41
42class WeatherPluginConfig : public TodayConfigWidget 42class WeatherPluginConfig : public TodayConfigWidget
43{ 43{
44 Q_OBJECT
44 public: 45 public:
45 WeatherPluginConfig( QWidget *parent, const char *name ); 46 WeatherPluginConfig( QWidget *parent, const char *name );
46 ~WeatherPluginConfig(); 47 ~WeatherPluginConfig();
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
@@ -433,7 +433,8 @@ void Clock::alarmOn()
433 AlarmServer::addAlarm( when, 433 AlarmServer::addAlarm( when,
434 "QPE/Application/clock", 434 "QPE/Application/clock",
435 "alarm(QDateTime,int)", warn ); 435 "alarm(QDateTime,int)", warn );
436 setCaption( "Alarm set: " + whenl.toString() ); 436// setCaption( "Alarm set: " + whenl.toString() );
437 setCaption( tr("Alarm set: %1" ).arg(whenl.toString()) );
437} 438}
438 439
439void Clock::alarmOff() 440void Clock::alarmOff()
@@ -444,7 +445,7 @@ void Clock::alarmOff()
444 "QPE/Application/clock", 445 "QPE/Application/clock",
445 "alarm(QDateTime,int)", warn ); 446 "alarm(QDateTime,int)", warn );
446 qDebug( "Alarm Off " + when.toString() ); 447 qDebug( "Alarm Off " + when.toString() );
447 setCaption( "Clock" ); 448 setCaption( tr("Clock") );
448} 449}
449 450
450void Clock::clearTimer() 451void Clock::clearTimer()
@@ -452,7 +453,7 @@ void Clock::clearTimer()
452 alarmOffBtn->setText( tr( "Alarm Is Off" ) ); 453 alarmOffBtn->setText( tr( "Alarm Is Off" ) );
453 alarmBool = FALSE; 454 alarmBool = FALSE;
454 snoozeBtn->hide(); 455 snoozeBtn->hide();
455 setCaption( "Clock" ); 456 setCaption( tr("Clock") );
456} 457}
457 458
458void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) 459void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ )
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
@@ -31,7 +31,7 @@ int main( int argc, char **argv ) {
31 LCDDisplay lcd (layout, "lcd"); 31 LCDDisplay lcd (layout, "lcd");
32 KeyPad num(&lcd, layout, "keypad"); 32 KeyPad num(&lcd, layout, "keypad");
33 app.setMainWidget(layout); 33 app.setMainWidget(layout);
34 layout->setCaption("Euroconv"); 34 layout->setCaption( QObject::tr("Euroconv") );
35 layout->showMaximized (); 35 layout->showMaximized ();
36 layout->show(); 36 layout->show();
37 return app.exec(); 37 return app.exec();
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
@@ -400,7 +400,8 @@ void FormatterApp::deviceComboSelected(int index) {
400 } 400 }
401 fsType = getFileSystemType((const QString &)selectedText); 401 fsType = getFileSystemType((const QString &)selectedText);
402 402
403 TextLabel5->setText(tr("Type: %1\nFormatted with %1\n%1, %1, %1").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS )); 403 TextLabel5->setText(tr("Type: %1\nFormatted with %2\n%3, %4, %5").arg( nameS).arg( fsType).arg(totalS).arg( usedS).arg( avS ));
404 TextLabel5->setTextFormat( Qt::RichText );
404// storageComboSelected(0); 405// storageComboSelected(0);
405} 406}
406 407