summaryrefslogtreecommitdiff
Unidiff
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
@@ -85,5 +85,5 @@ public:
85 return "Default"; 85 return "Default";
86 } 86 }
87 QPixmap icon() const { 87QPixmap icon() const {
88 return QPixmap(); 88 return QPixmap();
89 } 89 }
@@ -176,5 +176,5 @@ QWidget *Appearance::createDecoTab ( QWidget *parent, Config &cfg )
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" ));
@@ -403,5 +403,5 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
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" );
@@ -422,6 +422,6 @@ QWidget *Appearance::createAdvancedTab ( QWidget *parent, Config &cfg )
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 );
@@ -458,5 +458,6 @@ Appearance::Appearance( QWidget* parent, const char* name, WFlags )
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
diff --git a/noncore/settings/appearance2/colorlistitem.h b/noncore/settings/appearance2/colorlistitem.h
index 10e4468..f8d5c45 100644
--- a/noncore/settings/appearance2/colorlistitem.h
+++ b/noncore/settings/appearance2/colorlistitem.h
@@ -125,10 +125,11 @@ private:
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" ) }
diff --git a/noncore/settings/appearance2/decolistitem.h b/noncore/settings/appearance2/decolistitem.h
index d190ceb..da7924c 100644
--- a/noncore/settings/appearance2/decolistitem.h
+++ b/noncore/settings/appearance2/decolistitem.h
@@ -104,3 +104,4 @@ private:
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
@@ -72,16 +72,7 @@ BackupAndRestore::BackupAndRestore( QWidget* parent, const char* name)
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{
diff --git a/noncore/settings/language/language.cpp b/noncore/settings/language/language.cpp
index 8985fd5..d30a041 100644
--- a/noncore/settings/language/language.cpp
+++ b/noncore/settings/language/language.cpp
@@ -116,7 +116,7 @@ void LanguageSettings::reset()
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 );
diff --git a/noncore/settings/mediummount/mainwindow.cc b/noncore/settings/mediummount/mainwindow.cc
index 6b37cff..eec786c 100644
--- a/noncore/settings/mediummount/mainwindow.cc
+++ b/noncore/settings/mediummount/mainwindow.cc
@@ -15,4 +15,5 @@
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 )
diff --git a/noncore/settings/mediummount/mediumglobal.cc b/noncore/settings/mediummount/mediumglobal.cc
index 75e3839..ab0b3af 100644
--- a/noncore/settings/mediummount/mediumglobal.cc
+++ b/noncore/settings/mediummount/mediumglobal.cc
@@ -16,4 +16,6 @@
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 )
diff --git a/noncore/settings/mediummount/mediumwidget.cc b/noncore/settings/mediummount/mediumwidget.cc
index eadf502..981e1dd 100644
--- a/noncore/settings/mediummount/mediumwidget.cc
+++ b/noncore/settings/mediummount/mediumwidget.cc
@@ -23,4 +23,6 @@
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,
diff --git a/noncore/settings/networksettings/interfaces/interface.cpp b/noncore/settings/networksettings/interfaces/interface.cpp
index cc45525..69b55d1 100644
--- a/noncore/settings/networksettings/interfaces/interface.cpp
+++ b/noncore/settings/networksettings/interfaces/interface.cpp
@@ -2,5 +2,5 @@
2 * $Author$ 2 * $Author$
3 * $Date$ 3 * $Date$
4 */ 4 */
5 5
6#include "interface.h" 6#include "interface.h"
@@ -25,5 +25,5 @@ Interface::Interface(QObject * parent, const char * name, bool newSatus): QObjec
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){
@@ -37,25 +37,25 @@ void Interface::setStatus(bool newStatus){
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;
@@ -66,12 +66,12 @@ void Interface::setModuleOwner(Module *owner){
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...
@@ -90,10 +90,10 @@ void Interface::start(){
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){
@@ -109,5 +109,5 @@ void Interface::stop(){
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();
@@ -134,12 +134,12 @@ bool Interface::refresh(){
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)){
@@ -153,5 +153,5 @@ bool Interface::refresh(){
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;
@@ -186,11 +186,11 @@ bool Interface::refresh(){
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.
@@ -199,5 +199,5 @@ bool Interface::refresh(){
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)){
@@ -205,9 +205,9 @@ bool Interface::refresh(){
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() ) {
@@ -223,5 +223,5 @@ bool Interface::refresh(){
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()));
@@ -245,5 +245,5 @@ bool Interface::refresh(){
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);
@@ -258,5 +258,5 @@ bool Interface::refresh(){
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 "
@@ -266,5 +266,5 @@ bool Interface::refresh(){
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
@@ -282,17 +282,17 @@ bool Interface::refresh(){
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;
diff --git a/noncore/settings/networksettings/interfaces/interface.h b/noncore/settings/networksettings/interfaces/interface.h
index 7e98deb..ec82851 100644
--- a/noncore/settings/networksettings/interfaces/interface.h
+++ b/noncore/settings/networksettings/interfaces/interface.h
@@ -13,11 +13,11 @@ signals:
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);
@@ -25,8 +25,8 @@ public:
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);
@@ -48,5 +48,5 @@ public:
48 virtual void restart(); 48 virtual void restart();
49 49
50private: 50protected:
51 // Interface information 51 // Interface information
52 QString hardwareName; 52 QString hardwareName;
diff --git a/noncore/settings/networksettings/interfaces/interfaceadvanced.ui b/noncore/settings/networksettings/interfaces/interfaceadvanced.ui
index 2e106cb..12dbb1d 100644
--- a/noncore/settings/networksettings/interfaces/interfaceadvanced.ui
+++ b/noncore/settings/networksettings/interfaces/interfaceadvanced.ui
@@ -19,5 +19,5 @@
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>
diff --git a/noncore/settings/networksettings/interfaces/interfaceinformation.ui b/noncore/settings/networksettings/interfaces/interfaceinformation.ui
index 763ad90..207200e 100644
--- a/noncore/settings/networksettings/interfaces/interfaceinformation.ui
+++ b/noncore/settings/networksettings/interfaces/interfaceinformation.ui
@@ -13,5 +13,5 @@
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>
@@ -20,86 +20,20 @@
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">
@@ -112,46 +46,46 @@
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">
@@ -172,5 +106,5 @@
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">
@@ -191,5 +125,16 @@
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">
@@ -210,45 +155,96 @@
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">
@@ -299,16 +295,37 @@
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>
diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
index e00dcce..37c3a91 100644
--- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.cpp
@@ -2,4 +2,5 @@
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>
@@ -7,5 +8,7 @@
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
@@ -15,5 +18,5 @@
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 *)));
@@ -25,4 +28,14 @@ InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *na
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
@@ -31,5 +44,5 @@ InterfaceInformationImp::InterfaceInformationImp(QWidget *parent, const char *na
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()){
@@ -52,5 +65,5 @@ void InterfaceInformationImp::updateInterface(Interface *){
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);
@@ -71,6 +84,7 @@ void InterfaceInformationImp::advanced(){
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}
diff --git a/noncore/settings/networksettings/interfaces/interfaceinformationimp.h b/noncore/settings/networksettings/interfaces/interfaceinformationimp.h
index 65cdfe0..9c93d1d 100644
--- a/noncore/settings/networksettings/interfaces/interfaceinformationimp.h
+++ b/noncore/settings/networksettings/interfaces/interfaceinformationimp.h
@@ -11,5 +11,5 @@ Q_OBJECT
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:
diff --git a/noncore/settings/networksettings/interfaces/interfaces.cpp b/noncore/settings/networksettings/interfaces/interfaces.cpp
index 71d0cf5..436e449 100644
--- a/noncore/settings/networksettings/interfaces/interfaces.cpp
+++ b/noncore/settings/networksettings/interfaces/interfaces.cpp
@@ -1,4 +1,5 @@
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>
@@ -152,4 +153,5 @@ bool Interfaces::isInterfaceSet() const {
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;
@@ -167,4 +169,5 @@ bool Interfaces::addInterface(const QString &interface, const QString &family, c
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;
@@ -273,4 +276,5 @@ QString Interfaces::getInterfaceMethod(bool &error){
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;
@@ -278,5 +282,8 @@ bool Interfaces::setInterfaceName(const QString &newName){
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}
@@ -328,4 +335,6 @@ QString Interfaces::getInterfaceOption(const QString &option, bool &error){
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.
@@ -334,5 +343,9 @@ QString Interfaces::getInterfaceOption(const QString &option, bool &error){
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
@@ -493,28 +506,47 @@ bool Interfaces::setOption(const QStringList::Iterator &start, const QString &op
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}
@@ -553,5 +585,6 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString
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 }
@@ -580,5 +613,6 @@ bool Interfaces::removeOption(const QStringList::Iterator &start, const QString
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 }
diff --git a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
index b40d101..e844d8a 100644
--- a/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
+++ b/noncore/settings/networksettings/interfaces/interfacesetupimp.cpp
@@ -45,4 +45,5 @@ bool InterfaceSetupImp::saveChanges(){
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;
@@ -118,4 +119,7 @@ bool InterfaceSetupImp::saveSettings(){
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 }
diff --git a/noncore/settings/networksettings/mainwindowimp.cpp b/noncore/settings/networksettings/mainwindowimp.cpp
index 2d714ca..f74cf87 100644
--- a/noncore/settings/networksettings/mainwindowimp.cpp
+++ b/noncore/settings/networksettings/mainwindowimp.cpp
@@ -14,4 +14,5 @@
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>
@@ -50,5 +51,5 @@
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()));
@@ -63,5 +64,5 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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.
@@ -79,4 +80,12 @@ MainWindowImp::MainWindowImp(QWidget *parent, const char *name) : MainWindow(par
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 ){
@@ -197,4 +206,8 @@ void MainWindowImp::getAllInterfaces(){
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;
@@ -308,4 +321,5 @@ Module* MainWindowImp::loadPlugin(const QString &pluginFileName, const QString &
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);
@@ -427,5 +441,5 @@ void MainWindowImp::configureClicked(){
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();
@@ -460,5 +474,5 @@ void MainWindowImp::informationClicked(){
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}
@@ -640,5 +654,4 @@ void MainWindowImp::receive(const QCString &msg, const QByteArray &arg)
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();
diff --git a/noncore/settings/networksettings/mainwindowimp.h b/noncore/settings/networksettings/mainwindowimp.h
index a553f75..451835b 100644
--- a/noncore/settings/networksettings/mainwindowimp.h
+++ b/noncore/settings/networksettings/mainwindowimp.h
@@ -11,5 +11,5 @@ class QLibrary;
11class KProcess; 11class KProcess;
12class QCopChannel; 12class QCopChannel;
13#ifdef QWS 13#ifdef QWS
14class QLibrary; 14class QLibrary;
15#else 15#else
@@ -26,19 +26,19 @@ public:
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);
@@ -49,5 +49,5 @@ private:
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");
@@ -59,5 +59,6 @@ private:
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;
diff --git a/noncore/settings/networksettings/module.h b/noncore/settings/networksettings/module.h
index db74394..f7d8046 100644
--- a/noncore/settings/networksettings/module.h
+++ b/noncore/settings/networksettings/module.h
@@ -19,5 +19,5 @@ signals:
19 void updateInterface(Interface *i); 19 void updateInterface(Interface *i);
20 20
21 21
22public: 22public:
23 Module(){}; 23 Module(){};
@@ -33,12 +33,12 @@ public:
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
@@ -49,5 +49,5 @@ public:
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
@@ -56,5 +56,5 @@ public:
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
@@ -63,12 +63,12 @@ public:
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),
@@ -76,12 +76,12 @@ public:
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
@@ -91,8 +91,19 @@ public:
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
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
@@ -45,31 +45,12 @@
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"
@@ -77,33 +58,19 @@ AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name )
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
@@ -111,21 +78,18 @@ AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name )
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();
@@ -134,11 +98,11 @@ void AccountWidget::editaccount() {
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;
@@ -150,6 +114,6 @@ void AccountWidget::newaccount() {
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();
@@ -159,18 +123,18 @@ void AccountWidget::newaccount() {
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();
@@ -178,8 +142,8 @@ void AccountWidget::copyaccount() {
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,
@@ -188,11 +152,13 @@ void AccountWidget::deleteaccount() {
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}
@@ -200,10 +166,10 @@ void AccountWidget::deleteaccount() {
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
@@ -274,23 +240,23 @@ int AccountWidget::doTab(){
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
diff --git a/noncore/settings/networksettings/ppp/accounts.h b/noncore/settings/networksettings/ppp/accounts.h
index 8c16a7c..7f31513 100644
--- a/noncore/settings/networksettings/ppp/accounts.h
+++ b/noncore/settings/networksettings/ppp/accounts.h
@@ -28,14 +28,16 @@
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;
@@ -45,28 +47,25 @@ class 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;
@@ -75,9 +74,4 @@ private:
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
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
@@ -33,5 +33,4 @@
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>
@@ -100,5 +99,5 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
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
@@ -109,5 +108,5 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
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;
@@ -115,7 +114,7 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
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);
@@ -126,10 +125,10 @@ ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *nam
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()));
@@ -174,5 +173,5 @@ void 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}
@@ -202,5 +201,5 @@ void ConnectWidget::init() {
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
@@ -209,6 +208,6 @@ void ConnectWidget::init() {
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();
@@ -227,5 +226,5 @@ void ConnectWidget::init() {
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;
@@ -233,5 +232,5 @@ void ConnectWidget::init() {
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;
@@ -280,6 +279,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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 }
@@ -318,5 +317,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -341,6 +340,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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());
@@ -357,5 +356,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -378,5 +377,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -409,10 +408,10 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -433,5 +432,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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();
@@ -442,5 +441,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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();
@@ -480,5 +479,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -490,5 +489,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -508,5 +507,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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%
@@ -533,5 +532,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -547,5 +546,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -564,5 +563,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -576,6 +575,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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());
@@ -590,6 +589,6 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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());
@@ -599,5 +598,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -635,5 +634,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -672,5 +671,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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
@@ -709,5 +708,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -734,5 +733,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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
@@ -742,8 +741,8 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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);
@@ -759,7 +758,7 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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();
@@ -849,5 +848,5 @@ void ConnectWidget::timerEvent(QTimerEvent *) {
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
@@ -931,5 +930,5 @@ void ConnectWidget::checkBuffers() {
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 }
@@ -941,5 +940,5 @@ void ConnectWidget::checkBuffers() {
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
@@ -952,5 +951,5 @@ void ConnectWidget::checkBuffers() {
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];
@@ -985,5 +984,5 @@ void ConnectWidget::cancelbutton() {
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
@@ -1007,9 +1006,12 @@ void ConnectWidget::cancelbutton() {
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
@@ -1027,5 +1029,5 @@ void ConnectWidget::script_timed_out() {
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();
@@ -1042,5 +1044,5 @@ void ConnectWidget::setScan(const QString &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}
@@ -1051,5 +1053,5 @@ void ConnectWidget::setExpect(const QString &n) {
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);
@@ -1086,5 +1088,5 @@ void ConnectWidget::pppdDied()
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()) {
@@ -1117,10 +1119,10 @@ void ConnectWidget::if_waiting_slot() {
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
@@ -1129,12 +1131,17 @@ void ConnectWidget::if_waiting_slot() {
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
@@ -1162,4 +1169,13 @@ void ConnectWidget::if_waiting_slot() {
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() {
@@ -1211,16 +1227,9 @@ bool ConnectWidget::execppp() {
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
@@ -1228,11 +1237,14 @@ bool ConnectWidget::execppp() {
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
@@ -1241,6 +1253,16 @@ bool ConnectWidget::execppp() {
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."
@@ -1250,4 +1272,6 @@ bool ConnectWidget::execppp() {
1250 } 1272 }
1251 1273
1274 qWarning("Command IS: %s",command.latin1() );
1275
1252 qApp->flushX(); 1276 qApp->flushX();
1253 1277
diff --git a/noncore/settings/networksettings/ppp/connect.h b/noncore/settings/networksettings/ppp/connect.h
index e7ae5e0..b225ff5 100644
--- a/noncore/settings/networksettings/ppp/connect.h
+++ b/noncore/settings/networksettings/ppp/connect.h
@@ -63,4 +63,5 @@ private slots:
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:
@@ -128,4 +129,5 @@ private:
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;
diff --git a/noncore/settings/networksettings/ppp/conwindow.cpp b/noncore/settings/networksettings/ppp/conwindow.cpp
index 9136ca0..7641bbe 100644
--- a/noncore/settings/networksettings/ppp/conwindow.cpp
+++ b/noncore/settings/networksettings/ppp/conwindow.cpp
@@ -25,10 +25,5 @@
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
@@ -43,17 +38,17 @@ ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name,
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
@@ -61,9 +56,9 @@ ConWindow::ConWindow(PPPData *pd, QWidget *parent, const char *name,
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()));
@@ -95,6 +90,6 @@ bool ConWindow::event(QEvent *e) {
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;
@@ -260,5 +255,5 @@ void ConWindow::stopClock() {
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")
@@ -267,5 +262,5 @@ void ConWindow::timeclick() {
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
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
@@ -4,57 +4,48 @@
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
@@ -77,7 +77,7 @@ DialWidget::DialWidget( PPPData *pd, QWidget *parent, bool isnewaccount
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);
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp
index f735e49..5540946 100644
--- a/noncore/settings/networksettings/ppp/general.cpp
+++ b/noncore/settings/networksettings/ppp/general.cpp
@@ -36,7 +36,8 @@
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"
@@ -44,13 +45,13 @@
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;
@@ -59,17 +60,35 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -83,17 +102,17 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -104,6 +123,6 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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);
@@ -112,7 +131,7 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -125,6 +144,6 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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);
@@ -158,9 +177,9 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -173,20 +192,20 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -203,16 +222,16 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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."));
@@ -220,15 +239,15 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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 }
@@ -236,54 +255,104 @@ ModemWidget::ModemWidget( InterfacePPP *ifppp, QWidget *parent, const char *name
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"
@@ -297,8 +366,8 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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);
@@ -306,5 +375,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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"
@@ -319,7 +388,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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);
@@ -329,7 +398,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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"
@@ -345,6 +414,6 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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)));
@@ -353,5 +422,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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"
@@ -360,12 +429,12 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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"
@@ -374,7 +443,7 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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"));
@@ -403,5 +472,5 @@ ModemWidget2::ModemWidget2( InterfacePPP* ifp, QWidget *parent,
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();
@@ -421,21 +490,29 @@ void ModemWidget2::query_modem() {
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
@@ -37,17 +37,22 @@ class 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:
@@ -57,4 +62,5 @@ private:
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;
@@ -65,5 +71,5 @@ private:
65 QSpinBox *modemtimeout; 71 QSpinBox *modemtimeout;
66 QCheckBox *modemlockfile; 72 QCheckBox *modemlockfile;
67 InterfacePPP *_ifaceppp; 73 PPPData *_pppdata;
68}; 74};
69 75
@@ -72,14 +78,15 @@ class 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:
@@ -93,4 +100,5 @@ private:
93 QCheckBox *chkbox1; 100 QCheckBox *chkbox1;
94 QSlider *volume; 101 QSlider *volume;
102 PPPData *_pppdata;
95 InterfacePPP *_ifaceppp; 103 InterfacePPP *_ifaceppp;
96}; 104};
diff --git a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
index 553daa2..6b158b9 100644
--- a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
+++ b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp
@@ -1,8 +1,6 @@
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>
@@ -21,15 +19,21 @@
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
diff --git a/noncore/settings/networksettings/ppp/interfaceppp.cpp b/noncore/settings/networksettings/ppp/interfaceppp.cpp
index 9ec30bc..f443f3c 100644
--- a/noncore/settings/networksettings/ppp/interfaceppp.cpp
+++ b/noncore/settings/networksettings/ppp/interfaceppp.cpp
@@ -1,5 +1,7 @@
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"
@@ -16,10 +18,10 @@ InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status)
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 }
@@ -27,5 +29,5 @@ PPPData* InterfacePPP::data()
27} 29}
28 30
29Modem* InterfacePPP::modem() 31Modem* InterfacePPP::modem()const
30{ 32{
31 if (!_modemPtr){ 33 if (!_modemPtr){
@@ -39,7 +41,13 @@ bool 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
@@ -47,11 +55,20 @@ void 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());
@@ -59,5 +76,5 @@ void InterfacePPP::start()
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>"));
@@ -68,5 +85,5 @@ void InterfacePPP::start()
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 "
@@ -82,5 +99,5 @@ void InterfacePPP::start()
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 "
@@ -99,5 +116,5 @@ void InterfacePPP::start()
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 {
@@ -107,5 +124,5 @@ void InterfacePPP::start()
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);
@@ -116,5 +133,5 @@ void InterfacePPP::start()
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;
@@ -133,4 +150,9 @@ void 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}
@@ -141,2 +163,12 @@ void InterfacePPP::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,5 +1,7 @@
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
@@ -14,9 +16,12 @@ public:
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:
@@ -25,8 +30,9 @@ public slots:
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
diff --git a/noncore/settings/networksettings/ppp/kpppwidget.cpp b/noncore/settings/networksettings/ppp/kpppwidget.cpp
index 7b5c74d..e466358 100644
--- a/noncore/settings/networksettings/ppp/kpppwidget.cpp
+++ b/noncore/settings/networksettings/ppp/kpppwidget.cpp
@@ -43,17 +43,6 @@
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>
@@ -79,5 +68,5 @@ KPPPWidget *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;
@@ -109,5 +98,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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
@@ -119,5 +108,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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
@@ -128,5 +117,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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"
@@ -139,5 +128,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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
@@ -149,5 +138,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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"
@@ -165,5 +154,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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)));
@@ -172,5 +161,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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"
@@ -187,12 +176,12 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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)
@@ -204,15 +193,15 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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();
@@ -287,5 +276,5 @@ KPPPWidget::KPPPWidget(PPPData*pd, Interface *i, QWidget *parent, const char *na
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;
@@ -483,12 +472,12 @@ void KPPPWidget::sigPPPDDied() {
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>"
@@ -497,5 +486,5 @@ void KPPPWidget::sigPPPDDied() {
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 */
@@ -528,5 +517,5 @@ void KPPPWidget::sigPPPDDied() {
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.");
@@ -561,5 +550,5 @@ void KPPPWidget::beginConnect() {
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."));
@@ -570,5 +559,5 @@ void KPPPWidget::beginConnect() {
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 "
@@ -584,5 +573,5 @@ void KPPPWidget::beginConnect() {
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 "
@@ -600,5 +589,5 @@ void KPPPWidget::beginConnect() {
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 {
@@ -607,5 +596,5 @@ void KPPPWidget::beginConnect() {
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);
@@ -616,5 +605,5 @@ void KPPPWidget::beginConnect() {
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;
@@ -623,5 +612,5 @@ void KPPPWidget::beginConnect() {
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
@@ -637,6 +626,6 @@ void KPPPWidget::disconnect() {
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();
@@ -693,6 +682,6 @@ void 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();
@@ -737,5 +726,5 @@ void KPPPWidget::quitbutton() {
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
@@ -827,5 +816,5 @@ void KPPPWidget::showNews() {
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);
@@ -840,5 +829,5 @@ void KPPPWidget::showNews() {
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"
@@ -852,10 +841,10 @@ void KPPPWidget::showNews() {
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()),
@@ -868,5 +857,5 @@ void KPPPWidget::showNews() {
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");
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp
index d23fee4..3dbc8c3 100644
--- a/noncore/settings/networksettings/ppp/modem.cpp
+++ b/noncore/settings/networksettings/ppp/modem.cpp
@@ -52,9 +52,6 @@
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)) { \
@@ -100,5 +97,5 @@ Modem::Modem( PPPData* pd )
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;
@@ -170,5 +167,5 @@ bool Modem::opentty() {
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 }
@@ -179,5 +176,5 @@ bool Modem::opentty() {
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;
@@ -185,5 +182,5 @@ bool Modem::opentty() {
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;
@@ -201,5 +198,5 @@ bool Modem::opentty() {
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;
@@ -246,5 +243,5 @@ bool Modem::opentty() {
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;
@@ -252,5 +249,5 @@ bool Modem::opentty() {
252 } 249 }
253 250
254 errmsg = i18n("Modem Ready."); 251 errmsg = QObject::tr("Modem Ready.");
255 return true; 252 return true;
256} 253}
@@ -264,5 +261,5 @@ bool Modem::closetty() {
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;
@@ -414,5 +411,5 @@ bool Modem::hangup() {
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 }
@@ -556,5 +553,5 @@ QString Modem::parseModemSpeed(const QString &s) {
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);
@@ -878,8 +875,12 @@ bool Modem::execpppd(const char *arguments) {
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;
@@ -903,7 +904,11 @@ bool Modem::execpppd(const char *arguments) {
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:
@@ -925,5 +930,22 @@ bool Modem::execpppd(const char *arguments) {
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;
@@ -933,5 +955,8 @@ bool Modem::execpppd(const char *arguments) {
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) {
@@ -1022,2 +1047,34 @@ bool Modem::setHostname(const QString & name)
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
@@ -6,5 +6,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 *
@@ -48,5 +48,7 @@ public:
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();
@@ -57,5 +59,5 @@ public:
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 &);
@@ -74,5 +76,10 @@ public:
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 };
@@ -86,5 +93,6 @@ private 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:
@@ -103,9 +111,10 @@ private:
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;
@@ -114,4 +123,6 @@ private:
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
diff --git a/noncore/settings/networksettings/ppp/modemcmds.cpp b/noncore/settings/networksettings/ppp/modemcmds.cpp
index 1d9db6e..e797795 100644
--- a/noncore/settings/networksettings/ppp/modemcmds.cpp
+++ b/noncore/settings/networksettings/ppp/modemcmds.cpp
@@ -28,11 +28,9 @@
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);
@@ -41,19 +39,31 @@
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
@@ -61,9 +71,9 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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)),
@@ -72,11 +82,11 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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);
@@ -86,8 +96,8 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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)),
@@ -96,5 +106,5 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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
@@ -102,8 +112,8 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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)),
@@ -112,88 +122,88 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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);
@@ -202,9 +212,9 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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)),
@@ -213,18 +223,18 @@ ModemCommands::ModemCommands(PPPData *pd, QWidget *parent, const char *name)
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));
@@ -308,5 +318,10 @@ void ModemCommands::slotOk() {
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
diff --git a/noncore/settings/networksettings/ppp/modemcmds.h b/noncore/settings/networksettings/ppp/modemcmds.h
index ef69fec..81d67f4 100644
--- a/noncore/settings/networksettings/ppp/modemcmds.h
+++ b/noncore/settings/networksettings/ppp/modemcmds.h
@@ -45,8 +45,9 @@ Q_OBJECT
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();
diff --git a/noncore/settings/networksettings/ppp/modeminfo.cpp b/noncore/settings/networksettings/ppp/modeminfo.cpp
index 0bec186..dbb26db 100644
--- a/noncore/settings/networksettings/ppp/modeminfo.cpp
+++ b/noncore/settings/networksettings/ppp/modeminfo.cpp
@@ -35,6 +35,4 @@
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)
@@ -42,5 +40,5 @@ ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name)
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
@@ -59,15 +57,15 @@ ModemTransfer::ModemTransfer(Modem *mo, QWidget *parent, const char *name)
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()));
@@ -119,5 +117,5 @@ void ModemTransfer::time_out_slot() {
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}
@@ -131,5 +129,5 @@ void ModemTransfer::init() {
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 }
@@ -137,5 +135,5 @@ void ModemTransfer::init() {
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 }
@@ -147,5 +145,5 @@ void ModemTransfer::init() {
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
@@ -228,5 +226,5 @@ void ModemTransfer::cancelbutton() {
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
@@ -250,5 +248,5 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name)
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
@@ -275,5 +273,5 @@ ModemInfo::ModemInfo(QWidget *parent, const char* name)
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();
diff --git a/noncore/settings/networksettings/ppp/ppp.pro b/noncore/settings/networksettings/ppp/ppp.pro
index fc89f35..84acd0e 100644
--- a/noncore/settings/networksettings/ppp/ppp.pro
+++ b/noncore/settings/networksettings/ppp/ppp.pro
@@ -5,10 +5,9 @@ TEMPLATE = lib
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
diff --git a/noncore/settings/networksettings/ppp/pppconfig.cpp b/noncore/settings/networksettings/ppp/pppconfig.cpp
index 5fa7d3f..97baf31 100644
--- a/noncore/settings/networksettings/ppp/pppconfig.cpp
+++ b/noncore/settings/networksettings/ppp/pppconfig.cpp
@@ -5,4 +5,5 @@
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"
@@ -29,5 +30,5 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent,
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 );
@@ -37,10 +38,14 @@ PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent,
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}
@@ -57,5 +62,5 @@ void 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();
diff --git a/noncore/settings/networksettings/ppp/pppconfig.h b/noncore/settings/networksettings/ppp/pppconfig.h
index 9bab6fe..4d7912f 100644
--- a/noncore/settings/networksettings/ppp/pppconfig.h
+++ b/noncore/settings/networksettings/ppp/pppconfig.h
@@ -9,4 +9,7 @@ class InterfacePPP;
9class AccountWidget; 9class AccountWidget;
10class GeneralWidget; 10class GeneralWidget;
11class DevicesWidget;
12
13//OLD:
11class ModemWidget; 14class ModemWidget;
12class ModemWidget2; 15class ModemWidget2;
@@ -30,4 +33,7 @@ protected slots:
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;
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp
index 8f45e54..f4727c1 100644
--- a/noncore/settings/networksettings/ppp/pppdata.cpp
+++ b/noncore/settings/networksettings/ppp/pppdata.cpp
@@ -27,7 +27,6 @@
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>
@@ -43,22 +42,30 @@
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
@@ -82,7 +89,12 @@ void PPPData::save()
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 ){
@@ -91,8 +103,8 @@ void PPPData::save()
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 ){
@@ -101,8 +113,8 @@ void PPPData::save()
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 ){
@@ -112,8 +124,7 @@ void PPPData::save()
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
@@ -345,19 +356,31 @@ void PPPData::setpppdTimeout(int n) {
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
@@ -718,87 +741,109 @@ int PPPData::count() const {
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
@@ -818,15 +863,17 @@ int PPPData::newaccount() {
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)
@@ -838,5 +885,5 @@ int PPPData::copyaccount(int i) {
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();
@@ -865,4 +912,5 @@ void PPPData::setAccname(const QString &n) {
865 setDefaultAccount(n); 912 setDefaultAccount(n);
866 } 913 }
914 writeConfig(cgroup, NAME_KEY, n);
867} 915}
868 916
@@ -1177,4 +1225,5 @@ void PPPData::setpppdArgument(QStringList &args) {
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}
@@ -1248,9 +1297,7 @@ void PPPData::setpppdError(int err) {
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
@@ -1301,2 +1348,148 @@ QString PPPData::encodeWord(const QString &s) {
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
@@ -65,4 +65,6 @@ class Config;
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"
@@ -73,8 +75,10 @@ class Config;
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"
@@ -152,4 +156,8 @@ class Config;
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:
@@ -163,4 +171,6 @@ public:
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> );
@@ -185,5 +195,5 @@ public:
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 &);
@@ -237,6 +247,10 @@ public:
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();
@@ -314,12 +328,13 @@ public:
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();
@@ -410,15 +425,26 @@ public:
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
@@ -428,5 +454,8 @@ private:
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;
diff --git a/noncore/settings/networksettings/ppp/pppmodule.cpp b/noncore/settings/networksettings/ppp/pppmodule.cpp
index d4c137b..af05eb7 100644
--- a/noncore/settings/networksettings/ppp/pppmodule.cpp
+++ b/noncore/settings/networksettings/ppp/pppmodule.cpp
@@ -1,3 +1,9 @@
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"
@@ -6,10 +12,42 @@
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;
@@ -17,9 +55,21 @@ PPPModule::PPPModule() : Module()
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
@@ -28,7 +78,15 @@ PPPModule::PPPModule() : Module()
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;
@@ -70,5 +128,5 @@ QWidget *PPPModule::configure(Interface *i){
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}
@@ -136,2 +194,57 @@ void PPPModule::possibleNewInterfaces(QMap<QString, QString> &newIfaces)
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
@@ -45,6 +45,4 @@
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
@@ -218,5 +216,5 @@ int runTests() {
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;
@@ -229,5 +227,5 @@ int runTests() {
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++;
@@ -239,5 +237,5 @@ int runTests() {
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 "
@@ -252,5 +250,5 @@ int runTests() {
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 "
@@ -264,5 +262,5 @@ int runTests() {
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 "
diff --git a/noncore/settings/networksettings/wlan/keyedit.cpp b/noncore/settings/networksettings/wlan/keyedit.cpp
index ad9ecae..13a1c3b 100644
--- a/noncore/settings/networksettings/wlan/keyedit.cpp
+++ b/noncore/settings/networksettings/wlan/keyedit.cpp
@@ -5,4 +5,5 @@ KeyEdit::KeyEdit(QWidget* parent, const char* name) :
5 QLineEdit(parent, name) 5 QLineEdit(parent, name)
6{ 6{
7 setEchoMode(Password);
7} 8}
8 9
diff --git a/noncore/settings/networksettings/wlan/wlan.ui b/noncore/settings/networksettings/wlan/wlan.ui
index 7932445..7e39e23 100644
--- a/noncore/settings/networksettings/wlan/wlan.ui
+++ b/noncore/settings/networksettings/wlan/wlan.ui
@@ -12,5 +12,5 @@
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>
@@ -288,26 +288,10 @@
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">
@@ -315,5 +299,5 @@
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>
@@ -323,8 +307,28 @@
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>
@@ -333,10 +337,32 @@
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">
@@ -344,5 +370,5 @@
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>
@@ -352,28 +378,8 @@
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>
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp
index cdafb4d..26e3aa9 100644
--- a/noncore/settings/networksettings/wlan/wlanimp2.cpp
+++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp
@@ -28,5 +28,5 @@
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);
@@ -68,12 +68,7 @@ void WLANImp::parseOpts() {
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();
@@ -204,9 +199,18 @@ void WLANImp::accept() {
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());
@@ -231,11 +235,14 @@ void WLANImp::writeOpts() {
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]";
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index a4488f9..b4c3509 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -1,4 +1,4 @@
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"
diff --git a/noncore/settings/usermanager/userdialog.cpp b/noncore/settings/usermanager/userdialog.cpp
index c06f639..19b0e84 100644
--- a/noncore/settings/usermanager/userdialog.cpp
+++ b/noncore/settings/usermanager/userdialog.cpp
@@ -426,5 +426,5 @@ void UserDialog::accept() {
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();
diff --git a/noncore/settings/usermanager/userdialog.h b/noncore/settings/usermanager/userdialog.h
index b7b925d..3272afc 100644
--- a/noncore/settings/usermanager/userdialog.h
+++ b/noncore/settings/usermanager/userdialog.h
@@ -17,4 +17,5 @@
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>
diff --git a/noncore/settings/usermanager/usermanager.cpp b/noncore/settings/usermanager/usermanager.cpp
index 1946013..65bbd8b 100644
--- a/noncore/settings/usermanager/usermanager.cpp
+++ b/noncore/settings/usermanager/usermanager.cpp
@@ -28,5 +28,5 @@
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.
diff --git a/noncore/settings/usermanager/usermanager.pro b/noncore/settings/usermanager/usermanager.pro
index 576a233..1baccb6 100644
--- a/noncore/settings/usermanager/usermanager.pro
+++ b/noncore/settings/usermanager/usermanager.pro
@@ -3,5 +3,5 @@ TEMPLATE = app
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
diff --git a/noncore/styles/flat/flat.cpp b/noncore/styles/flat/flat.cpp
index b6635c5..24366f6 100644
--- a/noncore/styles/flat/flat.cpp
+++ b/noncore/styles/flat/flat.cpp
@@ -19,6 +19,5 @@
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>
@@ -33,7 +32,11 @@
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)
@@ -55,21 +58,35 @@ public:
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);
@@ -102,5 +119,7 @@ void FlatStyle::polish( QWidget *w )
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 );
@@ -118,4 +137,13 @@ void FlatStyle::polish( QWidget *w )
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}
@@ -123,13 +151,16 @@ void FlatStyle::polish( QWidget *w )
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 );
@@ -139,5 +170,5 @@ void FlatStyle::unPolish( QWidget *w )
139int FlatStyle::defaultFrameWidth() const 170int FlatStyle::defaultFrameWidth() const
140{ 171{
141 return 1; 172 return 2;
142} 173}
143 174
@@ -172,14 +203,28 @@ void FlatStyle::drawButton( QPainter *p, int x, int y, int w, int h,
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
@@ -226,4 +271,14 @@ void 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 ) ) {
@@ -232,4 +287,5 @@ void FlatStyle::drawToolButton( QPainter *p, int x, int y, int w, int h,
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
@@ -258,4 +314,9 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
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() ) {
@@ -284,4 +345,5 @@ void FlatStyle::drawPushButton( QPushButton *btn, QPainter *p )
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 );
@@ -590,5 +652,6 @@ void FlatStyle::drawScrollBarControls( QPainter* p, const QScrollBar* sb, int sl
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 ) {
@@ -785,4 +848,10 @@ 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*/
@@ -1009,5 +1078,5 @@ QStyle *FlatStyleImpl::style()
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
@@ -1019,7 +1088,8 @@ QRESULT FlatStyleImpl::queryInterface( const QUuid &uuid, QUnknownInterface **if
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}
diff --git a/noncore/styles/flat/flat.h b/noncore/styles/flat/flat.h
index e446800..ebea95b 100644
--- a/noncore/styles/flat/flat.h
+++ b/noncore/styles/flat/flat.h
@@ -22,4 +22,5 @@
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>
@@ -27,5 +28,5 @@
27class FlatStylePrivate; 28class FlatStylePrivate;
28 29
29class Q_EXPORT FlatStyle : public QWindowsStyle 30class FlatStyle : public QWindowsStyle
30{ 31{
31public: 32public:
@@ -74,4 +75,5 @@ public:
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& );
@@ -87,4 +89,6 @@ private:
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)
diff --git a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp
index 71dd7eb..73f8bb3 100644
--- a/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp
+++ b/noncore/todayplugins/stockticker/stockticker/inputDialog.cpp
@@ -10,4 +10,5 @@
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>
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp
index d740b6f..915233a 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.cpp
@@ -122,5 +122,5 @@ StocktickerPluginConfig::StocktickerPluginConfig( QWidget *parent, const char*
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
diff --git a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h
index 2b67a8b..10f9678 100644
--- a/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h
+++ b/noncore/todayplugins/stockticker/stocktickerlib/stocktickerconfig.h
@@ -29,5 +29,5 @@ class QSpinBox;
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 );
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
@@ -42,4 +42,5 @@ class QSpinBox;
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 );
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp
index 41c99a8..ecbf12f 100644
--- a/noncore/tools/clock/clock.cpp
+++ b/noncore/tools/clock/clock.cpp
@@ -434,5 +434,6 @@ void Clock::alarmOn()
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
@@ -445,5 +446,5 @@ void Clock::alarmOff()
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
@@ -453,5 +454,5 @@ void Clock::clearTimer()
453 alarmBool = FALSE; 454 alarmBool = FALSE;
454 snoozeBtn->hide(); 455 snoozeBtn->hide();
455 setCaption( "Clock" ); 456 setCaption( tr("Clock") );
456} 457}
457 458
diff --git a/noncore/tools/euroconv/main.cpp b/noncore/tools/euroconv/main.cpp
index 2d97f4e..7d69535 100644
--- a/noncore/tools/euroconv/main.cpp
+++ b/noncore/tools/euroconv/main.cpp
@@ -32,5 +32,5 @@ int main( int argc, char **argv ) {
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();
diff --git a/noncore/tools/formatter/formatter.cpp b/noncore/tools/formatter/formatter.cpp
index 21de4d2..49f6355 100644
--- a/noncore/tools/formatter/formatter.cpp
+++ b/noncore/tools/formatter/formatter.cpp
@@ -401,5 +401,6 @@ void FormatterApp::deviceComboSelected(int index) {
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}