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 | ||
11 | static const char * BluetoothBNEPNeeds[] = | 11 | static 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 | */ |
18 | BluetoothBNEPNetNode::BluetoothBNEPNetNode() : ANetNode() { | 18 | BluetoothBNEPNetNode::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 | */ |
24 | BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){ | 25 | BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){ |
25 | } | 26 | } |
26 | 27 | ||
27 | const QString BluetoothBNEPNetNode::nodeDescription(){ | 28 | const 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 | ||
35 | ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) { | 36 | ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) { |
36 | return new ABluetoothBNEP( this ); | 37 | return new ABluetoothBNEP( this ); |
37 | } | 38 | } |
38 | 39 | ||
39 | const char ** BluetoothBNEPNetNode::needs( void ) { | 40 | const char ** BluetoothBNEPNetNode::needs( void ) { |
40 | return BluetoothBNEPNeeds; | 41 | return BluetoothBNEPNeeds; |
41 | } | 42 | } |
42 | 43 | ||
43 | const char * BluetoothBNEPNetNode::provides( void ) { | 44 | const char * BluetoothBNEPNetNode::provides( void ) { |
44 | return "device"; | 45 | return "device"; |
45 | } | 46 | } |
46 | 47 | ||
47 | bool BluetoothBNEPNetNode::generateProperFilesFor( | 48 | bool BluetoothBNEPNetNode::generateProperFilesFor( |
48 | ANetNodeInstance * ) { | 49 | ANetNodeInstance * ) { |
49 | return 1; | 50 | return 1; |
50 | } | 51 | } |
51 | 52 | ||
52 | bool BluetoothBNEPNetNode::hasDataFor( const QString & S ) { | 53 | bool BluetoothBNEPNetNode::hasDataFor( const QString & S ) { |
53 | return S == "interfaces"; | 54 | return S == "interfaces"; |
54 | } | 55 | } |
55 | 56 | ||
56 | bool BluetoothBNEPNetNode::generateDeviceDataForCommonFile( | 57 | bool BluetoothBNEPNetNode::generateDeviceDataForCommonFile( |
57 | SystemFile & , | 58 | SystemFile & , |
58 | long ) { | 59 | long ) { |
59 | return 1; | 60 | return 1; |
60 | } | 61 | } |
61 | 62 | ||
62 | QString BluetoothBNEPNetNode::genNic( long nr ) { | 63 | QString 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 | |||
69 | void BluetoothBNEPNetNode::setSpecificAttribute( QString & A, QString & V ) { | ||
70 | if( A == "interfacecount" ) { | ||
71 | InstanceCount = V.toLong(); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | void 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 | ||
73 | static const char * BluetoothRFCOMMNeeds[] = | 87 | static const char * BluetoothRFCOMMNeeds[] = |
74 | { 0 | 88 | { 0 |
75 | }; | 89 | }; |
76 | 90 | ||
77 | BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : ANetNode() { | 91 | BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : ANetNode() { |
78 | } | 92 | } |
79 | 93 | ||
80 | BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){ | 94 | BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){ |
81 | } | 95 | } |
82 | 96 | ||
83 | const QString BluetoothRFCOMMNetNode::nodeDescription(){ | 97 | const 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 | ||
91 | ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) { | 105 | ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) { |
92 | return new ABluetoothRFCOMM( this ); | 106 | return new ABluetoothRFCOMM( this ); |
93 | } | 107 | } |
94 | 108 | ||
95 | const char ** BluetoothRFCOMMNetNode::needs( void ) { | 109 | const char ** BluetoothRFCOMMNetNode::needs( void ) { |
96 | return BluetoothRFCOMMNeeds; | 110 | return BluetoothRFCOMMNeeds; |
97 | } | 111 | } |
98 | 112 | ||
99 | const char * BluetoothRFCOMMNetNode::provides( void ) { | 113 | const char * BluetoothRFCOMMNetNode::provides( void ) { |
100 | return "line"; | 114 | return "line"; |
101 | } | 115 | } |
102 | 116 | ||
103 | bool BluetoothRFCOMMNetNode::generateProperFilesFor( | 117 | bool BluetoothRFCOMMNetNode::generateProperFilesFor( |
104 | ANetNodeInstance * ) { | 118 | ANetNodeInstance * ) { |
105 | return 0; | 119 | return 0; |
106 | } | 120 | } |
107 | 121 | ||
108 | bool BluetoothRFCOMMNetNode::hasDataFor( const QString & ) { | 122 | bool BluetoothRFCOMMNetNode::hasDataFor( const QString & ) { |
109 | return 0; | 123 | return 0; |
110 | } | 124 | } |
111 | 125 | ||
112 | bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile( | 126 | bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile( |
113 | SystemFile & , | 127 | SystemFile & , |
114 | long ) { | 128 | long ) { |
115 | return 0; | 129 | return 0; |
116 | } | 130 | } |
117 | 131 | ||
132 | void BluetoothRFCOMMNetNode::setSpecificAttribute( QString &, QString & ) { | ||
133 | } | ||
134 | |||
135 | void BluetoothRFCOMMNetNode::saveSpecificAttribute( QTextStream & ) { | ||
136 | } | ||
137 | |||
118 | extern "C" { | 138 | extern "C" { |
119 | void create_plugin( QList<ANetNode> & PNN ) { | 139 | void 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 { | |||
12 | public: | 12 | public: |
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 | ||
39 | private: | 39 | private: |
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 | ||
43 | class BluetoothRFCOMMNetNode : public ANetNode { | 49 | class BluetoothRFCOMMNetNode : public ANetNode { |
44 | 50 | ||
45 | Q_OBJECT | 51 | Q_OBJECT |
46 | 52 | ||
47 | public: | 53 | public: |
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 | ||
70 | private: | 76 | private: |
71 | 77 | ||
78 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
79 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
72 | }; | 80 | }; |
73 | 81 | ||
74 | extern "C" | 82 | extern "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 | ||
27 | ANetNodeInstance * CableNetNode::createInstance( void ) { | 27 | ANetNodeInstance * CableNetNode::createInstance( void ) { |
28 | return new ACable( this ); | 28 | return new ACable( this ); |
29 | } | 29 | } |
30 | 30 | ||
31 | const char ** CableNetNode::needs( void ) { | 31 | const char ** CableNetNode::needs( void ) { |
32 | return CableNeeds; | 32 | return CableNeeds; |
33 | } | 33 | } |
34 | 34 | ||
35 | const char * CableNetNode::provides( void ) { | 35 | const char * CableNetNode::provides( void ) { |
36 | return "line"; | 36 | return "line"; |
37 | } | 37 | } |
38 | 38 | ||
39 | bool CableNetNode::generateProperFilesFor( | 39 | bool CableNetNode::generateProperFilesFor( |
40 | ANetNodeInstance * ) { | 40 | ANetNodeInstance * ) { |
41 | return 1; | 41 | return 1; |
42 | } | 42 | } |
43 | 43 | ||
44 | bool CableNetNode::generateDeviceDataForCommonFile( | 44 | bool CableNetNode::generateDeviceDataForCommonFile( |
45 | SystemFile & , | 45 | SystemFile & , |
46 | long ) { | 46 | long ) { |
47 | return 1; | 47 | return 1; |
48 | } | 48 | } |
49 | 49 | ||
50 | void CableNetNode::setSpecificAttribute( QString & , QString & ) { | ||
51 | } | ||
52 | |||
53 | void CableNetNode::saveSpecificAttribute( QTextStream & ) { | ||
54 | } | ||
55 | |||
50 | extern "C" { | 56 | extern "C" { |
51 | void create_plugin( QList<ANetNode> & PNN ) { | 57 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
27 | ANetNodeInstance * IRDANetNode::createInstance( void ) { | 27 | ANetNodeInstance * IRDANetNode::createInstance( void ) { |
28 | return new AIRDA( this ); | 28 | return new AIRDA( this ); |
29 | } | 29 | } |
30 | 30 | ||
31 | const char ** IRDANetNode::needs( void ) { | 31 | const char ** IRDANetNode::needs( void ) { |
32 | return IRDANeeds; | 32 | return IRDANeeds; |
33 | } | 33 | } |
34 | 34 | ||
35 | const char * IRDANetNode::provides( void ) { | 35 | const char * IRDANetNode::provides( void ) { |
36 | return "line"; | 36 | return "line"; |
37 | } | 37 | } |
38 | 38 | ||
39 | bool IRDANetNode::generateProperFilesFor( | 39 | bool IRDANetNode::generateProperFilesFor( |
40 | ANetNodeInstance * ) { | 40 | ANetNodeInstance * ) { |
41 | return 1; | 41 | return 1; |
42 | } | 42 | } |
43 | 43 | ||
44 | bool IRDANetNode::generateDeviceDataForCommonFile( | 44 | bool IRDANetNode::generateDeviceDataForCommonFile( |
45 | SystemFile & , | 45 | SystemFile & , |
46 | long ) { | 46 | long ) { |
47 | return 1; | 47 | return 1; |
48 | } | 48 | } |
49 | 49 | ||
50 | void IRDANetNode::setSpecificAttribute( QString & , QString & ) { | ||
51 | } | ||
52 | |||
53 | void IRDANetNode::saveSpecificAttribute( QTextStream & ) { | ||
54 | } | ||
55 | |||
50 | extern "C" { | 56 | extern "C" { |
51 | void create_plugin( QList<ANetNode> & PNN ) { | 57 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
4 | static const char * LanCardNeeds[] = | 4 | static 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 | */ |
10 | LanCardNetNode::LanCardNetNode() : ANetNode() { | 10 | LanCardNetNode::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 | */ |
16 | LanCardNetNode::~LanCardNetNode(){ | 17 | LanCardNetNode::~LanCardNetNode(){ |
17 | } | 18 | } |
18 | 19 | ||
19 | const QString LanCardNetNode::nodeDescription(){ | 20 | const 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 | ||
27 | ANetNodeInstance * LanCardNetNode::createInstance( void ) { | 28 | ANetNodeInstance * LanCardNetNode::createInstance( void ) { |
28 | return new ALanCard( this ); | 29 | return new ALanCard( this ); |
29 | } | 30 | } |
30 | 31 | ||
31 | 32 | ||
32 | const char ** LanCardNetNode::needs( void ) { | 33 | const char ** LanCardNetNode::needs( void ) { |
33 | return LanCardNeeds; | 34 | return LanCardNeeds; |
34 | } | 35 | } |
@@ -44,29 +45,41 @@ bool LanCardNetNode::generateProperFilesFor( | |||
44 | 45 | ||
45 | bool LanCardNetNode::hasDataFor( const QString & S ) { | 46 | bool LanCardNetNode::hasDataFor( const QString & S ) { |
46 | return S == "interfaces"; | 47 | return S == "interfaces"; |
47 | } | 48 | } |
48 | 49 | ||
49 | bool LanCardNetNode::generateDeviceDataForCommonFile( | 50 | bool 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 | ||
63 | QString LanCardNetNode::genNic( long nr ) { | 64 | QString 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 | ||
69 | void LanCardNetNode::setSpecificAttribute( QString & A, QString & V ) { | ||
70 | if( A == "interfacecount" ) { | ||
71 | InstanceCount = V.toLong(); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) { | ||
76 | TS << "interfacecount=" | ||
77 | << InstanceCount | ||
78 | << endl; | ||
79 | } | ||
80 | |||
68 | extern "C" { | 81 | extern "C" { |
69 | void create_plugin( QList<ANetNode> & PNN ) { | 82 | void 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{ | |||
12 | public: | 12 | public: |
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 | ||
40 | private: | 40 | private: |
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 | ||
44 | extern "C" | 50 | extern "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 | ||
28 | ANetNodeInstance * ModemNetNode::createInstance( void ) { | 28 | ANetNodeInstance * ModemNetNode::createInstance( void ) { |
29 | return new AModem( this ); | 29 | return new AModem( this ); |
30 | } | 30 | } |
31 | 31 | ||
32 | const char ** ModemNetNode::needs( void ) { | 32 | const char ** ModemNetNode::needs( void ) { |
33 | return ModemNeeds; | 33 | return ModemNeeds; |
34 | } | 34 | } |
35 | 35 | ||
36 | const char * ModemNetNode::provides( void ) { | 36 | const char * ModemNetNode::provides( void ) { |
37 | return "line"; | 37 | return "line"; |
38 | } | 38 | } |
39 | 39 | ||
40 | bool ModemNetNode::generateProperFilesFor( | 40 | bool ModemNetNode::generateProperFilesFor( |
41 | ANetNodeInstance * ) { | 41 | ANetNodeInstance * ) { |
42 | return 1; | 42 | return 1; |
43 | } | 43 | } |
44 | 44 | ||
45 | bool ModemNetNode::generateDeviceDataForCommonFile( | 45 | bool ModemNetNode::generateDeviceDataForCommonFile( |
46 | SystemFile & , | 46 | SystemFile & , |
47 | long ) { | 47 | long ) { |
48 | return 1; | 48 | return 1; |
49 | } | 49 | } |
50 | 50 | ||
51 | void ModemNetNode::setSpecificAttribute( QString & , QString & ) { | ||
52 | } | ||
53 | |||
54 | void ModemNetNode::saveSpecificAttribute( QTextStream & ) { | ||
55 | } | ||
56 | |||
51 | extern "C" { | 57 | extern "C" { |
52 | void create_plugin( QList<ANetNode> & PNN ) { | 58 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
29 | ANetNodeInstance * NetworkNetNode::createInstance( void ) { | 29 | ANetNodeInstance * NetworkNetNode::createInstance( void ) { |
30 | return new ANetwork( this ); | 30 | return new ANetwork( this ); |
31 | } | 31 | } |
32 | 32 | ||
33 | const char ** NetworkNetNode::needs( void ) { | 33 | const char ** NetworkNetNode::needs( void ) { |
34 | return NetworkNeeds; | 34 | return NetworkNeeds; |
35 | } | 35 | } |
36 | 36 | ||
37 | const char * NetworkNetNode::provides( void ) { | 37 | const char * NetworkNetNode::provides( void ) { |
38 | return "connection"; | 38 | return "connection"; |
39 | } | 39 | } |
40 | 40 | ||
41 | bool NetworkNetNode::generateProperFilesFor( | 41 | bool NetworkNetNode::generateProperFilesFor( |
42 | ANetNodeInstance * ) { | 42 | ANetNodeInstance * ) { |
43 | return 1; | 43 | return 1; |
44 | } | 44 | } |
45 | 45 | ||
46 | bool NetworkNetNode::generateDeviceDataForCommonFile( | 46 | bool NetworkNetNode::generateDeviceDataForCommonFile( |
47 | SystemFile & , | 47 | SystemFile & , |
48 | long ) { | 48 | long ) { |
49 | return 1; | 49 | return 1; |
50 | } | 50 | } |
51 | 51 | ||
52 | void NetworkNetNode::setSpecificAttribute( QString & , QString & ) { | ||
53 | } | ||
54 | |||
55 | void NetworkNetNode::saveSpecificAttribute( QTextStream & ) { | ||
56 | } | ||
57 | |||
52 | extern "C" { | 58 | extern "C" { |
53 | void create_plugin( QList<ANetNode> & PNN ) { | 59 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
32 | QString quote( QString X ) { | 32 | QString 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 | |||
55 | void ANetNode::saveAttributes( QTextStream & TS ) { | ||
56 | saveSpecificAttribute( TS ); | ||
57 | } | ||
58 | |||
59 | void ANetNode::setAttribute( QString & Attr, QString & Value ){ | ||
60 | setSpecificAttribute( Attr, Value ); | ||
61 | } | ||
62 | |||
63 | // | ||
50 | // | 64 | // |
65 | // ANETNODEINSTANCE | ||
51 | // | 66 | // |
52 | // | 67 | // |
53 | 68 | ||
54 | long ANetNodeInstance::InstanceCounter = -1; | 69 | long ANetNodeInstance::InstanceCounter = -1; |
55 | 70 | ||
56 | void ANetNodeInstance::initialize( void ) { | 71 | void 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 | ||
66 | void ANetNodeInstance::setAttribute( QString & Attr, QString & Value ){ | 81 | void 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 | ||
74 | void ANetNodeInstance::saveAttributes( QTextStream & TS ) { | 89 | void 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 | ||
79 | ANetNodeInstance * ANetNodeInstance::nextNode( void ) { | 94 | ANetNodeInstance * 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 | ||
89 | long NodeCollection::MaxNr = -1; | 104 | long NodeCollection::MaxNr = -1; |
90 | 105 | ||
91 | NodeCollection::NodeCollection( void ) : QList<ANetNodeInstance>() { | 106 | NodeCollection::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 | ||
99 | NodeCollection::NodeCollection( QTextStream & TS ) : | 114 | NodeCollection::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 | ||
264 | void NodeCollection::reassign( void ) { | 279 | void 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 | |||
272 | InterfaceInfo * RuntimeInfo::assignedInterface( void ) { | 293 | InterfaceInfo * RuntimeInfo::assignedInterface( void ) { |
273 | return netNode()->nextNode()->runtime()->assignedInterface(); | 294 | return netNode()->nextNode()->runtime()->assignedInterface(); |
274 | } | 295 | } |
275 | 296 | ||
276 | AsDevice * RuntimeInfo::device( void ) { | 297 | AsDevice * RuntimeInfo::device( void ) { |
277 | return netNode()->nextNode()->runtime()->device(); | 298 | return netNode()->nextNode()->runtime()->device(); |
278 | } | 299 | } |
279 | |||
280 | ANetNodeInstance * FakeNetNode::createInstance( void ) { | ||
281 | return new FakeNetNodeInstance( this ); | ||
282 | } | ||
283 | |||
284 | void FakeNetNodeInstance::setSpecificAttribute( | ||
285 | QString & A, QString & V ) { | ||
286 | ValAttrPairs.insert( A, new QString(V) ); | ||
287 | } | ||
288 | |||
289 | void 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 | ||
302 | FakeNetNode * 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 | ||
124 | protected : | 128 | protected : |
125 | 129 | ||
126 | NetNodeList * Alternatives; | 130 | NetNodeList * Alternatives; |
127 | 131 | ||
128 | private : | 132 | private : |
133 | |||
134 | virtual void setSpecificAttribute( QString & , QString & ) = 0; | ||
135 | virtual void saveSpecificAttribute( QTextStream & ) = 0; | ||
136 | |||
129 | }; | 137 | }; |
130 | 138 | ||
131 | class ANetNodeInstance : public QObject { | 139 | class ANetNodeInstance : public QObject { |
132 | 140 | ||
133 | public: | 141 | public: |
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 | ||
360 | private : | 368 | private : |
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 | |||
386 | class FakeNetNode : public ANetNode { | ||
387 | |||
388 | public: | ||
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 | |||
412 | private : | ||
413 | |||
414 | }; | ||
415 | |||
416 | class FakeNetNodeInstance : public ANetNodeInstance { | ||
417 | |||
418 | public: | ||
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 | |||
455 | protected : | ||
456 | |||
457 | virtual void setSpecificAttribute( QString & , QString & ); | ||
458 | virtual void saveSpecificAttribute( QTextStream & ); | ||
459 | |||
460 | QDict<QString> ValAttrPairs; | ||
461 | }; | ||
462 | |||
463 | extern 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 | ||
37 | typedef QDict<NetNode_t> Name2NetNode_t; | 37 | typedef QDict<NetNode_t> Name2NetNode_t; |
38 | typedef QDict<ANetNodeInstance > Name2Instance_t; | 38 | typedef QDict<ANetNodeInstance > Name2Instance_t; |
39 | typedef QDict<NodeCollection> Name2Connection_t; | 39 | typedef QDict<NodeCollection> Name2Connection_t; |
40 | typedef QDict<SystemFile> Name2SystemFile_t; | 40 | typedef QDict<SystemFile> Name2SystemFile_t; |
41 | 41 | ||
42 | class TheNSResources { | 42 | class TheNSResources { |
43 | 43 | ||
44 | public : | 44 | public : |
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 | ||
12 | static QString CfgFile; | 12 | static QString CfgFile; |
13 | 13 | ||
14 | NetworkSettingsData::NetworkSettingsData( void ) { | 14 | NetworkSettingsData::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 |
29 | NetworkSettingsData::~NetworkSettingsData( void ) { | 29 | NetworkSettingsData::~NetworkSettingsData( void ) { |
30 | delete NSResources; | 30 | delete NSResources; |
31 | } | 31 | } |
32 | 32 | ||
33 | void NetworkSettingsData::loadSettings( void ) { | 33 | void 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 | ||
122 | QString NetworkSettingsData::saveSettings( void ) { | 138 | QString 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 | ||
31 | private : | 31 | private : |
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 ) { | |||
34 | const char ** PPPNetNode::needs( void ) { | 34 | const char ** PPPNetNode::needs( void ) { |
35 | return PPPNeeds; | 35 | return PPPNeeds; |
36 | } | 36 | } |
37 | 37 | ||
38 | const char * PPPNetNode::provides( void ) { | 38 | const char * PPPNetNode::provides( void ) { |
39 | return "connection"; | 39 | return "connection"; |
40 | } | 40 | } |
41 | 41 | ||
42 | bool PPPNetNode::generateProperFilesFor( | 42 | bool PPPNetNode::generateProperFilesFor( |
43 | ANetNodeInstance * ) { | 43 | ANetNodeInstance * ) { |
44 | return 1; | 44 | return 1; |
45 | } | 45 | } |
46 | 46 | ||
47 | bool PPPNetNode::generateDeviceDataForCommonFile( | 47 | bool PPPNetNode::generateDeviceDataForCommonFile( |
48 | SystemFile & , | 48 | SystemFile & , |
49 | long ) { | 49 | long ) { |
50 | return 1; | 50 | return 1; |
51 | } | 51 | } |
52 | 52 | ||
53 | QString PPPNetNode::genNic( long NicNr ) { | 53 | QString 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 | ||
58 | void PPPNetNode::setSpecificAttribute( QString & , QString & ) { | ||
59 | } | ||
60 | |||
61 | void PPPNetNode::saveSpecificAttribute( QTextStream & ) { | ||
62 | } | ||
63 | |||
58 | extern "C" { | 64 | extern "C" { |
59 | void create_plugin( QList<ANetNode> & PNN ) { | 65 | void 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 | ||
38 | private: | 38 | private: |
39 | 39 | ||
40 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
41 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
40 | }; | 42 | }; |
41 | 43 | ||
42 | extern "C" | 44 | extern "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 | ||
29 | ANetNodeInstance * ProfileNetNode::createInstance( void ) { | 29 | ANetNodeInstance * ProfileNetNode::createInstance( void ) { |
30 | return new AProfile( this ); | 30 | return new AProfile( this ); |
31 | } | 31 | } |
32 | 32 | ||
33 | const char ** ProfileNetNode::needs( void ) { | 33 | const char ** ProfileNetNode::needs( void ) { |
34 | return ProfileNeeds; | 34 | return ProfileNeeds; |
35 | } | 35 | } |
36 | 36 | ||
37 | const char * ProfileNetNode::provides( void ) { | 37 | const char * ProfileNetNode::provides( void ) { |
38 | return "fullsetup"; | 38 | return "fullsetup"; |
39 | } | 39 | } |
40 | 40 | ||
41 | bool ProfileNetNode::generateProperFilesFor( | 41 | bool ProfileNetNode::generateProperFilesFor( |
42 | ANetNodeInstance * ) { | 42 | ANetNodeInstance * ) { |
43 | return 1; | 43 | return 1; |
44 | } | 44 | } |
45 | 45 | ||
46 | bool ProfileNetNode::generateDeviceDataForCommonFile( | 46 | bool ProfileNetNode::generateDeviceDataForCommonFile( |
47 | SystemFile & , | 47 | SystemFile & , |
48 | long ) { | 48 | long ) { |
49 | return 1; | 49 | return 1; |
50 | } | 50 | } |
51 | 51 | ||
52 | void ProfileNetNode::setSpecificAttribute( QString & , QString & ) { | ||
53 | } | ||
54 | |||
55 | void ProfileNetNode::saveSpecificAttribute( QTextStream & ) { | ||
56 | } | ||
57 | |||
52 | extern "C" { | 58 | extern "C" { |
53 | void create_plugin( QList<ANetNode> & PNN ) { | 59 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
45 | bool USBNetNode::hasDataFor( const QString & S ) { | 45 | bool USBNetNode::hasDataFor( const QString & S ) { |
46 | return (S== "interfaces"); | 46 | return (S== "interfaces"); |
47 | } | 47 | } |
48 | 48 | ||
49 | bool USBNetNode::generateDeviceDataForCommonFile( | 49 | bool 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 | ||
63 | QString USBNetNode::genNic( long ) { | 63 | QString USBNetNode::genNic( long ) { |
64 | return QString( "usbf" ); | 64 | return QString( "usbf" ); |
65 | } | 65 | } |
66 | 66 | ||
67 | void USBNetNode::setSpecificAttribute( QString & , QString & ) { | ||
68 | } | ||
69 | |||
70 | void USBNetNode::saveSpecificAttribute( QTextStream & ) { | ||
71 | } | ||
72 | |||
67 | extern "C" { | 73 | extern "C" { |
68 | void create_plugin( QList<ANetNode> & PNN ) { | 74 | void 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 | ||
37 | private: | 37 | private: |
38 | 38 | ||
39 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
40 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
39 | }; | 41 | }; |
40 | 42 | ||
41 | extern "C" | 43 | extern "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 | ||
29 | ANetNodeInstance * VPNNetNode::createInstance( void ) { | 29 | ANetNodeInstance * VPNNetNode::createInstance( void ) { |
30 | return new AVPN( this ); | 30 | return new AVPN( this ); |
31 | } | 31 | } |
32 | 32 | ||
33 | const char ** VPNNetNode::needs( void ) { | 33 | const char ** VPNNetNode::needs( void ) { |
34 | return VPNNeeds; | 34 | return VPNNeeds; |
35 | } | 35 | } |
36 | 36 | ||
37 | const char * VPNNetNode::provides( void ) { | 37 | const char * VPNNetNode::provides( void ) { |
38 | return "connection"; | 38 | return "connection"; |
39 | } | 39 | } |
40 | 40 | ||
41 | bool VPNNetNode::generateProperFilesFor( | 41 | bool VPNNetNode::generateProperFilesFor( |
42 | ANetNodeInstance * ) { | 42 | ANetNodeInstance * ) { |
43 | return 1; | 43 | return 1; |
44 | } | 44 | } |
45 | 45 | ||
46 | bool VPNNetNode::generateDeviceDataForCommonFile( | 46 | bool VPNNetNode::generateDeviceDataForCommonFile( |
47 | SystemFile & , | 47 | SystemFile & , |
48 | long ) { | 48 | long ) { |
49 | return 1; | 49 | return 1; |
50 | } | 50 | } |
51 | 51 | ||
52 | void VPNNetNode::setSpecificAttribute( QString & , QString & ) { | ||
53 | } | ||
54 | |||
55 | void VPNNetNode::saveSpecificAttribute( QTextStream & ) { | ||
56 | } | ||
57 | |||
52 | extern "C" { | 58 | extern "C" { |
53 | void create_plugin( QList<ANetNode> & PNN ) { | 59 | void 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 | ||
36 | private: | 36 | private: |
37 | 37 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | ||
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | ||
38 | }; | 40 | }; |
39 | 41 | ||
40 | extern "C" | 42 | extern "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 | ||
4 | static const char * WLanNeeds[] = | 4 | static 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 | */ |
11 | WLanNetNode::WLanNetNode() : ANetNode() { | 11 | WLanNetNode::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 | */ |
17 | WLanNetNode::~WLanNetNode(){ | 18 | WLanNetNode::~WLanNetNode(){ |
18 | } | 19 | } |
19 | 20 | ||
20 | const QString WLanNetNode::nodeDescription(){ | 21 | const 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 | ||
28 | ANetNodeInstance * WLanNetNode::createInstance( void ) { | 29 | ANetNodeInstance * WLanNetNode::createInstance( void ) { |
29 | return new AWLan( this ); | 30 | return new AWLan( this ); |
30 | } | 31 | } |
31 | 32 | ||
32 | const char ** WLanNetNode::needs( void ) { | 33 | const char ** WLanNetNode::needs( void ) { |
33 | return WLanNeeds; | 34 | return WLanNeeds; |
34 | } | 35 | } |
35 | 36 | ||
@@ -44,29 +45,41 @@ bool WLanNetNode::generateProperFilesFor( | |||
44 | 45 | ||
45 | bool WLanNetNode::hasDataFor( const QString & S ) { | 46 | bool WLanNetNode::hasDataFor( const QString & S ) { |
46 | return S == "interfaces"; | 47 | return S == "interfaces"; |
47 | } | 48 | } |
48 | 49 | ||
49 | bool WLanNetNode::generateDeviceDataForCommonFile( | 50 | bool 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 | ||
63 | QString WLanNetNode::genNic( long nr ) { | 64 | QString 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 | ||
69 | void WLanNetNode::setSpecificAttribute( QString & A, QString & V ) { | ||
70 | if( A == "interfacecount" ) { | ||
71 | InstanceCount = V.toLong(); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) { | ||
76 | TS << "interfacecount=" | ||
77 | << InstanceCount | ||
78 | << endl; | ||
79 | } | ||
80 | |||
68 | extern "C" { | 81 | extern "C" { |
69 | void create_plugin( QList<ANetNode> & PNN ) { | 82 | void 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 | ||
41 | private: | 41 | private: |
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 | ||
45 | extern "C" | 51 | extern "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 |