summaryrefslogtreecommitdiff
path: root/noncore/settings
authorwimpie <wimpie>2004-04-05 22:58:06 (UTC)
committer wimpie <wimpie>2004-04-05 22:58:06 (UTC)
commit9aeac7cefc3c8baf32944e7275b57e0a0cde1515 (patch) (unidiff)
treedc8161657d98d0e97d5f29554cb35d9b57202c49 /noncore/settings
parent1d958f56a9e1357c20e76d763579d4dc184978e0 (diff)
downloadopie-9aeac7cefc3c8baf32944e7275b57e0a0cde1515.zip
opie-9aeac7cefc3c8baf32944e7275b57e0a0cde1515.tar.gz
opie-9aeac7cefc3c8baf32944e7275b57e0a0cde1515.tar.bz2
Add save of node specific config data
Diffstat (limited to 'noncore/settings') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp22
-rw-r--r--noncore/settings/networksettings2/bluetooth/bluetooth_NN.h10
-rw-r--r--noncore/settings/networksettings2/cable/cable_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/cable/cable_NN.h2
-rw-r--r--noncore/settings/networksettings2/irda/irda_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/irda/irda_NN.h2
-rw-r--r--noncore/settings/networksettings2/lancard/lancard_NN.cpp13
-rw-r--r--noncore/settings/networksettings2/lancard/lancard_NN.h8
-rw-r--r--noncore/settings/networksettings2/modem/modem_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/modem/modem_NN.h2
-rw-r--r--noncore/settings/networksettings2/network/network_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/network/network_NN.h2
-rw-r--r--noncore/settings/networksettings2/networksettings2/netnode.cpp47
-rw-r--r--noncore/settings/networksettings2/networksettings2/netnode.h92
-rw-r--r--noncore/settings/networksettings2/networksettings2/resources.h12
-rw-r--r--noncore/settings/networksettings2/nsdata.cpp67
-rw-r--r--noncore/settings/networksettings2/nsdata.h3
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/ppp/ppp_NN.h2
-rw-r--r--noncore/settings/networksettings2/profile/profile_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/profile/profile_NN.h2
-rw-r--r--noncore/settings/networksettings2/usb/usb_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/usb/usb_NN.h2
-rw-r--r--noncore/settings/networksettings2/vpn/vpn_NN.cpp6
-rw-r--r--noncore/settings/networksettings2/vpn/vpn_NN.h2
-rw-r--r--noncore/settings/networksettings2/wlan/wlan_NN.cpp13
-rw-r--r--noncore/settings/networksettings2/wlan/wlan_NN.h8
27 files changed, 224 insertions, 135 deletions
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
index 3d1aa69..4579e37 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
+++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp
@@ -1,123 +1,143 @@
1#include "bluetooth_NN.h" 1#include "bluetooth_NN.h"
2#include "bluetoothBNEP_NNI.h" 2#include "bluetoothBNEP_NNI.h"
3#include "bluetoothRFCOMM_NNI.h" 3#include "bluetoothRFCOMM_NNI.h"
4 4
5// 5//
6// 6//
7// BLUETOOTH PAN/NAP node 7// BLUETOOTH PAN/NAP node
8// 8//
9// 9//
10 10
11static const char * BluetoothBNEPNeeds[] = 11static const char * BluetoothBNEPNeeds[] =
12 { 0 12 { 0
13 }; 13 };
14 14
15/** 15/**
16 * Constructor, find all of the possible interfaces 16 * Constructor, find all of the possible interfaces
17 */ 17 */
18BluetoothBNEPNetNode::BluetoothBNEPNetNode() : ANetNode() { 18BluetoothBNEPNetNode::BluetoothBNEPNetNode() : ANetNode() {
19 InstanceCount = 7; // default
19} 20}
20 21
21/** 22/**
22 * Delete any interfaces that we own. 23 * Delete any interfaces that we own.
23 */ 24 */
24BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){ 25BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){
25} 26}
26 27
27const QString BluetoothBNEPNetNode::nodeDescription(){ 28const QString BluetoothBNEPNetNode::nodeDescription(){
28 return tr("\ 29 return tr("\
29<p>Sets up a bluetooth link using the bluetooth Network profile.</p>\ 30<p>Sets up a bluetooth link using the bluetooth Network profile.</p>\
30<p>Use this to connect two computing devices.</p>\ 31<p>Use this to connect two computing devices.</p>\
31" 32"
32); 33);
33} 34}
34 35
35ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) { 36ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) {
36 return new ABluetoothBNEP( this ); 37 return new ABluetoothBNEP( this );
37} 38}
38 39
39const char ** BluetoothBNEPNetNode::needs( void ) { 40const char ** BluetoothBNEPNetNode::needs( void ) {
40 return BluetoothBNEPNeeds; 41 return BluetoothBNEPNeeds;
41} 42}
42 43
43const char * BluetoothBNEPNetNode::provides( void ) { 44const char * BluetoothBNEPNetNode::provides( void ) {
44 return "device"; 45 return "device";
45} 46}
46 47
47bool BluetoothBNEPNetNode::generateProperFilesFor( 48bool BluetoothBNEPNetNode::generateProperFilesFor(
48 ANetNodeInstance * ) { 49 ANetNodeInstance * ) {
49 return 1; 50 return 1;
50} 51}
51 52
52bool BluetoothBNEPNetNode::hasDataFor( const QString & S ) { 53bool BluetoothBNEPNetNode::hasDataFor( const QString & S ) {
53 return S == "interfaces"; 54 return S == "interfaces";
54} 55}
55 56
56bool BluetoothBNEPNetNode::generateDeviceDataForCommonFile( 57bool BluetoothBNEPNetNode::generateDeviceDataForCommonFile(
57 SystemFile & , 58 SystemFile & ,
58 long ) { 59 long ) {
59 return 1; 60 return 1;
60} 61}
61 62
62QString BluetoothBNEPNetNode::genNic( long nr ) { 63QString BluetoothBNEPNetNode::genNic( long nr ) {
63 QString S; 64 QString S;
64 return S.sprintf( "bnep%ld", nr ); 65 return S.sprintf( "bnep%ld", nr );
65} 66}
66 67
68
69void BluetoothBNEPNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void BluetoothBNEPNetNode::saveSpecificAttribute( QTextStream & TS) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
67// 81//
68// 82//
69// BLUETOOTH PAN/NAP node 83// BLUETOOTH RFCOMM
70// 84//
71// 85//
72 86
73static const char * BluetoothRFCOMMNeeds[] = 87static const char * BluetoothRFCOMMNeeds[] =
74 { 0 88 { 0
75 }; 89 };
76 90
77BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : ANetNode() { 91BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : ANetNode() {
78} 92}
79 93
80BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){ 94BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){
81} 95}
82 96
83const QString BluetoothRFCOMMNetNode::nodeDescription(){ 97const QString BluetoothRFCOMMNetNode::nodeDescription(){
84 return tr("\ 98 return tr("\
85<p>Sets up a bluetooth link using the bluetooth serial profile.</p>\ 99<p>Sets up a bluetooth link using the bluetooth serial profile.</p>\
86<p>Use this to connect to a GSM.</p>\ 100<p>Use this to connect to a GSM.</p>\
87" 101"
88); 102);
89} 103}
90 104
91ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) { 105ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) {
92 return new ABluetoothRFCOMM( this ); 106 return new ABluetoothRFCOMM( this );
93} 107}
94 108
95const char ** BluetoothRFCOMMNetNode::needs( void ) { 109const char ** BluetoothRFCOMMNetNode::needs( void ) {
96 return BluetoothRFCOMMNeeds; 110 return BluetoothRFCOMMNeeds;
97} 111}
98 112
99const char * BluetoothRFCOMMNetNode::provides( void ) { 113const char * BluetoothRFCOMMNetNode::provides( void ) {
100 return "line"; 114 return "line";
101} 115}
102 116
103bool BluetoothRFCOMMNetNode::generateProperFilesFor( 117bool BluetoothRFCOMMNetNode::generateProperFilesFor(
104 ANetNodeInstance * ) { 118 ANetNodeInstance * ) {
105 return 0; 119 return 0;
106} 120}
107 121
108bool BluetoothRFCOMMNetNode::hasDataFor( const QString & ) { 122bool BluetoothRFCOMMNetNode::hasDataFor( const QString & ) {
109 return 0; 123 return 0;
110} 124}
111 125
112bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile( 126bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile(
113 SystemFile & , 127 SystemFile & ,
114 long ) { 128 long ) {
115 return 0; 129 return 0;
116} 130}
117 131
132void BluetoothRFCOMMNetNode::setSpecificAttribute( QString &, QString & ) {
133}
134
135void BluetoothRFCOMMNetNode::saveSpecificAttribute( QTextStream & ) {
136}
137
118extern "C" { 138extern "C" {
119void create_plugin( QList<ANetNode> & PNN ) { 139void create_plugin( QList<ANetNode> & PNN ) {
120 PNN.append( new BluetoothBNEPNetNode() ); 140 PNN.append( new BluetoothBNEPNetNode() );
121 PNN.append( new BluetoothRFCOMMNetNode() ); 141 PNN.append( new BluetoothRFCOMMNetNode() );
122} 142}
123} 143}
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
index 5cd6c52..882d2e3 100644
--- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
+++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h
@@ -12,68 +12,76 @@ class BluetoothBNEPNetNode : public ANetNode {
12public: 12public:
13 13
14 BluetoothBNEPNetNode(); 14 BluetoothBNEPNetNode();
15 virtual ~BluetoothBNEPNetNode(); 15 virtual ~BluetoothBNEPNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/bluetooth"; } 18 { return "Devices/bluetooth"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("Bluetooth PAN/NAP"); } 21 { return tr("Bluetooth PAN/NAP"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & S ); 31 virtual bool hasDataFor( const QString & S );
32 virtual bool generateDeviceDataForCommonFile( 32 virtual bool generateDeviceDataForCommonFile(
33 SystemFile & , long DevNr ); 33 SystemFile & , long DevNr );
34 34
35 virtual long instanceCount( void ) 35 virtual long instanceCount( void )
36 { return 7; } 36 { return InstanceCount; }
37 virtual QString genNic( long ); 37 virtual QString genNic( long );
38 38
39private: 39private:
40 40
41 virtual void setSpecificAttribute( QString & Attr, QString & Value );
42 virtual void saveSpecificAttribute( QTextStream & TS );
43
44 // number of interfaces for this device
45 long InstanceCount;
46
41}; 47};
42 48
43class BluetoothRFCOMMNetNode : public ANetNode { 49class BluetoothRFCOMMNetNode : public ANetNode {
44 50
45 Q_OBJECT 51 Q_OBJECT
46 52
47public: 53public:
48 54
49 BluetoothRFCOMMNetNode(); 55 BluetoothRFCOMMNetNode();
50 virtual ~BluetoothRFCOMMNetNode(); 56 virtual ~BluetoothRFCOMMNetNode();
51 57
52 virtual const QString pixmapName() 58 virtual const QString pixmapName()
53 { return "Devices/bluetooth"; } 59 { return "Devices/bluetooth"; }
54 60
55 virtual const QString nodeName() 61 virtual const QString nodeName()
56 { return tr("Bluetooth serial link"); } 62 { return tr("Bluetooth serial link"); }
57 63
58 virtual const QString nodeDescription() ; 64 virtual const QString nodeDescription() ;
59 65
60 virtual ANetNodeInstance * createInstance( void ); 66 virtual ANetNodeInstance * createInstance( void );
61 67
62 virtual const char ** needs( void ); 68 virtual const char ** needs( void );
63 virtual const char * provides( void ); 69 virtual const char * provides( void );
64 70
65 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 71 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
66 virtual bool hasDataFor( const QString & S ); 72 virtual bool hasDataFor( const QString & S );
67 virtual bool generateDeviceDataForCommonFile( 73 virtual bool generateDeviceDataForCommonFile(
68 SystemFile & , long ); 74 SystemFile & , long );
69 75
70private: 76private:
71 77
78 virtual void setSpecificAttribute( QString & Attr, QString & Value );
79 virtual void saveSpecificAttribute( QTextStream & TS );
72}; 80};
73 81
74extern "C" 82extern "C"
75{ 83{
76 void create_plugin( QList<ANetNode> & PNN ); 84 void create_plugin( QList<ANetNode> & PNN );
77}; 85};
78 86
79#endif 87#endif
diff --git a/noncore/settings/networksettings2/cable/cable_NN.cpp b/noncore/settings/networksettings2/cable/cable_NN.cpp
index a6be4d5..dd41c1f 100644
--- a/noncore/settings/networksettings2/cable/cable_NN.cpp
+++ b/noncore/settings/networksettings2/cable/cable_NN.cpp
@@ -26,29 +26,35 @@ const QString CableNetNode::nodeDescription(){
26 26
27ANetNodeInstance * CableNetNode::createInstance( void ) { 27ANetNodeInstance * CableNetNode::createInstance( void ) {
28 return new ACable( this ); 28 return new ACable( this );
29} 29}
30 30
31const char ** CableNetNode::needs( void ) { 31const char ** CableNetNode::needs( void ) {
32 return CableNeeds; 32 return CableNeeds;
33} 33}
34 34
35const char * CableNetNode::provides( void ) { 35const char * CableNetNode::provides( void ) {
36 return "line"; 36 return "line";
37} 37}
38 38
39bool CableNetNode::generateProperFilesFor( 39bool CableNetNode::generateProperFilesFor(
40 ANetNodeInstance * ) { 40 ANetNodeInstance * ) {
41 return 1; 41 return 1;
42} 42}
43 43
44bool CableNetNode::generateDeviceDataForCommonFile( 44bool CableNetNode::generateDeviceDataForCommonFile(
45 SystemFile & , 45 SystemFile & ,
46 long ) { 46 long ) {
47 return 1; 47 return 1;
48} 48}
49 49
50void CableNetNode::setSpecificAttribute( QString & , QString & ) {
51}
52
53void CableNetNode::saveSpecificAttribute( QTextStream & ) {
54}
55
50extern "C" { 56extern "C" {
51void create_plugin( QList<ANetNode> & PNN ) { 57void create_plugin( QList<ANetNode> & PNN ) {
52 PNN.append( new CableNetNode() ); 58 PNN.append( new CableNetNode() );
53} 59}
54} 60}
diff --git a/noncore/settings/networksettings2/cable/cable_NN.h b/noncore/settings/networksettings2/cable/cable_NN.h
index 83b98e0..b37f31a 100644
--- a/noncore/settings/networksettings2/cable/cable_NN.h
+++ b/noncore/settings/networksettings2/cable/cable_NN.h
@@ -14,32 +14,34 @@ public:
14 CableNetNode(); 14 CableNetNode();
15 virtual ~CableNetNode(); 15 virtual ~CableNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/cable"; } 18 { return "Devices/cable"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("Cable Connection"); } 21 { return tr("Cable Connection"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr); 34 SystemFile & SF, long DevNr);
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/irda/irda_NN.cpp b/noncore/settings/networksettings2/irda/irda_NN.cpp
index 96327a5..49b7707 100644
--- a/noncore/settings/networksettings2/irda/irda_NN.cpp
+++ b/noncore/settings/networksettings2/irda/irda_NN.cpp
@@ -26,29 +26,35 @@ const QString IRDANetNode::nodeDescription(){
26 26
27ANetNodeInstance * IRDANetNode::createInstance( void ) { 27ANetNodeInstance * IRDANetNode::createInstance( void ) {
28 return new AIRDA( this ); 28 return new AIRDA( this );
29} 29}
30 30
31const char ** IRDANetNode::needs( void ) { 31const char ** IRDANetNode::needs( void ) {
32 return IRDANeeds; 32 return IRDANeeds;
33} 33}
34 34
35const char * IRDANetNode::provides( void ) { 35const char * IRDANetNode::provides( void ) {
36 return "line"; 36 return "line";
37} 37}
38 38
39bool IRDANetNode::generateProperFilesFor( 39bool IRDANetNode::generateProperFilesFor(
40 ANetNodeInstance * ) { 40 ANetNodeInstance * ) {
41 return 1; 41 return 1;
42} 42}
43 43
44bool IRDANetNode::generateDeviceDataForCommonFile( 44bool IRDANetNode::generateDeviceDataForCommonFile(
45 SystemFile & , 45 SystemFile & ,
46 long ) { 46 long ) {
47 return 1; 47 return 1;
48} 48}
49 49
50void IRDANetNode::setSpecificAttribute( QString & , QString & ) {
51}
52
53void IRDANetNode::saveSpecificAttribute( QTextStream & ) {
54}
55
50extern "C" { 56extern "C" {
51void create_plugin( QList<ANetNode> & PNN ) { 57void create_plugin( QList<ANetNode> & PNN ) {
52 PNN.append( new IRDANetNode() ); 58 PNN.append( new IRDANetNode() );
53} 59}
54} 60}
diff --git a/noncore/settings/networksettings2/irda/irda_NN.h b/noncore/settings/networksettings2/irda/irda_NN.h
index a5b6cc5..2dcef74 100644
--- a/noncore/settings/networksettings2/irda/irda_NN.h
+++ b/noncore/settings/networksettings2/irda/irda_NN.h
@@ -14,32 +14,34 @@ public:
14 IRDANetNode(); 14 IRDANetNode();
15 virtual ~IRDANetNode(); 15 virtual ~IRDANetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/irda"; } 18 { return "Devices/irda"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("Infrared link"); } 21 { return tr("Infrared link"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.cpp b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
index 480ddf9..ba1c1f8 100644
--- a/noncore/settings/networksettings2/lancard/lancard_NN.cpp
+++ b/noncore/settings/networksettings2/lancard/lancard_NN.cpp
@@ -1,34 +1,35 @@
1#include "lancard_NN.h" 1#include "lancard_NN.h"
2#include "lancard_NNI.h" 2#include "lancard_NNI.h"
3 3
4static const char * LanCardNeeds[] = 4static const char * LanCardNeeds[] =
5 { 0 }; 5 { 0 };
6 6
7/** 7/**
8 * Constructor, find all of the possible interfaces 8 * Constructor, find all of the possible interfaces
9 */ 9 */
10LanCardNetNode::LanCardNetNode() : ANetNode() { 10LanCardNetNode::LanCardNetNode() : ANetNode() {
11 InstanceCount = 2;
11} 12}
12 13
13/** 14/**
14 * Delete any interfaces that we own. 15 * Delete any interfaces that we own.
15 */ 16 */
16LanCardNetNode::~LanCardNetNode(){ 17LanCardNetNode::~LanCardNetNode(){
17} 18}
18 19
19const QString LanCardNetNode::nodeDescription(){ 20const QString LanCardNetNode::nodeDescription(){
20 return tr("\ 21 return tr("\
21<p>Sets up a wired regular LAN card.</p>\ 22<p>Sets up a wired regular LAN card.</p>\
22<p>Use this to set up 10/100/1000 MBit LAN cards.</p>\ 23<p>Use this to set up 10/100/1000 MBit LAN cards.</p>\
23" 24"
24); 25);
25} 26}
26 27
27ANetNodeInstance * LanCardNetNode::createInstance( void ) { 28ANetNodeInstance * LanCardNetNode::createInstance( void ) {
28 return new ALanCard( this ); 29 return new ALanCard( this );
29} 30}
30 31
31 32
32const char ** LanCardNetNode::needs( void ) { 33const char ** LanCardNetNode::needs( void ) {
33 return LanCardNeeds; 34 return LanCardNeeds;
34} 35}
@@ -44,29 +45,41 @@ bool LanCardNetNode::generateProperFilesFor(
44 45
45bool LanCardNetNode::hasDataFor( const QString & S ) { 46bool LanCardNetNode::hasDataFor( const QString & S ) {
46 return S == "interfaces"; 47 return S == "interfaces";
47} 48}
48 49
49bool LanCardNetNode::generateDeviceDataForCommonFile( 50bool LanCardNetNode::generateDeviceDataForCommonFile(
50 SystemFile & S , 51 SystemFile & S ,
51 long DevNr ) { 52 long DevNr ) {
52 QString NIC = genNic( DevNr ); 53 QString NIC = genNic( DevNr );
53 54
54 if( S.name() == "interfaces" ) { 55 if( S.name() == "interfaces" ) {
55 // generate mapping stanza for this interface 56 // generate mapping stanza for this interface
56 S << "# check if " << NIC << " can be brought UP" << endl; 57 S << "# check if " << NIC << " can be brought UP" << endl;
57 S << "mapping " << NIC << endl; 58 S << "mapping " << NIC << endl;
58 S << " script networksettings2-request" << endl << endl; 59 S << " script networksettings2-request" << endl << endl;
59 } 60 }
60 return 0; 61 return 0;
61} 62}
62 63
63QString LanCardNetNode::genNic( long nr ) { 64QString LanCardNetNode::genNic( long nr ) {
64 QString S; 65 QString S;
65 return S.sprintf( "eth%ld", nr ); 66 return S.sprintf( "eth%ld", nr );
66} 67}
67 68
69void LanCardNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
68extern "C" { 81extern "C" {
69void create_plugin( QList<ANetNode> & PNN ) { 82void create_plugin( QList<ANetNode> & PNN ) {
70 PNN.append( new LanCardNetNode() ); 83 PNN.append( new LanCardNetNode() );
71} 84}
72} 85}
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.h b/noncore/settings/networksettings2/lancard/lancard_NN.h
index dcdd0da..5f2b25d 100644
--- a/noncore/settings/networksettings2/lancard/lancard_NN.h
+++ b/noncore/settings/networksettings2/lancard/lancard_NN.h
@@ -12,38 +12,44 @@ class LanCardNetNode : public ANetNode{
12public: 12public:
13 13
14 LanCardNetNode(); 14 LanCardNetNode();
15 virtual ~LanCardNetNode(); 15 virtual ~LanCardNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/card"; } 18 { return "Devices/card"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("LAN card"); } 21 { return tr("LAN card"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & S ); 31 virtual bool hasDataFor( const QString & S );
32 virtual bool generateDeviceDataForCommonFile( 32 virtual bool generateDeviceDataForCommonFile(
33 SystemFile & SF, long DevNr ); 33 SystemFile & SF, long DevNr );
34 34
35 virtual long instanceCount( void ) 35 virtual long instanceCount( void )
36 { return 2; } 36 { return InstanceCount; }
37 37
38 virtual QString genNic( long ); 38 virtual QString genNic( long );
39 39
40private: 40private:
41 41
42 virtual void setSpecificAttribute( QString & Attr, QString & Value );
43 virtual void saveSpecificAttribute( QTextStream & TS );
44
45 // number of interfaces for this device
46 long InstanceCount;
47
42}; 48};
43 49
44extern "C" 50extern "C"
45{ 51{
46 void create_plugin( QList<ANetNode> & PNN ); 52 void create_plugin( QList<ANetNode> & PNN );
47}; 53};
48 54
49#endif 55#endif
diff --git a/noncore/settings/networksettings2/modem/modem_NN.cpp b/noncore/settings/networksettings2/modem/modem_NN.cpp
index 65b06ee..1cc8524 100644
--- a/noncore/settings/networksettings2/modem/modem_NN.cpp
+++ b/noncore/settings/networksettings2/modem/modem_NN.cpp
@@ -27,29 +27,35 @@ const QString ModemNetNode::nodeDescription(){
27 27
28ANetNodeInstance * ModemNetNode::createInstance( void ) { 28ANetNodeInstance * ModemNetNode::createInstance( void ) {
29 return new AModem( this ); 29 return new AModem( this );
30} 30}
31 31
32const char ** ModemNetNode::needs( void ) { 32const char ** ModemNetNode::needs( void ) {
33 return ModemNeeds; 33 return ModemNeeds;
34} 34}
35 35
36const char * ModemNetNode::provides( void ) { 36const char * ModemNetNode::provides( void ) {
37 return "line"; 37 return "line";
38} 38}
39 39
40bool ModemNetNode::generateProperFilesFor( 40bool ModemNetNode::generateProperFilesFor(
41 ANetNodeInstance * ) { 41 ANetNodeInstance * ) {
42 return 1; 42 return 1;
43} 43}
44 44
45bool ModemNetNode::generateDeviceDataForCommonFile( 45bool ModemNetNode::generateDeviceDataForCommonFile(
46 SystemFile & , 46 SystemFile & ,
47 long ) { 47 long ) {
48 return 1; 48 return 1;
49} 49}
50 50
51void ModemNetNode::setSpecificAttribute( QString & , QString & ) {
52}
53
54void ModemNetNode::saveSpecificAttribute( QTextStream & ) {
55}
56
51extern "C" { 57extern "C" {
52void create_plugin( QList<ANetNode> & PNN ) { 58void create_plugin( QList<ANetNode> & PNN ) {
53 PNN.append( new ModemNetNode() ); 59 PNN.append( new ModemNetNode() );
54} 60}
55} 61}
diff --git a/noncore/settings/networksettings2/modem/modem_NN.h b/noncore/settings/networksettings2/modem/modem_NN.h
index 49244b2..849f928 100644
--- a/noncore/settings/networksettings2/modem/modem_NN.h
+++ b/noncore/settings/networksettings2/modem/modem_NN.h
@@ -14,32 +14,34 @@ public:
14 ModemNetNode(); 14 ModemNetNode();
15 virtual ~ModemNetNode(); 15 virtual ~ModemNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/modem"; } 18 { return "Devices/modem"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("Dialup modem"); } 21 { return tr("Dialup modem"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp
index 4a77e6a..d27d54a 100644
--- a/noncore/settings/networksettings2/network/network_NN.cpp
+++ b/noncore/settings/networksettings2/network/network_NN.cpp
@@ -28,29 +28,35 @@ const QString NetworkNetNode::nodeDescription(){
28 28
29ANetNodeInstance * NetworkNetNode::createInstance( void ) { 29ANetNodeInstance * NetworkNetNode::createInstance( void ) {
30 return new ANetwork( this ); 30 return new ANetwork( this );
31} 31}
32 32
33const char ** NetworkNetNode::needs( void ) { 33const char ** NetworkNetNode::needs( void ) {
34 return NetworkNeeds; 34 return NetworkNeeds;
35} 35}
36 36
37const char * NetworkNetNode::provides( void ) { 37const char * NetworkNetNode::provides( void ) {
38 return "connection"; 38 return "connection";
39} 39}
40 40
41bool NetworkNetNode::generateProperFilesFor( 41bool NetworkNetNode::generateProperFilesFor(
42 ANetNodeInstance * ) { 42 ANetNodeInstance * ) {
43 return 1; 43 return 1;
44} 44}
45 45
46bool NetworkNetNode::generateDeviceDataForCommonFile( 46bool NetworkNetNode::generateDeviceDataForCommonFile(
47 SystemFile & , 47 SystemFile & ,
48 long ) { 48 long ) {
49 return 1; 49 return 1;
50} 50}
51 51
52void NetworkNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void NetworkNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new NetworkNetNode() ); 60 PNN.append( new NetworkNetNode() );
55} 61}
56} 62}
diff --git a/noncore/settings/networksettings2/network/network_NN.h b/noncore/settings/networksettings2/network/network_NN.h
index 59f0526..0f87e1b 100644
--- a/noncore/settings/networksettings2/network/network_NN.h
+++ b/noncore/settings/networksettings2/network/network_NN.h
@@ -14,32 +14,34 @@ public:
14 NetworkNetNode(); 14 NetworkNetNode();
15 virtual ~NetworkNetNode(); 15 virtual ~NetworkNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/tcpip"; } 18 { return "Devices/tcpip"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("IP Configuration"); } 21 { return tr("IP Configuration"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.cpp b/noncore/settings/networksettings2/networksettings2/netnode.cpp
index fcc6044..3691e5a 100644
--- a/noncore/settings/networksettings2/networksettings2/netnode.cpp
+++ b/noncore/settings/networksettings2/networksettings2/netnode.cpp
@@ -24,86 +24,101 @@ QString & deQuote( QString & X ) {
24 R = X[idx+1]; 24 R = X[idx+1];
25 X.replace( idx, 2, &R, 1 ); 25 X.replace( idx, 2, &R, 1 );
26 } 26 }
27 X = X.left( X.length()-1 ); 27 X = X.left( X.length()-1 );
28 } 28 }
29 return X; 29 return X;
30} 30}
31 31
32QString quote( QString X ) { 32QString quote( QString X ) {
33 if( X.find( QRegExp( "[ \n\"\\\t]" ) ) >= 0 ) { 33 if( X.find( QRegExp( "[ \n\"\\\t]" ) ) >= 0 ) {
34 // need to quote this 34 // need to quote this
35 QString OutString = "\""; 35 QString OutString = "\"";
36 36
37 X.replace( QRegExp("\""), "\\\"" ); 37 X.replace( QRegExp("\""), "\\\"" );
38 X.replace( QRegExp("\\"), "\\\\" ); 38 X.replace( QRegExp("\\"), "\\\\" );
39 X.replace( QRegExp(" "), "\\ " ); 39 X.replace( QRegExp(" "), "\\ " );
40 40
41 OutString += X; 41 OutString += X;
42 OutString += "\""; 42 OutString += "\"";
43 X = OutString; 43 X = OutString;
44 } 44 }
45 return X; 45 return X;
46} 46}
47 47
48
49//
50//
51// ANETNODE
48// 52//
49// 53//
54
55void ANetNode::saveAttributes( QTextStream & TS ) {
56 saveSpecificAttribute( TS );
57}
58
59void ANetNode::setAttribute( QString & Attr, QString & Value ){
60 setSpecificAttribute( Attr, Value );
61}
62
63//
50// 64//
65// ANETNODEINSTANCE
51// 66//
52// 67//
53 68
54long ANetNodeInstance::InstanceCounter = -1; 69long ANetNodeInstance::InstanceCounter = -1;
55 70
56void ANetNodeInstance::initialize( void ) { 71void ANetNodeInstance::initialize( void ) {
57 if( InstanceCounter == -1 ) 72 if( InstanceCounter == -1 )
58 InstanceCounter = time(0); 73 InstanceCounter = time(0);
59 // set name 74 // set name
60 QString N; 75 QString N;
61 N.sprintf( "-%ld", InstanceCounter++ ); 76 N.sprintf( "-%ld", InstanceCounter++ );
62 N.prepend( NodeType->nodeName() ); 77 N.prepend( NodeType->nodeName() );
63 setNodeName( N ); 78 setNodeName( N );
64} 79}
65 80
66void ANetNodeInstance::setAttribute( QString & Attr, QString & Value ){ 81void ANetNodeInstance::setAttribute( QString & Attr, QString & Value ){
67 if( Attr == "name" ) { 82 if( Attr == "name" ) {
68 NodeName = Value; 83 NodeName = Value;
69 } else { 84 } else {
70 setSpecificAttribute( Attr, Value ); 85 setSpecificAttribute( Attr, Value );
71 } 86 }
72} 87}
73 88
74void ANetNodeInstance::saveAttributes( QTextStream & TS ) { 89void ANetNodeInstance::saveAttributes( QTextStream & TS ) {
75 TS << "name=" << quote( NodeName ) << endl; 90 TS << "name=" << quote( NodeName ) << endl;
76 saveSpecificAttribute( TS ); 91 saveSpecificAttribute( TS );
77} 92}
78 93
79ANetNodeInstance * ANetNodeInstance::nextNode( void ) { 94ANetNodeInstance * ANetNodeInstance::nextNode( void ) {
80 return connection()->findNext( this ); 95 return connection()->findNext( this );
81} 96}
82 97
83// 98//
84// 99//
85// 100// NODECOLLECTION
86// 101//
87// 102//
88 103
89long NodeCollection::MaxNr = -1; 104long NodeCollection::MaxNr = -1;
90 105
91NodeCollection::NodeCollection( void ) : QList<ANetNodeInstance>() { 106NodeCollection::NodeCollection( void ) : QList<ANetNodeInstance>() {
92 IsModified = 0; 107 IsModified = 0;
93 Index = -1; 108 Index = -1;
94 Name=""; 109 Name="";
95 IsNew = 1; 110 IsNew = 1;
96 CurrentState = Unchecked; 111 CurrentState = Unchecked;
97} 112}
98 113
99NodeCollection::NodeCollection( QTextStream & TS ) : 114NodeCollection::NodeCollection( QTextStream & TS ) :
100 QList<ANetNodeInstance>() { 115 QList<ANetNodeInstance>() {
101 long idx; 116 long idx;
102 bool InError = 0; 117 bool InError = 0;
103 QString S, A, N; 118 QString S, A, N;
104 IsModified = 0; 119 IsModified = 0;
105 Index = -1; 120 Index = -1;
106 Name=""; 121 Name="";
107 IsNew = 0; 122 IsNew = 0;
108 CurrentState = Unchecked; 123 CurrentState = Unchecked;
109 124
@@ -248,55 +263,37 @@ QString NodeCollection::stateName( State_t S) {
248 return qApp->translate( "networksettings2", "Unavailable"); 263 return qApp->translate( "networksettings2", "Unavailable");
249 case Disabled : 264 case Disabled :
250 return qApp->translate( "networksettings2", "Disabled"); 265 return qApp->translate( "networksettings2", "Disabled");
251 case Off : 266 case Off :
252 return qApp->translate( "networksettings2", "Off"); 267 return qApp->translate( "networksettings2", "Off");
253 case Available : 268 case Available :
254 return qApp->translate( "networksettings2", "Available"); 269 return qApp->translate( "networksettings2", "Available");
255 case IsUp : 270 case IsUp :
256 return qApp->translate( "networksettings2", "IsUp"); 271 return qApp->translate( "networksettings2", "IsUp");
257 case Unchecked : /* FT */ 272 case Unchecked : /* FT */
258 default : 273 default :
259 break; 274 break;
260 } 275 }
261 return QString(""); 276 return QString("");
262} 277}
263 278
264void NodeCollection::reassign( void ) { 279void NodeCollection::reassign( void ) {
265 for( QListIterator<ANetNodeInstance> it(*this); 280 for( QListIterator<ANetNodeInstance> it(*this);
266 it.current(); 281 it.current();
267 ++it ) { 282 ++it ) {
268 it.current()->setConnection( this ); 283 it.current()->setConnection( this );
269 } 284 }
270} 285}
271 286
287//
288//
289// RUNTIMEINFO
290//
291//
292
272InterfaceInfo * RuntimeInfo::assignedInterface( void ) { 293InterfaceInfo * RuntimeInfo::assignedInterface( void ) {
273 return netNode()->nextNode()->runtime()->assignedInterface(); 294 return netNode()->nextNode()->runtime()->assignedInterface();
274} 295}
275 296
276AsDevice * RuntimeInfo::device( void ) { 297AsDevice * RuntimeInfo::device( void ) {
277 return netNode()->nextNode()->runtime()->device(); 298 return netNode()->nextNode()->runtime()->device();
278} 299}
279
280ANetNodeInstance * FakeNetNode::createInstance( void ) {
281 return new FakeNetNodeInstance( this );
282}
283
284void FakeNetNodeInstance::setSpecificAttribute(
285 QString & A, QString & V ) {
286 ValAttrPairs.insert( A, new QString(V) );
287}
288
289void FakeNetNodeInstance::saveSpecificAttribute( QTextStream &TS ) {
290 for( QDictIterator<QString> it( ValAttrPairs );
291 it.current();
292 ++ it ) {
293 TS << it.currentKey().latin1()
294 << "="
295 << quote( *(it.current()))
296 << endl ;
297 ++it;
298 }
299}
300
301// collects all info that no plugin acceps
302FakeNetNode * FakeNode = 0;
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.h b/noncore/settings/networksettings2/networksettings2/netnode.h
index 9681c6e..6ec9ef6 100644
--- a/noncore/settings/networksettings2/networksettings2/netnode.h
+++ b/noncore/settings/networksettings2/networksettings2/netnode.h
@@ -94,59 +94,67 @@ public:
94 // generate files specific for this node (if any) 94 // generate files specific for this node (if any)
95 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ) = 0; 95 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ) = 0;
96 // return TRUE if this node has data to be inserted in systemfile 96 // return TRUE if this node has data to be inserted in systemfile
97 // with name S 97 // with name S
98 virtual bool hasDataFor( const QString & S ) = 0; 98 virtual bool hasDataFor( const QString & S ) = 0;
99 // generate data specific for the device for the system file S 99 // generate data specific for the device for the system file S
100 // called only IF data was needed 100 // called only IF data was needed
101 virtual bool generateDeviceDataForCommonFile( 101 virtual bool generateDeviceDataForCommonFile(
102 SystemFile & SF, long DevNr ) = 0; 102 SystemFile & SF, long DevNr ) = 0;
103 103
104 // does this Node provide a Connection 104 // does this Node provide a Connection
105 bool isToplevel( void ) 105 bool isToplevel( void )
106 { return strcmp( provides(), "fullsetup") == 0 ; } 106 { return strcmp( provides(), "fullsetup") == 0 ; }
107 107
108 // generate NIC name based on instance nr 108 // generate NIC name based on instance nr
109 // only relevant if node instances are devices 109 // only relevant if node instances are devices
110 virtual QString genNic( long ) 110 virtual QString genNic( long )
111 { return QString(""); } 111 { return QString(""); }
112 112
113 // max number of instances for this node type 113 // max number of instances for this node type
114 // only relevant if node instances are devices 114 // only relevant if node instances are devices
115 virtual long instanceCount( void ) 115 virtual long instanceCount( void )
116 { return 1; } 116 { return 1; }
117 117
118 // set the value of an attribute
119 void setAttribute( QString & Attr, QString & Value ) ;
120 void saveAttributes( QTextStream & TS ) ;
121
118 // compiled references to 'needed' NetNodes -> needs list 122 // compiled references to 'needed' NetNodes -> needs list
119 void setAlternatives( NetNodeList * Alt ) 123 void setAlternatives( NetNodeList * Alt )
120 { Alternatives = Alt; } 124 { Alternatives = Alt; }
121 NetNodeList & alternatives( void ) 125 NetNodeList & alternatives( void )
122 { return *Alternatives; } 126 { return *Alternatives; }
123 127
124protected : 128protected :
125 129
126 NetNodeList * Alternatives; 130 NetNodeList * Alternatives;
127 131
128private : 132private :
133
134 virtual void setSpecificAttribute( QString & , QString & ) = 0;
135 virtual void saveSpecificAttribute( QTextStream & ) = 0;
136
129}; 137};
130 138
131class ANetNodeInstance : public QObject { 139class ANetNodeInstance : public QObject {
132 140
133public: 141public:
134 142
135 ANetNodeInstance( ANetNode * NN ) : QObject() 143 ANetNodeInstance( ANetNode * NN ) : QObject()
136 { IsModified=0; NodeType = NN; IsNew = TRUE; } 144 { IsModified=0; NodeType = NN; IsNew = TRUE; }
137 virtual ~ANetNodeInstance( void ) { } 145 virtual ~ANetNodeInstance( void ) { }
138 146
139 virtual RuntimeInfo * runtime( void ) = 0; 147 virtual RuntimeInfo * runtime( void ) = 0;
140 148
141 void setConnection( NodeCollection * NC ) 149 void setConnection( NodeCollection * NC )
142 { Connection = NC; } 150 { Connection = NC; }
143 NodeCollection * connection( void ) 151 NodeCollection * connection( void )
144 { return Connection; } 152 { return Connection; }
145 153
146 // create edit widget under parent 154 // create edit widget under parent
147 virtual QWidget * edit( QWidget * parent ) = 0; 155 virtual QWidget * edit( QWidget * parent ) = 0;
148 // is given data acceptable 156 // is given data acceptable
149 virtual QString acceptable( void ) = 0; 157 virtual QString acceptable( void ) = 0;
150 158
151 // return data was modified 159 // return data was modified
152 void setModified( bool M ) 160 void setModified( bool M )
@@ -357,109 +365,25 @@ public :
357 static void resetMaxNr( void ) 365 static void resetMaxNr( void )
358 { MaxNr = -1; } 366 { MaxNr = -1; }
359 367
360private : 368private :
361 369
362 int compareItems ( QCollection::Item item1, 370 int compareItems ( QCollection::Item item1,
363 QCollection::Item item2 ); 371 QCollection::Item item2 );
364 372
365 static long MaxNr; 373 static long MaxNr;
366 long Number; 374 long Number;
367 375
368 // state of this connection 376 // state of this connection
369 State_t CurrentState; 377 State_t CurrentState;
370 378
371 QString Name; 379 QString Name;
372 // true if this collection was just created (and not 380 // true if this collection was just created (and not
373 // loaded from file 381 // loaded from file
374 bool IsNew; 382 bool IsNew;
375 // index in listbox 383 // index in listbox
376 int Index; 384 int Index;
377 bool IsModified; 385 bool IsModified;
378 386
379}; 387};
380 388
381//
382// special node that is used to remember entries for plugins
383// that seem missing. This way we never loose data
384//
385
386class FakeNetNode : public ANetNode {
387
388public:
389
390 FakeNetNode( ) { };
391 virtual ~FakeNetNode(){};
392
393 const QString pixmapName()
394 { return QString(""); }
395 const QString nodeName()
396 { return QString("Fake node" ); }
397 const QString nodeDescription()
398 { return QString("Fake node" ); }
399 ANetNodeInstance * createInstance( void );
400 const char * provides( void )
401 { return ""; }
402 virtual const char ** needs( void )
403 { return 0; }
404 virtual bool generateProperFilesFor( ANetNodeInstance * )
405 { return 0; }
406 virtual bool hasDataFor( const QString & )
407 { return 0; }
408 virtual bool generateDeviceDataForCommonFile(
409 SystemFile & , long )
410 {return 1; }
411
412private :
413
414};
415
416class FakeNetNodeInstance : public ANetNodeInstance {
417
418public:
419
420 FakeNetNodeInstance( ANetNode * NN ) :
421 ANetNodeInstance( NN ), ValAttrPairs() { }
422 virtual ~FakeNetNodeInstance( void ) { }
423
424 virtual RuntimeInfo * runtime( void )
425 { return 0; }
426
427 // create edit widget under parent
428 virtual QWidget * edit( QWidget * )
429 { return 0; }
430 // is given data acceptable
431 virtual QString acceptable( void )
432 { return QString(""); }
433
434 // get data from GUI and store in node
435 virtual void commit( void ) {}
436
437 // get next node
438 ANetNodeInstance * nextNode()
439 { return 0; }
440 // return NetNode this is an instance of
441
442 // intialize am instance of a net node
443 void initialize( void ){}
444
445 // returns node specific data -> only useful for 'buddy'
446 virtual void * data( void )
447 { return 0; }
448
449 virtual bool hasDataFor( const QString & )
450 { return 0; }
451
452 virtual bool generateDataForCommonFile( SystemFile & , long )
453 { return 1; }
454
455protected :
456
457 virtual void setSpecificAttribute( QString & , QString & );
458 virtual void saveSpecificAttribute( QTextStream & );
459
460 QDict<QString> ValAttrPairs;
461};
462
463extern FakeNetNode * FakeNode;
464
465#endif 389#endif
diff --git a/noncore/settings/networksettings2/networksettings2/resources.h b/noncore/settings/networksettings2/networksettings2/resources.h
index 3048fb3..7050f10 100644
--- a/noncore/settings/networksettings2/networksettings2/resources.h
+++ b/noncore/settings/networksettings2/networksettings2/resources.h
@@ -34,65 +34,65 @@ public :
34 QArray<char *> EnvList; 34 QArray<char *> EnvList;
35}; 35};
36 36
37typedef QDict<NetNode_t> Name2NetNode_t; 37typedef QDict<NetNode_t> Name2NetNode_t;
38typedef QDict<ANetNodeInstance > Name2Instance_t; 38typedef QDict<ANetNodeInstance > Name2Instance_t;
39typedef QDict<NodeCollection> Name2Connection_t; 39typedef QDict<NodeCollection> Name2Connection_t;
40typedef QDict<SystemFile> Name2SystemFile_t; 40typedef QDict<SystemFile> Name2SystemFile_t;
41 41
42class TheNSResources { 42class TheNSResources {
43 43
44public : 44public :
45 45
46 TheNSResources( void ); 46 TheNSResources( void );
47 ~TheNSResources( ); 47 ~TheNSResources( );
48 48
49 System & system() 49 System & system()
50 { return *TheSystem; } 50 { return *TheSystem; }
51 51
52 QPixmap getPixmap( const QString & Name ); 52 QPixmap getPixmap( const QString & Name );
53 53
54 Name2NetNode_t & netNodes( void ) 54 Name2NetNode_t & netNodes( void )
55 { return AllNodeTypes; } 55 { return AllNodeTypes; }
56 bool netNodeExists( const QString & X ) 56 bool netNodeExists( const QString & X )
57 { return AllNodeTypes.find(X)!=0; } 57 { return AllNodeTypes.find(X)!=0; }
58 ANetNode * findNetNode( const QString & N )
59 { NetNode_t * NNT = AllNodeTypes.find(N);
60 return (NNT) ? NNT->NetNode : 0;
61 }
58 62
59 Name2SystemFile_t & systemFiles( void ) 63 Name2SystemFile_t & systemFiles( void )
60 { return SystemFiles; } 64 { return SystemFiles; }
61 void addSystemFile( SystemFile * SF ) 65 void addSystemFile( SystemFile * SF )
62 { SystemFiles.insert( SF->name(), SF ); } 66 { SystemFiles.insert( SF->name(), SF ); }
63 67
64 ANetNodeInstance * createNodeInstance( const QString & S ) 68 ANetNodeInstance * createNodeInstance( const QString & S )
65 { ANetNodeInstance * NNI = 0; 69 { ANetNodeInstance * NNI = 0;
66 NetNode_t * NNT = AllNodeTypes[S]; 70 NetNode_t * NNT = AllNodeTypes[S];
67 ANetNode * NN;
68 if( ! NNT ) { 71 if( ! NNT ) {
69 NN = FakeNode = 72 return 0;
70 ( FakeNode ) ? FakeNode : new FakeNetNode();
71 } else {
72 NN = NNT->NetNode;
73 } 73 }
74 NNI = NN->createInstance(); 74 NNI = NNT->NetNode->createInstance();
75 NNI->initialize(); 75 NNI->initialize();
76 return NNI; 76 return NNI;
77 } 77 }
78 78
79 Name2Instance_t & netNodeInstances( void ) 79 Name2Instance_t & netNodeInstances( void )
80 { return AllNodes; } 80 { return AllNodes; }
81 void addNodeInstance( ANetNodeInstance * I ) 81 void addNodeInstance( ANetNodeInstance * I )
82 { AllNodes.insert( I->nodeName(), I ); } 82 { AllNodes.insert( I->nodeName(), I ); }
83 void removeNodeInstance( const QString & N ) 83 void removeNodeInstance( const QString & N )
84 { AllNodes.remove( N );} 84 { AllNodes.remove( N );}
85 ANetNodeInstance * findNodeInstance( const QString & S ) 85 ANetNodeInstance * findNodeInstance( const QString & S )
86 { return (AllNodes.find(S)!=0) ? AllNodes[S] : 0; } 86 { return (AllNodes.find(S)!=0) ? AllNodes[S] : 0; }
87 87
88 const QString & netNode2Name( const char * Type ); 88 const QString & netNode2Name( const char * Type );
89 const QString & netNode2Description( const char * Type ); 89 const QString & netNode2Description( const char * Type );
90 90
91 void renumberConnections( void ); 91 void renumberConnections( void );
92 void addConnection( NodeCollection * NC ); 92 void addConnection( NodeCollection * NC );
93 void removeConnection( const QString & N ); 93 void removeConnection( const QString & N );
94 NodeCollection * findConnection( const QString & N ); 94 NodeCollection * findConnection( const QString & N );
95 Name2Connection_t & connections( void ) 95 Name2Connection_t & connections( void )
96 { return ConnectionsMap; } 96 { return ConnectionsMap; }
97 97
98 CurrentQPEUser & currentUser( void ) 98 CurrentQPEUser & currentUser( void )
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp
index b4d9aaa..13979ce 100644
--- a/noncore/settings/networksettings2/nsdata.cpp
+++ b/noncore/settings/networksettings2/nsdata.cpp
@@ -10,155 +10,190 @@
10#include <resources.h> 10#include <resources.h>
11 11
12static QString CfgFile; 12static QString CfgFile;
13 13
14NetworkSettingsData::NetworkSettingsData( void ) { 14NetworkSettingsData::NetworkSettingsData( void ) {
15 // init global resources structure 15 // init global resources structure
16 new TheNSResources(); 16 new TheNSResources();
17 17
18 CfgFile.sprintf( "%s/NETCONFIG", 18 CfgFile.sprintf( "%s/NETCONFIG",
19 NSResources->currentUser().HomeDir.latin1() ); 19 NSResources->currentUser().HomeDir.latin1() );
20 fprintf( stderr, "Cfg from %s\n", CfgFile.latin1() ); 20 fprintf( stderr, "Cfg from %s\n", CfgFile.latin1() );
21 21
22 // load settings 22 // load settings
23 Force = 0; 23 Force = 0;
24 IsModified = 0; 24 IsModified = 0;
25 loadSettings(); 25 loadSettings();
26} 26}
27 27
28// saving is done by caller 28// saving is done by caller
29NetworkSettingsData::~NetworkSettingsData( void ) { 29NetworkSettingsData::~NetworkSettingsData( void ) {
30 delete NSResources; 30 delete NSResources;
31} 31}
32 32
33void NetworkSettingsData::loadSettings( void ) { 33void NetworkSettingsData::loadSettings( void ) {
34 QString S; 34 QString Line, S;
35 ANetNodeInstance* NNI;
36 QString Attr, Value; 35 QString Attr, Value;
37 long idx; 36 long idx;
38 37
39 QFile F( CfgFile ); 38 QFile F( CfgFile );
40 QTextStream TS( &F ); 39 QTextStream TS( &F );
41 40
42 do { 41 do {
43 42
44 if( ! F.open(IO_ReadOnly) ) 43 if( ! F.open(IO_ReadOnly) )
45 break; 44 break;
46 45
47 /* load the file -> 46 /* load the file ->
48 47
49 FORMAT : 48 FORMAT :
50 49
51 [NETNODETYPE] 50 [NETNODETYPE]
52 Entries ... 51 Entries ...
53 <EMPTYLINE> 52 <EMPTYLINE>
54 [connection] 53 [connection]
55 Name=Name 54 Name=Name
56 Node=Name 55 Node=Name
57 <EMPTYLINE> 56 <EMPTYLINE>
58 */ 57 */
59 while( ! TS.atEnd() ) { 58 while( ! TS.atEnd() ) {
60 S = TS.readLine(); 59 S = Line = TS.readLine();
61 60
62 if ( S.isEmpty() || S[0] != '[' ) 61 if ( S.isEmpty() || S[0] != '[' )
63 continue; 62 continue;
64 63
65 S = S.mid( 1, S.length()-2 ); 64 S = S.mid( 1, S.length()-2 );
66 65
67 if( ! NSResources ) { 66 if( ! NSResources ) {
68 continue; 67 continue;
69 } 68 }
70 69
71 if( S == "connection" ) { 70 if( S == "connection" ) {
72 // load connections -> collections of nodes 71 // load connections -> collections of nodes
73 NodeCollection * NC = new NodeCollection( TS ); 72 NodeCollection * NC = new NodeCollection( TS );
74 NSResources->addConnection( NC ); 73 NSResources->addConnection( NC );
75 } else { 74 } else {
76 // load nodes 75 ANetNode * NN = 0;
77 NNI = NSResources->createNodeInstance( S ); 76 ANetNodeInstance* NNI = 0;
78 if( ! NNI ) { 77 if( S.startsWith( "nodetype " ) ) {
79 printf( "SKIPPING %s\n", S.latin1() ); 78 S = S.mid( 9, S.length()-9-1 );
79 fprintf( stderr, "Node %s\n", S.latin1() );
80 // try to find netnode
81 NN = NSResources->findNetNode( S );
82 } else {
83 // try to find instance
84 NNI = NSResources->createNodeInstance( S );
80 } 85 }
81 86
82 do { 87 do {
83 S = TS.readLine(); 88 S = TS.readLine();
84 if( S.isEmpty() ) { 89
85 // empty line 90 if( NN || NNI ) {
86 break; 91 if( S.isEmpty() ) {
87 } 92 // empty line
88 // node found ? 93 break;
89 if( NNI ) { 94 }
90 idx = S.find( '=' ); 95 idx = S.find( '=' );
91 if( idx > 0 ) { 96 if( idx > 0 ) {
92 Attr = S.left( idx ); 97 Attr = S.left( idx );
93 Value = S.mid( idx+1, S.length() ); 98 Value = S.mid( idx+1, S.length() );
94 } else { 99 } else {
95 Value=""; 100 Value="";
96 Attr = S; 101 Attr = S;
97 } 102 }
98 103
99 Value.stripWhiteSpace(); 104 Value.stripWhiteSpace();
100 Attr.stripWhiteSpace(); 105 Attr.stripWhiteSpace();
101 Attr.lower(); 106 Attr.lower();
102 // dequote Attr 107 // dequote Attr
103 Value = deQuote(Value); 108 Value = deQuote(Value);
104 109
105 // set the attribute 110 if( NN ) {
106 NNI->setAttribute( Attr, Value ); 111 // set the attribute
112 NNI->setAttribute( Attr, Value );
113 } else {
114 // set the attribute
115 NNI->setAttribute( Attr, Value );
116 }
117 } else {
118 LeftOvers.append( Line );
119 // add empty line too as delimiter
120 if( S.isEmpty() ) {
121 // empty line
122 break;
123 }
107 } 124 }
108
109 } while( 1 ); 125 } while( 1 );
110 if( NNI ) { 126 if( NNI ) {
111 // loading from file -> exists 127 // loading from file -> exists
112 NNI->setNew( FALSE ); 128 NNI->setNew( FALSE );
113 NSResources->addNodeInstance( NNI ); 129 NSResources->addNodeInstance( NNI );
114 } 130 }
115 } 131 }
116 } 132 }
117 133
118 } while( 0 ); 134 } while( 0 );
119 135
120} 136}
121 137
122QString NetworkSettingsData::saveSettings( void ) { 138QString NetworkSettingsData::saveSettings( void ) {
123 QString ErrS = ""; 139 QString ErrS = "";
124 140
125 if( ! isModified() ) 141 if( ! isModified() )
126 return ErrS; 142 return ErrS;
127 143
128 QString S; 144 QString S;
129 QFile F( CfgFile + ".bup" ); 145 QFile F( CfgFile + ".bup" );
130 146
131 printf( "Saving settings to %s\n", CfgFile.latin1() ); 147 printf( "Saving settings to %s\n", CfgFile.latin1() );
132 if( ! F.open( IO_WriteOnly | IO_Truncate ) ) { 148 if( ! F.open( IO_WriteOnly | IO_Truncate ) ) {
133 ErrS = qApp->translate( "NetworkSettings", 149 ErrS = qApp->translate( "NetworkSettings",
134 "<p>Could not save setup to \"%1\" !</p>" ). 150 "<p>Could not save setup to \"%1\" !</p>" ).
135 arg(CfgFile); 151 arg(CfgFile);
136 // problem 152 // problem
137 return ErrS; 153 return ErrS;
138 } 154 }
139 155
140 QTextStream TS( &F ); 156 QTextStream TS( &F );
157
158 // save leftovers
159 for ( QStringList::Iterator it = LeftOvers.begin();
160 it != LeftOvers.end(); ++it ) {
161 TS << (*it) << endl;
162 }
163
164 // save global configs
165 for( QDictIterator<NetNode_t> it( NSResources->netNodes() );
166 it.current();
167 ++it ) {
168 TS << "[nodetype "
169 << it.current()->NetNode->name()
170 << "]"
171 << endl;
172
173 it.current()->NetNode->saveAttributes( TS );
174 }
175
141 { Name2Connection_t & M = NSResources->connections(); 176 { Name2Connection_t & M = NSResources->connections();
142 ANetNodeInstance * NNI; 177 ANetNodeInstance * NNI;
143 178
144 // for all connections 179 // for all connections
145 for( QDictIterator<NodeCollection> it(M); 180 for( QDictIterator<NodeCollection> it(M);
146 it.current(); 181 it.current();
147 ++it ) { 182 ++it ) {
148 // all nodes in those connections 183 // all nodes in those connections
149 for( QListIterator<ANetNodeInstance> nit(*(it.current())); 184 for( QListIterator<ANetNodeInstance> nit(*(it.current()));
150 nit.current(); 185 nit.current();
151 ++nit ) { 186 ++nit ) {
152 // header 187 // header
153 NNI = nit.current(); 188 NNI = nit.current();
154 TS << '[' <<NNI->nodeClass()->nodeName() << ']' << endl; 189 TS << '[' <<NNI->nodeClass()->nodeName() << ']' << endl;
155 NNI->saveAttributes( TS ); 190 NNI->saveAttributes( TS );
156 TS << endl; 191 TS << endl;
157 } 192 }
158 193
159 TS << "[connection]" << endl; 194 TS << "[connection]" << endl;
160 it.current()->save(TS); 195 it.current()->save(TS);
161 } 196 }
162 } 197 }
163 198
164 QDir D("."); 199 QDir D(".");
diff --git a/noncore/settings/networksettings2/nsdata.h b/noncore/settings/networksettings2/nsdata.h
index eb96930..57eb722 100644
--- a/noncore/settings/networksettings2/nsdata.h
+++ b/noncore/settings/networksettings2/nsdata.h
@@ -17,27 +17,30 @@ public :
17 17
18 bool isModified( void ) 18 bool isModified( void )
19 { return IsModified; } 19 { return IsModified; }
20 void setModified( bool m ) 20 void setModified( bool m )
21 { IsModified = m; } 21 { IsModified = m; }
22 22
23 QList<NodeCollection> collectPossible( const char * Interface ); 23 QList<NodeCollection> collectPossible( const char * Interface );
24 // return TRUE if we need gui to decide 24 // return TRUE if we need gui to decide
25 bool canStart( const char * Interface ); 25 bool canStart( const char * Interface );
26 bool regenerate( void ); 26 bool regenerate( void );
27 27
28 void forceGeneration( bool m ) 28 void forceGeneration( bool m )
29 { Force = m; } 29 { Force = m; }
30 30
31private : 31private :
32 32
33 QString NetworkSettingsData::generateSystemFileNode( 33 QString NetworkSettingsData::generateSystemFileNode(
34 SystemFile & SF, 34 SystemFile & SF,
35 AsDevice * CurDev, 35 AsDevice * CurDev,
36 ANetNodeInstance * DevNNI, 36 ANetNodeInstance * DevNNI,
37 long DevInstNr ); 37 long DevInstNr );
38 bool IsModified; 38 bool IsModified;
39 bool Force; 39 bool Force;
40 40
41 // collect strings in config file nobody wants
42 QStringList LeftOvers;
43
41}; 44};
42 45
43#endif 46#endif
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.cpp b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
index b3f70c5..0bf415b 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.cpp
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.cpp
@@ -34,29 +34,35 @@ ANetNodeInstance * PPPNetNode::createInstance( void ) {
34const char ** PPPNetNode::needs( void ) { 34const char ** PPPNetNode::needs( void ) {
35 return PPPNeeds; 35 return PPPNeeds;
36} 36}
37 37
38const char * PPPNetNode::provides( void ) { 38const char * PPPNetNode::provides( void ) {
39 return "connection"; 39 return "connection";
40} 40}
41 41
42bool PPPNetNode::generateProperFilesFor( 42bool PPPNetNode::generateProperFilesFor(
43 ANetNodeInstance * ) { 43 ANetNodeInstance * ) {
44 return 1; 44 return 1;
45} 45}
46 46
47bool PPPNetNode::generateDeviceDataForCommonFile( 47bool PPPNetNode::generateDeviceDataForCommonFile(
48 SystemFile & , 48 SystemFile & ,
49 long ) { 49 long ) {
50 return 1; 50 return 1;
51} 51}
52 52
53QString PPPNetNode::genNic( long NicNr ) { 53QString PPPNetNode::genNic( long NicNr ) {
54 QString S; 54 QString S;
55 return S.sprintf( "ppp%ld", NicNr ); 55 return S.sprintf( "ppp%ld", NicNr );
56} 56}
57 57
58void PPPNetNode::setSpecificAttribute( QString & , QString & ) {
59}
60
61void PPPNetNode::saveSpecificAttribute( QTextStream & ) {
62}
63
58extern "C" { 64extern "C" {
59void create_plugin( QList<ANetNode> & PNN ) { 65void create_plugin( QList<ANetNode> & PNN ) {
60 PNN.append( new PPPNetNode() ); 66 PNN.append( new PPPNetNode() );
61} 67}
62} 68}
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.h b/noncore/settings/networksettings2/ppp/ppp_NN.h
index c33f281..fbbbbe1 100644
--- a/noncore/settings/networksettings2/ppp/ppp_NN.h
+++ b/noncore/settings/networksettings2/ppp/ppp_NN.h
@@ -16,32 +16,34 @@ public:
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/ppp"; } 18 { return "Devices/ppp"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("PPP Connection"); } 21 { return tr("PPP Connection"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36 virtual QString genNic( long NicNr ); 36 virtual QString genNic( long NicNr );
37 37
38private: 38private:
39 39
40 virtual void setSpecificAttribute( QString & Attr, QString & Value );
41 virtual void saveSpecificAttribute( QTextStream & TS );
40}; 42};
41 43
42extern "C" 44extern "C"
43{ 45{
44 void create_plugin( QList<ANetNode> & PNN ); 46 void create_plugin( QList<ANetNode> & PNN );
45}; 47};
46 48
47#endif 49#endif
diff --git a/noncore/settings/networksettings2/profile/profile_NN.cpp b/noncore/settings/networksettings2/profile/profile_NN.cpp
index 7609cdc..0f71dc7 100644
--- a/noncore/settings/networksettings2/profile/profile_NN.cpp
+++ b/noncore/settings/networksettings2/profile/profile_NN.cpp
@@ -28,29 +28,35 @@ const QString ProfileNetNode::nodeDescription(){
28 28
29ANetNodeInstance * ProfileNetNode::createInstance( void ) { 29ANetNodeInstance * ProfileNetNode::createInstance( void ) {
30 return new AProfile( this ); 30 return new AProfile( this );
31} 31}
32 32
33const char ** ProfileNetNode::needs( void ) { 33const char ** ProfileNetNode::needs( void ) {
34 return ProfileNeeds; 34 return ProfileNeeds;
35} 35}
36 36
37const char * ProfileNetNode::provides( void ) { 37const char * ProfileNetNode::provides( void ) {
38 return "fullsetup"; 38 return "fullsetup";
39} 39}
40 40
41bool ProfileNetNode::generateProperFilesFor( 41bool ProfileNetNode::generateProperFilesFor(
42 ANetNodeInstance * ) { 42 ANetNodeInstance * ) {
43 return 1; 43 return 1;
44} 44}
45 45
46bool ProfileNetNode::generateDeviceDataForCommonFile( 46bool ProfileNetNode::generateDeviceDataForCommonFile(
47 SystemFile & , 47 SystemFile & ,
48 long ) { 48 long ) {
49 return 1; 49 return 1;
50} 50}
51 51
52void ProfileNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void ProfileNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new ProfileNetNode() ); 60 PNN.append( new ProfileNetNode() );
55} 61}
56} 62}
diff --git a/noncore/settings/networksettings2/profile/profile_NN.h b/noncore/settings/networksettings2/profile/profile_NN.h
index f7c2b22..1313ab2 100644
--- a/noncore/settings/networksettings2/profile/profile_NN.h
+++ b/noncore/settings/networksettings2/profile/profile_NN.h
@@ -14,32 +14,34 @@ public:
14 ProfileNetNode(); 14 ProfileNetNode();
15 virtual ~ProfileNetNode(); 15 virtual ~ProfileNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/commprofile"; } 18 { return "Devices/commprofile"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("Regular profile"); } 21 { return tr("Regular profile"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr); 34 SystemFile & SF, long DevNr);
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/usb/usb_NN.cpp b/noncore/settings/networksettings2/usb/usb_NN.cpp
index 30c72db..d5971cf 100644
--- a/noncore/settings/networksettings2/usb/usb_NN.cpp
+++ b/noncore/settings/networksettings2/usb/usb_NN.cpp
@@ -43,29 +43,35 @@ bool USBNetNode::generateProperFilesFor(
43} 43}
44 44
45bool USBNetNode::hasDataFor( const QString & S ) { 45bool USBNetNode::hasDataFor( const QString & S ) {
46 return (S== "interfaces"); 46 return (S== "interfaces");
47} 47}
48 48
49bool USBNetNode::generateDeviceDataForCommonFile( 49bool USBNetNode::generateDeviceDataForCommonFile(
50 SystemFile & S , 50 SystemFile & S ,
51 long DevNr ) { 51 long DevNr ) {
52 QString NIC = genNic( DevNr ); 52 QString NIC = genNic( DevNr );
53 53
54 if( S.name() == "interfaces" ) { 54 if( S.name() == "interfaces" ) {
55 // generate mapping stanza for this interface 55 // generate mapping stanza for this interface
56 S << "# check if " << NIC << " can be brought UP" << endl; 56 S << "# check if " << NIC << " can be brought UP" << endl;
57 S << "mapping " << NIC << endl; 57 S << "mapping " << NIC << endl;
58 S << " script networksettings2-request" << endl << endl; 58 S << " script networksettings2-request" << endl << endl;
59 } 59 }
60 return 0; 60 return 0;
61} 61}
62 62
63QString USBNetNode::genNic( long ) { 63QString USBNetNode::genNic( long ) {
64 return QString( "usbf" ); 64 return QString( "usbf" );
65} 65}
66 66
67void USBNetNode::setSpecificAttribute( QString & , QString & ) {
68}
69
70void USBNetNode::saveSpecificAttribute( QTextStream & ) {
71}
72
67extern "C" { 73extern "C" {
68void create_plugin( QList<ANetNode> & PNN ) { 74void create_plugin( QList<ANetNode> & PNN ) {
69 PNN.append( new USBNetNode() ); 75 PNN.append( new USBNetNode() );
70} 76}
71} 77}
diff --git a/noncore/settings/networksettings2/usb/usb_NN.h b/noncore/settings/networksettings2/usb/usb_NN.h
index ba22b1c..0b83ea6 100644
--- a/noncore/settings/networksettings2/usb/usb_NN.h
+++ b/noncore/settings/networksettings2/usb/usb_NN.h
@@ -15,32 +15,34 @@ public:
15 virtual ~USBNetNode(); 15 virtual ~USBNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/usb"; } 18 { return "Devices/usb"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("USB Cable Connect"); } 21 { return tr("USB Cable Connect"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & S); 31 virtual bool hasDataFor( const QString & S);
32 virtual bool generateDeviceDataForCommonFile( 32 virtual bool generateDeviceDataForCommonFile(
33 SystemFile & SF, long DevNr ); 33 SystemFile & SF, long DevNr );
34 34
35 virtual QString genNic( long nr ); 35 virtual QString genNic( long nr );
36 36
37private: 37private:
38 38
39 virtual void setSpecificAttribute( QString & Attr, QString & Value );
40 virtual void saveSpecificAttribute( QTextStream & TS );
39}; 41};
40 42
41extern "C" 43extern "C"
42{ 44{
43 void create_plugin( QList<ANetNode> & PNN ); 45 void create_plugin( QList<ANetNode> & PNN );
44}; 46};
45 47
46#endif 48#endif
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.cpp b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
index d9aa892..307e9dd 100644
--- a/noncore/settings/networksettings2/vpn/vpn_NN.cpp
+++ b/noncore/settings/networksettings2/vpn/vpn_NN.cpp
@@ -28,29 +28,35 @@ const QString VPNNetNode::nodeDescription(){
28 28
29ANetNodeInstance * VPNNetNode::createInstance( void ) { 29ANetNodeInstance * VPNNetNode::createInstance( void ) {
30 return new AVPN( this ); 30 return new AVPN( this );
31} 31}
32 32
33const char ** VPNNetNode::needs( void ) { 33const char ** VPNNetNode::needs( void ) {
34 return VPNNeeds; 34 return VPNNeeds;
35} 35}
36 36
37const char * VPNNetNode::provides( void ) { 37const char * VPNNetNode::provides( void ) {
38 return "connection"; 38 return "connection";
39} 39}
40 40
41bool VPNNetNode::generateProperFilesFor( 41bool VPNNetNode::generateProperFilesFor(
42 ANetNodeInstance * ) { 42 ANetNodeInstance * ) {
43 return 1; 43 return 1;
44} 44}
45 45
46bool VPNNetNode::generateDeviceDataForCommonFile( 46bool VPNNetNode::generateDeviceDataForCommonFile(
47 SystemFile & , 47 SystemFile & ,
48 long ) { 48 long ) {
49 return 1; 49 return 1;
50} 50}
51 51
52void VPNNetNode::setSpecificAttribute( QString & , QString & ) {
53}
54
55void VPNNetNode::saveSpecificAttribute( QTextStream & ) {
56}
57
52extern "C" { 58extern "C" {
53void create_plugin( QList<ANetNode> & PNN ) { 59void create_plugin( QList<ANetNode> & PNN ) {
54 PNN.append( new VPNNetNode() ); 60 PNN.append( new VPNNetNode() );
55} 61}
56} 62}
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.h b/noncore/settings/networksettings2/vpn/vpn_NN.h
index 7ce8e3a..1cd3fcc 100644
--- a/noncore/settings/networksettings2/vpn/vpn_NN.h
+++ b/noncore/settings/networksettings2/vpn/vpn_NN.h
@@ -14,32 +14,34 @@ public:
14 VPNNetNode(); 14 VPNNetNode();
15 virtual ~VPNNetNode(); 15 virtual ~VPNNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/vpn"; } 18 { return "Devices/vpn"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("VPN Connection"); } 21 { return tr("VPN Connection"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 virtual bool hasDataFor( const QString & ) 31 virtual bool hasDataFor( const QString & )
32 { return 0; } 32 { return 0; }
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36private: 36private:
37 37
38 virtual void setSpecificAttribute( QString & Attr, QString & Value );
39 virtual void saveSpecificAttribute( QTextStream & TS );
38}; 40};
39 41
40extern "C" 42extern "C"
41{ 43{
42 void create_plugin( QList<ANetNode> & PNN ); 44 void create_plugin( QList<ANetNode> & PNN );
43}; 45};
44 46
45#endif 47#endif
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.cpp b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
index 4e59ac1..e0c4db2 100644
--- a/noncore/settings/networksettings2/wlan/wlan_NN.cpp
+++ b/noncore/settings/networksettings2/wlan/wlan_NN.cpp
@@ -1,35 +1,36 @@
1#include "wlan_NN.h" 1#include "wlan_NN.h"
2#include "wlan_NNI.h" 2#include "wlan_NNI.h"
3 3
4static const char * WLanNeeds[] = 4static const char * WLanNeeds[] =
5 { 0 5 { 0
6 }; 6 };
7 7
8/** 8/**
9 * Constructor, find all of the possible interfaces 9 * Constructor, find all of the possible interfaces
10 */ 10 */
11WLanNetNode::WLanNetNode() : ANetNode() { 11WLanNetNode::WLanNetNode() : ANetNode() {
12 InstanceCount = 2;
12} 13}
13 14
14/** 15/**
15 * Delete any interfaces that we own. 16 * Delete any interfaces that we own.
16 */ 17 */
17WLanNetNode::~WLanNetNode(){ 18WLanNetNode::~WLanNetNode(){
18} 19}
19 20
20const QString WLanNetNode::nodeDescription(){ 21const QString WLanNetNode::nodeDescription(){
21 return tr("\ 22 return tr("\
22<p>Configure Wi/Fi or WLan network cards.</p>\ 23<p>Configure Wi/Fi or WLan network cards.</p>\
23<p>Defines Wireless options for those cards</p>\ 24<p>Defines Wireless options for those cards</p>\
24" 25"
25); 26);
26} 27}
27 28
28ANetNodeInstance * WLanNetNode::createInstance( void ) { 29ANetNodeInstance * WLanNetNode::createInstance( void ) {
29 return new AWLan( this ); 30 return new AWLan( this );
30} 31}
31 32
32const char ** WLanNetNode::needs( void ) { 33const char ** WLanNetNode::needs( void ) {
33 return WLanNeeds; 34 return WLanNeeds;
34} 35}
35 36
@@ -44,29 +45,41 @@ bool WLanNetNode::generateProperFilesFor(
44 45
45bool WLanNetNode::hasDataFor( const QString & S ) { 46bool WLanNetNode::hasDataFor( const QString & S ) {
46 return S == "interfaces"; 47 return S == "interfaces";
47} 48}
48 49
49bool WLanNetNode::generateDeviceDataForCommonFile( 50bool WLanNetNode::generateDeviceDataForCommonFile(
50 SystemFile & S, 51 SystemFile & S,
51 long DevNr ) { 52 long DevNr ) {
52 QString NIC = genNic( DevNr ); 53 QString NIC = genNic( DevNr );
53 54
54 if( S.name() == "interfaces" ) { 55 if( S.name() == "interfaces" ) {
55 // generate mapping stanza for this interface 56 // generate mapping stanza for this interface
56 S << "# check if " << NIC << " can be brought UP" << endl; 57 S << "# check if " << NIC << " can be brought UP" << endl;
57 S << "mapping " << NIC << endl; 58 S << "mapping " << NIC << endl;
58 S << " script networksettings2-request" << endl << endl; 59 S << " script networksettings2-request" << endl << endl;
59 } 60 }
60 return 0; 61 return 0;
61} 62}
62 63
63QString WLanNetNode::genNic( long nr ) { 64QString WLanNetNode::genNic( long nr ) {
64 QString S; 65 QString S;
65 return S.sprintf( "wlan%ld", nr ); 66 return S.sprintf( "wlan%ld", nr );
66} 67}
67 68
69void WLanNetNode::setSpecificAttribute( QString & A, QString & V ) {
70 if( A == "interfacecount" ) {
71 InstanceCount = V.toLong();
72 }
73}
74
75void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) {
76 TS << "interfacecount="
77 << InstanceCount
78 << endl;
79}
80
68extern "C" { 81extern "C" {
69void create_plugin( QList<ANetNode> & PNN ) { 82void create_plugin( QList<ANetNode> & PNN ) {
70 PNN.append( new WLanNetNode() ); 83 PNN.append( new WLanNetNode() );
71} 84}
72} 85}
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.h b/noncore/settings/networksettings2/wlan/wlan_NN.h
index f27e71c..e93a89a 100644
--- a/noncore/settings/networksettings2/wlan/wlan_NN.h
+++ b/noncore/settings/networksettings2/wlan/wlan_NN.h
@@ -13,38 +13,44 @@ public:
13 13
14 WLanNetNode(); 14 WLanNetNode();
15 virtual ~WLanNetNode(); 15 virtual ~WLanNetNode();
16 16
17 virtual const QString pixmapName() 17 virtual const QString pixmapName()
18 { return "Devices/wlan"; } 18 { return "Devices/wlan"; }
19 19
20 virtual const QString nodeName() 20 virtual const QString nodeName()
21 { return tr("WLan Device"); } 21 { return tr("WLan Device"); }
22 22
23 virtual const QString nodeDescription() ; 23 virtual const QString nodeDescription() ;
24 24
25 virtual ANetNodeInstance * createInstance( void ); 25 virtual ANetNodeInstance * createInstance( void );
26 26
27 virtual const char ** needs( void ); 27 virtual const char ** needs( void );
28 virtual const char * provides( void ); 28 virtual const char * provides( void );
29 29
30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); 30 virtual bool generateProperFilesFor( ANetNodeInstance * NNI );
31 31
32 virtual bool hasDataFor( const QString & S ); 32 virtual bool hasDataFor( const QString & S );
33 virtual bool generateDeviceDataForCommonFile( 33 virtual bool generateDeviceDataForCommonFile(
34 SystemFile & SF, long DevNr ); 34 SystemFile & SF, long DevNr );
35 35
36 virtual long instanceCount( void ) 36 virtual long instanceCount( void )
37 { return 2; } 37 { return InstanceCount; }
38 38
39 virtual QString genNic( long ); 39 virtual QString genNic( long );
40 40
41private: 41private:
42 42
43 virtual void setSpecificAttribute( QString & Attr, QString & Value );
44 virtual void saveSpecificAttribute( QTextStream & TS );
45
46 // number of interfaces for this device
47 long InstanceCount;
48
43}; 49};
44 50
45extern "C" 51extern "C"
46{ 52{
47 void create_plugin( QList<ANetNode> & PNN ); 53 void create_plugin( QList<ANetNode> & PNN );
48}; 54};
49 55
50#endif 56#endif