69 files changed, 1308 insertions, 1190 deletions
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.cpp index d8420b9..398dcdc 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.cpp +++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.cpp | |||
@@ -1,50 +1,42 @@ | |||
1 | #include "bluetoothBNEPedit.h" | 1 | #include "bluetoothBNEPedit.h" |
2 | #include "bluetoothBNEP_NNI.h" | 2 | #include "bluetoothBNEP_NNI.h" |
3 | #include "bluetooth_NN.h" | 3 | #include "bluetooth_NN.h" |
4 | 4 | ||
5 | ABluetoothBNEP::ABluetoothBNEP( BluetoothBNEPNetNode * PNN ) : | 5 | ABluetoothBNEP::ABluetoothBNEP( BluetoothBNEPNetNode * PNN ) : |
6 | ANetNodeInstance( PNN ), Data() { | 6 | ANetNodeInstance( PNN ), Data() { |
7 | GUI = 0; | 7 | GUI = 0; |
8 | RT = 0; | 8 | RT = 0; |
9 | Data.AllowAll = 1; | 9 | Data.AllowAll = 1; |
10 | } | 10 | } |
11 | 11 | ||
12 | void ABluetoothBNEP::setSpecificAttribute( QString & S, QString & A ) { | 12 | void ABluetoothBNEP::setSpecificAttribute( QString & S, QString & A ) { |
13 | if( S == "bdaddress" ) { | 13 | if( S == "bdaddress" ) { |
14 | Data.BDAddress << A; | 14 | Data.BDAddress << A; |
15 | } else if ( S == "allowall" ) { | 15 | } else if ( S == "allowall" ) { |
16 | Data.AllowAll = 1; | 16 | Data.AllowAll = 1; |
17 | } | 17 | } |
18 | } | 18 | } |
19 | 19 | ||
20 | void ABluetoothBNEP::saveSpecificAttribute( QTextStream & TS ) { | 20 | void ABluetoothBNEP::saveSpecificAttribute( QTextStream & TS ) { |
21 | TS << "allowall=" << Data.AllowAll << endl; | 21 | TS << "allowall=" << Data.AllowAll << endl; |
22 | for ( QStringList::Iterator it = Data.BDAddress.begin(); | 22 | for ( QStringList::Iterator it = Data.BDAddress.begin(); |
23 | it != Data.BDAddress.end(); | 23 | it != Data.BDAddress.end(); |
24 | ++it ) { | 24 | ++it ) { |
25 | TS << "bdaddress=" << (*it) << endl; | 25 | TS << "bdaddress=" << (*it) << endl; |
26 | } | 26 | } |
27 | } | 27 | } |
28 | 28 | ||
29 | QWidget * ABluetoothBNEP::edit( QWidget * parent ) { | 29 | QWidget * ABluetoothBNEP::edit( QWidget * parent ) { |
30 | GUI = new BluetoothBNEPEdit( parent ); | 30 | GUI = new BluetoothBNEPEdit( parent ); |
31 | GUI->showData( Data ); | 31 | GUI->showData( Data ); |
32 | return GUI; | 32 | return GUI; |
33 | } | 33 | } |
34 | 34 | ||
35 | QString ABluetoothBNEP::acceptable( void ) { | 35 | QString ABluetoothBNEP::acceptable( void ) { |
36 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 36 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
37 | } | 37 | } |
38 | 38 | ||
39 | void ABluetoothBNEP::commit( void ) { | 39 | void ABluetoothBNEP::commit( void ) { |
40 | if( GUI && GUI->commit( Data ) ) | 40 | if( GUI && GUI->commit( Data ) ) |
41 | setModified( 1 ); | 41 | setModified( 1 ); |
42 | } | 42 | } |
43 | |||
44 | bool ABluetoothBNEP::hasDataFor( const QString & ) { | ||
45 | return 0; | ||
46 | } | ||
47 | |||
48 | bool ABluetoothBNEP::generateDataForCommonFile( SystemFile & , long ){ | ||
49 | return 0; | ||
50 | } | ||
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.h b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.h index bb3e7e7..1bf0f48 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.h +++ b/noncore/settings/networksettings2/bluetooth/bluetoothBNEP_NNI.h | |||
@@ -1,46 +1,42 @@ | |||
1 | #ifndef BLUETOOTHBNEP_H | 1 | #ifndef BLUETOOTHBNEP_H |
2 | #define BLUETOOTHBNEP_H | 2 | #define BLUETOOTHBNEP_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "bluetoothBNEPdata.h" | 5 | #include "bluetoothBNEPdata.h" |
6 | #include "bluetoothBNEPrun.h" | 6 | #include "bluetoothBNEPrun.h" |
7 | 7 | ||
8 | class BluetoothBNEPNetNode; | 8 | class BluetoothBNEPNetNode; |
9 | class BluetoothBNEPEdit; | 9 | class BluetoothBNEPEdit; |
10 | 10 | ||
11 | class ABluetoothBNEP : public ANetNodeInstance { | 11 | class ABluetoothBNEP : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | ABluetoothBNEP( BluetoothBNEPNetNode * PNN ); | 15 | ABluetoothBNEP( BluetoothBNEPNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new BluetoothBNEPRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new BluetoothBNEPRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & S ); | ||
31 | virtual bool generateDataForCommonFile( SystemFile & SF, long ); | ||
32 | |||
33 | protected : | 29 | protected : |
34 | 30 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | 33 | ||
38 | private : | 34 | private : |
39 | 35 | ||
40 | BluetoothBNEPEdit * GUI; | 36 | BluetoothBNEPEdit * GUI; |
41 | BluetoothBNEPData Data; | 37 | BluetoothBNEPData Data; |
42 | BluetoothBNEPRun * RT; | 38 | BluetoothBNEPRun * RT; |
43 | 39 | ||
44 | }; | 40 | }; |
45 | 41 | ||
46 | #endif | 42 | #endif |
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.cpp b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.cpp index cff2639..7ec8288 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.cpp +++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.cpp | |||
@@ -1,38 +1,30 @@ | |||
1 | #include "bluetoothRFCOMMedit.h" | 1 | #include "bluetoothRFCOMMedit.h" |
2 | #include "bluetoothRFCOMM_NNI.h" | 2 | #include "bluetoothRFCOMM_NNI.h" |
3 | #include "bluetooth_NN.h" | 3 | #include "bluetooth_NN.h" |
4 | 4 | ||
5 | ABluetoothRFCOMM::ABluetoothRFCOMM( BluetoothRFCOMMNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | ABluetoothRFCOMM::ABluetoothRFCOMM( BluetoothRFCOMMNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | GUI = 0; | 6 | GUI = 0; |
7 | RT = 0; | 7 | RT = 0; |
8 | } | 8 | } |
9 | 9 | ||
10 | void ABluetoothRFCOMM::setSpecificAttribute( QString & , QString & ) { | 10 | void ABluetoothRFCOMM::setSpecificAttribute( QString & , QString & ) { |
11 | } | 11 | } |
12 | 12 | ||
13 | void ABluetoothRFCOMM::saveSpecificAttribute( QTextStream & ) { | 13 | void ABluetoothRFCOMM::saveSpecificAttribute( QTextStream & ) { |
14 | } | 14 | } |
15 | 15 | ||
16 | 16 | ||
17 | QWidget * ABluetoothRFCOMM::edit( QWidget * parent ) { | 17 | QWidget * ABluetoothRFCOMM::edit( QWidget * parent ) { |
18 | GUI = new BluetoothRFCOMMEdit( parent ); | 18 | GUI = new BluetoothRFCOMMEdit( parent ); |
19 | GUI->showData( Data ); | 19 | GUI->showData( Data ); |
20 | return GUI; | 20 | return GUI; |
21 | } | 21 | } |
22 | 22 | ||
23 | QString ABluetoothRFCOMM::acceptable( void ) { | 23 | QString ABluetoothRFCOMM::acceptable( void ) { |
24 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 24 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
25 | } | 25 | } |
26 | 26 | ||
27 | void ABluetoothRFCOMM::commit( void ) { | 27 | void ABluetoothRFCOMM::commit( void ) { |
28 | if( GUI->commit( Data ) ) | 28 | if( GUI->commit( Data ) ) |
29 | setModified( 1 ); | 29 | setModified( 1 ); |
30 | } | 30 | } |
31 | |||
32 | bool ABluetoothRFCOMM::hasDataFor( const QString & ) { | ||
33 | return 0; | ||
34 | } | ||
35 | |||
36 | bool ABluetoothRFCOMM::generateDataForCommonFile( SystemFile & , long ){ | ||
37 | return 0; | ||
38 | } | ||
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.h b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.h index 97bd29c..820fc17 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.h +++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMM_NNI.h | |||
@@ -1,45 +1,41 @@ | |||
1 | #ifndef BLUETOOTHRFCOMM_H | 1 | #ifndef BLUETOOTHRFCOMM_H |
2 | #define BLUETOOTHRFCOMM_H | 2 | #define BLUETOOTHRFCOMM_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "bluetoothRFCOMMdata.h" | 5 | #include "bluetoothRFCOMMdata.h" |
6 | #include "bluetoothRFCOMMrun.h" | 6 | #include "bluetoothRFCOMMrun.h" |
7 | 7 | ||
8 | class BluetoothRFCOMMNetNode; | 8 | class BluetoothRFCOMMNetNode; |
9 | class BluetoothRFCOMMEdit; | 9 | class BluetoothRFCOMMEdit; |
10 | 10 | ||
11 | class ABluetoothRFCOMM : public ANetNodeInstance { | 11 | class ABluetoothRFCOMM : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | ABluetoothRFCOMM( BluetoothRFCOMMNetNode * PNN ); | 15 | ABluetoothRFCOMM( BluetoothRFCOMMNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new BluetoothRFCOMMRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new BluetoothRFCOMMRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & S ); | ||
31 | virtual bool generateDataForCommonFile( SystemFile & SF, long ); | ||
32 | |||
33 | protected : | 29 | protected : |
34 | 30 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | 33 | ||
38 | private : | 34 | private : |
39 | 35 | ||
40 | BluetoothRFCOMMEdit * GUI; | 36 | BluetoothRFCOMMEdit * GUI; |
41 | BluetoothRFCOMMData Data; | 37 | BluetoothRFCOMMData Data; |
42 | BluetoothRFCOMMRun * RT; | 38 | BluetoothRFCOMMRun * RT; |
43 | }; | 39 | }; |
44 | 40 | ||
45 | #endif | 41 | #endif |
diff --git a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h index aff1f59..65fd686 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h +++ b/noncore/settings/networksettings2/bluetooth/bluetoothRFCOMMrun.h | |||
@@ -1,25 +1,28 @@ | |||
1 | #include <asline.h> | 1 | #include <asline.h> |
2 | #include "bluetoothRFCOMMdata.h" | 2 | #include "bluetoothRFCOMMdata.h" |
3 | 3 | ||
4 | class BluetoothRFCOMMRun : public AsLine { | 4 | class BluetoothRFCOMMRun : public AsLine { |
5 | 5 | ||
6 | public : | 6 | public : |
7 | 7 | ||
8 | BluetoothRFCOMMRun( ANetNodeInstance * NNI, | 8 | BluetoothRFCOMMRun( ANetNodeInstance * NNI, |
9 | BluetoothRFCOMMData & Data ) : AsLine( NNI ) | 9 | BluetoothRFCOMMData & Data ) : AsLine( NNI ) |
10 | { } | 10 | { } |
11 | 11 | ||
12 | virtual AsLine * asLine( void ) | 12 | virtual AsLine * asLine( void ) |
13 | { return (AsLine *)this; } | 13 | { return (AsLine *)this; } |
14 | 14 | ||
15 | virtual QString deviceFile( void ) | ||
16 | { return QString( "/dev/rfcomm..." ); } | ||
17 | |||
15 | protected : | 18 | protected : |
16 | 19 | ||
17 | void detectState( NodeCollection * ) | 20 | void detectState( NodeCollection * ) |
18 | { } | 21 | { } |
19 | 22 | ||
20 | bool setState( NodeCollection * , Action_t, bool ) | 23 | bool setState( NodeCollection * , Action_t, bool ) |
21 | { return 0; } | 24 | { return 0; } |
22 | 25 | ||
23 | bool canSetState( State_t , Action_t ) | 26 | bool canSetState( State_t , Action_t ) |
24 | { return 0; } | 27 | { return 0; } |
25 | }; | 28 | }; |
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp index b59b4f0..443a627 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp +++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.cpp | |||
@@ -1,153 +1,115 @@ | |||
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() : | 18 | BluetoothBNEPNetNode::BluetoothBNEPNetNode() : |
19 | ANetNode(tr("Bluetooth PAN/NAP")) { | 19 | ANetNode(tr("Bluetooth PAN/NAP")) { |
20 | InstanceCount = 7; // default | 20 | InstanceCount = 7; // default |
21 | } | 21 | } |
22 | 22 | ||
23 | /** | 23 | /** |
24 | * Delete any interfaces that we own. | 24 | * Delete any interfaces that we own. |
25 | */ | 25 | */ |
26 | BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){ | 26 | BluetoothBNEPNetNode::~BluetoothBNEPNetNode(){ |
27 | } | 27 | } |
28 | 28 | ||
29 | const QString BluetoothBNEPNetNode::nodeDescription(){ | 29 | const QString BluetoothBNEPNetNode::nodeDescription(){ |
30 | return tr("\ | 30 | return tr("\ |
31 | <p>Sets up a bluetooth link using the bluetooth Network profile.</p>\ | 31 | <p>Sets up a bluetooth link using the bluetooth Network profile.</p>\ |
32 | <p>Use this to connect two computing devices.</p>\ | 32 | <p>Use this to connect two computing devices.</p>\ |
33 | " | 33 | " |
34 | ); | 34 | ); |
35 | } | 35 | } |
36 | 36 | ||
37 | ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) { | 37 | ANetNodeInstance * BluetoothBNEPNetNode::createInstance( void ) { |
38 | return new ABluetoothBNEP( this ); | 38 | return new ABluetoothBNEP( this ); |
39 | } | 39 | } |
40 | 40 | ||
41 | const char ** BluetoothBNEPNetNode::needs( void ) { | 41 | const char ** BluetoothBNEPNetNode::needs( void ) { |
42 | return BluetoothBNEPNeeds; | 42 | return BluetoothBNEPNeeds; |
43 | } | 43 | } |
44 | 44 | ||
45 | const char * BluetoothBNEPNetNode::provides( void ) { | 45 | const char * BluetoothBNEPNetNode::provides( void ) { |
46 | return "device"; | 46 | return "device"; |
47 | } | 47 | } |
48 | 48 | ||
49 | bool BluetoothBNEPNetNode::generateProperFilesFor( | ||
50 | ANetNodeInstance * ) { | ||
51 | return 0; | ||
52 | } | ||
53 | |||
54 | bool BluetoothBNEPNetNode::hasDataFor( const QString & S ) { | ||
55 | return S == "interfaces"; | ||
56 | } | ||
57 | |||
58 | bool BluetoothBNEPNetNode::generateDeviceDataForCommonFile( | ||
59 | SystemFile & S , | ||
60 | long DevNr) { | ||
61 | QString NIC = genNic( DevNr ); | ||
62 | |||
63 | if( S.name() == "interfaces" ) { | ||
64 | // generate mapping stanza for this interface | ||
65 | S << "# check if " << NIC << " can be brought UP" << endl; | ||
66 | S << "mapping " << NIC << endl; | ||
67 | S << " script networksettings2-request" << endl << endl; | ||
68 | } | ||
69 | return 0; | ||
70 | } | ||
71 | |||
72 | QString BluetoothBNEPNetNode::genNic( long nr ) { | 49 | QString BluetoothBNEPNetNode::genNic( long nr ) { |
73 | QString S; | 50 | QString S; |
74 | return S.sprintf( "bnep%ld", nr ); | 51 | return S.sprintf( "bnep%ld", nr ); |
75 | } | 52 | } |
76 | 53 | ||
77 | 54 | ||
78 | void BluetoothBNEPNetNode::setSpecificAttribute( QString & A, QString & V ) { | 55 | void BluetoothBNEPNetNode::setSpecificAttribute( QString & A, QString & V ) { |
79 | if( A == "interfacecount" ) { | 56 | if( A == "interfacecount" ) { |
80 | InstanceCount = V.toLong(); | 57 | InstanceCount = V.toLong(); |
81 | } | 58 | } |
82 | } | 59 | } |
83 | 60 | ||
84 | void BluetoothBNEPNetNode::saveSpecificAttribute( QTextStream & TS) { | 61 | void BluetoothBNEPNetNode::saveSpecificAttribute( QTextStream & TS) { |
85 | TS << "interfacecount=" | 62 | TS << "interfacecount=" |
86 | << InstanceCount | 63 | << InstanceCount |
87 | << endl; | 64 | << endl; |
88 | } | 65 | } |
89 | 66 | ||
90 | // | 67 | // |
91 | // | 68 | // |
92 | // BLUETOOTH RFCOMM | 69 | // BLUETOOTH RFCOMM |
93 | // | 70 | // |
94 | // | 71 | // |
95 | 72 | ||
96 | static const char * BluetoothRFCOMMNeeds[] = | 73 | static const char * BluetoothRFCOMMNeeds[] = |
97 | { 0 | 74 | { 0 |
98 | }; | 75 | }; |
99 | 76 | ||
100 | BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : | 77 | BluetoothRFCOMMNetNode::BluetoothRFCOMMNetNode() : |
101 | ANetNode( tr("Bluetooth serial link") ) { | 78 | ANetNode( tr("Bluetooth serial link") ) { |
102 | } | 79 | } |
103 | 80 | ||
104 | BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){ | 81 | BluetoothRFCOMMNetNode::~BluetoothRFCOMMNetNode(){ |
105 | } | 82 | } |
106 | 83 | ||
107 | const QString BluetoothRFCOMMNetNode::nodeDescription(){ | 84 | const QString BluetoothRFCOMMNetNode::nodeDescription(){ |
108 | return tr("\ | 85 | return tr("\ |
109 | <p>Sets up a bluetooth link using the bluetooth serial profile.</p>\ | 86 | <p>Sets up a bluetooth link using the bluetooth serial profile.</p>\ |
110 | <p>Use this to connect to a GSM.</p>\ | 87 | <p>Use this to connect to a GSM.</p>\ |
111 | " | 88 | " |
112 | ); | 89 | ); |
113 | } | 90 | } |
114 | 91 | ||
115 | ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) { | 92 | ANetNodeInstance * BluetoothRFCOMMNetNode::createInstance( void ) { |
116 | return new ABluetoothRFCOMM( this ); | 93 | return new ABluetoothRFCOMM( this ); |
117 | } | 94 | } |
118 | 95 | ||
119 | const char ** BluetoothRFCOMMNetNode::needs( void ) { | 96 | const char ** BluetoothRFCOMMNetNode::needs( void ) { |
120 | return BluetoothRFCOMMNeeds; | 97 | return BluetoothRFCOMMNeeds; |
121 | } | 98 | } |
122 | 99 | ||
123 | const char * BluetoothRFCOMMNetNode::provides( void ) { | 100 | const char * BluetoothRFCOMMNetNode::provides( void ) { |
124 | return "line"; | 101 | return "line"; |
125 | } | 102 | } |
126 | 103 | ||
127 | bool BluetoothRFCOMMNetNode::generateProperFilesFor( | ||
128 | ANetNodeInstance * ) { | ||
129 | return 0; | ||
130 | } | ||
131 | |||
132 | bool BluetoothRFCOMMNetNode::hasDataFor( const QString & ) { | ||
133 | return 0; | ||
134 | } | ||
135 | |||
136 | bool BluetoothRFCOMMNetNode::generateDeviceDataForCommonFile( | ||
137 | SystemFile & , | ||
138 | long ) { | ||
139 | return 0; | ||
140 | } | ||
141 | |||
142 | void BluetoothRFCOMMNetNode::setSpecificAttribute( QString &, QString & ) { | 104 | void BluetoothRFCOMMNetNode::setSpecificAttribute( QString &, QString & ) { |
143 | } | 105 | } |
144 | 106 | ||
145 | void BluetoothRFCOMMNetNode::saveSpecificAttribute( QTextStream & ) { | 107 | void BluetoothRFCOMMNetNode::saveSpecificAttribute( QTextStream & ) { |
146 | } | 108 | } |
147 | 109 | ||
148 | extern "C" { | 110 | extern "C" { |
149 | void create_plugin( QList<ANetNode> & PNN ) { | 111 | void create_plugin( QList<ANetNode> & PNN ) { |
150 | PNN.append( new BluetoothBNEPNetNode() ); | 112 | PNN.append( new BluetoothBNEPNetNode() ); |
151 | PNN.append( new BluetoothRFCOMMNetNode() ); | 113 | PNN.append( new BluetoothRFCOMMNetNode() ); |
152 | } | 114 | } |
153 | } | 115 | } |
diff --git a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h index 2e5e1d2..4d6a3c1 100644 --- a/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h +++ b/noncore/settings/networksettings2/bluetooth/bluetooth_NN.h | |||
@@ -1,81 +1,66 @@ | |||
1 | #ifndef BLUETOOTH_NETNODE_H | 1 | #ifndef BLUETOOTH_NETNODE_H |
2 | #define BLUETOOTH_NETNODE_H | 2 | #define BLUETOOTH_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class ABluetoothBNEP; | 6 | class ABluetoothBNEP; |
7 | 7 | ||
8 | class BluetoothBNEPNetNode : public ANetNode { | 8 | class BluetoothBNEPNetNode : public ANetNode { |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
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 QString genNic( long ); |
18 | { return "Devices/bluetooth"; } | 18 | virtual long instanceCount( void ) |
19 | { return InstanceCount; } | ||
20 | virtual const QString pixmapName() | ||
21 | { return "Devices/bluetooth"; } | ||
19 | 22 | ||
20 | virtual const QString nodeDescription() ; | 23 | virtual const QString nodeDescription() ; |
21 | 24 | virtual ANetNodeInstance * createInstance( void ); | |
22 | virtual ANetNodeInstance * createInstance( void ); | 25 | virtual const char * provides( void ); |
23 | 26 | virtual const char ** needs( void ); | |
24 | virtual const char ** needs( void ); | ||
25 | virtual const char * provides( void ); | ||
26 | |||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & S ); | ||
29 | virtual bool generateDeviceDataForCommonFile( | ||
30 | SystemFile & , long DevNr ); | ||
31 | |||
32 | virtual long instanceCount( void ) | ||
33 | { return InstanceCount; } | ||
34 | virtual QString genNic( long ); | ||
35 | 27 | ||
36 | private: | 28 | private: |
37 | 29 | ||
38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 30 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
39 | virtual void saveSpecificAttribute( QTextStream & TS ); | 31 | virtual void saveSpecificAttribute( QTextStream & TS ); |
40 | 32 | ||
41 | // number of interfaces for this device | 33 | // number of interfaces for this device |
42 | long InstanceCount; | 34 | long InstanceCount; |
43 | 35 | ||
44 | }; | 36 | }; |
45 | 37 | ||
46 | class BluetoothRFCOMMNetNode : public ANetNode { | 38 | class BluetoothRFCOMMNetNode : public ANetNode { |
47 | 39 | ||
48 | Q_OBJECT | 40 | Q_OBJECT |
49 | 41 | ||
50 | public: | 42 | public: |
51 | 43 | ||
52 | BluetoothRFCOMMNetNode(); | 44 | BluetoothRFCOMMNetNode(); |
53 | virtual ~BluetoothRFCOMMNetNode(); | 45 | virtual ~BluetoothRFCOMMNetNode(); |
54 | |||
55 | virtual const QString pixmapName() | ||
56 | { return "Devices/bluetooth"; } | ||
57 | |||
58 | virtual const QString nodeDescription() ; | ||
59 | |||
60 | virtual ANetNodeInstance * createInstance( void ); | ||
61 | 46 | ||
62 | virtual const char ** needs( void ); | 47 | virtual const QString pixmapName() |
63 | virtual const char * provides( void ); | 48 | { return "Devices/bluetooth"; } |
64 | 49 | ||
65 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | 50 | virtual const QString nodeDescription() ; |
66 | virtual bool hasDataFor( const QString & S ); | 51 | virtual ANetNodeInstance * createInstance( void ); |
67 | virtual bool generateDeviceDataForCommonFile( | 52 | virtual const char ** needs( void ); |
68 | SystemFile & , long ); | 53 | virtual const char * provides( void ); |
69 | 54 | ||
70 | private: | 55 | private: |
71 | 56 | ||
72 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 57 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
73 | virtual void saveSpecificAttribute( QTextStream & TS ); | 58 | virtual void saveSpecificAttribute( QTextStream & TS ); |
74 | }; | 59 | }; |
75 | 60 | ||
76 | extern "C" | 61 | extern "C" |
77 | { | 62 | { |
78 | void create_plugin( QList<ANetNode> & PNN ); | 63 | void create_plugin( QList<ANetNode> & PNN ); |
79 | }; | 64 | }; |
80 | 65 | ||
81 | #endif | 66 | #endif |
diff --git a/noncore/settings/networksettings2/cable/cable_NN.cpp b/noncore/settings/networksettings2/cable/cable_NN.cpp index b8c690b..38568df 100644 --- a/noncore/settings/networksettings2/cable/cable_NN.cpp +++ b/noncore/settings/networksettings2/cable/cable_NN.cpp | |||
@@ -1,60 +1,49 @@ | |||
1 | #include "cable_NN.h" | 1 | #include "cable_NN.h" |
2 | #include "cable_NNI.h" | 2 | #include "cable_NNI.h" |
3 | 3 | ||
4 | static const char * CableNeeds[] = | 4 | static const char * CableNeeds[] = |
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 | CableNetNode::CableNetNode() : ANetNode(tr("Cable Connection")) { | 11 | CableNetNode::CableNetNode() : ANetNode(tr("Cable Connection")) { |
12 | } | 12 | } |
13 | 13 | ||
14 | /** | 14 | /** |
15 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
16 | */ | 16 | */ |
17 | CableNetNode::~CableNetNode(){ | 17 | CableNetNode::~CableNetNode(){ |
18 | } | 18 | } |
19 | 19 | ||
20 | const QString CableNetNode::nodeDescription(){ | 20 | const QString CableNetNode::nodeDescription(){ |
21 | return tr("\ | 21 | return tr("\ |
22 | <p>Sets up a wired serial or parallel.</p>\ | 22 | <p>Sets up a wired serial or parallel.</p>\ |
23 | " | 23 | " |
24 | ); | 24 | ); |
25 | } | 25 | } |
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( | ||
40 | ANetNodeInstance * ) { | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | bool CableNetNode::generateDeviceDataForCommonFile( | ||
45 | SystemFile & , | ||
46 | long ) { | ||
47 | return 0; | ||
48 | } | ||
49 | |||
50 | void CableNetNode::setSpecificAttribute( QString & , QString & ) { | 39 | void CableNetNode::setSpecificAttribute( QString & , QString & ) { |
51 | } | 40 | } |
52 | 41 | ||
53 | void CableNetNode::saveSpecificAttribute( QTextStream & ) { | 42 | void CableNetNode::saveSpecificAttribute( QTextStream & ) { |
54 | } | 43 | } |
55 | 44 | ||
56 | extern "C" { | 45 | extern "C" { |
57 | void create_plugin( QList<ANetNode> & PNN ) { | 46 | void create_plugin( QList<ANetNode> & PNN ) { |
58 | PNN.append( new CableNetNode() ); | 47 | PNN.append( new CableNetNode() ); |
59 | } | 48 | } |
60 | } | 49 | } |
diff --git a/noncore/settings/networksettings2/cable/cable_NN.h b/noncore/settings/networksettings2/cable/cable_NN.h index c48037a..5cc2b2d 100644 --- a/noncore/settings/networksettings2/cable/cable_NN.h +++ b/noncore/settings/networksettings2/cable/cable_NN.h | |||
@@ -1,44 +1,36 @@ | |||
1 | #ifndef CABLE_NETNODE_H | 1 | #ifndef CABLE_NETNODE_H |
2 | #define CABLE_NETNODE_H | 2 | #define CABLE_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class ACable; | 6 | class ACable; |
7 | 7 | ||
8 | class CableNetNode : public ANetNode { | 8 | class CableNetNode : public ANetNode { |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | 21 | virtual ANetNodeInstance * createInstance( void ); | |
22 | virtual ANetNodeInstance * createInstance( void ); | 22 | virtual const char ** needs( void ); |
23 | 23 | virtual const char * provides( void ); | |
24 | virtual const char ** needs( void ); | ||
25 | virtual const char * provides( void ); | ||
26 | |||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr); | ||
32 | 24 | ||
33 | private: | 25 | private: |
34 | 26 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 27 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 28 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 29 | }; |
38 | 30 | ||
39 | extern "C" | 31 | extern "C" |
40 | { | 32 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 33 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 34 | }; |
43 | 35 | ||
44 | #endif | 36 | #endif |
diff --git a/noncore/settings/networksettings2/cable/cable_NNI.cpp b/noncore/settings/networksettings2/cable/cable_NNI.cpp index ca21135..4bd9421 100644 --- a/noncore/settings/networksettings2/cable/cable_NNI.cpp +++ b/noncore/settings/networksettings2/cable/cable_NNI.cpp | |||
@@ -4,70 +4,86 @@ | |||
4 | 4 | ||
5 | ACable::ACable( CableNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | ACable::ACable( CableNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | // default values | 6 | // default values |
7 | Data.Device = "/dev/ttyS0"; | 7 | Data.Device = "/dev/ttyS0"; |
8 | Data.LockFile = "/var/Lock"; | 8 | Data.LockFile = "/var/Lock"; |
9 | Data.Speed = 115200; | 9 | Data.Speed = 115200; |
10 | Data.DataBits = 8; | 10 | Data.DataBits = 8; |
11 | Data.Parity = 0; | 11 | Data.Parity = 0; |
12 | Data.StopBits = 1; | 12 | Data.StopBits = 1; |
13 | Data.HardwareControl = 0; | 13 | Data.HardwareControl = 0; |
14 | Data.SoftwareControl = 0; | 14 | Data.SoftwareControl = 0; |
15 | GUI = 0; | 15 | GUI = 0; |
16 | RT = 0; | 16 | RT = 0; |
17 | } | 17 | } |
18 | 18 | ||
19 | void ACable::setSpecificAttribute( QString & A, QString & V) { | 19 | void ACable::setSpecificAttribute( QString & A, QString & V) { |
20 | if( A == "device" ) { | 20 | if( A == "device" ) { |
21 | Data.Device = V; | 21 | Data.Device = V; |
22 | } else if ( A == "lockfile" ) { | 22 | } else if ( A == "lockfile" ) { |
23 | Data.LockFile = V; | 23 | Data.LockFile = V; |
24 | } else if ( A == "speed" ) { | 24 | } else if ( A == "speed" ) { |
25 | Data.Speed = V.toLong(); | 25 | Data.Speed = V.toLong(); |
26 | } else if ( A == "parity" ) { | 26 | } else if ( A == "parity" ) { |
27 | Data.Parity = V.toShort(); | 27 | Data.Parity = V.toShort(); |
28 | } else if ( A == "databits" ) { | 28 | } else if ( A == "databits" ) { |
29 | Data.DataBits = V.toShort(); | 29 | Data.DataBits = V.toShort(); |
30 | } else if ( A == "stopbits" ) { | 30 | } else if ( A == "stopbits" ) { |
31 | Data.StopBits = V.toShort(); | 31 | Data.StopBits = V.toShort(); |
32 | } else if ( A == "hardwarecontrol" ) { | 32 | } else if ( A == "hardwarecontrol" ) { |
33 | Data.HardwareControl = ( V == "yes" ); | 33 | Data.HardwareControl = ( V == "yes" ); |
34 | } else if ( A == "softwarecontrol" ) { | 34 | } else if ( A == "softwarecontrol" ) { |
35 | Data.SoftwareControl = ( V == "yes" ); | 35 | Data.SoftwareControl = ( V == "yes" ); |
36 | } | 36 | } |
37 | } | 37 | } |
38 | 38 | ||
39 | void ACable::saveSpecificAttribute( QTextStream & TS ) { | 39 | void ACable::saveSpecificAttribute( QTextStream & TS ) { |
40 | TS << "device=" << quote( Data.Device ) << endl; | 40 | TS << "device=" << quote( Data.Device ) << endl; |
41 | TS << "lockfile=" << quote( Data.LockFile ) << endl; | 41 | TS << "lockfile=" << quote( Data.LockFile ) << endl; |
42 | TS << "speed=" << Data.Speed << endl; | 42 | TS << "speed=" << Data.Speed << endl; |
43 | TS << "parity=" << Data.Parity << endl; | 43 | TS << "parity=" << Data.Parity << endl; |
44 | TS << "databits=" << Data.DataBits << endl; | 44 | TS << "databits=" << Data.DataBits << endl; |
45 | TS << "stopbits=" << Data.StopBits << endl; | 45 | TS << "stopbits=" << Data.StopBits << endl; |
46 | TS << "hardwarecontrol=" << | 46 | TS << "hardwarecontrol=" << |
47 | ((Data.HardwareControl) ? "yes" : "no") << endl; | 47 | ((Data.HardwareControl) ? "yes" : "no") << endl; |
48 | TS << "softwarecontrol=" << | 48 | TS << "softwarecontrol=" << |
49 | ((Data.SoftwareControl) ? "yes" : "no") << endl; | 49 | ((Data.SoftwareControl) ? "yes" : "no") << endl; |
50 | } | 50 | } |
51 | 51 | ||
52 | short ACable::generateFileEmbedded( const QString & ID, | ||
53 | const QString & Path, | ||
54 | QTextStream & TS, | ||
55 | long DevNr ) { | ||
56 | short rvl, rvd; | ||
57 | |||
58 | rvl = 1; | ||
59 | if( ID == "peers" ) { | ||
60 | TS << Data.Device | ||
61 | << endl; | ||
62 | TS << Data.Speed | ||
63 | << endl; | ||
64 | TS << "lock " | ||
65 | << Data.LockFile | ||
66 | << endl; | ||
67 | rvl = 0; | ||
68 | } | ||
69 | |||
70 | rvd = ANetNodeInstance::generateFileEmbedded( ID, Path, TS, DevNr ); | ||
71 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
72 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
73 | } | ||
74 | |||
52 | QWidget * ACable::edit( QWidget * parent ) { | 75 | QWidget * ACable::edit( QWidget * parent ) { |
53 | GUI = new CableEdit( parent ); | 76 | GUI = new CableEdit( parent ); |
54 | GUI->showData( Data ); | 77 | GUI->showData( Data ); |
55 | return GUI; | 78 | return GUI; |
56 | } | 79 | } |
57 | 80 | ||
58 | QString ACable::acceptable( void ) { | 81 | QString ACable::acceptable( void ) { |
59 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 82 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
60 | } | 83 | } |
61 | 84 | ||
62 | void ACable::commit( void ) { | 85 | void ACable::commit( void ) { |
63 | if( GUI && GUI->commit( Data ) ) { | 86 | if( GUI && GUI->commit( Data ) ) { |
64 | setModified( 1 ); | 87 | setModified( 1 ); |
65 | } | 88 | } |
66 | } | 89 | } |
67 | |||
68 | bool ACable::generateDataForCommonFile( | ||
69 | SystemFile & , | ||
70 | long ) { | ||
71 | return 1; | ||
72 | } | ||
73 | |||
diff --git a/noncore/settings/networksettings2/cable/cable_NNI.h b/noncore/settings/networksettings2/cable/cable_NNI.h index bf3e292..d06cbbe 100644 --- a/noncore/settings/networksettings2/cable/cable_NNI.h +++ b/noncore/settings/networksettings2/cable/cable_NNI.h | |||
@@ -1,48 +1,46 @@ | |||
1 | #ifndef CABLE_H | 1 | #ifndef CABLE_H |
2 | #define CABLE_H | 2 | #define CABLE_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "cabledata.h" | 5 | #include "cabledata.h" |
6 | #include "cablerun.h" | 6 | #include "cablerun.h" |
7 | 7 | ||
8 | class CableNetNode; | 8 | class CableNetNode; |
9 | class CableEdit; | 9 | class CableEdit; |
10 | 10 | ||
11 | class ACable : public ANetNodeInstance { | 11 | class ACable : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | ACable( CableNetNode * PNN ); | 15 | ACable( CableNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new CableRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new CableRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | 29 | short generateFileEmbedded( const QString & ID, |
31 | { return 0; } | 30 | const QString & Path, |
32 | virtual bool generateDataForCommonFile( | 31 | QTextStream & TS, |
33 | SystemFile & SF, long DevNr ); | 32 | long DevNr ); |
34 | |||
35 | protected : | 33 | protected : |
36 | 34 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 36 | virtual void saveSpecificAttribute( QTextStream & TS ); |
39 | 37 | ||
40 | private : | 38 | private : |
41 | 39 | ||
42 | CableEdit * GUI; | 40 | CableEdit * GUI; |
43 | CableData_t Data; | 41 | CableData_t Data; |
44 | CableRun * RT; | 42 | CableRun * RT; |
45 | 43 | ||
46 | }; | 44 | }; |
47 | 45 | ||
48 | #endif | 46 | #endif |
diff --git a/noncore/settings/networksettings2/cable/cablerun.cpp b/noncore/settings/networksettings2/cable/cablerun.cpp index 5e99237..85660f6 100644 --- a/noncore/settings/networksettings2/cable/cablerun.cpp +++ b/noncore/settings/networksettings2/cable/cablerun.cpp | |||
@@ -1,26 +1,30 @@ | |||
1 | #include <fcntl.h> | 1 | #include <fcntl.h> |
2 | #include <unistd.h> | 2 | #include <unistd.h> |
3 | #include "cablerun.h" | 3 | #include "cablerun.h" |
4 | 4 | ||
5 | void CableRun::detectState( NodeCollection * NC ) { | 5 | void CableRun::detectState( NodeCollection * NC ) { |
6 | 6 | ||
7 | int fd = open( D->Device.latin1(), O_RDWR ); | 7 | int fd = open( Data->Device.latin1(), O_RDWR ); |
8 | 8 | ||
9 | if( fd < 0 ) { | 9 | if( fd < 0 ) { |
10 | NC->setCurrentState( Unavailable ); | 10 | NC->setCurrentState( Unavailable ); |
11 | } | 11 | } |
12 | close( fd ); | 12 | close( fd ); |
13 | NC->setCurrentState( Available ); | 13 | NC->setCurrentState( Available ); |
14 | } | 14 | } |
15 | 15 | ||
16 | bool CableRun::setState( NodeCollection * NC, Action_t A, bool ) { | 16 | bool CableRun::setState( NodeCollection * NC, Action_t A, bool ) { |
17 | if( A == Activate ) { | 17 | if( A == Activate ) { |
18 | detectState(NC); | 18 | detectState(NC); |
19 | return (NC->currentState() == Available); | 19 | return (NC->currentState() == Available); |
20 | } | 20 | } |
21 | return 1; | 21 | return 1; |
22 | } | 22 | } |
23 | 23 | ||
24 | bool CableRun::canSetState( State_t , Action_t ) { | 24 | bool CableRun::canSetState( State_t , Action_t ) { |
25 | return 1; | 25 | return 1; |
26 | } | 26 | } |
27 | |||
28 | QString CableRun::deviceFile( void ) { | ||
29 | return Data->Device; | ||
30 | } | ||
diff --git a/noncore/settings/networksettings2/cable/cablerun.h b/noncore/settings/networksettings2/cable/cablerun.h index c5b59d5..20608f6 100644 --- a/noncore/settings/networksettings2/cable/cablerun.h +++ b/noncore/settings/networksettings2/cable/cablerun.h | |||
@@ -1,24 +1,26 @@ | |||
1 | #include <asline.h> | 1 | #include <asline.h> |
2 | #include "cabledata.h" | 2 | #include "cabledata.h" |
3 | 3 | ||
4 | class CableRun : public AsLine { | 4 | class CableRun : public AsLine { |
5 | 5 | ||
6 | public : | 6 | public : |
7 | 7 | ||
8 | CableRun( ANetNodeInstance * NNI, | 8 | CableRun( ANetNodeInstance * NNI, |
9 | CableData & Data ) : AsLine( NNI ) | 9 | CableData_t & D ) : AsLine( NNI ) |
10 | { D = &Data; } | 10 | { Data = &D; } |
11 | 11 | ||
12 | virtual AsLine * asLine( void ) | 12 | virtual AsLine * asLine( void ) |
13 | { return (AsLine *)this; } | 13 | { return (AsLine *)this; } |
14 | 14 | ||
15 | virtual QString deviceFile( void ); | ||
16 | |||
15 | protected : | 17 | protected : |
16 | 18 | ||
17 | void detectState( NodeCollection * NC ); | 19 | void detectState( NodeCollection * NC ); |
18 | bool setState( NodeCollection * NC, Action_t A, bool Force ); | 20 | bool setState( NodeCollection * NC, Action_t A, bool Force ); |
19 | bool canSetState( State_t Curr, Action_t A ); | 21 | bool canSetState( State_t Curr, Action_t A ); |
20 | 22 | ||
21 | private : | 23 | private : |
22 | 24 | ||
23 | CableData_t * D; | 25 | CableData_t * Data; |
24 | }; | 26 | }; |
diff --git a/noncore/settings/networksettings2/irda/irda_NN.cpp b/noncore/settings/networksettings2/irda/irda_NN.cpp index 49bc06e..9483e22 100644 --- a/noncore/settings/networksettings2/irda/irda_NN.cpp +++ b/noncore/settings/networksettings2/irda/irda_NN.cpp | |||
@@ -1,60 +1,49 @@ | |||
1 | #include "irda_NN.h" | 1 | #include "irda_NN.h" |
2 | #include "irda_NNI.h" | 2 | #include "irda_NNI.h" |
3 | 3 | ||
4 | static const char * IRDANeeds[] = | 4 | static const char * IRDANeeds[] = |
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 | IRDANetNode::IRDANetNode() : ANetNode(tr("Infrared link")) { | 11 | IRDANetNode::IRDANetNode() : ANetNode(tr("Infrared link")) { |
12 | } | 12 | } |
13 | 13 | ||
14 | /** | 14 | /** |
15 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
16 | */ | 16 | */ |
17 | IRDANetNode::~IRDANetNode(){ | 17 | IRDANetNode::~IRDANetNode(){ |
18 | } | 18 | } |
19 | 19 | ||
20 | const QString IRDANetNode::nodeDescription(){ | 20 | const QString IRDANetNode::nodeDescription(){ |
21 | return tr("\ | 21 | return tr("\ |
22 | <p>Sets up a infra red serial link.</p>\ | 22 | <p>Sets up a infra red serial link.</p>\ |
23 | " | 23 | " |
24 | ); | 24 | ); |
25 | } | 25 | } |
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( | ||
40 | ANetNodeInstance * ) { | ||
41 | return 0; | ||
42 | } | ||
43 | |||
44 | bool IRDANetNode::generateDeviceDataForCommonFile( | ||
45 | SystemFile & , | ||
46 | long ) { | ||
47 | return 0; | ||
48 | } | ||
49 | |||
50 | void IRDANetNode::setSpecificAttribute( QString & , QString & ) { | 39 | void IRDANetNode::setSpecificAttribute( QString & , QString & ) { |
51 | } | 40 | } |
52 | 41 | ||
53 | void IRDANetNode::saveSpecificAttribute( QTextStream & ) { | 42 | void IRDANetNode::saveSpecificAttribute( QTextStream & ) { |
54 | } | 43 | } |
55 | 44 | ||
56 | extern "C" { | 45 | extern "C" { |
57 | void create_plugin( QList<ANetNode> & PNN ) { | 46 | void create_plugin( QList<ANetNode> & PNN ) { |
58 | PNN.append( new IRDANetNode() ); | 47 | PNN.append( new IRDANetNode() ); |
59 | } | 48 | } |
60 | } | 49 | } |
diff --git a/noncore/settings/networksettings2/irda/irda_NN.h b/noncore/settings/networksettings2/irda/irda_NN.h index fa6408d..900bbc6 100644 --- a/noncore/settings/networksettings2/irda/irda_NN.h +++ b/noncore/settings/networksettings2/irda/irda_NN.h | |||
@@ -1,44 +1,36 @@ | |||
1 | #ifndef IRDA_NETNODE_H | 1 | #ifndef IRDA_NETNODE_H |
2 | #define IRDA_NETNODE_H | 2 | #define IRDA_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AIRDA; | 6 | class AIRDA; |
7 | 7 | ||
8 | class IRDANetNode : public ANetNode { | 8 | class IRDANetNode : public ANetNode { |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | 21 | virtual ANetNodeInstance * createInstance( void ); | |
22 | virtual ANetNodeInstance * createInstance( void ); | 22 | virtual const char ** needs( void ); |
23 | 23 | virtual const char * provides( void ); | |
24 | virtual const char ** needs( void ); | ||
25 | virtual const char * provides( void ); | ||
26 | |||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | 24 | ||
33 | private: | 25 | private: |
34 | 26 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 27 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 28 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 29 | }; |
38 | 30 | ||
39 | extern "C" | 31 | extern "C" |
40 | { | 32 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 33 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 34 | }; |
43 | 35 | ||
44 | #endif | 36 | #endif |
diff --git a/noncore/settings/networksettings2/irda/irda_NNI.cpp b/noncore/settings/networksettings2/irda/irda_NNI.cpp index f00a1d5..9cf443b 100644 --- a/noncore/settings/networksettings2/irda/irda_NNI.cpp +++ b/noncore/settings/networksettings2/irda/irda_NNI.cpp | |||
@@ -1,37 +1,31 @@ | |||
1 | #include "irdaedit.h" | 1 | #include "irdaedit.h" |
2 | #include "irda_NNI.h" | 2 | #include "irda_NNI.h" |
3 | #include "irda_NN.h" | 3 | #include "irda_NN.h" |
4 | 4 | ||
5 | AIRDA::AIRDA( IRDANetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | AIRDA::AIRDA( IRDANetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | 6 | ||
7 | GUI = 0; | 7 | GUI = 0; |
8 | RT = 0; | 8 | RT = 0; |
9 | } | 9 | } |
10 | 10 | ||
11 | void AIRDA::setSpecificAttribute( QString & , QString & ) { | 11 | void AIRDA::setSpecificAttribute( QString & , QString & ) { |
12 | } | 12 | } |
13 | 13 | ||
14 | void AIRDA::saveSpecificAttribute( QTextStream & ) { | 14 | void AIRDA::saveSpecificAttribute( QTextStream & ) { |
15 | } | 15 | } |
16 | 16 | ||
17 | QWidget * AIRDA::edit( QWidget * parent ) { | 17 | QWidget * AIRDA::edit( QWidget * parent ) { |
18 | GUI = new IRDAEdit( parent ); | 18 | GUI = new IRDAEdit( parent ); |
19 | GUI->showData( Data ); | 19 | GUI->showData( Data ); |
20 | return GUI; | 20 | return GUI; |
21 | } | 21 | } |
22 | 22 | ||
23 | QString AIRDA::acceptable( void ) { | 23 | QString AIRDA::acceptable( void ) { |
24 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 24 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
25 | } | 25 | } |
26 | 26 | ||
27 | void AIRDA::commit( void ) { | 27 | void AIRDA::commit( void ) { |
28 | if( GUI && GUI->commit( Data ) ) | 28 | if( GUI && GUI->commit( Data ) ) |
29 | setModified( 1 ); | 29 | setModified( 1 ); |
30 | } | 30 | } |
31 | 31 | ||
32 | bool AIRDA::generateDataForCommonFile( | ||
33 | SystemFile & , | ||
34 | long ) { | ||
35 | return 1; | ||
36 | } | ||
37 | |||
diff --git a/noncore/settings/networksettings2/irda/irda_NNI.h b/noncore/settings/networksettings2/irda/irda_NNI.h index 210d87d..e21b68f 100644 --- a/noncore/settings/networksettings2/irda/irda_NNI.h +++ b/noncore/settings/networksettings2/irda/irda_NNI.h | |||
@@ -1,48 +1,42 @@ | |||
1 | #ifndef IRDA_H | 1 | #ifndef IRDA_H |
2 | #define IRDA_H | 2 | #define IRDA_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "irdadata.h" | 5 | #include "irdadata.h" |
6 | #include "irdarun.h" | 6 | #include "irdarun.h" |
7 | 7 | ||
8 | class IRDANetNode; | 8 | class IRDANetNode; |
9 | class IRDAEdit; | 9 | class IRDAEdit; |
10 | 10 | ||
11 | class AIRDA : public ANetNodeInstance { | 11 | class AIRDA : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AIRDA( IRDANetNode * PNN ); | 15 | AIRDA( IRDANetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new IRDARun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new IRDARun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | ||
31 | { return 0; } | ||
32 | virtual bool generateDataForCommonFile( | ||
33 | SystemFile & SF, long DevNr ); | ||
34 | |||
35 | protected : | 29 | protected : |
36 | 30 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
39 | 33 | ||
40 | private : | 34 | private : |
41 | 35 | ||
42 | IRDAEdit * GUI; | 36 | IRDAEdit * GUI; |
43 | IRDAData Data; | 37 | IRDAData Data; |
44 | IRDARun * RT; | 38 | IRDARun * RT; |
45 | 39 | ||
46 | }; | 40 | }; |
47 | 41 | ||
48 | #endif | 42 | #endif |
diff --git a/noncore/settings/networksettings2/irda/irdarun.h b/noncore/settings/networksettings2/irda/irdarun.h index 4c903cc..4258aff 100644 --- a/noncore/settings/networksettings2/irda/irdarun.h +++ b/noncore/settings/networksettings2/irda/irdarun.h | |||
@@ -1,25 +1,28 @@ | |||
1 | #include <asline.h> | 1 | #include <asline.h> |
2 | #include "irdadata.h" | 2 | #include "irdadata.h" |
3 | 3 | ||
4 | class IRDARun : public AsLine { | 4 | class IRDARun : public AsLine { |
5 | 5 | ||
6 | public : | 6 | public : |
7 | 7 | ||
8 | IRDARun( ANetNodeInstance * NNI, | 8 | IRDARun( ANetNodeInstance * NNI, |
9 | IRDAData & Data ) : AsLine( NNI ) | 9 | IRDAData & Data ) : AsLine( NNI ) |
10 | { } | 10 | { } |
11 | 11 | ||
12 | virtual AsLine * asLine( void ) | 12 | virtual AsLine * asLine( void ) |
13 | { return (AsLine *)this; } | 13 | { return (AsLine *)this; } |
14 | 14 | ||
15 | virtual QString deviceFile( void ) | ||
16 | { return QString( "/dev/irda" ); } | ||
17 | |||
15 | protected : | 18 | protected : |
16 | 19 | ||
17 | void detectState( NodeCollection * ) | 20 | void detectState( NodeCollection * ) |
18 | { } | 21 | { } |
19 | 22 | ||
20 | bool setState( NodeCollection * , Action_t, bool ) | 23 | bool setState( NodeCollection * , Action_t, bool ) |
21 | { return 0; } | 24 | { return 0; } |
22 | 25 | ||
23 | bool canSetState( State_t , Action_t ) | 26 | bool canSetState( State_t , Action_t ) |
24 | { return 0; } | 27 | { return 0; } |
25 | }; | 28 | }; |
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.cpp b/noncore/settings/networksettings2/lancard/lancard_NN.cpp index 05cd06d..20ae7f6 100644 --- a/noncore/settings/networksettings2/lancard/lancard_NN.cpp +++ b/noncore/settings/networksettings2/lancard/lancard_NN.cpp | |||
@@ -1,94 +1,71 @@ | |||
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(tr("LAN card")), NICMACAddresses() { | 10 | LanCardNetNode::LanCardNetNode() : ANetNode(tr("LAN card")), NICMACAddresses() { |
11 | InstanceCount = 2; | 11 | InstanceCount = 2; |
12 | } | 12 | } |
13 | 13 | ||
14 | /** | 14 | /** |
15 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
16 | */ | 16 | */ |
17 | LanCardNetNode::~LanCardNetNode(){ | 17 | LanCardNetNode::~LanCardNetNode(){ |
18 | } | 18 | } |
19 | 19 | ||
20 | const QString LanCardNetNode::nodeDescription(){ | 20 | const QString LanCardNetNode::nodeDescription(){ |
21 | return tr("\ | 21 | return tr("\ |
22 | <p>Sets up a wired regular LAN card.</p>\ | 22 | <p>Sets up a wired regular LAN card.</p>\ |
23 | <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>\ |
24 | " | 24 | " |
25 | ); | 25 | ); |
26 | } | 26 | } |
27 | 27 | ||
28 | ANetNodeInstance * LanCardNetNode::createInstance( void ) { | 28 | ANetNodeInstance * LanCardNetNode::createInstance( void ) { |
29 | return new ALanCard( this ); | 29 | return new ALanCard( this ); |
30 | } | 30 | } |
31 | 31 | ||
32 | 32 | ||
33 | const char ** LanCardNetNode::needs( void ) { | 33 | const char ** LanCardNetNode::needs( void ) { |
34 | return LanCardNeeds; | 34 | return LanCardNeeds; |
35 | } | 35 | } |
36 | 36 | ||
37 | const char * LanCardNetNode::provides( void ) { | 37 | const char * LanCardNetNode::provides( void ) { |
38 | return "device"; | 38 | return "device"; |
39 | } | 39 | } |
40 | 40 | ||
41 | bool LanCardNetNode::generateProperFilesFor( | ||
42 | ANetNodeInstance * ) { | ||
43 | return 0; | ||
44 | } | ||
45 | |||
46 | bool LanCardNetNode::hasDataFor( const QString & S ) { | ||
47 | return S == "interfaces"; | ||
48 | } | ||
49 | |||
50 | bool LanCardNetNode::generateDeviceDataForCommonFile( | ||
51 | SystemFile & S , | ||
52 | long DevNr ) { | ||
53 | QString NIC = genNic( DevNr ); | ||
54 | |||
55 | if( S.name() == "interfaces" ) { | ||
56 | // generate mapping stanza for this interface | ||
57 | S << "# check if " << NIC << " can be brought UP" << endl; | ||
58 | S << "mapping " << NIC << endl; | ||
59 | S << " script networksettings2-request" << endl << endl; | ||
60 | } | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | QString LanCardNetNode::genNic( long nr ) { | 41 | QString LanCardNetNode::genNic( long nr ) { |
65 | QString S; | 42 | QString S; |
66 | return S.sprintf( "eth%ld", nr ); | 43 | return S.sprintf( "eth%ld", nr ); |
67 | } | 44 | } |
68 | 45 | ||
69 | void LanCardNetNode::setSpecificAttribute( QString & A, QString & V ) { | 46 | void LanCardNetNode::setSpecificAttribute( QString & A, QString & V ) { |
70 | if( A == "interfacecount" ) { | 47 | if( A == "interfacecount" ) { |
71 | InstanceCount = V.toLong(); | 48 | InstanceCount = V.toLong(); |
72 | } else if ( A == "macaddress" ) { | 49 | } else if ( A == "macaddress" ) { |
73 | NICMACAddresses.append( V ); | 50 | NICMACAddresses.append( V ); |
74 | } | 51 | } |
75 | } | 52 | } |
76 | 53 | ||
77 | void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) { | 54 | void LanCardNetNode::saveSpecificAttribute( QTextStream & TS) { |
78 | TS << "interfacecount=" | 55 | TS << "interfacecount=" |
79 | << InstanceCount | 56 | << InstanceCount |
80 | << endl; | 57 | << endl; |
81 | for( QStringList::Iterator it = NICMACAddresses.begin(); | 58 | for( QStringList::Iterator it = NICMACAddresses.begin(); |
82 | it != NICMACAddresses.end(); | 59 | it != NICMACAddresses.end(); |
83 | ++it ) { | 60 | ++it ) { |
84 | TS << "macaddress=" | 61 | TS << "macaddress=" |
85 | << (*it) | 62 | << (*it) |
86 | << endl; | 63 | << endl; |
87 | } | 64 | } |
88 | } | 65 | } |
89 | 66 | ||
90 | extern "C" { | 67 | extern "C" { |
91 | void create_plugin( QList<ANetNode> & PNN ) { | 68 | void create_plugin( QList<ANetNode> & PNN ) { |
92 | PNN.append( new LanCardNetNode() ); | 69 | PNN.append( new LanCardNetNode() ); |
93 | } | 70 | } |
94 | } | 71 | } |
diff --git a/noncore/settings/networksettings2/lancard/lancard_NN.h b/noncore/settings/networksettings2/lancard/lancard_NN.h index d58823c..6882af7 100644 --- a/noncore/settings/networksettings2/lancard/lancard_NN.h +++ b/noncore/settings/networksettings2/lancard/lancard_NN.h | |||
@@ -1,57 +1,50 @@ | |||
1 | #ifndef LANCARD_NETNODE_H | 1 | #ifndef LANCARD_NETNODE_H |
2 | #define LANCARD_NETNODE_H | 2 | #define LANCARD_NETNODE_H |
3 | 3 | ||
4 | #include <qstringlist.h> | 4 | #include <qstringlist.h> |
5 | #include "netnode.h" | 5 | #include "netnode.h" |
6 | 6 | ||
7 | class ALanCard; | 7 | class ALanCard; |
8 | 8 | ||
9 | class LanCardNetNode : public ANetNode{ | 9 | class LanCardNetNode : public ANetNode{ |
10 | 10 | ||
11 | Q_OBJECT | 11 | Q_OBJECT |
12 | 12 | ||
13 | public: | 13 | public: |
14 | 14 | ||
15 | LanCardNetNode(); | 15 | LanCardNetNode(); |
16 | virtual ~LanCardNetNode(); | 16 | virtual ~LanCardNetNode(); |
17 | 17 | ||
18 | virtual const QString pixmapName() | 18 | virtual const QString pixmapName() |
19 | { return "Devices/card"; } | 19 | { return "Devices/card"; } |
20 | 20 | ||
21 | virtual const QString nodeDescription() ; | 21 | virtual QString genNic( long ); |
22 | virtual long instanceCount( void ) | ||
23 | { return InstanceCount; } | ||
22 | 24 | ||
25 | virtual const QString nodeDescription() ; | ||
23 | virtual ANetNodeInstance * createInstance( void ); | 26 | virtual ANetNodeInstance * createInstance( void ); |
24 | |||
25 | virtual const char ** needs( void ); | 27 | virtual const char ** needs( void ); |
26 | virtual const char * provides( void ); | 28 | virtual const char * provides( void ); |
27 | 29 | ||
28 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | 30 | QStringList & addressesOfNIC( void ) |
29 | virtual bool hasDataFor( const QString & S ); | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | |||
33 | virtual long instanceCount( void ) | ||
34 | { return InstanceCount; } | ||
35 | |||
36 | virtual QString genNic( long ); | ||
37 | virtual QStringList & addressesOfNIC( void ) | ||
38 | { return NICMACAddresses; } | 31 | { return NICMACAddresses; } |
39 | 32 | ||
40 | private: | 33 | private: |
41 | 34 | ||
42 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
43 | virtual void saveSpecificAttribute( QTextStream & TS ); | 36 | virtual void saveSpecificAttribute( QTextStream & TS ); |
44 | 37 | ||
45 | // number of interfaces for this device | 38 | // number of interfaces for this device |
46 | long InstanceCount; | 39 | long InstanceCount; |
47 | 40 | ||
48 | QStringList NICMACAddresses; | 41 | QStringList NICMACAddresses; |
49 | 42 | ||
50 | }; | 43 | }; |
51 | 44 | ||
52 | extern "C" | 45 | extern "C" |
53 | { | 46 | { |
54 | void create_plugin( QList<ANetNode> & PNN ); | 47 | void create_plugin( QList<ANetNode> & PNN ); |
55 | }; | 48 | }; |
56 | 49 | ||
57 | #endif | 50 | #endif |
diff --git a/noncore/settings/networksettings2/lancard/lancard_NNI.cpp b/noncore/settings/networksettings2/lancard/lancard_NNI.cpp index 99c033e..9fb05b9 100644 --- a/noncore/settings/networksettings2/lancard/lancard_NNI.cpp +++ b/noncore/settings/networksettings2/lancard/lancard_NNI.cpp | |||
@@ -1,51 +1,45 @@ | |||
1 | #include "lancardedit.h" | 1 | #include "lancardedit.h" |
2 | #include "lancard_NNI.h" | 2 | #include "lancard_NNI.h" |
3 | #include "lancard_NN.h" | 3 | #include "lancard_NN.h" |
4 | 4 | ||
5 | ALanCard::ALanCard( LanCardNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | ALanCard::ALanCard( LanCardNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | 6 | ||
7 | Data.AnyLanCard = 1; | 7 | Data.AnyLanCard = 1; |
8 | Data.HWAddresses.clear(); | 8 | Data.HWAddresses.clear(); |
9 | 9 | ||
10 | GUI = 0; | 10 | GUI = 0; |
11 | RT = 0; | 11 | RT = 0; |
12 | } | 12 | } |
13 | 13 | ||
14 | void ALanCard::setSpecificAttribute( QString & A, QString & V ) { | 14 | void ALanCard::setSpecificAttribute( QString & A, QString & V ) { |
15 | if( A == "matchanycard" ) { | 15 | if( A == "matchanycard" ) { |
16 | Data.AnyLanCard = (V == "yes" ); | 16 | Data.AnyLanCard = (V == "yes" ); |
17 | } else if( A == "match" ) { | 17 | } else if( A == "match" ) { |
18 | Data.HWAddresses.append( V ); | 18 | Data.HWAddresses.append( V ); |
19 | } | 19 | } |
20 | } | 20 | } |
21 | 21 | ||
22 | void ALanCard::saveSpecificAttribute( QTextStream & TS) { | 22 | void ALanCard::saveSpecificAttribute( QTextStream & TS) { |
23 | TS << "matchanycard=" << | 23 | TS << "matchanycard=" << |
24 | ((Data.AnyLanCard) ? "yes" : "no") << endl; | 24 | ((Data.AnyLanCard) ? "yes" : "no") << endl; |
25 | for( QStringList::Iterator it = Data.HWAddresses.begin(); | 25 | for( QStringList::Iterator it = Data.HWAddresses.begin(); |
26 | it != Data.HWAddresses.end(); ++it ) { | 26 | it != Data.HWAddresses.end(); ++it ) { |
27 | TS << "match=" << quote( *it ) << endl; | 27 | TS << "match=" << quote( *it ) << endl; |
28 | } | 28 | } |
29 | } | 29 | } |
30 | 30 | ||
31 | QWidget * ALanCard::edit( QWidget * parent ) { | 31 | QWidget * ALanCard::edit( QWidget * parent ) { |
32 | GUI = new LanCardEdit( parent ); | 32 | GUI = new LanCardEdit( parent ); |
33 | GUI->showData( this ); | 33 | GUI->showData( this ); |
34 | return GUI; | 34 | return GUI; |
35 | } | 35 | } |
36 | 36 | ||
37 | QString ALanCard::acceptable( void ) { | 37 | QString ALanCard::acceptable( void ) { |
38 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 38 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
39 | } | 39 | } |
40 | 40 | ||
41 | void ALanCard::commit( void ) { | 41 | void ALanCard::commit( void ) { |
42 | if( GUI && GUI->commit( Data ) ) | 42 | if( GUI && GUI->commit( Data ) ) |
43 | setModified( 1 ); | 43 | setModified( 1 ); |
44 | } | 44 | } |
45 | 45 | ||
46 | bool ALanCard::generateDataForCommonFile( | ||
47 | SystemFile & , | ||
48 | long ) { | ||
49 | return 1; | ||
50 | } | ||
51 | |||
diff --git a/noncore/settings/networksettings2/lancard/lancard_NNI.h b/noncore/settings/networksettings2/lancard/lancard_NNI.h index 4e91523..8e55a19 100644 --- a/noncore/settings/networksettings2/lancard/lancard_NNI.h +++ b/noncore/settings/networksettings2/lancard/lancard_NNI.h | |||
@@ -1,47 +1,42 @@ | |||
1 | #ifndef LANCARD_H | 1 | #ifndef LANCARD_H |
2 | #define LANCARD_H | 2 | #define LANCARD_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "lancarddata.h" | 5 | #include "lancarddata.h" |
6 | #include "lancardrun.h" | 6 | #include "lancardrun.h" |
7 | 7 | ||
8 | class LanCardNetNode; | 8 | class LanCardNetNode; |
9 | class LanCardEdit; | 9 | class LanCardEdit; |
10 | 10 | ||
11 | class ALanCard : public ANetNodeInstance { | 11 | class ALanCard : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | ALanCard( LanCardNetNode * PNN ); | 15 | ALanCard( LanCardNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new LanCardRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new LanCardRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | ||
31 | { return 0; } | ||
32 | virtual bool generateDataForCommonFile( | ||
33 | SystemFile & S, long DevNr ); | ||
34 | protected : | 29 | protected : |
35 | 30 | ||
36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
37 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
38 | 33 | ||
39 | private : | 34 | private : |
40 | 35 | ||
41 | LanCardEdit * GUI; | 36 | LanCardEdit * GUI; |
42 | LanCardData Data; | 37 | LanCardData Data; |
43 | LanCardRun * RT; | 38 | LanCardRun * RT; |
44 | 39 | ||
45 | }; | 40 | }; |
46 | 41 | ||
47 | #endif | 42 | #endif |
diff --git a/noncore/settings/networksettings2/main.cpp b/noncore/settings/networksettings2/main.cpp index 6c969fc..b32b323 100644 --- a/noncore/settings/networksettings2/main.cpp +++ b/noncore/settings/networksettings2/main.cpp | |||
@@ -1,140 +1,146 @@ | |||
1 | #include "nsdata.h" | 1 | #include "nsdata.h" |
2 | #include "activateprofile.h" | 2 | #include "activateprofile.h" |
3 | #include "activatevpn.h" | ||
3 | #include "networksettings.h" | 4 | #include "networksettings.h" |
4 | 5 | ||
5 | #include <qpe/qpeapplication.h> | 6 | #include <qpe/qpeapplication.h> |
6 | 7 | ||
7 | #include <opie2/oapplicationfactory.h> | 8 | #include <opie2/oapplicationfactory.h> |
8 | using namespace Opie::Core; | 9 | using namespace Opie::Core; |
9 | 10 | ||
10 | #ifdef GONE | 11 | #ifdef GONE |
11 | 12 | ||
12 | OPIE_EXPORT_APP( OApplicationFactory<NetworkSettings> ) | 13 | OPIE_EXPORT_APP( OApplicationFactory<NetworkSettings> ) |
13 | 14 | ||
14 | #else | 15 | #else |
15 | 16 | ||
16 | // just standard GUI | 17 | // just standard GUI |
17 | #define ACT_GUI 0 | 18 | #define ACT_GUI 0 |
18 | // used by interfaces to request for allow of up/down | 19 | // used by interfaces to request for allow of up/down |
19 | #define ACT_REQUEST 1 | 20 | #define ACT_REQUEST 1 |
20 | // regenerate config files | 21 | // regenerate config files |
21 | #define ACT_REGEN 2 | 22 | #define ACT_REGEN 2 |
22 | // used by interfaces to request user prompt | 23 | // used by interfaces to request user prompt |
23 | #define ACT_PROMPT 3 | 24 | #define ACT_PROMPT 3 |
25 | // used by interfaces to trigger VPN | ||
26 | #define ACT_VPN 4 | ||
24 | 27 | ||
25 | int main( int argc, char * argv[] ) { | 28 | int main( int argc, char * argv[] ) { |
26 | int rv = 0; | 29 | int rv = 0; |
27 | int Action = ACT_GUI; | 30 | int Action = ACT_GUI; |
28 | // could be overruled by -qws | 31 | // could be overruled by -qws |
29 | QApplication::Type GuiType = QApplication::GuiClient; | 32 | QApplication::Type GuiType = QApplication::GuiClient; |
30 | 33 | ||
31 | #ifdef _WS_QWS_ | 34 | #ifdef _WS_QWS_ |
32 | QPEApplication * TheApp; | 35 | QPEApplication * TheApp; |
33 | #else | 36 | #else |
34 | QApplication * TheApp; | 37 | QApplication * TheApp; |
35 | #endif | 38 | #endif |
36 | 39 | ||
37 | for ( int i = 1; i < argc; i ++ ) { | 40 | for ( int i = 1; i < argc; i ++ ) { |
38 | int rmv; | 41 | int rmv; |
39 | rmv = 0; | 42 | rmv = 0; |
40 | if( strcmp( argv[i], "--regen" ) == 0 ) { | 43 | if( strcmp( argv[i], "--regen" ) == 0 ) { |
41 | Action = ACT_REGEN; | 44 | Action = ACT_REGEN; |
42 | GuiType = QApplication::Tty; | 45 | GuiType = QApplication::Tty; |
43 | rmv = 1; | 46 | rmv = 1; |
44 | } else if( strcmp( argv[i], "--prompt" ) == 0 ) { | 47 | } else if( strcmp( argv[i], "--prompt" ) == 0 ) { |
45 | Action = ACT_PROMPT; | 48 | Action = ACT_PROMPT; |
46 | rmv = 1; | 49 | rmv = 1; |
50 | } else if( strcmp( argv[i], "--triggervpn" ) == 0 ) { | ||
51 | Action = ACT_VPN; | ||
52 | rmv = 1; | ||
47 | } | 53 | } |
48 | if( rmv ) { | 54 | if( rmv ) { |
49 | memmove( argv+i, argv+i+rmv, | 55 | memmove( argv+i, argv+i+rmv, |
50 | sizeof( char * ) * (argc-i-rmv) ); | 56 | sizeof( char * ) * (argc-i-rmv) ); |
51 | i --; | 57 | i --; |
52 | argc -= rmv; | 58 | argc -= rmv; |
53 | } | 59 | } |
54 | } | 60 | } |
55 | 61 | ||
56 | if( strstr( argv[0], "-request" ) ) { | 62 | if( strstr( argv[0], "-request" ) ) { |
57 | // called from system to request something | 63 | // called from system to request something |
58 | GuiType = QApplication::Tty; | 64 | GuiType = QApplication::Tty; |
59 | Action = ACT_REQUEST; | 65 | Action = ACT_REQUEST; |
60 | } | 66 | } |
61 | 67 | ||
62 | // Start Qt | 68 | // Start Qt |
63 | #ifdef _WS_QWS_ | 69 | #ifdef _WS_QWS_ |
64 | // because QPEApplication does not handle GuiType well | 70 | // because QPEApplication does not handle GuiType well |
65 | if( GuiType == QApplication::Tty ) { | 71 | if( GuiType == QApplication::Tty ) { |
66 | // this cast is NOT correct but we do not use | 72 | // this cast is NOT correct but we do not use |
67 | // TheApp anymore ... | 73 | // TheApp anymore ... |
68 | TheApp = (QPEApplication *)new QApplication( argc, argv, GuiType ); | 74 | TheApp = (QPEApplication *)new QApplication( argc, argv, GuiType ); |
69 | } else { | 75 | } else { |
70 | TheApp = new QPEApplication( argc, argv, GuiType ); | 76 | TheApp = new QPEApplication( argc, argv, GuiType ); |
71 | } | 77 | } |
72 | #else | 78 | #else |
73 | TheApp = new QApplication( argc, argv, GuiType ); | 79 | TheApp = new QApplication( argc, argv, GuiType ); |
74 | #endif | 80 | #endif |
75 | 81 | ||
76 | // init qt with app widget | 82 | // init qt with app widget |
77 | 83 | ||
78 | switch( Action ) { | 84 | switch( Action ) { |
79 | case ACT_REQUEST : | 85 | case ACT_REQUEST : |
80 | { NetworkSettingsData NS; | 86 | { NetworkSettingsData NS; |
81 | Log(("ACT_REQUEST\n")); | ||
82 | if( NS.canStart( argv[1] ) ) { | 87 | if( NS.canStart( argv[1] ) ) { |
83 | QString S; | 88 | QString S; |
84 | Log(("NEED FOR PROMPT\n" )); | ||
85 | S.sprintf( QPEApplication::qpeDir()+ | 89 | S.sprintf( QPEApplication::qpeDir()+ |
86 | "/bin/networksettings2" ); | 90 | "/bin/networksettings2" ); |
87 | char * MyArgv[4]; | 91 | char * MyArgv[4]; |
88 | MyArgv[0] = "networksettings2"; | 92 | MyArgv[0] = "networksettings2"; |
89 | MyArgv[1] = "--prompt"; | 93 | MyArgv[1] = "--prompt"; |
90 | MyArgv[2] = argv[1]; | 94 | MyArgv[2] = argv[1]; |
91 | MyArgv[3] = NULL; | 95 | MyArgv[3] = NULL; |
92 | NSResources->system().execAsUser( S, MyArgv ); | 96 | NSResources->system().execAsUser( S, MyArgv ); |
93 | // if we come here , failed | 97 | // if we come here , failed |
94 | printf( "%s-cNN-disallowed", argv[1] ); | 98 | printf( "%s-cNN-disallowed", argv[1] ); |
95 | } | 99 | } |
96 | } | 100 | } |
97 | break; | 101 | break; |
98 | case ACT_REGEN : | 102 | case ACT_REGEN : |
99 | { NetworkSettingsData NS; | 103 | { NetworkSettingsData NS; |
100 | Log(("REGEN\n" )); | ||
101 | // regen returns 0 if OK | 104 | // regen returns 0 if OK |
102 | rv = (NS.regenerate()) ? 1 : 0; | 105 | rv = (NS.regenerate()) ? 1 : 0; |
103 | } | 106 | } |
104 | break; | 107 | break; |
105 | case ACT_PROMPT : | 108 | case ACT_PROMPT : |
106 | { ActivateProfile AP(argv[1]); | 109 | { ActivateProfile AP(argv[1]); |
107 | Log(("PROMPT\n" )); | ||
108 | if( AP.exec() == QDialog::Accepted ) { | 110 | if( AP.exec() == QDialog::Accepted ) { |
109 | printf( "%s-c%ld-allowed", argv[1], AP.selectedProfile() ); | 111 | printf( "%s-c%ld-allowed", argv[1], AP.selectedProfile() ); |
110 | } else { | 112 | } else { |
111 | printf( "%s-cNN-disallowed", argv[1] ); | 113 | printf( "%s-cNN-disallowed", argv[1] ); |
112 | } | 114 | } |
113 | } | 115 | } |
114 | break; | 116 | break; |
117 | case ACT_VPN : | ||
118 | { ActivateVPN AVPN; | ||
119 | AVPN.exec(); | ||
120 | } | ||
121 | break; | ||
115 | case ACT_GUI : | 122 | case ACT_GUI : |
116 | { QWidget * W = new NetworkSettings(0); | 123 | { QWidget * W = new NetworkSettings(0); |
117 | Log(("GUI\n" )); | ||
118 | TheApp->setMainWidget( W ); | 124 | TheApp->setMainWidget( W ); |
119 | W->show(); | 125 | W->show(); |
120 | #ifdef _WS_QWS_ | 126 | #ifdef _WS_QWS_ |
121 | W->showMaximized(); | 127 | W->showMaximized(); |
122 | #else | 128 | #else |
123 | W->resize( W->sizeHint() ); | 129 | W->resize( W->sizeHint() ); |
124 | #endif | 130 | #endif |
125 | rv = TheApp->exec(); | 131 | rv = TheApp->exec(); |
126 | delete W; | 132 | delete W; |
127 | } | 133 | } |
128 | break; | 134 | break; |
129 | } | 135 | } |
130 | 136 | ||
131 | LogClose(); | 137 | LogClose(); |
132 | 138 | ||
133 | return rv; | 139 | return rv; |
134 | } | 140 | } |
135 | 141 | ||
136 | #endif | 142 | #endif |
137 | 143 | ||
138 | 144 | ||
139 | // main.cpp | 145 | // main.cpp |
140 | 146 | ||
diff --git a/noncore/settings/networksettings2/modem/modem_NN.cpp b/noncore/settings/networksettings2/modem/modem_NN.cpp index 18aa480..ee61b10 100644 --- a/noncore/settings/networksettings2/modem/modem_NN.cpp +++ b/noncore/settings/networksettings2/modem/modem_NN.cpp | |||
@@ -1,61 +1,50 @@ | |||
1 | #include "modem_NN.h" | 1 | #include "modem_NN.h" |
2 | #include "modem_NNI.h" | 2 | #include "modem_NNI.h" |
3 | 3 | ||
4 | static const char * ModemNeeds[] = | 4 | static const char * ModemNeeds[] = |
5 | { "line" | 5 | { "line" |
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 | ModemNetNode::ModemNetNode() : ANetNode(tr("Dialup modem")) { | 11 | ModemNetNode::ModemNetNode() : ANetNode(tr("Dialup modem")) { |
12 | } | 12 | } |
13 | 13 | ||
14 | /** | 14 | /** |
15 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
16 | */ | 16 | */ |
17 | ModemNetNode::~ModemNetNode(){ | 17 | ModemNetNode::~ModemNetNode(){ |
18 | } | 18 | } |
19 | 19 | ||
20 | const QString ModemNetNode::nodeDescription(){ | 20 | const QString ModemNetNode::nodeDescription(){ |
21 | return tr("\ | 21 | return tr("\ |
22 | <p>Sets up a dialing procedures.</p>\ | 22 | <p>Sets up a dialing procedures.</p>\ |
23 | <p>Use this to dial up over modems, ISDN, GSM, ...</p>\ | 23 | <p>Use this to dial up over modems, ISDN, GSM, ...</p>\ |
24 | " | 24 | " |
25 | ); | 25 | ); |
26 | } | 26 | } |
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( | ||
41 | ANetNodeInstance * ) { | ||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | bool ModemNetNode::generateDeviceDataForCommonFile( | ||
46 | SystemFile & , | ||
47 | long ) { | ||
48 | return 0; | ||
49 | } | ||
50 | |||
51 | void ModemNetNode::setSpecificAttribute( QString & , QString & ) { | 40 | void ModemNetNode::setSpecificAttribute( QString & , QString & ) { |
52 | } | 41 | } |
53 | 42 | ||
54 | void ModemNetNode::saveSpecificAttribute( QTextStream & ) { | 43 | void ModemNetNode::saveSpecificAttribute( QTextStream & ) { |
55 | } | 44 | } |
56 | 45 | ||
57 | extern "C" { | 46 | extern "C" { |
58 | void create_plugin( QList<ANetNode> & PNN ) { | 47 | void create_plugin( QList<ANetNode> & PNN ) { |
59 | PNN.append( new ModemNetNode() ); | 48 | PNN.append( new ModemNetNode() ); |
60 | } | 49 | } |
61 | } | 50 | } |
diff --git a/noncore/settings/networksettings2/modem/modem_NN.h b/noncore/settings/networksettings2/modem/modem_NN.h index 2f496dd..a76525f 100644 --- a/noncore/settings/networksettings2/modem/modem_NN.h +++ b/noncore/settings/networksettings2/modem/modem_NN.h | |||
@@ -1,44 +1,36 @@ | |||
1 | #ifndef MODEM_NETNODE_H | 1 | #ifndef MODEM_NETNODE_H |
2 | #define MODEM_NETNODE_H | 2 | #define MODEM_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AModem; | 6 | class AModem; |
7 | 7 | ||
8 | class ModemNetNode : public ANetNode{ | 8 | class ModemNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | |||
22 | virtual ANetNodeInstance * createInstance( void ); | 21 | virtual ANetNodeInstance * createInstance( void ); |
23 | |||
24 | virtual const char ** needs( void ); | 22 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 23 | virtual const char * provides( void ); |
26 | 24 | ||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | |||
33 | private: | 25 | private: |
34 | 26 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 27 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 28 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 29 | }; |
38 | 30 | ||
39 | extern "C" | 31 | extern "C" |
40 | { | 32 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 33 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 34 | }; |
43 | 35 | ||
44 | #endif | 36 | #endif |
diff --git a/noncore/settings/networksettings2/modem/modem_NNI.cpp b/noncore/settings/networksettings2/modem/modem_NNI.cpp index 6c76b56..91df22b 100644 --- a/noncore/settings/networksettings2/modem/modem_NNI.cpp +++ b/noncore/settings/networksettings2/modem/modem_NNI.cpp | |||
@@ -1,37 +1,31 @@ | |||
1 | #include "modemedit.h" | 1 | #include "modemedit.h" |
2 | #include "modem_NNI.h" | 2 | #include "modem_NNI.h" |
3 | #include "modem_NN.h" | 3 | #include "modem_NN.h" |
4 | 4 | ||
5 | AModem::AModem( ModemNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | AModem::AModem( ModemNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | 6 | ||
7 | GUI = 0; | 7 | GUI = 0; |
8 | RT = 0; | 8 | RT = 0; |
9 | } | 9 | } |
10 | 10 | ||
11 | void AModem::setSpecificAttribute( QString & , QString & ) { | 11 | void AModem::setSpecificAttribute( QString & , QString & ) { |
12 | } | 12 | } |
13 | 13 | ||
14 | void AModem::saveSpecificAttribute( QTextStream & ) { | 14 | void AModem::saveSpecificAttribute( QTextStream & ) { |
15 | } | 15 | } |
16 | 16 | ||
17 | QWidget * AModem::edit( QWidget * parent ) { | 17 | QWidget * AModem::edit( QWidget * parent ) { |
18 | GUI = new ModemEdit( parent ); | 18 | GUI = new ModemEdit( parent ); |
19 | GUI->showData( Data ); | 19 | GUI->showData( Data ); |
20 | return GUI; | 20 | return GUI; |
21 | } | 21 | } |
22 | 22 | ||
23 | QString AModem::acceptable( void ) { | 23 | QString AModem::acceptable( void ) { |
24 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 24 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
25 | } | 25 | } |
26 | 26 | ||
27 | void AModem::commit( void ) { | 27 | void AModem::commit( void ) { |
28 | if( GUI && GUI->commit( Data ) ) | 28 | if( GUI && GUI->commit( Data ) ) |
29 | setModified( 1 ); | 29 | setModified( 1 ); |
30 | } | 30 | } |
31 | 31 | ||
32 | bool AModem::generateDataForCommonFile( | ||
33 | SystemFile & , | ||
34 | long ) { | ||
35 | return 1; | ||
36 | } | ||
37 | |||
diff --git a/noncore/settings/networksettings2/modem/modem_NNI.h b/noncore/settings/networksettings2/modem/modem_NNI.h index a623704..ca7c279 100644 --- a/noncore/settings/networksettings2/modem/modem_NNI.h +++ b/noncore/settings/networksettings2/modem/modem_NNI.h | |||
@@ -1,48 +1,42 @@ | |||
1 | #ifndef Modem_H | 1 | #ifndef Modem_H |
2 | #define Modem_H | 2 | #define Modem_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "modemdata.h" | 5 | #include "modemdata.h" |
6 | #include "modemrun.h" | 6 | #include "modemrun.h" |
7 | 7 | ||
8 | class ModemNetNode; | 8 | class ModemNetNode; |
9 | class ModemEdit; | 9 | class ModemEdit; |
10 | 10 | ||
11 | class AModem : public ANetNodeInstance { | 11 | class AModem : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AModem( ModemNetNode * PNN ); | 15 | AModem( ModemNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new ModemRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new ModemRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | ||
31 | { return 0; } | ||
32 | virtual bool generateDataForCommonFile( | ||
33 | SystemFile & SF, long DevNr ); | ||
34 | |||
35 | protected : | 29 | protected : |
36 | 30 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
39 | 33 | ||
40 | private : | 34 | private : |
41 | 35 | ||
42 | ModemEdit * GUI; | 36 | ModemEdit * GUI; |
43 | ModemData Data; | 37 | ModemData Data; |
44 | ModemRun * RT; | 38 | ModemRun * RT; |
45 | 39 | ||
46 | }; | 40 | }; |
47 | 41 | ||
48 | #endif | 42 | #endif |
diff --git a/noncore/settings/networksettings2/modem/modemrun.h b/noncore/settings/networksettings2/modem/modemrun.h index 336462e..491a677 100644 --- a/noncore/settings/networksettings2/modem/modemrun.h +++ b/noncore/settings/networksettings2/modem/modemrun.h | |||
@@ -1,25 +1,28 @@ | |||
1 | #include <asline.h> | 1 | #include <asline.h> |
2 | #include "modemdata.h" | 2 | #include "modemdata.h" |
3 | 3 | ||
4 | class ModemRun : public AsLine { | 4 | class ModemRun : public AsLine { |
5 | 5 | ||
6 | public : | 6 | public : |
7 | 7 | ||
8 | ModemRun( ANetNodeInstance * NNI, | 8 | ModemRun( ANetNodeInstance * NNI, |
9 | ModemData & Data ) : AsLine ( NNI ) | 9 | ModemData & Data ) : AsLine ( NNI ) |
10 | { } | 10 | { } |
11 | 11 | ||
12 | virtual AsLine * asLine( void ) | 12 | virtual AsLine * asLine( void ) |
13 | { return (AsLine *)this; } | 13 | { return (AsLine *)this; } |
14 | 14 | ||
15 | virtual QString deviceFile( void ) | ||
16 | { return QString("/dev/modem"); } | ||
17 | |||
15 | protected : | 18 | protected : |
16 | 19 | ||
17 | void detectState( NodeCollection * ) | 20 | void detectState( NodeCollection * ) |
18 | { } | 21 | { } |
19 | 22 | ||
20 | bool setState( NodeCollection *, Action_t, bool ) | 23 | bool setState( NodeCollection *, Action_t, bool ) |
21 | { return 0; } | 24 | { return 0; } |
22 | 25 | ||
23 | bool canSetState( State_t, Action_t ) | 26 | bool canSetState( State_t, Action_t ) |
24 | { return 0; } | 27 | { return 0; } |
25 | }; | 28 | }; |
diff --git a/noncore/settings/networksettings2/network/network_NN.cpp b/noncore/settings/networksettings2/network/network_NN.cpp index b4313c4..1feffdb 100644 --- a/noncore/settings/networksettings2/network/network_NN.cpp +++ b/noncore/settings/networksettings2/network/network_NN.cpp | |||
@@ -1,62 +1,82 @@ | |||
1 | #include <asdevice.h> | ||
1 | #include "network_NN.h" | 2 | #include "network_NN.h" |
2 | #include "network_NNI.h" | 3 | #include "network_NNI.h" |
3 | 4 | ||
4 | static const char * NetworkNeeds[] = | 5 | static const char * NetworkNeeds[] = |
5 | { "device", | 6 | { "device", |
6 | 0 | 7 | 0 |
7 | }; | 8 | }; |
8 | 9 | ||
9 | /** | 10 | /** |
10 | * Constructor, find all of the possible interfaces | 11 | * Constructor, find all of the possible interfaces |
11 | */ | 12 | */ |
12 | NetworkNetNode::NetworkNetNode() : ANetNode(tr("IP Configuration")) { | 13 | NetworkNetNode::NetworkNetNode() : ANetNode(tr("IP Configuration")) { |
13 | } | 14 | } |
14 | 15 | ||
15 | /** | 16 | /** |
16 | * Delete any interfaces that we own. | 17 | * Delete any interfaces that we own. |
17 | */ | 18 | */ |
18 | NetworkNetNode::~NetworkNetNode(){ | 19 | NetworkNetNode::~NetworkNetNode(){ |
19 | } | 20 | } |
20 | 21 | ||
21 | const QString NetworkNetNode::nodeDescription(){ | 22 | const QString NetworkNetNode::nodeDescription(){ |
22 | return tr("\ | 23 | return tr("\ |
23 | <p>Sets up TCP/IP options.</p>\ | 24 | <p>Sets up TCP/IP options.</p>\ |
24 | <p>Use this to configure the TCP/IP protocol</p>\ | 25 | <p>Use this to configure the TCP/IP protocol</p>\ |
25 | " | 26 | " |
26 | ); | 27 | ); |
27 | } | 28 | } |
28 | 29 | ||
29 | ANetNodeInstance * NetworkNetNode::createInstance( void ) { | 30 | ANetNodeInstance * NetworkNetNode::createInstance( void ) { |
30 | return new ANetwork( this ); | 31 | return new ANetwork( this ); |
31 | } | 32 | } |
32 | 33 | ||
33 | const char ** NetworkNetNode::needs( void ) { | 34 | bool NetworkNetNode::hasDataForFile( const QString & S ) { |
34 | return NetworkNeeds; | 35 | return S == "interfaces"; |
35 | } | 36 | } |
36 | 37 | ||
37 | const char * NetworkNetNode::provides( void ) { | 38 | short NetworkNetNode::generateFile( const QString & ID, |
38 | return "connection"; | 39 | const QString & , |
40 | QTextStream & TS, | ||
41 | ANetNodeInstance * NNI, | ||
42 | long DevNr ) { | ||
43 | |||
44 | QString NIC = NNI->runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); | ||
45 | |||
46 | if( ID == "interfaces" ) { | ||
47 | Log(("Generate entry for %s in %s\n", NIC.latin1(), ID.latin1() )); | ||
48 | // generate mapping stanza for this interface | ||
49 | TS << "# check if " | ||
50 | << NIC | ||
51 | << " can be brought UP" | ||
52 | << endl; | ||
53 | TS << "mapping " | ||
54 | << NIC | ||
55 | << endl; | ||
56 | TS << " script networksettings2-request" | ||
57 | << endl | ||
58 | << endl; | ||
59 | return 0; | ||
60 | } | ||
61 | return 1; | ||
39 | } | 62 | } |
40 | 63 | ||
41 | bool NetworkNetNode::generateProperFilesFor( | 64 | const char ** NetworkNetNode::needs( void ) { |
42 | ANetNodeInstance * ) { | 65 | return NetworkNeeds; |
43 | return 0; | ||
44 | } | 66 | } |
45 | 67 | ||
46 | bool NetworkNetNode::generateDeviceDataForCommonFile( | 68 | const char * NetworkNetNode::provides( void ) { |
47 | SystemFile & , | 69 | return "connection"; |
48 | long ) { | ||
49 | return 0; | ||
50 | } | 70 | } |
51 | 71 | ||
52 | void NetworkNetNode::setSpecificAttribute( QString & , QString & ) { | 72 | void NetworkNetNode::setSpecificAttribute( QString & , QString & ) { |
53 | } | 73 | } |
54 | 74 | ||
55 | void NetworkNetNode::saveSpecificAttribute( QTextStream & ) { | 75 | void NetworkNetNode::saveSpecificAttribute( QTextStream & ) { |
56 | } | 76 | } |
57 | 77 | ||
58 | extern "C" { | 78 | extern "C" { |
59 | void create_plugin( QList<ANetNode> & PNN ) { | 79 | void create_plugin( QList<ANetNode> & PNN ) { |
60 | PNN.append( new NetworkNetNode() ); | 80 | PNN.append( new NetworkNetNode() ); |
61 | } | 81 | } |
62 | } | 82 | } |
diff --git a/noncore/settings/networksettings2/network/network_NN.h b/noncore/settings/networksettings2/network/network_NN.h index 6548c32..745d1a7 100644 --- a/noncore/settings/networksettings2/network/network_NN.h +++ b/noncore/settings/networksettings2/network/network_NN.h | |||
@@ -1,44 +1,43 @@ | |||
1 | #ifndef NETWORK_NETNODE_H | 1 | #ifndef NETWORK_NETNODE_H |
2 | #define NETWORK_NETNODE_H | 2 | #define NETWORK_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class ANetwork; | 6 | class ANetwork; |
7 | 7 | ||
8 | class NetworkNetNode : public ANetNode{ | 8 | class NetworkNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
14 | NetworkNetNode(); | 14 | NetworkNetNode(); |
15 | virtual ~NetworkNetNode(); | 15 | virtual ~NetworkNetNode(); |
16 | 16 | ||
17 | virtual const QString pixmapName() | 17 | virtual bool hasDataForFile( const QString & S ); |
18 | { return "Devices/tcpip"; } | ||
19 | 18 | ||
20 | virtual const QString nodeDescription() ; | 19 | virtual short generateFile( const QString & ID, |
20 | const QString & Path, | ||
21 | QTextStream & TS, | ||
22 | ANetNodeInstance * NNI, | ||
23 | long DevNr ); | ||
24 | virtual const QString pixmapName() | ||
25 | { return "Devices/tcpip"; } | ||
21 | 26 | ||
22 | virtual ANetNodeInstance * createInstance( void ); | 27 | virtual const QString nodeDescription() ; |
23 | 28 | virtual ANetNodeInstance * createInstance( void ); | |
24 | virtual const char ** needs( void ); | 29 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 30 | virtual const char * provides( void ); |
26 | |||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | 31 | ||
33 | private: | 32 | private: |
34 | 33 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 34 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 35 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 36 | }; |
38 | 37 | ||
39 | extern "C" | 38 | extern "C" |
40 | { | 39 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 40 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 41 | }; |
43 | 42 | ||
44 | #endif | 43 | #endif |
diff --git a/noncore/settings/networksettings2/network/network_NNI.cpp b/noncore/settings/networksettings2/network/network_NNI.cpp index 3e368a2..324c6e2 100644 --- a/noncore/settings/networksettings2/network/network_NNI.cpp +++ b/noncore/settings/networksettings2/network/network_NNI.cpp | |||
@@ -54,136 +54,166 @@ void ANetwork::setSpecificAttribute( QString & A, QString & V ) { | |||
54 | 54 | ||
55 | void ANetwork::saveSpecificAttribute( QTextStream & TS ) { | 55 | void ANetwork::saveSpecificAttribute( QTextStream & TS ) { |
56 | TS << "usedhcp=" << ((Data.UseDHCP) ? "yes" : "no") << endl; | 56 | TS << "usedhcp=" << ((Data.UseDHCP) ? "yes" : "no") << endl; |
57 | TS << "sendhostname=" << ((Data.SendHostname) ? "yes" : "no") << endl; | 57 | TS << "sendhostname=" << ((Data.SendHostname) ? "yes" : "no") << endl; |
58 | TS << "hostname=" << Data.Hostname << endl; | 58 | TS << "hostname=" << Data.Hostname << endl; |
59 | TS << "ipaddress=" << Data.IPAddress << endl; | 59 | TS << "ipaddress=" << Data.IPAddress << endl; |
60 | TS << "netmask=" << Data.NetMask << endl; | 60 | TS << "netmask=" << Data.NetMask << endl; |
61 | TS << "broadcast=" << Data.Broadcast << endl; | 61 | TS << "broadcast=" << Data.Broadcast << endl; |
62 | TS << "gateway=" << Data.Gateway << endl; | 62 | TS << "gateway=" << Data.Gateway << endl; |
63 | TS << "dns1=" << Data.DNS1 << endl; | 63 | TS << "dns1=" << Data.DNS1 << endl; |
64 | TS << "dns2=" << Data.DNS2 << endl; | 64 | TS << "dns2=" << Data.DNS2 << endl; |
65 | for ( QStringList::Iterator it = Data.PreUp_SL.begin(); | 65 | for ( QStringList::Iterator it = Data.PreUp_SL.begin(); |
66 | it != Data.PreUp_SL.end(); | 66 | it != Data.PreUp_SL.end(); |
67 | ++it ) { | 67 | ++it ) { |
68 | TS << "preup=" << quote(*it) << endl; | 68 | TS << "preup=" << quote(*it) << endl; |
69 | } | 69 | } |
70 | for ( QStringList::Iterator it = Data.PreDown_SL.begin(); | 70 | for ( QStringList::Iterator it = Data.PreDown_SL.begin(); |
71 | it != Data.PreDown_SL.end(); | 71 | it != Data.PreDown_SL.end(); |
72 | ++it ) { | 72 | ++it ) { |
73 | TS << "predown=" << quote(*it) << endl; | 73 | TS << "predown=" << quote(*it) << endl; |
74 | } | 74 | } |
75 | for ( QStringList::Iterator it = Data.PostUp_SL.begin(); | 75 | for ( QStringList::Iterator it = Data.PostUp_SL.begin(); |
76 | it != Data.PostUp_SL.end(); | 76 | it != Data.PostUp_SL.end(); |
77 | ++it ) { | 77 | ++it ) { |
78 | TS << "postup=" << quote(*it) << endl; | 78 | TS << "postup=" << quote(*it) << endl; |
79 | } | 79 | } |
80 | for ( QStringList::Iterator it = Data.PostDown_SL.begin(); | 80 | for ( QStringList::Iterator it = Data.PostDown_SL.begin(); |
81 | it != Data.PostDown_SL.end(); | 81 | it != Data.PostDown_SL.end(); |
82 | ++it ) { | 82 | ++it ) { |
83 | TS << "postdown=" << quote(*it) << endl; | 83 | TS << "postdown=" << quote(*it) << endl; |
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | QWidget * ANetwork::edit( QWidget * parent ) { | 87 | QWidget * ANetwork::edit( QWidget * parent ) { |
88 | GUI = new NetworkEdit( parent ); | 88 | GUI = new NetworkEdit( parent ); |
89 | GUI->showData( Data ); | 89 | GUI->showData( Data ); |
90 | return GUI; | 90 | return GUI; |
91 | } | 91 | } |
92 | 92 | ||
93 | QString ANetwork::acceptable( void ) { | 93 | QString ANetwork::acceptable( void ) { |
94 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 94 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
95 | } | 95 | } |
96 | 96 | ||
97 | void ANetwork::commit( void ) { | 97 | void ANetwork::commit( void ) { |
98 | if( GUI && GUI->commit( Data ) ) | 98 | if( GUI && GUI->commit( Data ) ) |
99 | setModified( 1 ); | 99 | setModified( 1 ); |
100 | } | 100 | } |
101 | 101 | ||
102 | bool ANetwork::hasDataFor( const QString & S ) { | 102 | bool ANetwork::hasDataForFile( const QString & S ) { |
103 | return S == "interfaces"; | 103 | return S == "interfaces"; |
104 | } | 104 | } |
105 | 105 | ||
106 | bool ANetwork::generateDataForCommonFile( SystemFile & S, long DevNr ) { | 106 | short ANetwork::generateFile( const QString & ID, |
107 | const QString & Path, | ||
108 | QTextStream &TS, | ||
109 | long DevNr | ||
110 | ) { | ||
111 | |||
112 | short rvl, rvd ; | ||
107 | QString NIC = runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); | 113 | QString NIC = runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); |
108 | 114 | ||
109 | if( S.name() == "interfaces" ) { | 115 | rvl = 1; |
116 | if( ID == "interfaces" ) { | ||
117 | Log(("Generate Network for %s\n", ID.latin1() )); | ||
110 | // we can safely call from here since device item is deeper | 118 | // we can safely call from here since device item is deeper |
111 | if( Data.UseDHCP ) { | 119 | if( Data.UseDHCP ) { |
112 | S << "iface " | 120 | TS << "iface " |
113 | << NIC | 121 | << NIC |
114 | << "-c" | 122 | << "-c" |
115 | << connection()->number() | 123 | << connection()->number() |
116 | << "-allowed inet dhcp" | 124 | << "-allowed inet dhcp" |
117 | << endl; | 125 | << endl; |
118 | S << " up echo \"" | 126 | TS << " up echo \"" |
119 | << NIC | 127 | << NIC |
120 | << "\" > /tmp/profile-" | 128 | << "\" > /tmp/profile-" |
121 | << connection()->number() | 129 | << connection()->number() |
122 | << ".up" | 130 | << ".up" |
123 | << endl; | 131 | << endl; |
124 | if( Data.SendHostname ) { | 132 | if( Data.SendHostname ) { |
125 | S << " hostname " | 133 | TS << " hostname " |
126 | << Data.Hostname | 134 | << Data.Hostname |
127 | << endl; | 135 | << endl; |
128 | } | 136 | } |
129 | 137 | ||
130 | S << " down rm -f /tmp/profile-" | 138 | TS << " down rm -f /tmp/profile-" |
131 | << connection()->number() | 139 | << connection()->number() |
132 | << ".up" | 140 | << ".up" |
133 | << endl; | 141 | << endl; |
134 | } else { | 142 | } else { |
135 | S << "iface " | 143 | TS << "iface " |
136 | << NIC << "-c" | 144 | << NIC << "-c" |
137 | << connection()->number() | 145 | << connection()->number() |
138 | << "-allowed inet static" | 146 | << "-allowed inet static" |
139 | << endl; | 147 | << endl; |
140 | S << " up echo \"" | 148 | TS << " up echo \"" |
141 | << NIC | 149 | << NIC |
142 | << "\" > /tmp/profile-" | 150 | << "\" > /tmp/profile-" |
143 | << connection()->number() | 151 | << connection()->number() |
144 | << ".up" | 152 | << ".up" |
145 | << endl; | 153 | << endl; |
146 | S << " down rm -f /tmp/profile-" | 154 | TS << " down rm -f /tmp/profile-" |
147 | << connection()->number() | 155 | << connection()->number() |
148 | << ".up" | 156 | << ".up" |
149 | << endl; | 157 | << endl; |
150 | S << " address " << Data.IPAddress << endl; | 158 | TS << " address " |
151 | S << " broadcast " << Data.Broadcast << endl; | 159 | << Data.IPAddress |
152 | S << " netmask " << Data.NetMask << endl; | 160 | << endl; |
161 | TS << " broadcast " | ||
162 | << Data.Broadcast | ||
163 | << endl; | ||
164 | TS << " netmask " | ||
165 | << Data.NetMask | ||
166 | << endl; | ||
153 | 167 | ||
154 | // derive network address = IPAddress & netmask | 168 | // derive network address = IPAddress & netmask |
155 | { QString NW; | 169 | { QString NW; |
156 | QStringList ipal = QStringList::split( '.', Data.IPAddress ); | 170 | QStringList ipal = QStringList::split( '.', Data.IPAddress ); |
157 | QStringList nmal = QStringList::split( '.', Data.NetMask ); | 171 | QStringList nmal = QStringList::split( '.', Data.NetMask ); |
158 | 172 | ||
159 | NW = QString( "%1.%2.%3.%4" ). | 173 | NW = QString( "%1.%2.%3.%4" ). |
160 | arg( ipal[0].toShort() & nmal[0].toShort() ). | 174 | arg( ipal[0].toShort() & nmal[0].toShort() ). |
161 | arg( ipal[1].toShort() & nmal[1].toShort() ). | 175 | arg( ipal[1].toShort() & nmal[1].toShort() ). |
162 | arg( ipal[2].toShort() & nmal[2].toShort() ). | 176 | arg( ipal[2].toShort() & nmal[2].toShort() ). |
163 | arg( ipal[3].toShort() & nmal[3].toShort() ); | 177 | arg( ipal[3].toShort() & nmal[3].toShort() ); |
164 | S << " network " << NW << endl; | 178 | TS << " network " |
179 | << NW | ||
180 | << endl; | ||
165 | } | 181 | } |
166 | } | 182 | } |
167 | for ( QStringList::Iterator it = Data.PreUp_SL.begin(); | 183 | for ( QStringList::Iterator it = Data.PreUp_SL.begin(); |
168 | it != Data.PreUp_SL.end(); | 184 | it != Data.PreUp_SL.end(); |
169 | ++it ) { | 185 | ++it ) { |
170 | S << " pre-up " << (*it) << endl; | 186 | TS << " pre-up " |
187 | << (*it) | ||
188 | << endl; | ||
171 | } | 189 | } |
172 | for ( QStringList::Iterator it = Data.PostUp_SL.begin(); | 190 | for ( QStringList::Iterator it = Data.PostUp_SL.begin(); |
173 | it != Data.PostUp_SL.end(); | 191 | it != Data.PostUp_SL.end(); |
174 | ++it ) { | 192 | ++it ) { |
175 | S << " up " << (*it) << endl; | 193 | TS << " up " |
194 | << (*it) | ||
195 | << endl; | ||
176 | } | 196 | } |
177 | for ( QStringList::Iterator it = Data.PreDown_SL.begin(); | 197 | for ( QStringList::Iterator it = Data.PreDown_SL.begin(); |
178 | it != Data.PreDown_SL.end(); | 198 | it != Data.PreDown_SL.end(); |
179 | ++it ) { | 199 | ++it ) { |
180 | S << " down " << (*it) << endl; | 200 | TS << " down " |
201 | << (*it) | ||
202 | << endl; | ||
181 | } | 203 | } |
182 | for ( QStringList::Iterator it = Data.PostDown_SL.begin(); | 204 | for ( QStringList::Iterator it = Data.PostDown_SL.begin(); |
183 | it != Data.PostDown_SL.end(); | 205 | it != Data.PostDown_SL.end(); |
184 | ++it ) { | 206 | ++it ) { |
185 | S << " post-down " << (*it) << endl; | 207 | TS << " post-down " |
208 | << (*it) | ||
209 | << endl; | ||
186 | } | 210 | } |
211 | rvl = 0; | ||
187 | } | 212 | } |
188 | return 0; | 213 | |
214 | // embed other info in it | ||
215 | rvd = connection()->getToplevel()->generateFileEmbedded( ID, Path, TS, DevNr ); | ||
216 | |||
217 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
218 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
189 | } | 219 | } |
diff --git a/noncore/settings/networksettings2/network/network_NNI.h b/noncore/settings/networksettings2/network/network_NNI.h index 0058793..5e42503 100644 --- a/noncore/settings/networksettings2/network/network_NNI.h +++ b/noncore/settings/networksettings2/network/network_NNI.h | |||
@@ -1,47 +1,48 @@ | |||
1 | #ifndef NETWORK_H | 1 | #ifndef NETWORK_H |
2 | #define NETWORK_H | 2 | #define NETWORK_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "networkdata.h" | 5 | #include "networkdata.h" |
6 | #include "networkrun.h" | 6 | #include "networkrun.h" |
7 | 7 | ||
8 | class NetworkNetNode; | 8 | class NetworkNetNode; |
9 | class NetworkEdit; | 9 | class NetworkEdit; |
10 | class SystemFile; | 10 | class SystemFile; |
11 | 11 | ||
12 | class ANetwork : public ANetNodeInstance{ | 12 | class ANetwork : public ANetNodeInstance{ |
13 | 13 | ||
14 | public : | 14 | public : |
15 | 15 | ||
16 | ANetwork( NetworkNetNode * PNN ); | 16 | ANetwork( NetworkNetNode * PNN ); |
17 | 17 | ||
18 | RuntimeInfo * runtime( void ) | ||
19 | { return | ||
20 | ( RT ) ? RT : ( RT = new NetworkRun( this, Data ) ); | ||
21 | } | ||
22 | |||
18 | QWidget * edit( QWidget * parent ); | 23 | QWidget * edit( QWidget * parent ); |
19 | QString acceptable( void ); | 24 | QString acceptable( void ); |
20 | void commit( void ); | 25 | void commit( void ); |
21 | 26 | ||
22 | RuntimeInfo * runtime( void ) | ||
23 | { if( RT == 0 ) | ||
24 | RT = new NetworkRun( this, Data ); | ||
25 | return RT; | ||
26 | } | ||
27 | |||
28 | virtual void * data( void ) | 27 | virtual void * data( void ) |
29 | { return (void *)&Data; } | 28 | { return (void *)&Data; } |
30 | 29 | ||
31 | virtual bool hasDataFor( const QString & S ); | 30 | virtual bool hasDataForFile( const QString & S ); |
32 | virtual bool generateDataForCommonFile( | 31 | virtual short generateFile( const QString & ID, |
33 | SystemFile & SF, long DevNr ); | 32 | const QString & Path, |
33 | QTextStream &TS, | ||
34 | long DevNr ); | ||
34 | 35 | ||
35 | protected : | 36 | protected : |
36 | 37 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 38 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 39 | virtual void saveSpecificAttribute( QTextStream & TS ); |
39 | 40 | ||
40 | private : | 41 | private : |
41 | 42 | ||
42 | NetworkEdit * GUI; | 43 | NetworkEdit * GUI; |
43 | NetworkData_t Data; | 44 | NetworkData_t Data; |
44 | NetworkRun * RT; | 45 | NetworkRun * RT; |
45 | }; | 46 | }; |
46 | 47 | ||
47 | #endif | 48 | #endif |
diff --git a/noncore/settings/networksettings2/networksettings.cpp b/noncore/settings/networksettings2/networksettings.cpp index 6ee4106..ce0eabc 100644 --- a/noncore/settings/networksettings2/networksettings.cpp +++ b/noncore/settings/networksettings2/networksettings.cpp | |||
@@ -1,238 +1,240 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <unistd.h> | 2 | #include <unistd.h> |
3 | #include <errno.h> | ||
3 | 4 | ||
4 | #include <qpe/qpeapplication.h> | 5 | #include <qpe/qpeapplication.h> |
5 | #include <qlistbox.h> | 6 | #include <qlistbox.h> |
6 | #include <qgroupbox.h> | 7 | #include <qgroupbox.h> |
7 | #include <qtimer.h> | 8 | #include <qtimer.h> |
8 | #include <qlistbox.h> | 9 | #include <qlistbox.h> |
9 | #include <qmessagebox.h> | 10 | #include <qmessagebox.h> |
10 | #include <qlabel.h> | 11 | #include <qlabel.h> |
11 | #include <qiconview.h> | 12 | #include <qiconview.h> |
12 | #include <qtimer.h> | 13 | #include <qtimer.h> |
13 | #include <qpe/qpeapplication.h> | 14 | #include <qpe/qpeapplication.h> |
14 | #include <qtoolbutton.h> | 15 | #include <qtoolbutton.h> |
16 | #include <qevent.h> | ||
15 | 17 | ||
16 | #include <asdevice.h> | 18 | #include <asdevice.h> |
17 | #include "networksettings.h" | 19 | #include "networksettings.h" |
18 | #include "netnode.h" | 20 | #include "netnode.h" |
19 | #include "editconnection.h" | 21 | #include "editconnection.h" |
20 | 22 | ||
21 | NetworkSettings::NetworkSettings( QWidget *parent, | 23 | NetworkSettings::NetworkSettings( QWidget *parent, |
22 | const char *name, | 24 | const char *name, |
23 | WFlags fl ) : NetworkSettingsGUI(parent,name,fl), | 25 | WFlags fl ) : NetworkSettingsGUI(parent,name,fl), |
24 | NSD() { | 26 | NSD() { |
25 | 27 | ||
26 | UpdateTimer = new QTimer( this ); | 28 | UpdateTimer = new QTimer( this ); |
27 | 29 | ||
28 | // set pixmaps | 30 | // set pixmaps |
29 | Add_TB->setPixmap( NSResources->getPixmap( "add" ) ); | 31 | Add_TB->setPixmap( NSResources->getPixmap( "add" ) ); |
30 | Delete_TB->setPixmap( NSResources->getPixmap( "remove" ) ); | 32 | Delete_TB->setPixmap( NSResources->getPixmap( "remove" ) ); |
31 | CheckState_TB->setPixmap( NSResources->getPixmap( "check" ) ); | 33 | CheckState_TB->setPixmap( NSResources->getPixmap( "check" ) ); |
32 | Enable_TB->setPixmap( NSResources->getPixmap( "disabled" ) ); | 34 | Enable_TB->setPixmap( NSResources->getPixmap( "disabled" ) ); |
33 | GenConfig_TB->setPixmap( NSResources->getPixmap( "configure" ) ); | 35 | GenConfig_TB->setPixmap( NSResources->getPixmap( "configure" ) ); |
34 | 36 | ||
35 | Connect_TB->setPixmap( NSResources->getPixmap( "connected" ) ); | 37 | Connect_TB->setPixmap( NSResources->getPixmap( "connected" ) ); |
36 | Disconnect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); | 38 | Disconnect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); |
37 | 39 | ||
38 | On_TB->setPixmap( NSResources->getPixmap( "off" ) ); | 40 | On_TB->setPixmap( NSResources->getPixmap( "off" ) ); |
39 | 41 | ||
40 | SLOT_ToProfile(); | 42 | SLOT_ToProfile(); |
41 | 43 | ||
42 | // populate main Listbox | 44 | // populate main Listbox |
43 | Profiles_LB->clear(); | 45 | Profiles_LB->clear(); |
46 | QPEApplication::setStylusOperation( | ||
47 | Profiles_LB->viewport(), QPEApplication::RightOnHold ); | ||
48 | |||
49 | connect( Profiles_LB, | ||
50 | SIGNAL(rightButtonPressed(QListBoxItem*,const QPoint&)), | ||
51 | this, SLOT(SLOT_EditNode(QListBoxItem*)) ); | ||
52 | |||
44 | { Name2Connection_t & M = NSResources->connections(); | 53 | { Name2Connection_t & M = NSResources->connections(); |
45 | NodeCollection * NC; | 54 | NodeCollection * NC; |
46 | // for all connections | 55 | // for all connections |
47 | for( QDictIterator<NodeCollection> it(M); | 56 | for( QDictIterator<NodeCollection> it(M); |
48 | it.current(); | 57 | it.current(); |
49 | ++it ) { | 58 | ++it ) { |
50 | NC = it.current(); | 59 | NC = it.current(); |
51 | Profiles_LB->insertItem( NC->devicePixmap(), | 60 | Profiles_LB->insertItem( NC->devicePixmap(), |
52 | NC->name() ); | 61 | NC->name() ); |
53 | } | 62 | } |
54 | } | 63 | } |
55 | 64 | ||
56 | if( Profiles_LB->count() ) { | 65 | if( Profiles_LB->count() ) { |
57 | Profiles_LB->setSelected( 0, TRUE ); | 66 | Profiles_LB->setSelected( 0, TRUE ); |
58 | } | 67 | } |
59 | 68 | ||
60 | // if no profiles -> auto popup editing | 69 | // if no profiles -> auto popup editing |
61 | if( NSResources->connections().count() == 0 ) { | 70 | if( NSResources->connections().count() == 0 ) { |
62 | QTimer::singleShot( 100, this, SLOT(SLOT_AddNode() ) ); | 71 | QTimer::singleShot( 100, this, SLOT(SLOT_AddNode() ) ); |
63 | } | 72 | } |
64 | 73 | ||
65 | connect( &(NSResources->system()), | 74 | connect( &(NSResources->system()), |
66 | SIGNAL( lineFromCommand(const QString &) ), | 75 | SIGNAL( lineFromCommand(const QString &) ), |
67 | this, SLOT( SLOT_CmdMessage(const QString &) ) ); | 76 | this, SLOT( SLOT_CmdMessage(const QString &) ) ); |
68 | 77 | ||
69 | UpdateTimer->start( 5000 ); | 78 | UpdateTimer->start( 5000 ); |
70 | connect( UpdateTimer, SIGNAL( timeout() ), | 79 | connect( UpdateTimer, SIGNAL( timeout() ), |
71 | this, SLOT( SLOT_RefreshStates() ) ); | 80 | this, SLOT( SLOT_RefreshStates() ) ); |
72 | 81 | ||
73 | /* Add QCopChannel */ | 82 | /* Add QCopChannel */ |
74 | connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), | 83 | connect( qApp, SIGNAL(appMessage(const QCString&,const QByteArray&)), |
75 | this, SLOT(SLOT_QCopMessage(const QCString&,const QByteArray&)) ); | 84 | this, SLOT(SLOT_QCopMessage(const QCString&,const QByteArray&)) ); |
76 | } | 85 | } |
77 | 86 | ||
78 | NetworkSettings::~NetworkSettings() { | 87 | NetworkSettings::~NetworkSettings() { |
79 | QString S; | 88 | QString S; |
80 | 89 | ||
81 | S = NSD.generateSettings(); | 90 | if( isModified() ) { |
82 | if( ! S.isEmpty() ) { | 91 | S = NSD.saveSettings(); |
83 | QMessageBox::warning( | 92 | if( ! S.isEmpty() ) { |
84 | 0, | 93 | // problem saving |
85 | tr( "In System Config" ), | 94 | QMessageBox::warning( |
86 | S | 95 | 0, |
87 | ); | 96 | tr( "Saving setup" ), S ); |
88 | } | 97 | } |
89 | 98 | ||
90 | S = NSD.saveSettings(); | 99 | SLOT_GenerateConfig(); |
91 | if( ! S.isEmpty() ) { | ||
92 | // problem saving | ||
93 | QMessageBox::warning( | ||
94 | 0, | ||
95 | tr( "Saving setup" ), S ); | ||
96 | } | 100 | } |
101 | |||
97 | } | 102 | } |
98 | 103 | ||
99 | void NetworkSettings::SLOT_CmdMessage( const QString & S ) { | 104 | void NetworkSettings::SLOT_CmdMessage( const QString & S ) { |
100 | Messages_LB->insertItem( S ); | 105 | Messages_LB->insertItem( S ); |
101 | Messages_LB->setCurrentItem( Messages_LB->count()-1 ); | 106 | Messages_LB->setCurrentItem( Messages_LB->count()-1 ); |
102 | Messages_LB->ensureCurrentVisible(); | 107 | Messages_LB->ensureCurrentVisible(); |
103 | } | 108 | } |
104 | 109 | ||
105 | void NetworkSettings::SLOT_RefreshStates( void ) { | 110 | void NetworkSettings::SLOT_RefreshStates( void ) { |
106 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); // remember | 111 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); // remember |
107 | 112 | ||
108 | if( LBI ) { | 113 | if( LBI ) { |
109 | NodeCollection * NC; | 114 | NodeCollection * NC; |
110 | NSResources->system().probeInterfaces(); | 115 | NSResources->system().probeInterfaces(); |
111 | // update current selection only | 116 | // update current selection only |
112 | NC = NSResources->findConnection( LBI->text() ); | 117 | NC = NSResources->findConnection( LBI->text() ); |
113 | if( NC ) { | 118 | if( NC ) { |
114 | State_t OldS = NC->state(); | 119 | State_t OldS = NC->state(); |
115 | State_t NewS = NC->state(1); | 120 | State_t NewS = NC->state(1); |
116 | if( OldS != NewS ) { | 121 | if( OldS != NewS ) { |
117 | updateProfileState( LBI ); | 122 | updateProfileState( LBI ); |
118 | } | 123 | } |
119 | } | 124 | } |
120 | } | 125 | } |
121 | 126 | ||
122 | 127 | ||
123 | /* -> LATER !! | 128 | /* -> LATER !! |
124 | bool is; | 129 | bool is; |
125 | NodeCollection * NC; | 130 | NodeCollection * NC; |
126 | 131 | ||
127 | for( unsigned int i = 0; i < Profiles_LB->count() ; i ++ ) { | 132 | for( unsigned int i = 0; i < Profiles_LB->count() ; i ++ ) { |
128 | NC = NSResources->findConnection( Profiles_LB->text(i) ); | 133 | NC = NSResources->findConnection( Profiles_LB->text(i) ); |
129 | if( NC ) { | 134 | if( NC ) { |
130 | State_t OldS = NC->state(); | 135 | State_t OldS = NC->state(); |
131 | State_t NewS = NC->state(1); | 136 | State_t NewS = NC->state(1); |
132 | if( OldS != NewS ) { | 137 | if( OldS != NewS ) { |
133 | is = Profiles_LB->isSelected(i); | 138 | is = Profiles_LB->isSelected(i); |
134 | Profiles_LB->changeItem( NC->statePixmap(NewS), | 139 | Profiles_LB->changeItem( NC->statePixmap(NewS), |
135 | NC->name(), | 140 | NC->name(), |
136 | i ); | 141 | i ); |
137 | if( is ) { | 142 | if( is ) { |
138 | Profiles_LB->setSelected( i, TRUE ); | 143 | Profiles_LB->setSelected( i, TRUE ); |
139 | } | 144 | } |
140 | } | 145 | } |
141 | } | 146 | } |
142 | } | 147 | } |
143 | if( ci >= 0 ) | 148 | if( ci >= 0 ) |
144 | Profiles_LB->setCurrentItem( ci ); | 149 | Profiles_LB->setCurrentItem( ci ); |
145 | */ | 150 | */ |
146 | } | 151 | } |
147 | 152 | ||
148 | void NetworkSettings::SLOT_NoLongerBusy( void ) { | ||
149 | NSResources->busy( FALSE ); | ||
150 | } | ||
151 | void NetworkSettings::SLOT_AddNode( void ) { | 153 | void NetworkSettings::SLOT_AddNode( void ) { |
152 | SLOT_EditNode( 0 ); | 154 | SLOT_EditNode( 0 ); |
153 | } | 155 | } |
154 | 156 | ||
155 | void NetworkSettings::SLOT_DeleteNode( void ) { | 157 | void NetworkSettings::SLOT_DeleteNode( void ) { |
156 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); | 158 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); |
157 | 159 | ||
158 | if ( ! LBI ) | 160 | if ( ! LBI ) |
159 | return; | 161 | return; |
160 | 162 | ||
161 | if( QMessageBox::warning( | 163 | if( QMessageBox::warning( |
162 | 0, | 164 | 0, |
163 | tr( "Removing profile" ), | 165 | tr( "Removing profile" ), |
164 | tr( "Remove selected profile ?" ), | 166 | tr( "Remove selected profile ?" ), |
165 | 1, 0 ) == 1 ) { | 167 | 1, 0 ) == 1 ) { |
166 | NSResources->removeConnection( LBI->text() ); | 168 | NSResources->removeConnection( LBI->text() ); |
167 | delete LBI; | 169 | delete LBI; |
168 | setModified( 1 ); | 170 | setModified( 1 ); |
169 | NSD.forceGeneration(1); | ||
170 | } | 171 | } |
171 | } | 172 | } |
172 | 173 | ||
173 | void NetworkSettings::SLOT_EditNode( QListBoxItem * LBI ) { | 174 | void NetworkSettings::SLOT_EditNode( QListBoxItem * LBI ) { |
174 | QString OldName = ""; | 175 | QString OldName = ""; |
176 | |||
177 | printf( "------------------ Edit NOde\n" ); | ||
175 | EditConnection EC( this ); | 178 | EditConnection EC( this ); |
176 | 179 | ||
177 | if( LBI ) { | 180 | if( LBI ) { |
178 | NodeCollection * NC = NSResources->findConnection( LBI->text() ); | 181 | NodeCollection * NC = NSResources->findConnection( LBI->text() ); |
179 | if( ! NC ) { | 182 | if( ! NC ) { |
180 | return; | 183 | return; |
181 | } | 184 | } |
182 | OldName = NC->name(); | 185 | OldName = NC->name(); |
183 | EC.setConnection( NC ); | 186 | EC.setConnection( NC ); |
184 | } | 187 | } |
185 | 188 | ||
186 | EC.showMaximized(); | 189 | EC.showMaximized(); |
187 | // disable refresh timer | 190 | // disable refresh timer |
188 | UpdateTimer->stop(); | 191 | UpdateTimer->stop(); |
189 | NSResources->busy( TRUE ); | 192 | |
190 | QTimer::singleShot( 1000, this, SLOT( SLOT_NoLongerBusy() )); | ||
191 | // we need to retry | 193 | // we need to retry |
192 | while( 1 ) { | 194 | while( 1 ) { |
193 | if( EC.exec() == QDialog::Accepted ) { | 195 | if( EC.exec() == QDialog::Accepted ) { |
194 | // toplevel item -> store | 196 | // toplevel item -> store |
195 | NodeCollection * NC = EC.connection(); | 197 | NodeCollection * NC = EC.connection(); |
196 | if( NC->isModified() ) { | 198 | if( NC->isModified() ) { |
197 | setModified( 1 ); | 199 | setModified( 1 ); |
198 | if( LBI ) { | 200 | if( LBI ) { |
199 | if( NC->name() != OldName ) { | 201 | if( NC->name() != OldName ) { |
200 | // find if new name is free | 202 | // find if new name is free |
201 | NodeCollection * LCN = NSResources->findConnection( | 203 | NodeCollection * LCN = NSResources->findConnection( |
202 | NC->name() ); | 204 | NC->name() ); |
203 | if( LCN ) { | 205 | if( LCN ) { |
204 | QMessageBox::warning( | 206 | QMessageBox::warning( |
205 | 0, | 207 | 0, |
206 | tr( "In System Config" ), | 208 | tr( "In System Config" ), |
207 | tr( "Name %1 already exists" ).arg(NC->name()) | 209 | tr( "Name %1 already exists" ).arg(NC->name()) |
208 | ); | 210 | ); |
209 | continue; // restart exec | 211 | continue; // restart exec |
210 | } // else new name | 212 | } // else new name |
211 | // new name -> remove item | 213 | // new name -> remove item |
212 | NSResources->removeConnection( OldName ); | 214 | NSResources->removeConnection( OldName ); |
213 | NSResources->addConnection( NC ); | 215 | NSResources->addConnection( NC ); |
214 | } // else not changed | 216 | } // else not changed |
215 | 217 | ||
216 | // must add it here since change will trigger event | 218 | // must add it here since change will trigger event |
217 | Profiles_LB->changeItem( NC->devicePixmap(), | 219 | Profiles_LB->changeItem( NC->devicePixmap(), |
218 | NC->name(), | 220 | NC->name(), |
219 | Profiles_LB->index( LBI ) | 221 | Profiles_LB->index( LBI ) |
220 | ); | 222 | ); |
221 | } else { | 223 | } else { |
222 | // new item | 224 | // new item |
223 | int ci = Profiles_LB->count(); | 225 | int ci = Profiles_LB->count(); |
224 | NSResources->addConnection( NC ); | 226 | NSResources->addConnection( NC ); |
225 | NC->setNumber( NSResources->assignConnectionNumber() ); | 227 | NC->setNumber( NSResources->assignConnectionNumber() ); |
226 | Profiles_LB->insertItem( NC->devicePixmap(), NC->name() ); | 228 | Profiles_LB->insertItem( NC->devicePixmap(), NC->name() ); |
227 | Profiles_LB->setSelected( ci, TRUE ); | 229 | Profiles_LB->setSelected( ci, TRUE ); |
228 | } | 230 | } |
229 | updateProfileState( LBI ); | 231 | updateProfileState( LBI ); |
230 | } | 232 | } |
231 | } else { | 233 | } else { |
232 | // cancelled : reset connection | 234 | // cancelled : reset connection |
233 | if( LBI ) { | 235 | if( LBI ) { |
234 | NodeCollection * NC = NSResources->findConnection( LBI->text() ); | 236 | NodeCollection * NC = NSResources->findConnection( LBI->text() ); |
235 | NC->reassign(); | 237 | NC->reassign(); |
236 | } | 238 | } |
237 | } | 239 | } |
238 | break; | 240 | break; |
@@ -274,105 +276,97 @@ void NetworkSettings::SLOT_ShowNode( QListBoxItem * LBI ) { | |||
274 | case Available : | 276 | case Available : |
275 | OnOn = 1; | 277 | OnOn = 1; |
276 | Connect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); | 278 | Connect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); |
277 | DisabledOn = 0; | 279 | DisabledOn = 0; |
278 | break; | 280 | break; |
279 | case IsUp : | 281 | case IsUp : |
280 | OnOn = ConnectOn = 1; | 282 | OnOn = ConnectOn = 1; |
281 | Connect_TB->setPixmap( NSResources->getPixmap( "connected" ) ); | 283 | Connect_TB->setPixmap( NSResources->getPixmap( "connected" ) ); |
282 | DisabledOn = 0; | 284 | DisabledOn = 0; |
283 | break; | 285 | break; |
284 | } | 286 | } |
285 | 287 | ||
286 | if( ! OnOn ) { | 288 | if( ! OnOn ) { |
287 | Connect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); | 289 | Connect_TB->setPixmap( NSResources->getPixmap( "disconnected" ) ); |
288 | } | 290 | } |
289 | 291 | ||
290 | // set button state | 292 | // set button state |
291 | Enable_TB->setEnabled( EnabledPossible ); | 293 | Enable_TB->setEnabled( EnabledPossible ); |
292 | On_TB->setEnabled( OnPossible ); | 294 | On_TB->setEnabled( OnPossible ); |
293 | Connect_TB->setEnabled( ConnectPossible ); | 295 | Connect_TB->setEnabled( ConnectPossible ); |
294 | 296 | ||
295 | Enable_TB->setOn( DisabledOn ); | 297 | Enable_TB->setOn( DisabledOn ); |
296 | On_TB->setOn( OnOn ); | 298 | On_TB->setOn( OnOn ); |
297 | Connect_TB->setOn( ConnectOn ); | 299 | Connect_TB->setOn( ConnectOn ); |
298 | 300 | ||
299 | if( NC->description().isEmpty() ) { | 301 | if( NC->description().isEmpty() ) { |
300 | Description_LBL->setText( tr( "<<No description>>" ) ); | 302 | Description_LBL->setText( tr( "<<No description>>" ) ); |
301 | } else { | 303 | } else { |
302 | Description_LBL->setText( NC->description() ); | 304 | Description_LBL->setText( NC->description() ); |
303 | } | 305 | } |
304 | 306 | ||
305 | Profile_GB->setTitle( LBI->text() + " : " + NC->stateName() ); | 307 | Profile_GB->setTitle( LBI->text() + " : " + NC->stateName() ); |
306 | } | 308 | } |
307 | 309 | ||
308 | void NetworkSettings::SLOT_CheckState( void ) { | 310 | void NetworkSettings::SLOT_CheckState( void ) { |
309 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); | 311 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); |
310 | if ( ! LBI ) | 312 | if ( ! LBI ) |
311 | return; | 313 | return; |
312 | updateProfileState( LBI ); | 314 | updateProfileState( LBI ); |
313 | } | 315 | } |
314 | 316 | ||
315 | void NetworkSettings::updateProfileState( QListBoxItem * LBI ) { | 317 | void NetworkSettings::updateProfileState( QListBoxItem * LBI ) { |
316 | if( LBI == Profiles_LB->item( Profiles_LB->currentItem() ) ) { | 318 | if( LBI == Profiles_LB->item( Profiles_LB->currentItem() ) ) { |
317 | SLOT_ShowNode( LBI ); | 319 | SLOT_ShowNode( LBI ); |
318 | } | 320 | } |
319 | } | 321 | } |
320 | 322 | ||
321 | void NetworkSettings::SLOT_GenerateConfig( void ) { | 323 | void NetworkSettings::SLOT_GenerateConfig( void ) { |
322 | QString S = NSD.generateSettings( TRUE ); | 324 | NSD.regenerate(); |
323 | |||
324 | if( ! S.isEmpty() ) { | ||
325 | QMessageBox::warning( | ||
326 | 0, | ||
327 | tr( "Generating system configuration" ), | ||
328 | S | ||
329 | ); | ||
330 | } | ||
331 | } | 325 | } |
332 | 326 | ||
333 | void NetworkSettings::SLOT_Enable( void ) { | 327 | void NetworkSettings::SLOT_Enable( void ) { |
334 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); | 328 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); |
335 | QString Msg; | 329 | QString Msg; |
336 | if ( ! LBI ) | 330 | if ( ! LBI ) |
337 | return; | 331 | return; |
338 | 332 | ||
339 | NodeCollection * NC = | 333 | NodeCollection * NC = |
340 | NSResources->findConnection( LBI->text() ); | 334 | NSResources->findConnection( LBI->text() ); |
341 | 335 | ||
342 | bool rv; | 336 | bool rv; |
343 | switch( NC->state() ) { | 337 | switch( NC->state() ) { |
344 | case Disabled : | 338 | case Disabled : |
345 | Msg = tr( "Cannot enable profile" ); | 339 | Msg = tr( "Cannot enable profile" ); |
346 | rv = NC->setState( Enable ); | 340 | rv = NC->setState( Enable ); |
347 | break; | 341 | break; |
348 | default : | 342 | default : |
349 | Msg = tr( "Cannot disable profile" ); | 343 | Msg = tr( "Cannot disable profile" ); |
350 | rv = NC->setState( Disable ); | 344 | rv = NC->setState( Disable ); |
351 | break; | 345 | break; |
352 | } | 346 | } |
353 | 347 | ||
354 | if( ! rv ) { | 348 | if( ! rv ) { |
355 | QMessageBox::warning( | 349 | QMessageBox::warning( |
356 | 0, | 350 | 0, |
357 | tr( "Activating profile" ), | 351 | tr( "Activating profile" ), |
358 | Msg ); | 352 | Msg ); |
359 | return; | 353 | return; |
360 | } | 354 | } |
361 | updateProfileState( LBI ); | 355 | updateProfileState( LBI ); |
362 | } | 356 | } |
363 | 357 | ||
364 | void NetworkSettings::SLOT_On( void ) { | 358 | void NetworkSettings::SLOT_On( void ) { |
365 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); | 359 | QListBoxItem * LBI = Profiles_LB->item( Profiles_LB->currentItem() ); |
366 | 360 | ||
367 | if ( ! LBI ) | 361 | if ( ! LBI ) |
368 | return; | 362 | return; |
369 | 363 | ||
370 | NodeCollection * NC = | 364 | NodeCollection * NC = |
371 | NSResources->findConnection( LBI->text() ); | 365 | NSResources->findConnection( LBI->text() ); |
372 | 366 | ||
373 | bool rv; | 367 | bool rv; |
374 | switch( NC->state() ) { | 368 | switch( NC->state() ) { |
375 | case Off : | 369 | case Off : |
376 | // activate interface | 370 | // activate interface |
377 | rv = NC->setState( Activate ); | 371 | rv = NC->setState( Activate ); |
378 | break; | 372 | break; |
diff --git a/noncore/settings/networksettings2/networksettings.h b/noncore/settings/networksettings2/networksettings.h index 8ffde06..8ec5d08 100644 --- a/noncore/settings/networksettings2/networksettings.h +++ b/noncore/settings/networksettings2/networksettings.h | |||
@@ -1,54 +1,53 @@ | |||
1 | #include "nsdata.h" | 1 | #include "nsdata.h" |
2 | #include "networksettingsGUI.h" | 2 | #include "networksettingsGUI.h" |
3 | #include "resources.h" | 3 | #include "resources.h" |
4 | 4 | ||
5 | class ANetNode; | 5 | class ANetNode; |
6 | class ANetNodeInstance; | 6 | class ANetNodeInstance; |
7 | class QTimer; | 7 | class QTimer; |
8 | class QListBoxItem; | 8 | class QListBoxItem; |
9 | class QEvent; | ||
9 | 10 | ||
10 | class NetworkSettings : public NetworkSettingsGUI { | 11 | class NetworkSettings : public NetworkSettingsGUI { |
11 | 12 | ||
12 | Q_OBJECT | 13 | Q_OBJECT |
13 | 14 | ||
14 | public : | 15 | public : |
15 | 16 | ||
16 | NetworkSettings( QWidget *parent=0, | 17 | NetworkSettings( QWidget *parent=0, |
17 | const char *name=0, | 18 | const char *name=0, |
18 | WFlags fl = 0 ); | 19 | WFlags fl = 0 ); |
19 | ~NetworkSettings( void ); | 20 | ~NetworkSettings( void ); |
20 | 21 | ||
21 | static QString appName( void ) | 22 | static QString appName( void ) |
22 | { return QString::fromLatin1("networksettings"); } | 23 | { return QString::fromLatin1("networksettings"); } |
23 | 24 | ||
24 | bool isModified( void ) | 25 | bool isModified( void ) |
25 | { return NSD.isModified(); } | 26 | { return NSD.isModified(); } |
26 | void setModified( bool m ) | 27 | void setModified( bool m ) |
27 | { NSD.setModified( m ); } | 28 | { NSD.setModified( m ); } |
28 | 29 | ||
29 | public slots : | 30 | public slots : |
30 | 31 | ||
31 | void SLOT_NoLongerBusy( void ); | ||
32 | void SLOT_AddNode( void ); | 32 | void SLOT_AddNode( void ); |
33 | void SLOT_DeleteNode( void ); | 33 | void SLOT_DeleteNode( void ); |
34 | void SLOT_ShowNode( QListBoxItem * ); | 34 | void SLOT_ShowNode( QListBoxItem * ); |
35 | void SLOT_EditNode( QListBoxItem * ); | 35 | void SLOT_EditNode( QListBoxItem * ); |
36 | void SLOT_CheckState( void ); | 36 | void SLOT_CheckState( void ); |
37 | void SLOT_Enable( void ); | 37 | void SLOT_Enable( void ); |
38 | void SLOT_On( void ); | 38 | void SLOT_On( void ); |
39 | void SLOT_Connect( void ); | 39 | void SLOT_Connect( void ); |
40 | void SLOT_Disconnect( void ); | 40 | void SLOT_Disconnect( void ); |
41 | void SLOT_GenerateConfig( void ); | 41 | void SLOT_GenerateConfig( void ); |
42 | void SLOT_RefreshStates( void ); | 42 | void SLOT_RefreshStates( void ); |
43 | void SLOT_QCopMessage( const QCString&,const QByteArray& ); | 43 | void SLOT_QCopMessage( const QCString&,const QByteArray& ); |
44 | void SLOT_ToProfile( void ); | 44 | void SLOT_ToProfile( void ); |
45 | void SLOT_ToMessages( void ); | 45 | void SLOT_ToMessages( void ); |
46 | void SLOT_CmdMessage( const QString & S ); | 46 | void SLOT_CmdMessage( const QString & S ); |
47 | 47 | ||
48 | private : | 48 | private : |
49 | 49 | ||
50 | void updateProfileState( QListBoxItem * it ); | 50 | void updateProfileState( QListBoxItem * it ); |
51 | QTimer * UpdateTimer; | 51 | QTimer * UpdateTimer; |
52 | NetworkSettingsData NSD; | 52 | NetworkSettingsData NSD; |
53 | |||
54 | }; | 53 | }; |
diff --git a/noncore/settings/networksettings2/networksettings.pro b/noncore/settings/networksettings2/networksettings.pro index ff147b1..f04289b 100644 --- a/noncore/settings/networksettings2/networksettings.pro +++ b/noncore/settings/networksettings2/networksettings.pro | |||
@@ -1,21 +1,24 @@ | |||
1 | # | 1 | # |
2 | CONFIG = qt warn_on debug | 2 | CONFIG = qt warn_on debug |
3 | #CONFIG = qt warn_on release | 3 | #CONFIG = qt warn_on release |
4 | HEADERS = networksettings.h \ | 4 | HEADERS = networksettings.h \ |
5 | activateprofile.h \ | 5 | activateprofile.h \ |
6 | activatevpn.h \ | ||
6 | editconnection.h | 7 | editconnection.h |
7 | SOURCES = main.cpp \ | 8 | SOURCES = main.cpp \ |
8 | networksettings.cpp \ | 9 | networksettings.cpp \ |
9 | nsdata.cpp \ | 10 | nsdata.cpp \ |
10 | activateprofile.cpp \ | 11 | activateprofile.cpp \ |
12 | activatevpn.cpp \ | ||
11 | editconnection.cpp | 13 | editconnection.cpp |
12 | INCLUDEPATH += $(OPIEDIR)/include networksettings2/ | 14 | INCLUDEPATH += $(OPIEDIR)/include networksettings2/ |
13 | DEPENDPATH += $(OPIEDIR)/include networksettings2/ | 15 | DEPENDPATH += $(OPIEDIR)/include networksettings2/ |
14 | LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings2 -lnetworksettings2 -lopiecore2 | 16 | LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings2 -lnetworksettings2 -lopiecore2 |
15 | INTERFACES = networksettingsGUI.ui \ | 17 | INTERFACES = networksettingsGUI.ui \ |
16 | editconnectionGUI.ui \ | 18 | editconnectionGUI.ui \ |
19 | activatevpnGUI.ui \ | ||
17 | activateprofileGUI.ui | 20 | activateprofileGUI.ui |
18 | TARGET = $(OPIEDIR)/bin/networksettings2 | 21 | TARGET = $(OPIEDIR)/bin/networksettings2 |
19 | 22 | ||
20 | 23 | ||
21 | include ( $(OPIEDIR)/include.pro ) | 24 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/settings/networksettings2/networksettings2/Utils.h b/noncore/settings/networksettings2/networksettings2/Utils.h index 63ef51c..739476e 100644 --- a/noncore/settings/networksettings2/networksettings2/Utils.h +++ b/noncore/settings/networksettings2/networksettings2/Utils.h | |||
@@ -1,8 +1,9 @@ | |||
1 | #ifndef __UTILS_H | 1 | #ifndef __UTILS_H |
2 | #define __UTILS_H | 2 | #define __UTILS_H |
3 | 3 | ||
4 | #define Log(x) VLog x | 4 | #define Log(x) VLog x |
5 | extern void VLog( char * Format, ... ); | 5 | extern void VLog( char * Format, ... ); |
6 | extern void LogClose( void ); | 6 | extern void LogClose( void ); |
7 | extern QString removeSpaces( const QString & X ); | ||
7 | 8 | ||
8 | #endif | 9 | #endif |
diff --git a/noncore/settings/networksettings2/networksettings2/asline.h b/noncore/settings/networksettings2/networksettings2/asline.h index 6bd93ec..ee4de38 100644 --- a/noncore/settings/networksettings2/networksettings2/asline.h +++ b/noncore/settings/networksettings2/networksettings2/asline.h | |||
@@ -1,18 +1,20 @@ | |||
1 | #ifndef ASLINE_H | 1 | #ifndef ASLINE_H |
2 | #define ASLINE_H | 2 | #define ASLINE_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | 5 | ||
6 | // pure virtual (component oriented) interface of any | 6 | // pure virtual (component oriented) interface of any |
7 | // plugin that offers a line | 7 | // plugin that offers a line |
8 | class AsLine : public RuntimeInfo { | 8 | class AsLine : public RuntimeInfo { |
9 | 9 | ||
10 | public : | 10 | public : |
11 | 11 | ||
12 | AsLine( ANetNodeInstance * NNI ) : | 12 | AsLine( ANetNodeInstance * NNI ) : |
13 | RuntimeInfo( NNI ) { | 13 | RuntimeInfo( NNI ) { |
14 | } | 14 | } |
15 | 15 | ||
16 | virtual QString deviceFile( void ) = 0; | ||
17 | |||
16 | }; | 18 | }; |
17 | 19 | ||
18 | #endif | 20 | #endif |
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.cpp b/noncore/settings/networksettings2/networksettings2/netnode.cpp index 8c80e0b..4a2440a 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.cpp +++ b/noncore/settings/networksettings2/networksettings2/netnode.cpp | |||
@@ -99,97 +99,97 @@ ANetNodeInstance * ANetNodeInstance::nextNode( void ) { | |||
99 | 99 | ||
100 | // | 100 | // |
101 | // | 101 | // |
102 | // NODECOLLECTION | 102 | // NODECOLLECTION |
103 | // | 103 | // |
104 | // | 104 | // |
105 | 105 | ||
106 | NodeCollection::NodeCollection( void ) : QList<ANetNodeInstance>() { | 106 | NodeCollection::NodeCollection( void ) : QList<ANetNodeInstance>() { |
107 | IsModified = 0; | 107 | IsModified = 0; |
108 | Index = -1; | 108 | Index = -1; |
109 | Name=""; | 109 | Name=""; |
110 | IsNew = 1; | 110 | IsNew = 1; |
111 | CurrentState = Unchecked; | 111 | CurrentState = Unchecked; |
112 | } | 112 | } |
113 | 113 | ||
114 | NodeCollection::NodeCollection( QTextStream & TS ) : | 114 | NodeCollection::NodeCollection( QTextStream & TS ) : |
115 | QList<ANetNodeInstance>() { | 115 | QList<ANetNodeInstance>() { |
116 | long idx; | 116 | long idx; |
117 | bool InError = 0; | 117 | bool InError = 0; |
118 | QString S, A, N; | 118 | QString S, A, N; |
119 | IsModified = 0; | 119 | IsModified = 0; |
120 | Index = -1; | 120 | Index = -1; |
121 | Name=""; | 121 | Name=""; |
122 | IsNew = 0; | 122 | IsNew = 0; |
123 | CurrentState = Unchecked; | 123 | CurrentState = Unchecked; |
124 | 124 | ||
125 | do { | 125 | do { |
126 | S = TS.readLine(); | 126 | S = TS.readLine(); |
127 | if( S.isEmpty() ) { | 127 | if( S.isEmpty() ) { |
128 | if( InError ) { | 128 | if( InError ) { |
129 | // remove all nodes | 129 | // remove all nodes |
130 | clear(); | 130 | clear(); |
131 | } | 131 | } |
132 | // empty line | 132 | // empty line |
133 | break; | 133 | break; |
134 | } | 134 | } |
135 | 135 | ||
136 | idx = S.find('='); | 136 | idx = S.find('='); |
137 | S.stripWhiteSpace(); | 137 | S.stripWhiteSpace(); |
138 | A = S.left( idx ); | 138 | A = S.left( idx ); |
139 | A.lower(); | 139 | A.lower(); |
140 | N = S.mid( idx+1, S.length() ); | 140 | N = S.mid( idx+1, S.length() ); |
141 | N.stripWhiteSpace(); | 141 | N.stripWhiteSpace(); |
142 | N = deQuote( N ); | 142 | N = deQuote( N ); |
143 | 143 | ||
144 | if( A == "name" ) { | 144 | if( A == "name" ) { |
145 | Name = N; | 145 | Name = N; |
146 | } else if( A == "number" ) { | 146 | } else if( A == "number" ) { |
147 | Log(( "read number %s\n", N.latin1() )); | 147 | Log(( "Profile number %s\n", N.latin1() )); |
148 | setNumber( N.toLong() ); | 148 | setNumber( N.toLong() ); |
149 | } else if( A == "node" ) { | 149 | } else if( A == "node" ) { |
150 | ANetNodeInstance * NNI = NSResources->findNodeInstance( N ); | 150 | ANetNodeInstance * NNI = NSResources->findNodeInstance( N ); |
151 | if( NNI && ! InError ) { | 151 | if( NNI && ! InError ) { |
152 | append( NSResources->findNodeInstance( N ) ); | 152 | append( NSResources->findNodeInstance( N ) ); |
153 | } else { | 153 | } else { |
154 | // could not find a node type -> collection invalid | 154 | // could not find a node type -> collection invalid |
155 | InError = 1; | 155 | InError = 1; |
156 | } | 156 | } |
157 | } | 157 | } |
158 | } while( 1 ); | 158 | } while( 1 ); |
159 | } | 159 | } |
160 | 160 | ||
161 | 161 | ||
162 | NodeCollection::~NodeCollection( void ) { | 162 | NodeCollection::~NodeCollection( void ) { |
163 | } | 163 | } |
164 | 164 | ||
165 | const QString & NodeCollection::description( void ) { | 165 | const QString & NodeCollection::description( void ) { |
166 | ANetNodeInstance * NNI = getToplevel(); | 166 | ANetNodeInstance * NNI = getToplevel(); |
167 | return (NNI) ? NNI->runtime()->asFullSetup()->description() : Name; | 167 | return (NNI) ? NNI->runtime()->asFullSetup()->description() : Name; |
168 | } | 168 | } |
169 | 169 | ||
170 | void NodeCollection::append( ANetNodeInstance * NNI ) { | 170 | void NodeCollection::append( ANetNodeInstance * NNI ) { |
171 | NNI->setConnection( this ); | 171 | NNI->setConnection( this ); |
172 | QList<ANetNodeInstance>::append( NNI ); | 172 | QList<ANetNodeInstance>::append( NNI ); |
173 | } | 173 | } |
174 | 174 | ||
175 | void NodeCollection::save( QTextStream & TS ) { | 175 | void NodeCollection::save( QTextStream & TS ) { |
176 | 176 | ||
177 | TS << "name=" << quote( Name ) << endl; | 177 | TS << "name=" << quote( Name ) << endl; |
178 | TS << "number=" << number() << endl; | 178 | TS << "number=" << number() << endl; |
179 | ANetNodeInstance * NNI; | 179 | ANetNodeInstance * NNI; |
180 | for( QListIterator<ANetNodeInstance> it(*this); | 180 | for( QListIterator<ANetNodeInstance> it(*this); |
181 | it.current(); | 181 | it.current(); |
182 | ++it ) { | 182 | ++it ) { |
183 | NNI = it.current(); | 183 | NNI = it.current(); |
184 | TS << "node=" << NNI->name() << endl; | 184 | TS << "node=" << NNI->name() << endl; |
185 | } | 185 | } |
186 | TS << endl; | 186 | TS << endl; |
187 | IsNew = 0; | 187 | IsNew = 0; |
188 | } | 188 | } |
189 | 189 | ||
190 | ANetNodeInstance * NodeCollection::getToplevel( void ) { | 190 | ANetNodeInstance * NodeCollection::getToplevel( void ) { |
191 | ANetNodeInstance * NNI = 0; | 191 | ANetNodeInstance * NNI = 0; |
192 | for( QListIterator<ANetNodeInstance> it(*this); | 192 | for( QListIterator<ANetNodeInstance> it(*this); |
193 | it.current(); | 193 | it.current(); |
194 | ++it ) { | 194 | ++it ) { |
195 | NNI = it.current(); | 195 | NNI = it.current(); |
@@ -250,63 +250,82 @@ static char * State2PixmapTbl[] = { | |||
250 | QPixmap NodeCollection::devicePixmap( void ) { | 250 | QPixmap NodeCollection::devicePixmap( void ) { |
251 | QPixmap pm = NSResources->getPixmap( | 251 | QPixmap pm = NSResources->getPixmap( |
252 | getToplevel()->nextNode()->pixmapName()+"-large"); | 252 | getToplevel()->nextNode()->pixmapName()+"-large"); |
253 | 253 | ||
254 | QPixmap Mini = NSResources->getPixmap( device()->netNode()->pixmapName() ); | 254 | QPixmap Mini = NSResources->getPixmap( device()->netNode()->pixmapName() ); |
255 | 255 | ||
256 | QPainter painter( &pm ); | 256 | QPainter painter( &pm ); |
257 | painter.drawPixmap( pm.width()-Mini.width(), | 257 | painter.drawPixmap( pm.width()-Mini.width(), |
258 | pm.height()-Mini.height(), | 258 | pm.height()-Mini.height(), |
259 | Mini ); | 259 | Mini ); |
260 | pm.setMask( pm.createHeuristicMask( TRUE ) ); | 260 | pm.setMask( pm.createHeuristicMask( TRUE ) ); |
261 | return pm; | 261 | return pm; |
262 | } | 262 | } |
263 | 263 | ||
264 | QPixmap NodeCollection::statePixmap( State_t S) { | 264 | QPixmap NodeCollection::statePixmap( State_t S) { |
265 | return NSResources->getPixmap( State2PixmapTbl[S] ); | 265 | return NSResources->getPixmap( State2PixmapTbl[S] ); |
266 | } | 266 | } |
267 | 267 | ||
268 | QString NodeCollection::stateName( State_t S) { | 268 | QString NodeCollection::stateName( State_t S) { |
269 | switch( S ) { | 269 | switch( S ) { |
270 | case Unknown : | 270 | case Unknown : |
271 | return qApp->translate( "networksettings2", "Unknown"); | 271 | return qApp->translate( "networksettings2", "Unknown"); |
272 | case Unavailable : | 272 | case Unavailable : |
273 | return qApp->translate( "networksettings2", "Unavailable"); | 273 | return qApp->translate( "networksettings2", "Unavailable"); |
274 | case Disabled : | 274 | case Disabled : |
275 | return qApp->translate( "networksettings2", "Disabled"); | 275 | return qApp->translate( "networksettings2", "Disabled"); |
276 | case Off : | 276 | case Off : |
277 | return qApp->translate( "networksettings2", "Off"); | 277 | return qApp->translate( "networksettings2", "Off"); |
278 | case Available : | 278 | case Available : |
279 | return qApp->translate( "networksettings2", "Available"); | 279 | return qApp->translate( "networksettings2", "Available"); |
280 | case IsUp : | 280 | case IsUp : |
281 | return qApp->translate( "networksettings2", "IsUp"); | 281 | return qApp->translate( "networksettings2", "IsUp"); |
282 | case Unchecked : /* FT */ | 282 | case Unchecked : /* FT */ |
283 | default : | 283 | default : |
284 | break; | 284 | break; |
285 | } | 285 | } |
286 | return QString(""); | 286 | return QString(""); |
287 | } | 287 | } |
288 | 288 | ||
289 | void NodeCollection::reassign( void ) { | 289 | void NodeCollection::reassign( void ) { |
290 | for( QListIterator<ANetNodeInstance> it(*this); | 290 | for( QListIterator<ANetNodeInstance> it(*this); |
291 | it.current(); | 291 | it.current(); |
292 | ++it ) { | 292 | ++it ) { |
293 | it.current()->setConnection( this ); | 293 | it.current()->setConnection( this ); |
294 | } | 294 | } |
295 | } | 295 | } |
296 | 296 | ||
297 | bool NodeCollection::triggersVPN() { | 297 | bool NodeCollection::triggersVPN() { |
298 | return getToplevel()->runtime()->asFullSetup()->triggersVPN(); | 298 | return getToplevel()->runtime()->asFullSetup()->triggersVPN(); |
299 | } | 299 | } |
300 | |||
301 | bool NodeCollection::hasDataForFile( const QString & S ) { | ||
302 | return ( firstWithDataForFile( S ) != 0 ); | ||
303 | } | ||
304 | |||
305 | ANetNodeInstance * NodeCollection::firstWithDataForFile( const QString & S ) { | ||
306 | for( QListIterator<ANetNodeInstance> it(*this); | ||
307 | it.current(); | ||
308 | ++it ) { | ||
309 | if( it.current()->hasDataForFile( S ) ) { | ||
310 | Log(( "Node %s has data for %s\n", | ||
311 | it.current()->nodeClass()->name(), | ||
312 | S.latin1() )); | ||
313 | return it.current(); | ||
314 | } | ||
315 | } | ||
316 | return 0; | ||
317 | } | ||
318 | |||
300 | // | 319 | // |
301 | // | 320 | // |
302 | // RUNTIMEINFO | 321 | // RUNTIMEINFO |
303 | // | 322 | // |
304 | // | 323 | // |
305 | 324 | ||
306 | InterfaceInfo * RuntimeInfo::assignedInterface( void ) { | 325 | InterfaceInfo * RuntimeInfo::assignedInterface( void ) { |
307 | return netNode()->nextNode()->runtime()->assignedInterface(); | 326 | return netNode()->nextNode()->runtime()->assignedInterface(); |
308 | } | 327 | } |
309 | 328 | ||
310 | AsDevice * RuntimeInfo::device( void ) { | 329 | AsDevice * RuntimeInfo::device( void ) { |
311 | return netNode()->nextNode()->runtime()->device(); | 330 | return netNode()->nextNode()->runtime()->device(); |
312 | } | 331 | } |
diff --git a/noncore/settings/networksettings2/networksettings2/netnode.h b/noncore/settings/networksettings2/networksettings2/netnode.h index ca35c27..d3d7b34 100644 --- a/noncore/settings/networksettings2/networksettings2/netnode.h +++ b/noncore/settings/networksettings2/networksettings2/netnode.h | |||
@@ -1,384 +1,494 @@ | |||
1 | #ifndef NETNODE_H | 1 | #ifndef NETNODE_H |
2 | #define NETNODE_H | 2 | #define NETNODE_H |
3 | 3 | ||
4 | #include <qtextstream.h> | 4 | #include <qtextstream.h> |
5 | #include <qlist.h> | 5 | #include <qlist.h> |
6 | #include <qdict.h> | 6 | #include <qdict.h> |
7 | #include <qpixmap.h> | 7 | #include <qpixmap.h> |
8 | #include <qstringlist.h> | ||
8 | #include <qobject.h> | 9 | #include <qobject.h> |
9 | #include <time.h> | 10 | #include <time.h> |
10 | 11 | ||
11 | #include <Utils.h> | 12 | #include <Utils.h> |
12 | 13 | ||
13 | // difference feature interfaces | 14 | // difference feature interfaces |
14 | class AsDevice; | 15 | class AsDevice; |
15 | class AsLine; | 16 | class AsLine; |
16 | class AsConnection; | 17 | class AsConnection; |
17 | class AsFullSetup; | 18 | class AsFullSetup; |
18 | 19 | ||
19 | // needed for plugin creation function | 20 | // needed for plugin creation function |
20 | #include <qlist.h> | 21 | #include <qlist.h> |
21 | 22 | ||
22 | class ANetNode; | 23 | class ANetNode; |
23 | class ANetNodeInstance; | 24 | class ANetNodeInstance; |
24 | class NodeCollection; | 25 | class NodeCollection; |
25 | class QTextStream; | 26 | class QTextStream; |
26 | class RuntimeInfo; | 27 | class RuntimeInfo; |
27 | class InterfaceInfo; | 28 | class InterfaceInfo; |
28 | 29 | ||
29 | extern QString & deQuote( QString & X ); | 30 | extern QString & deQuote( QString & X ); |
30 | extern QString quote( QString X ); | 31 | extern QString quote( QString X ); |
31 | 32 | ||
32 | #include "systemfile.h" | 33 | #include "systemfile.h" |
33 | 34 | ||
34 | typedef enum State { | 35 | typedef enum State { |
35 | // if we have not yet detected the state of the device | 36 | // if we have not yet detected the state of the device |
36 | Unchecked = 0, | 37 | Unchecked = 0, |
37 | // if we cannot determine the state | 38 | // if we cannot determine the state |
38 | Unknown = 1, | 39 | Unknown = 1, |
39 | // if connection cannot be established e.g. because | 40 | // if connection cannot be established e.g. because |
40 | // the hardware is not available | 41 | // the hardware is not available |
41 | Unavailable = 2, | 42 | Unavailable = 2, |
42 | // if the connection cannot be establishec but NOT | 43 | // if the connection cannot be establishec but NOT |
43 | // because it is physically impossible but because | 44 | // because it is physically impossible but because |
44 | // it has been disabled for FUNCTIONAL reasons | 45 | // it has been disabled for FUNCTIONAL reasons |
45 | Disabled = 3, | 46 | Disabled = 3, |
46 | // if connection is available to is currently down | 47 | // if connection is available to is currently down |
47 | // i.e. the corresponding hardware is not activated | 48 | // i.e. the corresponding hardware is not activated |
48 | Off = 4, | 49 | Off = 4, |
49 | // if connection is available to be used (i.e. the | 50 | // if connection is available to be used (i.e. the |
50 | // devices if fully ready to be used | 51 | // devices if fully ready to be used |
51 | Available = 5, | 52 | Available = 5, |
52 | // if connection is being used | 53 | // if connection is being used |
53 | IsUp = 6 | 54 | IsUp = 6 |
54 | } State_t; | 55 | } State_t; |
55 | 56 | ||
56 | typedef enum Action { | 57 | typedef enum Action { |
57 | // to make the device unavailable functionally | 58 | // to make the device unavailable functionally |
58 | Disable = 0, | 59 | Disable = 0, |
59 | // to make the device available functionally | 60 | // to make the device available functionally |
60 | Enable = 1, | 61 | Enable = 1, |
61 | // bring the hardware up | 62 | // bring the hardware up |
62 | Activate = 2, | 63 | Activate = 2, |
63 | // bring the hardware down | 64 | // bring the hardware down |
64 | Deactivate = 3, | 65 | Deactivate = 3, |
65 | // bring the connection up | 66 | // bring the connection up |
66 | Up = 4, | 67 | Up = 4, |
67 | // bring the connection down | 68 | // bring the connection down |
68 | Down = 5 | 69 | Down = 5 |
69 | } Action_t; | 70 | } Action_t; |
70 | 71 | ||
71 | class ANetNode : public QObject{ | 72 | class ANetNode : public QObject{ |
72 | 73 | ||
73 | public: | 74 | public: |
74 | 75 | ||
75 | typedef QArray<ANetNode *> NetNodeList; | 76 | typedef QArray<ANetNode *> NetNodeList; |
76 | 77 | ||
77 | ANetNode( const char * Name ) : QObject( 0, Name ) {} | 78 | ANetNode( const char * Name ) : QObject( 0, Name ) {} |
78 | virtual ~ANetNode(){}; | 79 | virtual ~ANetNode(){}; |
79 | 80 | ||
80 | // pixmap needed for this NetNode | 81 | // |
81 | virtual const QString pixmapName() = 0; | 82 | // |
82 | 83 | // standard methods with sensible default | |
83 | // description for this NetNode | 84 | // |
84 | virtual const QString nodeDescription() = 0; | 85 | // |
85 | 86 | ||
86 | // create a blank instance of a net node | 87 | inline int done( void ) |
87 | virtual ANetNodeInstance * createInstance( void ) = 0; | 88 | { return Done; } |
88 | 89 | inline void setDone( int D ) | |
89 | // return feature this NetNode provides | 90 | { Done = D; } |
90 | virtual const char * provides( void ) = 0; | 91 | |
91 | virtual const char ** needs( void ) = 0; | 92 | // does this Node provide a Connection |
92 | 93 | inline bool isToplevel( void ) | |
93 | // generate files specific for this node (if any) | 94 | { return strcmp( provides(), "fullsetup") == 0 ; } |
94 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ) = 0; | 95 | |
95 | // return TRUE if this node has data to be inserted in systemfile | 96 | // set the value of an attribute |
96 | // with name S | 97 | void setAttribute( QString & Attr, QString & Value ) ; |
97 | virtual bool hasDataFor( const QString & S ) = 0; | 98 | void saveAttributes( QTextStream & TS ) ; |
98 | // generate data specific for the device for the system file S | 99 | |
99 | // called only IF data was needed | 100 | // compiled references to 'needed' NetNodes -> needs list |
100 | virtual bool generateDeviceDataForCommonFile( | 101 | inline void setAlternatives( NetNodeList * Alt ) |
101 | SystemFile & SF, long DevNr ) = 0; | 102 | { Alternatives = Alt; } |
102 | 103 | inline NetNodeList & alternatives( void ) | |
103 | // does this Node provide a Connection | 104 | { return *Alternatives; } |
104 | bool isToplevel( void ) | 105 | |
105 | { return strcmp( provides(), "fullsetup") == 0 ; } | 106 | // |
106 | 107 | // | |
107 | // generate NIC name based on instance nr | 108 | // Virtual methods with sensible default |
108 | // only relevant if node instances are devices | 109 | // |
109 | virtual QString genNic( long ) | 110 | // |
110 | { return QString(""); } | 111 | |
111 | 112 | // do instances of this noce class have data for this file | |
112 | // max number of instances for this node type | 113 | virtual bool hasDataForFile( const QString & ) |
113 | // only relevant if node instances are devices | 114 | { return 0; } |
114 | virtual long instanceCount( void ) | 115 | |
115 | { return 1; } | 116 | // generate instance independent stuff |
116 | 117 | // 0 : data output, 1 no data, 2 error | |
117 | // set the value of an attribute | 118 | virtual short generateFile( const QString & , |
118 | void setAttribute( QString & Attr, QString & Value ) ; | 119 | const QString & , |
119 | void saveAttributes( QTextStream & TS ) ; | 120 | QTextStream & , |
120 | 121 | long ) | |
121 | // compiled references to 'needed' NetNodes -> needs list | 122 | { return 1; } |
122 | void setAlternatives( NetNodeList * Alt ) | 123 | |
123 | { Alternatives = Alt; } | 124 | // generate instance dependent but profile common stuff |
124 | NetNodeList & alternatives( void ) | 125 | // 0 : data output, 1 no data, 2 error |
125 | { return *Alternatives; } | 126 | virtual short generateFile( const QString & , |
127 | const QString & , | ||
128 | QTextStream & , | ||
129 | ANetNodeInstance * , | ||
130 | long ) | ||
131 | { return 1; } | ||
132 | |||
133 | |||
134 | // generate NIC name based on instance nr | ||
135 | // only relevant if node instances are devices | ||
136 | virtual QString genNic( long ) | ||
137 | { return QString(""); } | ||
138 | |||
139 | // max number of instances for this node type | ||
140 | // only relevant if node instances are devices | ||
141 | virtual long instanceCount( void ) | ||
142 | { return 1; } | ||
143 | |||
144 | // return list of files that are specific for this node class | ||
145 | virtual QStringList * properFiles( void ) | ||
146 | { return 0; } | ||
147 | |||
148 | // | ||
149 | // | ||
150 | // pure virtual methods with sensible default | ||
151 | // | ||
152 | // | ||
153 | |||
154 | // pixmap needed for this NetNode | ||
155 | virtual const QString pixmapName() = 0; | ||
156 | |||
157 | // description for this NetNode | ||
158 | virtual const QString nodeDescription() = 0; | ||
159 | |||
160 | // create a blank instance of a net node | ||
161 | virtual ANetNodeInstance * createInstance( void ) = 0; | ||
162 | |||
163 | // return feature this NetNode provides | ||
164 | virtual const char * provides( void ) = 0; | ||
165 | virtual const char ** needs( void ) = 0; | ||
126 | 166 | ||
127 | protected : | 167 | protected : |
128 | 168 | ||
129 | NetNodeList * Alternatives; | 169 | NetNodeList * Alternatives; |
130 | 170 | ||
131 | private : | 171 | private : |
132 | 172 | ||
133 | virtual void setSpecificAttribute( QString & , QString & ) = 0; | 173 | virtual void setSpecificAttribute( QString & , QString & ) = 0; |
134 | virtual void saveSpecificAttribute( QTextStream & ) = 0; | 174 | virtual void saveSpecificAttribute( QTextStream & ) = 0; |
175 | int Done; | ||
135 | 176 | ||
136 | }; | 177 | }; |
137 | 178 | ||
138 | class ANetNodeInstance : public QObject { | 179 | class ANetNodeInstance : public QObject { |
139 | 180 | ||
140 | public: | 181 | public: |
141 | 182 | ||
142 | ANetNodeInstance( ANetNode * NN ) : QObject() | 183 | ANetNodeInstance( ANetNode * NN ) : QObject() |
143 | { IsModified=0; NodeType = NN; IsNew = TRUE; } | 184 | { IsModified=0; NodeType = NN; IsNew = TRUE; } |
144 | virtual ~ANetNodeInstance( void ) { } | 185 | virtual ~ANetNodeInstance( void ) { } |
145 | 186 | ||
146 | virtual RuntimeInfo * runtime( void ) = 0; | 187 | inline int done( void ) |
147 | 188 | { return Done; } | |
148 | void setConnection( NodeCollection * NC ) | 189 | inline void setDone( int D ) |
149 | { Connection = NC; } | 190 | { Done = D; } |
150 | NodeCollection * connection( void ) | 191 | |
151 | { return Connection; } | 192 | // return data was modified |
152 | 193 | inline void setModified( bool M ) | |
153 | // create edit widget under parent | 194 | { IsModified = M; } |
154 | virtual QWidget * edit( QWidget * parent ) = 0; | 195 | inline bool isModified( void ) |
155 | // is given data acceptable | 196 | { return IsModified; } |
156 | virtual QString acceptable( void ) = 0; | 197 | |
157 | 198 | // get next node | |
158 | // return data was modified | 199 | ANetNodeInstance * nextNode(); |
159 | void setModified( bool M ) | 200 | // return NetNode this is an instance of |
160 | { IsModified = M; } | 201 | ANetNode * nodeClass( void ) |
161 | bool isModified( void ) | 202 | { return NodeType; } |
162 | { return IsModified; } | 203 | |
163 | 204 | // intialize am instance of a net node | |
164 | // get data from GUI and store in node | 205 | void initialize( void ); |
165 | virtual void commit( void ) = 0; | 206 | |
166 | 207 | // set the value of an attribute | |
167 | // get next node | 208 | void setAttribute( QString & Attr, QString & Value ) ; |
168 | ANetNodeInstance * nextNode(); | 209 | void saveAttributes( QTextStream & TS ) ; |
169 | // return NetNode this is an instance of | 210 | |
170 | ANetNode * nodeClass( void ) | 211 | // return true if node isntance is NEW and not loaded |
171 | { return NodeType; } | 212 | inline void setNew( bool IsN ) |
172 | 213 | { IsNew = IsN; } | |
173 | // intialize am instance of a net node | 214 | inline bool isNew( void ) |
174 | void initialize( void ); | 215 | { return IsNew; } |
175 | 216 | ||
176 | // set the value of an attribute | 217 | // return description for this instance |
177 | void setAttribute( QString & Attr, QString & Value ) ; | 218 | inline QString & description( void ) |
178 | void saveAttributes( QTextStream & TS ) ; | 219 | { return Description; } |
220 | inline void setDescription( const QString & S ) | ||
221 | { Description = S; } | ||
222 | |||
223 | // pixmap for this instance -> from NetNode | ||
224 | inline const QString pixmapName( void ) | ||
225 | { return NodeType->pixmapName(); } | ||
226 | |||
227 | inline const char * provides( void ) | ||
228 | { return NodeType->provides(); } | ||
229 | |||
230 | inline const char ** needs( void ) | ||
231 | { return NodeType->needs(); } | ||
232 | |||
233 | inline void setConnection( NodeCollection * NC ) | ||
234 | { Connection = NC; } | ||
235 | inline NodeCollection * connection( void ) | ||
236 | { return Connection; } | ||
237 | |||
238 | // | ||
239 | // | ||
240 | // Virtual methods with sensible defaults | ||
241 | // | ||
242 | // | ||
243 | |||
244 | |||
245 | |||
246 | // open proper file identified by S | ||
247 | virtual QFile * openFile( const QString & ) | ||
248 | { return 0; } | ||
249 | |||
250 | // check if this node (or sub nodes) have data for this file | ||
251 | virtual bool hasDataForFile( const QString & S ) | ||
252 | { return nodeClass()->hasDataForFile( S ); } | ||
253 | |||
254 | // generate code specific for this node but embedded | ||
255 | // in the section of the parent | ||
256 | // this is called within the code of the parent | ||
257 | virtual short generateFileEmbedded( const QString & ID, | ||
258 | const QString & Path, | ||
259 | QTextStream & TS, | ||
260 | long DevNr ) | ||
261 | { ANetNodeInstance * NNI = nextNode(); | ||
262 | return (NNI) ? NNI->generateFileEmbedded( ID, Path, TS, DevNr ) : 1; | ||
263 | } | ||
179 | 264 | ||
180 | // return true if node isntance is NEW and not loaded | 265 | // generate code specific for this node |
181 | void setNew( bool IsN ) | 266 | // (or find the first node that does) |
182 | { IsNew = IsN; } | 267 | virtual short generateFile( const QString & ID, |
183 | bool isNew( void ) | 268 | const QString & Path, |
184 | { return IsNew; } | 269 | QTextStream & TS, |
270 | long DevNr ) | ||
271 | { ANetNodeInstance * NNI = nextNode(); | ||
272 | return (NNI) ? NNI->generateFile( ID, Path, TS, DevNr ) : 1; | ||
273 | } | ||
185 | 274 | ||
186 | // return description for this instance | 275 | // return true if this node instance is triggered by this trigger |
187 | QString & description( void ) | 276 | // could be delegated to deeper instances |
188 | { return Description; } | 277 | virtual bool triggeredBy( const QString & ) |
189 | void setDescription( const QString & S ) | 278 | { return 0; } |
190 | { Description = S; } | ||
191 | 279 | ||
192 | // pixmap for this instance -> from NetNode | 280 | // |
193 | const QString pixmapName( void ) | 281 | // |
194 | { return NodeType->pixmapName(); } | 282 | // Pure virtual functions |
283 | // | ||
284 | // | ||
195 | 285 | ||
196 | const char * provides( void ) | 286 | // return runtime information for this node |
197 | { return NodeType->provides(); } | 287 | virtual RuntimeInfo * runtime( void ) = 0; |
198 | 288 | ||
199 | const char ** needs( void ) | 289 | // create edit widget under parent |
200 | { return NodeType->needs(); } | 290 | virtual QWidget * edit( QWidget * parent ) = 0; |
201 | 291 | ||
202 | // returns node specific data -> only useful for 'buddy' | 292 | // is given data acceptable |
203 | virtual void * data( void ) = 0; | 293 | virtual QString acceptable( void ) = 0; |
204 | 294 | ||
205 | // return TRUE if this node has data to be inserted in systemfile | 295 | // get data from GUI and store in node |
206 | // with name S | 296 | virtual void commit( void ) = 0; |
207 | virtual bool hasDataFor( const QString & S ) = 0; | ||
208 | 297 | ||
209 | // generate data specific for a profile and for the system file S | 298 | // returns node specific data -> only useful for 'buddy' |
210 | // called only IF data was needed | 299 | virtual void * data( void ) = 0; |
211 | virtual bool generateDataForCommonFile( | ||
212 | SystemFile & SF, long DevNr ) = 0; | ||
213 | 300 | ||
214 | protected : | 301 | protected : |
215 | 302 | ||
216 | virtual void setSpecificAttribute( QString & , QString & ) = 0; | 303 | virtual void setSpecificAttribute( QString & , QString & ) = 0; |
217 | virtual void saveSpecificAttribute( QTextStream & ) = 0; | 304 | virtual void saveSpecificAttribute( QTextStream & ) = 0; |
218 | 305 | ||
219 | ANetNode * NodeType; | 306 | ANetNode * NodeType; |
220 | // connection to which this node belongs to | 307 | // connection to which this node belongs to |
221 | NodeCollection * Connection; | 308 | NodeCollection * Connection; |
222 | QString Description; | 309 | QString Description; |
223 | bool IsModified; | 310 | bool IsModified; |
224 | bool IsNew; | 311 | bool IsNew; |
312 | int Done; | ||
225 | 313 | ||
226 | static long InstanceCounter; | 314 | static long InstanceCounter; |
227 | }; | 315 | }; |
228 | 316 | ||
229 | class RuntimeInfo : public QObject { | 317 | class RuntimeInfo : public QObject { |
230 | 318 | ||
231 | Q_OBJECT | 319 | Q_OBJECT |
232 | 320 | ||
233 | public : | 321 | public : |
234 | 322 | ||
235 | RuntimeInfo( ANetNodeInstance * TheNNI ) | 323 | RuntimeInfo( ANetNodeInstance * TheNNI ) |
236 | { NNI = TheNNI; } | 324 | { NNI = TheNNI; } |
237 | 325 | ||
238 | // downcast implemented by specify runtime classes | 326 | // downcast implemented by specify runtime classes |
239 | virtual AsDevice * asDevice( void ) | 327 | virtual AsDevice * asDevice( void ) |
240 | { return 0; } | 328 | { return 0; } |
241 | virtual AsConnection * asConnection( void ) | 329 | virtual AsConnection * asConnection( void ) |
242 | { return 0; } | 330 | { return 0; } |
243 | virtual AsLine * asLine( void ) | 331 | virtual AsLine * asLine( void ) |
244 | { return 0; } | 332 | { return 0; } |
245 | virtual AsFullSetup * asFullSetup( void ) | 333 | virtual AsFullSetup * asFullSetup( void ) |
246 | { return 0; } | 334 | { return 0; } |
247 | 335 | ||
248 | // does this node handles this interface e.g.eth0 | 336 | // does this node handles this interface e.g.eth0 |
249 | // recurse deeper if this node cannot answer that question | 337 | // recurse deeper if this node cannot answer that question |
250 | virtual bool handlesInterface( const QString & ) | 338 | virtual bool handlesInterface( const QString & ) |
251 | { return 0; } | 339 | { return 0; } |
252 | virtual bool handlesInterface( const InterfaceInfo & ) | 340 | virtual bool handlesInterface( const InterfaceInfo & ) |
253 | { return 0; } | 341 | { return 0; } |
254 | virtual InterfaceInfo * assignedInterface( void ); | 342 | virtual InterfaceInfo * assignedInterface( void ); |
255 | virtual AsDevice * device( void ); | 343 | virtual AsDevice * device( void ); |
256 | 344 | ||
257 | ANetNodeInstance * netNode() | 345 | ANetNodeInstance * netNode() |
258 | { return NNI; } | 346 | { return NNI; } |
259 | NodeCollection * connection() | 347 | NodeCollection * connection() |
260 | { return NNI->connection(); } | 348 | { return NNI->connection(); } |
261 | 349 | ||
262 | virtual void detectState( NodeCollection * NC ) = 0; | 350 | virtual void detectState( NodeCollection * NC ) = 0; |
263 | virtual bool setState( NodeCollection * NC, Action_t A, bool Force = 0 ) = 0; | 351 | virtual bool setState( NodeCollection * NC, Action_t A, bool Force = 0 ) = 0; |
264 | virtual bool canSetState( State_t Curr, Action_t A ) = 0; | 352 | virtual bool canSetState( State_t Curr, Action_t A ) = 0; |
265 | 353 | ||
266 | signals : | 354 | signals : |
267 | 355 | ||
268 | // sent by device if state changes | 356 | // sent by device if state changes |
269 | void stateChanged( State_t S, ANetNodeInstance * NNI ); | 357 | void stateChanged( State_t S, ANetNodeInstance * NNI ); |
270 | 358 | ||
271 | protected : | 359 | protected : |
272 | 360 | ||
273 | // connection this runtime info belongs to | 361 | // connection this runtime info belongs to |
274 | ANetNodeInstance * NNI; | 362 | ANetNodeInstance * NNI; |
275 | }; | 363 | }; |
276 | 364 | ||
277 | class NodeCollection : public QList<ANetNodeInstance> { | 365 | class NodeCollection : public QList<ANetNodeInstance> { |
278 | 366 | ||
279 | public : | 367 | public : |
280 | 368 | ||
281 | NodeCollection( void ); | 369 | NodeCollection( void ); |
282 | NodeCollection( QTextStream & TS ); | 370 | NodeCollection( QTextStream & TS ); |
283 | ~NodeCollection( void ); | 371 | ~NodeCollection( void ); |
284 | 372 | ||
285 | int number( void ) | 373 | inline int done( void ) |
374 | { return Done; } | ||
375 | inline void setDone( int D ) | ||
376 | { Done = D; } | ||
377 | |||
378 | inline int number( void ) | ||
286 | { return Number; } | 379 | { return Number; } |
287 | void setNumber( int i ) | 380 | inline void setNumber( int i ) |
288 | { Number = i; } | 381 | { Number = i; } |
289 | bool isNew( void ) | 382 | inline bool isNew( void ) |
290 | { return IsNew; } | 383 | { return IsNew; } |
291 | void setNew( bool N ) | 384 | inline void setNew( bool N ) |
292 | { IsNew = N ; } | 385 | { IsNew = N ; } |
293 | bool isModified( void ) | 386 | inline bool isModified( void ) |
294 | { return IsModified; } | 387 | { return IsModified; } |
295 | void setModified( bool N ) | 388 | inline void setModified( bool N ) |
296 | { IsModified = N ; } | 389 | { IsModified = N ; } |
297 | 390 | ||
298 | bool handlesInterface( const QString & S ) { | 391 | inline bool handlesInterface( const QString & S ) { |
299 | return getToplevel()->runtime()->handlesInterface( S ); | 392 | return getToplevel()->runtime()->handlesInterface( S ); |
300 | } | 393 | } |
301 | 394 | ||
302 | InterfaceInfo * assignedInterface( void ) { | 395 | inline InterfaceInfo * assignedInterface( void ) { |
303 | return getToplevel()->runtime()->assignedInterface(); | 396 | return getToplevel()->runtime()->assignedInterface(); |
304 | } | 397 | } |
305 | 398 | ||
306 | AsDevice * device() { | 399 | inline AsDevice * device() { |
307 | return getToplevel()->runtime()->device(); | 400 | return getToplevel()->runtime()->device(); |
308 | } | 401 | } |
309 | 402 | ||
310 | bool triggersVPN(); | 403 | bool triggersVPN(); |
311 | 404 | ||
312 | State_t state( bool Update = 0 ) | 405 | inline State_t state( bool Update = 0 ) |
313 | { Log(( "%s state %d(=%d?)\n", Name.latin1(), CurrentState, | 406 | { Log(( "%s state %d(=%d?)\n", Name.latin1(), CurrentState, |
314 | Unchecked )); | 407 | Unchecked )); |
315 | if( CurrentState == Unchecked || Update ) { | 408 | if( CurrentState == Unchecked || Update ) { |
316 | Log(( "TL %p TLR %p\n", | 409 | Log(( "TL %p TLR %p\n", |
317 | getToplevel(), | 410 | getToplevel(), |
318 | getToplevel()->runtime() )); | 411 | getToplevel()->runtime() )); |
319 | // need to get current state | 412 | // need to get current state |
320 | getToplevel()->runtime()->detectState( this ); | 413 | getToplevel()->runtime()->detectState( this ); |
321 | } | 414 | } |
322 | return CurrentState; | 415 | return CurrentState; |
323 | } | 416 | } |
324 | 417 | ||
325 | // get the ixmap for this device | 418 | // get the ixmap for this device |
326 | QPixmap devicePixmap( void ); | 419 | QPixmap devicePixmap( void ); |
327 | QPixmap statePixmap( State_t S ); | 420 | QPixmap statePixmap( State_t S ); |
328 | QPixmap statePixmap( bool Update = 0 ) | 421 | inline QPixmap statePixmap( bool Update = 0 ) |
329 | { return statePixmap( state(Update) ); } | 422 | { return statePixmap( state(Update) ); } |
330 | QString stateName( State_t ); | 423 | QString stateName( State_t ); |
331 | QString stateName( bool Update = 0 ) | 424 | inline QString stateName( bool Update = 0 ) |
332 | { return stateName( state(Update) ); } | 425 | { return stateName( state(Update) ); } |
333 | 426 | ||
334 | bool setState( Action_t A, bool Force =0 ) | 427 | inline bool setState( Action_t A, bool Force =0 ) |
335 | { return getToplevel()->runtime()->setState( this, A, Force ); } | 428 | { return getToplevel()->runtime()->setState( this, A, Force ); } |
336 | bool canSetState( Action_t A ) | 429 | inline bool canSetState( Action_t A ) |
337 | { return getToplevel()->runtime()->canSetState( CurrentState, A ); } | 430 | { return getToplevel()->runtime()->canSetState( CurrentState, A ); } |
338 | 431 | ||
339 | void save( QTextStream & TS ); | 432 | void save( QTextStream & TS ); |
340 | 433 | ||
341 | void append( ANetNodeInstance * NNI ); | 434 | void append( ANetNodeInstance * NNI ); |
342 | 435 | ||
343 | // makes sure that all items in the connection point to | 436 | // makes sure that all items in the connection point to |
344 | // that connectoin | 437 | // that connectoin |
345 | void reassign( void ); | 438 | void reassign( void ); |
346 | 439 | ||
347 | ANetNodeInstance * getToplevel( void ); | 440 | ANetNodeInstance * getToplevel( void ); |
348 | ANetNodeInstance * findNext( ANetNodeInstance * NNI ); | 441 | ANetNodeInstance * findNext( ANetNodeInstance * NNI ); |
349 | ANetNodeInstance * findByName( const QString & S ); | 442 | ANetNodeInstance * findByName( const QString & S ); |
350 | 443 | ||
351 | const QString & name() | 444 | inline const QString & name() |
352 | { return Name; } | 445 | { return Name; } |
353 | 446 | ||
354 | const QString & description( void ); | 447 | const QString & description( void ); |
355 | 448 | ||
356 | void setName( const QString & N) | 449 | inline void setName( const QString & N) |
357 | { Name = N; } | 450 | { Name = N; } |
358 | 451 | ||
359 | State_t currentState( void ) | 452 | inline State_t currentState( void ) |
360 | { return CurrentState; } | 453 | { return CurrentState; } |
361 | void setCurrentState( State_t S ) | 454 | inline void setCurrentState( State_t S ) |
362 | { CurrentState = S; } | 455 | { CurrentState = S; } |
363 | 456 | ||
457 | // return TRUE if this node can have data to be inserted in | ||
458 | // file identified by S | ||
459 | bool hasDataForFile( const QString & S ); | ||
460 | ANetNodeInstance * firstWithDataForFile( const QString & S ); | ||
461 | |||
462 | // generate items for this file -> toplevel call | ||
463 | short generateFile( const QString & FID, // identification of file | ||
464 | const QString & FName, // effective filename of file | ||
465 | QTextStream & TS, // stream to file | ||
466 | long DN // device number | ||
467 | ) | ||
468 | { return getToplevel()->generateFile( FID, FName, TS, DN ); } | ||
469 | |||
470 | bool triggeredBy( const QString & Trigger ) | ||
471 | { return getToplevel()->triggeredBy( Trigger ); } | ||
472 | |||
364 | private : | 473 | private : |
365 | 474 | ||
366 | int compareItems ( QCollection::Item item1, | 475 | int compareItems ( QCollection::Item item1, |
367 | QCollection::Item item2 ); | 476 | QCollection::Item item2 ); |
368 | 477 | ||
369 | long Number; | 478 | long Number; |
370 | 479 | ||
371 | // state of this connection | 480 | // state of this connection |
372 | State_t CurrentState; | 481 | State_t CurrentState; |
373 | 482 | ||
374 | QString Name; | 483 | QString Name; |
375 | // true if this collection was just created (and not | 484 | // true if this collection was just created (and not |
376 | // loaded from file | 485 | // loaded from file |
377 | bool IsNew; | 486 | bool IsNew; |
378 | // index in listbox | 487 | // index in listbox |
379 | int Index; | 488 | int Index; |
380 | bool IsModified; | 489 | bool IsModified; |
490 | int Done; | ||
381 | 491 | ||
382 | }; | 492 | }; |
383 | 493 | ||
384 | #endif | 494 | #endif |
diff --git a/noncore/settings/networksettings2/networksettings2/resources.cpp b/noncore/settings/networksettings2/networksettings2/resources.cpp index 71e84cd..7ece817 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.cpp +++ b/noncore/settings/networksettings2/networksettings2/resources.cpp | |||
@@ -32,108 +32,117 @@ TheNSResources::TheNSResources( void ) : NodeTypeNameMap(), | |||
32 | { const char ** NeedsRun; | 32 | { const char ** NeedsRun; |
33 | QDictIterator<NetNode_t> OuterIt( AllNodeTypes ); | 33 | QDictIterator<NetNode_t> OuterIt( AllNodeTypes ); |
34 | bool Done; | 34 | bool Done; |
35 | 35 | ||
36 | for ( ; OuterIt.current(); ++OuterIt ) { | 36 | for ( ; OuterIt.current(); ++OuterIt ) { |
37 | // find needs list | 37 | // find needs list |
38 | ANetNode::NetNodeList * NNLP = new ANetNode::NetNodeList; | 38 | ANetNode::NetNodeList * NNLP = new ANetNode::NetNodeList; |
39 | ANetNode::NetNodeList & NNL = *(NNLP); | 39 | ANetNode::NetNodeList & NNL = *(NNLP); |
40 | 40 | ||
41 | // must iterate this way to avoid duplication pointers | 41 | // must iterate this way to avoid duplication pointers |
42 | for ( QDictIterator<NetNode_t> InnerIt( AllNodeTypes ); | 42 | for ( QDictIterator<NetNode_t> InnerIt( AllNodeTypes ); |
43 | InnerIt.current(); ++InnerIt ) { | 43 | InnerIt.current(); ++InnerIt ) { |
44 | if( InnerIt.current() == OuterIt.current() ) | 44 | if( InnerIt.current() == OuterIt.current() ) |
45 | // avoid recursive | 45 | // avoid recursive |
46 | continue; | 46 | continue; |
47 | 47 | ||
48 | const char * Provides = InnerIt.current()->NetNode->provides(); | 48 | const char * Provides = InnerIt.current()->NetNode->provides(); |
49 | NeedsRun = OuterIt.current()->NetNode->needs(); | 49 | NeedsRun = OuterIt.current()->NetNode->needs(); |
50 | for( ; *NeedsRun; NeedsRun ++ ) { | 50 | for( ; *NeedsRun; NeedsRun ++ ) { |
51 | if( strcmp( Provides, *NeedsRun ) == 0 ) { | 51 | if( strcmp( Provides, *NeedsRun ) == 0 ) { |
52 | // inner provides what outer needs | 52 | // inner provides what outer needs |
53 | NNL.resize( NNL.size() + 1 ); | 53 | NNL.resize( NNL.size() + 1 ); |
54 | NNL[NNL.size()-1] = InnerIt.current()->NetNode; | 54 | NNL[NNL.size()-1] = InnerIt.current()->NetNode; |
55 | Done = 1; // break from 2 loops | 55 | Done = 1; // break from 2 loops |
56 | break; | 56 | break; |
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
60 | OuterIt.current()->NetNode->setAlternatives( NNLP ); | 60 | OuterIt.current()->NetNode->setAlternatives( NNLP ); |
61 | } | 61 | } |
62 | } | 62 | } |
63 | 63 | ||
64 | // define Node types to Description map | 64 | // define Node types to Description map |
65 | NodeTypeNameMap.insert( "device", tr( "Network Device" ) ); | 65 | NodeTypeNameMap.insert( "device", tr( "Network Device" ) ); |
66 | NodeTypeNameMap.insert( "line", tr( "Character device" ) ); | 66 | NodeTypeNameMap.insert( "line", tr( "Character device" ) ); |
67 | NodeTypeNameMap.insert( "connection", tr( "IP Connection" ) ); | 67 | NodeTypeNameMap.insert( "connection", tr( "IP Connection" ) ); |
68 | NodeTypeNameMap.insert( "fullsetup", tr( "Connection Profile" ) ); | 68 | NodeTypeNameMap.insert( "fullsetup", tr( "Connection Profile" ) ); |
69 | 69 | ||
70 | NodeTypeDescriptionMap.insert( "device", | 70 | NodeTypeDescriptionMap.insert( "device", |
71 | tr( "<p>Devices that can handle IP packets</p>" ) ); | 71 | tr( "<p>Devices that can handle IP packets</p>" ) ); |
72 | NodeTypeDescriptionMap.insert( "line", | 72 | NodeTypeDescriptionMap.insert( "line", |
73 | tr( "<p>Devices that can handle single bytes</p>" ) ); | 73 | tr( "<p>Devices that can handle single bytes</p>" ) ); |
74 | NodeTypeDescriptionMap.insert( "connection", | 74 | NodeTypeDescriptionMap.insert( "connection", |
75 | tr( "<p>Nodes that provide working IP connections</p>" ) ); | 75 | tr( "<p>Nodes that provide working IP connections</p>" ) ); |
76 | NodeTypeDescriptionMap.insert( "fullsetup", | 76 | NodeTypeDescriptionMap.insert( "fullsetup", |
77 | tr( "<p>Fully configured connection profile</p>" ) ); | 77 | tr( "<p>Fully configured connection profile</p>" ) ); |
78 | 78 | ||
79 | // define system files | 79 | // define system files |
80 | addSystemFile( new SystemFile( "interfaces", "./interfaces" ) ); | 80 | addSystemFile( "interfaces", "/tmp/interfaces", 1 ); |
81 | 81 | ||
82 | // get access to the system | 82 | // get access to the system |
83 | TheSystem = new System(); | 83 | TheSystem = new System(); |
84 | 84 | ||
85 | } | 85 | } |
86 | 86 | ||
87 | TheNSResources::~TheNSResources( void ) { | 87 | TheNSResources::~TheNSResources( void ) { |
88 | delete TheSystem; | 88 | delete TheSystem; |
89 | } | 89 | } |
90 | 90 | ||
91 | void TheNSResources::busy( bool B ) { | 91 | void TheNSResources::addSystemFile( const QString & ID, |
92 | const QString & P, | ||
93 | bool KDI ) { | ||
94 | if( ! SystemFiles.find( ID ) ) { | ||
95 | // new system file | ||
96 | SystemFiles.insert( ID, new SystemFile( ID, P, KDI ) ); | ||
97 | } // else existed | ||
98 | } | ||
99 | |||
100 | void TheNSResources::busy( bool ) { | ||
92 | /* | 101 | /* |
93 | if( B ) { | 102 | if( B ) { |
94 | ShowWait->show(); | 103 | ShowWait->show(); |
95 | qApp->process | 104 | qApp->process |
96 | } else { | 105 | } else { |
97 | ShowWait->hide(); | 106 | ShowWait->hide(); |
98 | } | 107 | } |
99 | */ | 108 | */ |
100 | } | 109 | } |
101 | 110 | ||
102 | /** | 111 | /** |
103 | * Load all modules that are found in the path | 112 | * Load all modules that are found in the path |
104 | * @param path a directory that is scaned for any plugins that can be loaded | 113 | * @param path a directory that is scaned for any plugins that can be loaded |
105 | * and attempts to load them | 114 | * and attempts to load them |
106 | */ | 115 | */ |
107 | void TheNSResources::findAvailableNetNodes(const QString &path){ | 116 | void TheNSResources::findAvailableNetNodes(const QString &path){ |
108 | 117 | ||
109 | Log(("Locate plugins in %s\n", path.latin1() )); | 118 | Log(("Locate plugins in %s\n", path.latin1() )); |
110 | QDir d(path); | 119 | QDir d(path); |
111 | if(!d.exists()) | 120 | if(!d.exists()) |
112 | return; | 121 | return; |
113 | 122 | ||
114 | QString lang = ::getenv("LANG"); | 123 | QString lang = ::getenv("LANG"); |
115 | 124 | ||
116 | // Don't want sym links | 125 | // Don't want sym links |
117 | d.setFilter( QDir::Files | QDir::NoSymLinks ); | 126 | d.setFilter( QDir::Files | QDir::NoSymLinks ); |
118 | const QFileInfoList *list = d.entryInfoList(); | 127 | const QFileInfoList *list = d.entryInfoList(); |
119 | QFileInfoListIterator it( *list ); | 128 | QFileInfoListIterator it( *list ); |
120 | QFileInfo *fi; | 129 | QFileInfo *fi; |
121 | 130 | ||
122 | while ( (fi=it.current()) ) { | 131 | while ( (fi=it.current()) ) { |
123 | 132 | ||
124 | if( fi->fileName().contains(".so")){ | 133 | if( fi->fileName().contains(".so")){ |
125 | /* if loaded install translation */ | 134 | /* if loaded install translation */ |
126 | if( loadNetNode(path + "/" + fi->fileName()) ) { | 135 | if( loadNetNode(path + "/" + fi->fileName()) ) { |
127 | QTranslator *trans = new QTranslator(qApp); | 136 | QTranslator *trans = new QTranslator(qApp); |
128 | QString fn = QPEApplication::qpeDir()+ | 137 | QString fn = QPEApplication::qpeDir()+ |
129 | "/i18n/"+lang+"/"+ | 138 | "/i18n/"+lang+"/"+ |
130 | fi->fileName().left( fi->fileName().find(".") )+ | 139 | fi->fileName().left( fi->fileName().find(".") )+ |
131 | ".qm"; | 140 | ".qm"; |
132 | 141 | ||
133 | if( trans->load( fn ) ) | 142 | if( trans->load( fn ) ) |
134 | qApp->installTranslator( trans ); | 143 | qApp->installTranslator( trans ); |
135 | else | 144 | else |
136 | delete trans; | 145 | delete trans; |
137 | } | 146 | } |
138 | } | 147 | } |
139 | ++it; | 148 | ++it; |
diff --git a/noncore/settings/networksettings2/networksettings2/resources.h b/noncore/settings/networksettings2/networksettings2/resources.h index 55d2f29..16355ba 100644 --- a/noncore/settings/networksettings2/networksettings2/resources.h +++ b/noncore/settings/networksettings2/networksettings2/resources.h | |||
@@ -21,98 +21,99 @@ typedef struct NetNode_S { | |||
21 | QLibrary * TheLibrary; | 21 | QLibrary * TheLibrary; |
22 | long NodeCountInLib; | 22 | long NodeCountInLib; |
23 | } NetNode_t; | 23 | } NetNode_t; |
24 | 24 | ||
25 | class CurrentQPEUser { | 25 | class CurrentQPEUser { |
26 | 26 | ||
27 | public : | 27 | public : |
28 | CurrentQPEUser() : UserName(), HomeDir(), EnvList() {} | 28 | CurrentQPEUser() : UserName(), HomeDir(), EnvList() {} |
29 | 29 | ||
30 | QString UserName; | 30 | QString UserName; |
31 | QString HomeDir; | 31 | QString HomeDir; |
32 | int Uid; | 32 | int Uid; |
33 | int Gid; | 33 | int Gid; |
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 | // give busy feedback | 49 | // give busy feedback |
50 | void busy( bool B ); | 50 | void busy( bool B ); |
51 | 51 | ||
52 | System & system() | 52 | System & system() |
53 | { return *TheSystem; } | 53 | { return *TheSystem; } |
54 | 54 | ||
55 | int assignConnectionNumber(void); | 55 | int assignConnectionNumber(void); |
56 | QPixmap getPixmap( const QString & Name ); | 56 | QPixmap getPixmap( const QString & Name ); |
57 | 57 | ||
58 | Name2NetNode_t & netNodes( void ) | 58 | Name2NetNode_t & netNodes( void ) |
59 | { return AllNodeTypes; } | 59 | { return AllNodeTypes; } |
60 | bool netNodeExists( const QString & X ) | 60 | bool netNodeExists( const QString & X ) |
61 | { return AllNodeTypes.find(X)!=0; } | 61 | { return AllNodeTypes.find(X)!=0; } |
62 | ANetNode * findNetNode( const QString & N ) | 62 | ANetNode * findNetNode( const QString & N ) |
63 | { NetNode_t * NNT = AllNodeTypes.find(N); | 63 | { NetNode_t * NNT = AllNodeTypes.find(N); |
64 | return (NNT) ? NNT->NetNode : 0; | 64 | return (NNT) ? NNT->NetNode : 0; |
65 | } | 65 | } |
66 | 66 | ||
67 | Name2SystemFile_t & systemFiles( void ) | 67 | Name2SystemFile_t & systemFiles( void ) |
68 | { return SystemFiles; } | 68 | { return SystemFiles; } |
69 | void addSystemFile( SystemFile * SF ) | 69 | void addSystemFile( const QString & ID, |
70 | { SystemFiles.insert( SF->name(), SF ); } | 70 | const QString & P, |
71 | bool KDI ); | ||
71 | 72 | ||
72 | ANetNodeInstance * createNodeInstance( const QString & S ) | 73 | ANetNodeInstance * createNodeInstance( const QString & S ) |
73 | { ANetNodeInstance * NNI = 0; | 74 | { ANetNodeInstance * NNI = 0; |
74 | NetNode_t * NNT = AllNodeTypes[S]; | 75 | NetNode_t * NNT = AllNodeTypes[S]; |
75 | if( ! NNT ) { | 76 | if( ! NNT ) { |
76 | return 0; | 77 | return 0; |
77 | } | 78 | } |
78 | NNI = NNT->NetNode->createInstance(); | 79 | NNI = NNT->NetNode->createInstance(); |
79 | NNI->initialize(); | 80 | NNI->initialize(); |
80 | return NNI; | 81 | return NNI; |
81 | } | 82 | } |
82 | 83 | ||
83 | Name2Instance_t & netNodeInstances( void ) | 84 | Name2Instance_t & netNodeInstances( void ) |
84 | { return AllNodes; } | 85 | { return AllNodes; } |
85 | void addNodeInstance( ANetNodeInstance * I ) | 86 | void addNodeInstance( ANetNodeInstance * I ) |
86 | { AllNodes.insert( I->name(), I ); } | 87 | { AllNodes.insert( I->name(), I ); } |
87 | void removeNodeInstance( const QString & N ) | 88 | void removeNodeInstance( const QString & N ) |
88 | { AllNodes.remove( N );} | 89 | { AllNodes.remove( N );} |
89 | ANetNodeInstance * findNodeInstance( const QString & S ) | 90 | ANetNodeInstance * findNodeInstance( const QString & S ) |
90 | { return (AllNodes.find(S)!=0) ? AllNodes[S] : 0; } | 91 | { return (AllNodes.find(S)!=0) ? AllNodes[S] : 0; } |
91 | 92 | ||
92 | const QString & netNode2Name( const char * Type ); | 93 | const QString & netNode2Name( const char * Type ); |
93 | const QString & netNode2Description( const char * Type ); | 94 | const QString & netNode2Description( const char * Type ); |
94 | 95 | ||
95 | void addConnection( NodeCollection * NC ); | 96 | void addConnection( NodeCollection * NC ); |
96 | void removeConnection( const QString & N ); | 97 | void removeConnection( const QString & N ); |
97 | NodeCollection * findConnection( const QString & N ); | 98 | NodeCollection * findConnection( const QString & N ); |
98 | Name2Connection_t & connections( void ) | 99 | Name2Connection_t & connections( void ) |
99 | { return ConnectionsMap; } | 100 | { return ConnectionsMap; } |
100 | 101 | ||
101 | CurrentQPEUser & currentUser( void ) | 102 | CurrentQPEUser & currentUser( void ) |
102 | { return CurrentUser; } | 103 | { return CurrentUser; } |
103 | 104 | ||
104 | private : | 105 | private : |
105 | 106 | ||
106 | void detectCurrentUser( void ); | 107 | void detectCurrentUser( void ); |
107 | QString tr( const char * path ); | 108 | QString tr( const char * path ); |
108 | void findAvailableNetNodes( const QString &path ); | 109 | void findAvailableNetNodes( const QString &path ); |
109 | bool loadNetNode( | 110 | bool loadNetNode( |
110 | const QString &pluginFileName, | 111 | const QString &pluginFileName, |
111 | const QString &resolveString = "create_plugin"); | 112 | const QString &resolveString = "create_plugin"); |
112 | 113 | ||
113 | QMap< QString, QString> NodeTypeNameMap; | 114 | QMap< QString, QString> NodeTypeNameMap; |
114 | QMap< QString, QString> NodeTypeDescriptionMap; | 115 | QMap< QString, QString> NodeTypeDescriptionMap; |
115 | Name2Connection_t ConnectionsMap; | 116 | Name2Connection_t ConnectionsMap; |
116 | System * TheSystem; | 117 | System * TheSystem; |
117 | Name2SystemFile_t SystemFiles; | 118 | Name2SystemFile_t SystemFiles; |
118 | 119 | ||
diff --git a/noncore/settings/networksettings2/networksettings2/system.cpp b/noncore/settings/networksettings2/networksettings2/system.cpp index a579396..271e73d 100644 --- a/noncore/settings/networksettings2/networksettings2/system.cpp +++ b/noncore/settings/networksettings2/networksettings2/system.cpp | |||
@@ -345,73 +345,85 @@ void System::probeInterfaces( void ) { | |||
345 | IFI->BCastAddress = ""; | 345 | IFI->BCastAddress = ""; |
346 | } | 346 | } |
347 | if( ioctl(sockfd, SIOCGIFNETMASK, &ifrs) >= 0 ) { | 347 | if( ioctl(sockfd, SIOCGIFNETMASK, &ifrs) >= 0 ) { |
348 | IFI->Netmask = | 348 | IFI->Netmask = |
349 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_netmask)->sin_addr); | 349 | inet_ntoa(((struct sockaddr_in*)&ifrs.ifr_netmask)->sin_addr); |
350 | } else { | 350 | } else { |
351 | IFI->Netmask = ""; | 351 | IFI->Netmask = ""; |
352 | } | 352 | } |
353 | Log(("NIC %s UP %d\n", NicName.latin1(), IFI->IsUp )); | 353 | Log(("NIC %s UP %d\n", NicName.latin1(), IFI->IsUp )); |
354 | } | 354 | } |
355 | } | 355 | } |
356 | 356 | ||
357 | void System::execAsUser( QString & Cmd, char * argv[] ) { | 357 | void System::execAsUser( QString & Cmd, char * argv[] ) { |
358 | CurrentQPEUser CU = NSResources->currentUser(); | 358 | CurrentQPEUser CU = NSResources->currentUser(); |
359 | 359 | ||
360 | if( CU.UserName.isEmpty() ) { | 360 | if( CU.UserName.isEmpty() ) { |
361 | // if we come here, the exec was not successfull | 361 | // if we come here, the exec was not successfull |
362 | Log(("User not known \n" )); | 362 | Log(("User not known \n" )); |
363 | return; | 363 | return; |
364 | } | 364 | } |
365 | 365 | ||
366 | // now we are ready to exec the requested command | 366 | // now we are ready to exec the requested command |
367 | setuid( CU.Uid ); | 367 | setuid( CU.Uid ); |
368 | setgid( CU.Gid ); | 368 | setgid( CU.Gid ); |
369 | 369 | ||
370 | char ** envp = (char **)alloca( sizeof( char *) * | 370 | char ** envp = (char **)alloca( sizeof( char *) * |
371 | (CU.EnvList.count()+1) ); | 371 | (CU.EnvList.count()+1) ); |
372 | 372 | ||
373 | for( unsigned int i = 0 ; i < CU.EnvList.count() ; i ++ ) { | 373 | for( unsigned int i = 0 ; i < CU.EnvList.count() ; i ++ ) { |
374 | *(envp+i) = CU.EnvList[i]; | 374 | *(envp+i) = CU.EnvList[i]; |
375 | } | 375 | } |
376 | envp[CU.EnvList.count()]=NULL; | 376 | envp[CU.EnvList.count()]=NULL; |
377 | 377 | ||
378 | execve( Cmd.latin1(), argv, envp ); | 378 | execve( Cmd.latin1(), argv, envp ); |
379 | 379 | ||
380 | // if we come here, the exec was not successfull | 380 | // if we come here, the exec was not successfull |
381 | Log(("Could not exec : %d\n", errno )); | 381 | Log(("Could not exec : %d\n", errno )); |
382 | } | 382 | } |
383 | 383 | ||
384 | #include <stdarg.h> | 384 | #include <stdarg.h> |
385 | static FILE * logf = 0; | 385 | static FILE * logf = 0; |
386 | 386 | ||
387 | void VLog( char * Format, ... ) { | 387 | void VLog( char * Format, ... ) { |
388 | va_list l; | 388 | va_list l; |
389 | 389 | ||
390 | va_start(l, Format ); | 390 | va_start(l, Format ); |
391 | 391 | ||
392 | if( logf == (FILE *)0 ) { | 392 | if( logf == (FILE *)0 ) { |
393 | // logf = fopen( "/tmp/ns2log", "a" ); | 393 | if( getenv("NS2STDERR") ) { |
394 | logf = stderr; | 394 | logf = stderr; |
395 | } else { | ||
396 | logf = fopen( "/tmp/ns2log", "a" ); | ||
397 | } | ||
395 | if( ! logf ) { | 398 | if( ! logf ) { |
396 | fprintf( stderr, "Cannot open logfile /tmp/ns2log %d\n", | 399 | fprintf( stderr, "Cannot open logfile /tmp/ns2log %d\n", |
397 | errno ); | 400 | errno ); |
398 | logf = (FILE *)1; | 401 | logf = (FILE *)1; |
399 | } else { | 402 | } else { |
400 | fprintf( logf, "____ OPEN LOGFILE ____\n"); | 403 | fprintf( logf, "____ OPEN LOGFILE ____\n"); |
401 | } | 404 | } |
402 | } | 405 | } |
403 | 406 | ||
404 | if( (long)logf > 1 ) { | 407 | if( (long)logf > 1 ) { |
405 | vfprintf( logf, Format, l ); | 408 | vfprintf( logf, Format, l ); |
406 | } | 409 | } |
407 | va_end( l ); | 410 | va_end( l ); |
408 | 411 | ||
409 | } | 412 | } |
410 | 413 | ||
411 | void LogClose( void ) { | 414 | void LogClose( void ) { |
412 | if( (long)logf > 1 ) { | 415 | if( (long)logf > 1 ) { |
413 | fprintf( logf, "____ CLOSE LOGFILE ____\n"); | 416 | fprintf( logf, "____ CLOSE LOGFILE ____\n"); |
414 | fclose( logf ); | 417 | if( logf != stderr ) { |
418 | fclose( logf ); | ||
419 | } | ||
415 | logf = 0; | 420 | logf = 0; |
416 | } | 421 | } |
417 | } | 422 | } |
423 | |||
424 | QString removeSpaces( const QString & X ) { | ||
425 | QStringList SL; | ||
426 | |||
427 | SL = QStringList::split( " ", X ); | ||
428 | return SL.join( "_" ); | ||
429 | } | ||
diff --git a/noncore/settings/networksettings2/networksettings2/systemfile.cpp b/noncore/settings/networksettings2/networksettings2/systemfile.cpp index b3fc1a5..2b40834 100644 --- a/noncore/settings/networksettings2/networksettings2/systemfile.cpp +++ b/noncore/settings/networksettings2/networksettings2/systemfile.cpp | |||
@@ -1,185 +1,189 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <qpe/qpeapplication.h> | 2 | #include <qpe/qpeapplication.h> |
3 | #include <qfileinfo.h> | 3 | #include <qfileinfo.h> |
4 | #include <qmessagebox.h> | 4 | #include <qmessagebox.h> |
5 | #include <qfile.h> | 5 | #include <qfile.h> |
6 | #include <qtextstream.h> | 6 | #include <qtextstream.h> |
7 | 7 | ||
8 | #include "resources.h" | 8 | #include "resources.h" |
9 | #include "systemfile.h" | 9 | #include "systemfile.h" |
10 | 10 | ||
11 | #define TEMPLATEDIR "networktemplates/" | 11 | #define TEMPLATEDIR "networktemplates/" |
12 | QString TemplDir; | 12 | QString TemplDir; |
13 | 13 | ||
14 | SystemFile::SystemFile( const QString & N, const QString & P ){ | 14 | SystemFile::SystemFile( const QString & N, |
15 | const QString & P, | ||
16 | bool KDI ){ | ||
15 | Name = N; | 17 | Name = N; |
16 | Path = P; | 18 | Path = P; |
17 | F = 0; | 19 | F = 0; |
18 | // get template info | 20 | // get template info |
19 | { QString S; | 21 | { QString S; |
20 | QFileInfo FI; | 22 | QFileInfo FI; |
21 | 23 | ||
22 | // find location of templates | 24 | // find location of templates |
23 | TemplDir = QPEApplication::qpeDir() + "etc/" + TEMPLATEDIR; | 25 | TemplDir = QPEApplication::qpeDir() + "etc/" + TEMPLATEDIR; |
24 | FI.setFile( TemplDir ); | 26 | FI.setFile( TemplDir ); |
25 | if( ! FI.isDir() ) { | 27 | if( ! FI.isDir() ) { |
26 | // try current dir | 28 | // try current dir |
27 | TemplDir = "./" TEMPLATEDIR; | 29 | TemplDir = "./" TEMPLATEDIR; |
28 | FI.setFile( TemplDir ); | 30 | FI.setFile( TemplDir ); |
29 | if( ! FI.isDir() ) { | 31 | if( ! FI.isDir() ) { |
30 | hasPreSection = | 32 | hasPreSection = |
31 | hasPostSection = | 33 | hasPostSection = |
32 | hasPreNodeSection = | 34 | hasPreNodeSection = |
33 | hasPostNodeSection = | 35 | hasPostNodeSection = |
34 | hasPreDeviceSection = | 36 | hasPreDeviceSection = |
35 | hasPostDeviceSection = 0; | 37 | hasPostDeviceSection = 0; |
36 | return; | 38 | return; |
37 | } | 39 | } |
38 | } | 40 | } |
39 | 41 | ||
40 | // have found location | 42 | // have found location |
41 | S = TemplDir + Name + "/presection"; | 43 | S = TemplDir + Name + "/presection"; |
42 | FI.setFile( S ); | 44 | FI.setFile( S ); |
43 | hasPreSection = ( FI.exists() && FI.isReadable() ); | 45 | hasPreSection = ( FI.exists() && FI.isReadable() ); |
44 | S = TemplDir + Name + "/postsection"; | 46 | S = TemplDir + Name + "/postsection"; |
45 | FI.setFile( S ); | 47 | FI.setFile( S ); |
46 | hasPostSection = ( FI.exists() && FI.isReadable() ); | 48 | hasPostSection = ( FI.exists() && FI.isReadable() ); |
47 | S = TemplDir + Name + "/prenodesection"; | 49 | S = TemplDir + Name + "/prenodesection"; |
48 | FI.setFile( S ); | 50 | FI.setFile( S ); |
49 | hasPreNodeSection = ( FI.exists() && FI.isReadable() ); | 51 | hasPreNodeSection = ( FI.exists() && FI.isReadable() ); |
50 | S = TemplDir + Name + "/postnodesection"; | 52 | S = TemplDir + Name + "/postnodesection"; |
51 | FI.setFile( S ); | 53 | FI.setFile( S ); |
52 | hasPostNodeSection = ( FI.exists() && FI.isReadable() ); | 54 | hasPostNodeSection = ( FI.exists() && FI.isReadable() ); |
53 | S = TemplDir + Name + "/predevicesection"; | 55 | S = TemplDir + Name + "/predevicesection"; |
54 | FI.setFile( S ); | 56 | FI.setFile( S ); |
55 | hasPreDeviceSection = ( FI.exists() && FI.isReadable() ); | 57 | hasPreDeviceSection = ( FI.exists() && FI.isReadable() ); |
56 | S = TemplDir + Name + "/postdevicesection"; | 58 | S = TemplDir + Name + "/postdevicesection"; |
57 | FI.setFile( S ); | 59 | FI.setFile( S ); |
58 | hasPostDeviceSection = ( FI.exists() && FI.isReadable() ); | 60 | hasPostDeviceSection = ( FI.exists() && FI.isReadable() ); |
59 | } | 61 | } |
62 | |||
63 | KnowsDeviceInstances = KDI; | ||
60 | } | 64 | } |
61 | 65 | ||
62 | SystemFile::~SystemFile( void ) { | 66 | SystemFile::~SystemFile( void ) { |
63 | if( F ) | 67 | if( F ) |
64 | delete F; | 68 | delete F; |
65 | } | 69 | } |
66 | 70 | ||
67 | bool SystemFile::open( void ) { | 71 | bool SystemFile::open( void ) { |
68 | if( F ) { | 72 | if( F ) { |
69 | F->close(); | 73 | F->close(); |
70 | delete F; | 74 | delete F; |
71 | } | 75 | } |
72 | 76 | ||
73 | F = new QFile( Path + "bup" ); | 77 | F = new QFile( Path + "bup" ); |
74 | if( ! F->open( IO_WriteOnly ) ) { | 78 | if( ! F->open( IO_WriteOnly ) ) { |
75 | return 0; | 79 | return 0; |
76 | } | 80 | } |
77 | setDevice( F ); | 81 | setDevice( F ); |
78 | return 1; | 82 | return 1; |
79 | } | 83 | } |
80 | 84 | ||
81 | bool SystemFile::close( void ) { | 85 | bool SystemFile::close( void ) { |
82 | if( ! F ) { | 86 | if( ! F ) { |
83 | return 1 ; | 87 | return 1 ; |
84 | } | 88 | } |
85 | 89 | ||
86 | QString OldP = Path + "bup"; | 90 | QString OldP = Path + "bup"; |
87 | 91 | ||
88 | F->close(); | 92 | F->close(); |
89 | delete F; | 93 | delete F; |
90 | F = 0; | 94 | F = 0; |
91 | 95 | ||
92 | return ( rename( OldP.latin1(), Path.latin1() ) >= 0 ); | 96 | return ( rename( OldP.latin1(), Path.latin1() ) >= 0 ); |
93 | } | 97 | } |
94 | 98 | ||
95 | bool SystemFile::preSection( void ) { | 99 | bool SystemFile::preSection( void ) { |
96 | if( hasPreSection ) { | 100 | if( hasPreSection ) { |
97 | QFile Fl( TemplDir + Name + "/presection" ); | 101 | QFile Fl( TemplDir + Name + "/presection" ); |
98 | if( ! Fl.open( IO_ReadOnly ) ) | 102 | if( ! Fl.open( IO_ReadOnly ) ) |
99 | return 1; // error | 103 | return 0; // error |
100 | // copy file to this file | 104 | // copy file to this file |
101 | F->writeBlock( Fl.readAll() ); | 105 | F->writeBlock( Fl.readAll() ); |
102 | } | 106 | } |
103 | return 0; | 107 | return 1; |
104 | } | 108 | } |
105 | 109 | ||
106 | bool SystemFile::postSection( void ) { | 110 | bool SystemFile::postSection( void ) { |
107 | if( hasPostSection ) { | 111 | if( hasPostSection ) { |
108 | QFile Fl( TemplDir + Name + "/postsection" ); | 112 | QFile Fl( TemplDir + Name + "/postsection" ); |
109 | if( ! Fl.open( IO_ReadOnly ) ) | 113 | if( ! Fl.open( IO_ReadOnly ) ) |
110 | return 1; // error | 114 | return 0; // error |
111 | // copy file to this file | 115 | // copy file to this file |
112 | F->writeBlock( Fl.readAll() ); | 116 | F->writeBlock( Fl.readAll() ); |
113 | } | 117 | } |
114 | return 0; | 118 | return 1; |
115 | } | 119 | } |
116 | 120 | ||
117 | bool SystemFile::preNodeSection( ANetNodeInstance * NNI, long ) { | 121 | bool SystemFile::preNodeSection( ANetNodeInstance * NNI, long ) { |
118 | if( hasPreNodeSection ) { | 122 | if( hasPreNodeSection ) { |
119 | QFile Fl( TemplDir + Name + "/prenodesection" ); | 123 | QFile Fl( TemplDir + Name + "/prenodesection" ); |
120 | if( ! Fl.open( IO_ReadOnly ) ) | 124 | if( ! Fl.open( IO_ReadOnly ) ) |
121 | return 1; // error | 125 | return 0; // error |
122 | QTextStream TX( &Fl ); | 126 | QTextStream TX( &Fl ); |
123 | QString Out; | 127 | QString Out; |
124 | QString S = TX.readLine(); | 128 | QString S = TX.readLine(); |
125 | while( ! TX.eof() ) { | 129 | while( ! TX.eof() ) { |
126 | Out = S. | 130 | Out = S. |
127 | arg(NNI->nodeClass()->name()); | 131 | arg(NNI->nodeClass()->name()); |
128 | (*this) << Out << endl; | 132 | (*this) << Out << endl; |
129 | S = TX.readLine(); | 133 | S = TX.readLine(); |
130 | } | 134 | } |
131 | } | 135 | } |
132 | return 0; | 136 | return 1; |
133 | } | 137 | } |
134 | 138 | ||
135 | bool SystemFile::postNodeSection( ANetNodeInstance * NNI, long ) { | 139 | bool SystemFile::postNodeSection( ANetNodeInstance * NNI, long ) { |
136 | if( hasPostNodeSection ) { | 140 | if( hasPostNodeSection ) { |
137 | QFile Fl( TemplDir + Name + "/postnodesection" ); | 141 | QFile Fl( TemplDir + Name + "/postnodesection" ); |
138 | if( ! Fl.open( IO_ReadOnly ) ) | 142 | if( ! Fl.open( IO_ReadOnly ) ) |
139 | return 1; // error | 143 | return 0; // error |
140 | QTextStream TX( &Fl ); | 144 | QTextStream TX( &Fl ); |
141 | QString Out; | 145 | QString Out; |
142 | QString S = TX.readLine(); | 146 | QString S = TX.readLine(); |
143 | while( ! TX.eof() ) { | 147 | while( ! TX.eof() ) { |
144 | Out = S. | 148 | Out = S. |
145 | arg(NNI->name()); | 149 | arg(NNI->name()); |
146 | (*this) << Out << endl; | 150 | (*this) << Out << endl; |
147 | S = TX.readLine(); | 151 | S = TX.readLine(); |
148 | } | 152 | } |
149 | } | 153 | } |
150 | return 0; | 154 | return 1; |
151 | } | 155 | } |
152 | 156 | ||
153 | bool SystemFile::preDeviceSection( ANetNode * NN ) { | 157 | bool SystemFile::preDeviceSection( ANetNode * NN ) { |
154 | if( hasPreDeviceSection ) { | 158 | if( hasPreDeviceSection ) { |
155 | QFile Fl( TemplDir + Name + "/predevicesection" ); | 159 | QFile Fl( TemplDir + Name + "/predevicesection" ); |
156 | if( ! Fl.open( IO_ReadOnly ) ) | 160 | if( ! Fl.open( IO_ReadOnly ) ) |
157 | return 1; // error | 161 | return 0; // error |
158 | QTextStream TX( &Fl ); | 162 | QTextStream TX( &Fl ); |
159 | QString Out; | 163 | QString Out; |
160 | QString S = TX.readLine(); | 164 | QString S = TX.readLine(); |
161 | while( ! TX.eof() ) { | 165 | while( ! TX.eof() ) { |
162 | Out = S.arg(NN->name()); | 166 | Out = S.arg(NN->name()); |
163 | (*this) << Out << endl; | 167 | (*this) << Out << endl; |
164 | S = TX.readLine(); | 168 | S = TX.readLine(); |
165 | } | 169 | } |
166 | } | 170 | } |
167 | return 0; | 171 | return 1; |
168 | } | 172 | } |
169 | 173 | ||
170 | bool SystemFile::postDeviceSection( ANetNode * NN ) { | 174 | bool SystemFile::postDeviceSection( ANetNode * NN ) { |
171 | if( hasPostDeviceSection ) { | 175 | if( hasPostDeviceSection ) { |
172 | QFile Fl( TemplDir + Name + "/postdevicesection" ); | 176 | QFile Fl( TemplDir + Name + "/postdevicesection" ); |
173 | if( ! Fl.open( IO_ReadOnly ) ) | 177 | if( ! Fl.open( IO_ReadOnly ) ) |
174 | return 1; // error | 178 | return 0; // error |
175 | QTextStream TX( &Fl ); | 179 | QTextStream TX( &Fl ); |
176 | QString Out; | 180 | QString Out; |
177 | QString S = TX.readLine(); | 181 | QString S = TX.readLine(); |
178 | while( ! TX.eof() ) { | 182 | while( ! TX.eof() ) { |
179 | Out = S.arg(NN->name()); | 183 | Out = S.arg(NN->name()); |
180 | (*this) << Out << endl; | 184 | (*this) << Out << endl; |
181 | S = TX.readLine(); | 185 | S = TX.readLine(); |
182 | } | 186 | } |
183 | } | 187 | } |
184 | return 0; | 188 | return 1; |
185 | } | 189 | } |
diff --git a/noncore/settings/networksettings2/networksettings2/systemfile.h b/noncore/settings/networksettings2/networksettings2/systemfile.h index f57dab0..ceed605 100644 --- a/noncore/settings/networksettings2/networksettings2/systemfile.h +++ b/noncore/settings/networksettings2/networksettings2/systemfile.h | |||
@@ -1,43 +1,50 @@ | |||
1 | #ifndef __SYSTEMFILE__H | 1 | #ifndef __SYSTEMFILE__H |
2 | #define __SYSTEMFILE__H | 2 | #define __SYSTEMFILE__H |
3 | 3 | ||
4 | #include <qstring.h> | 4 | #include <qstring.h> |
5 | #include <qtextstream.h> | 5 | #include <qtextstream.h> |
6 | 6 | ||
7 | class QFile; | 7 | class QFile; |
8 | class ANetNodeInstance; | 8 | class ANetNodeInstance; |
9 | 9 | ||
10 | class SystemFile : public QTextStream { | 10 | class SystemFile : public QTextStream { |
11 | 11 | ||
12 | public : | 12 | public : |
13 | 13 | ||
14 | SystemFile( const QString & Name, const QString & Path ); | 14 | SystemFile( const QString & Name, |
15 | const QString & Path, | ||
16 | bool KnowsDevicesInstances ); | ||
15 | ~SystemFile( void ); | 17 | ~SystemFile( void ); |
16 | 18 | ||
17 | const QString & name( void ) | 19 | const QString & name( void ) const |
18 | { return Name; } | 20 | { return Name; } |
21 | const QString & path( void ) const | ||
22 | { return Path; } | ||
23 | bool knowsDeviceInstances( void ) const | ||
24 | { return KnowsDeviceInstances; } | ||
19 | 25 | ||
20 | bool open( void ); | 26 | bool open( void ); |
21 | bool close( void ); | 27 | bool close( void ); |
22 | 28 | ||
23 | bool preSection( void ); | 29 | bool preSection( void ); |
24 | bool postSection( void ); | 30 | bool postSection( void ); |
25 | bool preNodeSection( ANetNodeInstance * NNI, long DevNr ); | 31 | bool preNodeSection( ANetNodeInstance * NNI, long DevNr ); |
26 | bool postNodeSection( ANetNodeInstance * NNI, long DevNr ); | 32 | bool postNodeSection( ANetNodeInstance * NNI, long DevNr ); |
27 | bool preDeviceSection( ANetNode * NN ); | 33 | bool preDeviceSection( ANetNode * NN ); |
28 | bool postDeviceSection( ANetNode * NN ); | 34 | bool postDeviceSection( ANetNode * NN ); |
29 | 35 | ||
30 | private : | 36 | private : |
31 | 37 | ||
32 | QString Name; | 38 | QString Name; |
33 | QString Path; | 39 | QString Path; |
34 | QFile * F; | 40 | QFile * F; |
35 | bool hasPreSection; | 41 | bool hasPreSection; |
36 | bool hasPostSection; | 42 | bool hasPostSection; |
37 | bool hasPreNodeSection; | 43 | bool hasPreNodeSection; |
38 | bool hasPostNodeSection; | 44 | bool hasPostNodeSection; |
39 | bool hasPreDeviceSection; | 45 | bool hasPreDeviceSection; |
40 | bool hasPostDeviceSection; | 46 | bool hasPostDeviceSection; |
47 | bool KnowsDeviceInstances; | ||
41 | 48 | ||
42 | }; | 49 | }; |
43 | #endif | 50 | #endif |
diff --git a/noncore/settings/networksettings2/nsdata.cpp b/noncore/settings/networksettings2/nsdata.cpp index 3b17548..d709c0a 100644 --- a/noncore/settings/networksettings2/nsdata.cpp +++ b/noncore/settings/networksettings2/nsdata.cpp | |||
@@ -1,71 +1,70 @@ | |||
1 | #include <stdlib.h> | 1 | #include <stdlib.h> |
2 | #include <qpe/qpeapplication.h> | 2 | #include <qpe/qpeapplication.h> |
3 | #include <qtextstream.h> | 3 | #include <qtextstream.h> |
4 | #include <qdir.h> | 4 | #include <qdir.h> |
5 | #include <qfile.h> | 5 | #include <qfile.h> |
6 | #include <qfileinfo.h> | 6 | #include <qfileinfo.h> |
7 | 7 | ||
8 | #include "nsdata.h" | 8 | #include "nsdata.h" |
9 | #include <asdevice.h> | 9 | #include <asdevice.h> |
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/Settings/NS2.conf", | 18 | CfgFile.sprintf( "%s/Settings/NS2.conf", |
19 | NSResources->currentUser().HomeDir.latin1() ); | 19 | NSResources->currentUser().HomeDir.latin1() ); |
20 | Log(( "Cfg from %s\n", CfgFile.latin1() )); | 20 | Log(( "Cfg from %s\n", CfgFile.latin1() )); |
21 | 21 | ||
22 | // load settings | 22 | // load settings |
23 | Force = 0; | ||
24 | IsModified = 0; | 23 | IsModified = 0; |
25 | loadSettings(); | 24 | loadSettings(); |
26 | } | 25 | } |
27 | 26 | ||
28 | // saving is done by caller | 27 | // saving is done by caller |
29 | NetworkSettingsData::~NetworkSettingsData( void ) { | 28 | NetworkSettingsData::~NetworkSettingsData( void ) { |
30 | delete NSResources; | 29 | delete NSResources; |
31 | } | 30 | } |
32 | 31 | ||
33 | void NetworkSettingsData::loadSettings( void ) { | 32 | void NetworkSettingsData::loadSettings( void ) { |
34 | QString Line, S; | 33 | QString Line, S; |
35 | QString Attr, Value; | 34 | QString Attr, Value; |
36 | long idx; | 35 | long idx; |
37 | 36 | ||
38 | QFile F( CfgFile ); | 37 | QFile F( CfgFile ); |
39 | QTextStream TS( &F ); | 38 | QTextStream TS( &F ); |
40 | 39 | ||
41 | do { | 40 | do { |
42 | 41 | ||
43 | if( ! F.open(IO_ReadOnly) ) | 42 | if( ! F.open(IO_ReadOnly) ) |
44 | break; | 43 | break; |
45 | 44 | ||
46 | /* load the file -> | 45 | /* load the file -> |
47 | 46 | ||
48 | FORMAT : | 47 | FORMAT : |
49 | 48 | ||
50 | [NETNODETYPE] | 49 | [NETNODETYPE] |
51 | Entries ... | 50 | Entries ... |
52 | <EMPTYLINE> | 51 | <EMPTYLINE> |
53 | [connection] | 52 | [connection] |
54 | Name=Name | 53 | Name=Name |
55 | Node=Name | 54 | Node=Name |
56 | <EMPTYLINE> | 55 | <EMPTYLINE> |
57 | */ | 56 | */ |
58 | while( ! TS.atEnd() ) { | 57 | while( ! TS.atEnd() ) { |
59 | S = Line = TS.readLine(); | 58 | S = Line = TS.readLine(); |
60 | 59 | ||
61 | if ( S.isEmpty() || S[0] != '[' ) | 60 | if ( S.isEmpty() || S[0] != '[' ) |
62 | continue; | 61 | continue; |
63 | 62 | ||
64 | S = S.mid( 1, S.length()-2 ); | 63 | S = S.mid( 1, S.length()-2 ); |
65 | 64 | ||
66 | if( ! NSResources ) { | 65 | if( ! NSResources ) { |
67 | continue; | 66 | continue; |
68 | } | 67 | } |
69 | 68 | ||
70 | if( S == "connection" ) { | 69 | if( S == "connection" ) { |
71 | // load connections -> collections of nodes | 70 | // load connections -> collections of nodes |
@@ -173,401 +172,422 @@ QString NetworkSettingsData::saveSettings( void ) { | |||
173 | it.current(); | 172 | it.current(); |
174 | ++it ) { | 173 | ++it ) { |
175 | TS << "[nodetype " | 174 | TS << "[nodetype " |
176 | << quote( QString( it.current()->NetNode->name() ) ) | 175 | << quote( QString( it.current()->NetNode->name() ) ) |
177 | << "]" | 176 | << "]" |
178 | << endl; | 177 | << endl; |
179 | 178 | ||
180 | it.current()->NetNode->saveAttributes( TS ); | 179 | it.current()->NetNode->saveAttributes( TS ); |
181 | TS << endl; | 180 | TS << endl; |
182 | } | 181 | } |
183 | 182 | ||
184 | { Name2Connection_t & M = NSResources->connections(); | 183 | { Name2Connection_t & M = NSResources->connections(); |
185 | ANetNodeInstance * NNI; | 184 | ANetNodeInstance * NNI; |
186 | 185 | ||
187 | // for all connections | 186 | // for all connections |
188 | for( QDictIterator<NodeCollection> it(M); | 187 | for( QDictIterator<NodeCollection> it(M); |
189 | it.current(); | 188 | it.current(); |
190 | ++it ) { | 189 | ++it ) { |
191 | // all nodes in those connections | 190 | // all nodes in those connections |
192 | for( QListIterator<ANetNodeInstance> nit(*(it.current())); | 191 | for( QListIterator<ANetNodeInstance> nit(*(it.current())); |
193 | nit.current(); | 192 | nit.current(); |
194 | ++nit ) { | 193 | ++nit ) { |
195 | // header | 194 | // header |
196 | NNI = nit.current(); | 195 | NNI = nit.current(); |
197 | TS << '[' | 196 | TS << '[' |
198 | << QString(NNI->nodeClass()->name()) | 197 | << QString(NNI->nodeClass()->name()) |
199 | << ']' | 198 | << ']' |
200 | << endl; | 199 | << endl; |
201 | NNI->saveAttributes( TS ); | 200 | NNI->saveAttributes( TS ); |
202 | TS << endl; | 201 | TS << endl; |
203 | } | 202 | } |
204 | 203 | ||
205 | TS << "[connection]" << endl; | 204 | TS << "[connection]" << endl; |
206 | it.current()->save(TS); | 205 | it.current()->save(TS); |
207 | } | 206 | } |
208 | } | 207 | } |
209 | 208 | ||
210 | QDir D("."); | 209 | QDir D("."); |
211 | D.rename( CfgFile + ".bup", CfgFile ); | 210 | D.rename( CfgFile + ".bup", CfgFile ); |
212 | 211 | ||
213 | // | 212 | // |
214 | // proper files AND system files regenerated | 213 | // proper files AND system files regenerated |
215 | // | 214 | // |
216 | 215 | ||
217 | setModified( 0 ); | 216 | setModified( 0 ); |
218 | return ErrS; | 217 | return ErrS; |
219 | } | 218 | } |
220 | 219 | ||
221 | QString NetworkSettingsData::generateSettings( bool ForceReq ) { | 220 | QString NetworkSettingsData::generateSettings( void ) { |
222 | bool ForceIt; | ||
223 | QString S = ""; | 221 | QString S = ""; |
224 | 222 | Name2SystemFile_t & SFM = NSResources->systemFiles(); | |
225 | // include own force flag | 223 | Name2Connection_t & M = NSResources->connections(); |
226 | ForceIt = (Force) ? 1 : ForceReq; | 224 | NodeCollection * NC; |
227 | 225 | ANetNodeInstance * NNI; | |
228 | if( ! ForceIt && ! isModified() ) | 226 | ANetNodeInstance * FirstWithData; |
229 | return S; | 227 | SystemFile * SF; |
228 | AsDevice * CurDev; | ||
229 | ANetNode * NN, * CurDevNN = 0; | ||
230 | long NoOfDevs; | ||
231 | long DevCtStart; | ||
232 | bool needToGenerate; | ||
230 | 233 | ||
231 | // regenerate system files | 234 | // regenerate system files |
232 | Log( ( "Generating settings from %s\n", CfgFile.latin1() )); | 235 | Log( ( "Generating settings from %s\n", CfgFile.latin1() )); |
233 | 236 | ||
234 | { Name2SystemFile_t & SFM = NSResources->systemFiles(); | 237 | // |
235 | Name2Connection_t & M = NSResources->connections(); | 238 | // generate files proper to each netnodeinstance |
236 | NodeCollection * NC; | 239 | // |
237 | ANetNodeInstance * NNI; | 240 | { Name2Instance_t & NNIs = NSResources->netNodeInstances(); |
238 | SystemFile * SF; | 241 | |
239 | AsDevice * CurDev; | 242 | for( QDictIterator<ANetNodeInstance> NNIIt(NNIs); |
240 | ANetNode * CurDevNN; | 243 | NNIIt.current(); |
241 | bool needToRegenerate = ForceIt; | 244 | ++NNIIt ) { |
242 | 245 | // for all nodes find those that are modified | |
243 | // | 246 | NNI = NNIIt.current(); |
244 | // check if we need to generate at least one of the system files | 247 | |
245 | // | 248 | { // get list of proper files for this nodeclass (if any) |
246 | if( ! ForceIt ) { | 249 | QStringList * PF = NNI->nodeClass()->properFiles(); |
247 | for( QDictIterator<SystemFile> sfit(SFM); | 250 | |
248 | sfit.current(); | 251 | if( PF ) { |
249 | ++sfit ) { | 252 | for ( QStringList::Iterator it = PF->begin(); |
250 | SF = sfit.current(); | 253 | it != PF->end(); |
251 | 254 | ++it ) { | |
252 | // check if there are nodes that are modified and require | 255 | QFile * F = NNI->openFile( (*it) ); |
253 | // data for this system file | 256 | if( F ) { |
254 | 257 | QTextStream TS( F ); | |
255 | // for all connections | 258 | if( NNI->generateFile( (*it), F->name(), TS, -1 ) == 2 ) { |
256 | for( QDictIterator<NodeCollection> ncit(M); | 259 | // problem generating |
257 | ncit.current(); | 260 | S = qApp->translate( "NetworkSettings", |
258 | ++ncit ) { | 261 | "<p>Cannot generate files proper to \"%1\"</p>" ). |
259 | NC = ncit.current(); | 262 | arg(NNI->nodeClass()->name()) ; |
260 | 263 | delete F; | |
261 | if( NC->isModified() ) { | 264 | return S; |
262 | // does this connection 'touch' this system file ? | ||
263 | for( QListIterator<ANetNodeInstance> cncit(*NC); | ||
264 | cncit.current(); | ||
265 | ++cncit ) { | ||
266 | NNI = cncit.current(); | ||
267 | if( ( NNI->nodeClass()->hasDataFor( SF->name() ) || | ||
268 | NNI->hasDataFor( SF->name() ) | ||
269 | ) && | ||
270 | NNI->isModified() ) { | ||
271 | needToRegenerate = 1; | ||
272 | break; | ||
273 | } | 265 | } |
266 | delete F; | ||
274 | } | 267 | } |
275 | } | 268 | } |
276 | if( needToRegenerate ) | ||
277 | break; | ||
278 | } | 269 | } |
279 | if( needToRegenerate ) | ||
280 | break; | ||
281 | } | 270 | } |
282 | } | 271 | } |
272 | } | ||
283 | 273 | ||
284 | // | 274 | // |
285 | // generate files proper to each netnodeinstance | 275 | // generate all system files |
286 | // | 276 | // |
287 | { Name2Instance_t & NNIs = NSResources->netNodeInstances(); | 277 | for( QDictIterator<SystemFile> sfit(SFM); |
288 | 278 | sfit.current(); | |
289 | for( QDictIterator<ANetNodeInstance> NNIIt(NNIs); | 279 | ++sfit ) { |
290 | NNIIt.current(); | 280 | SF = sfit.current(); |
291 | ++NNIIt | 281 | |
292 | ){ | 282 | // reset all |
293 | // for all nodes find those that are modified | 283 | for( QDictIterator<NetNode_t> nnit( NSResources->netNodes() ); |
294 | NNI = NNIIt.current(); | 284 | nnit.current(); |
295 | 285 | ++nnit ) { | |
296 | if( ForceIt || NNI->isModified() ) { | 286 | nnit.current()->NetNode->setDone(0); |
297 | if( NNI->nodeClass()->generateProperFilesFor( NNI ) ) { | 287 | } |
298 | // problem generating | 288 | |
299 | S = qApp->translate( "NetworkSettings", | 289 | for( QDictIterator<ANetNodeInstance> nniit( |
300 | "<p>Cannot generate files proper to \"%1\"</p>" ). | 290 | NSResources->netNodeInstances() ); |
301 | arg(NNI->nodeClass()->name()) ; | 291 | nniit.current(); |
302 | return S; | 292 | ++nniit ) { |
293 | nniit.current()->setDone(0); | ||
294 | } | ||
295 | |||
296 | for( QDictIterator<NodeCollection> ncit(M); | ||
297 | ncit.current(); | ||
298 | ++ncit ) { | ||
299 | ncit.current()->setDone(0); | ||
300 | } | ||
301 | |||
302 | Log( ( "Generating %s\n", SF->name().latin1() )); | ||
303 | |||
304 | needToGenerate = 0; | ||
305 | |||
306 | // are there netnodes that have instances and need | ||
307 | // to write data in this system file ? | ||
308 | for( QDictIterator<NetNode_t> nnit( NSResources->netNodes() ); | ||
309 | ! needToGenerate && nnit.current(); | ||
310 | ++nnit ) { | ||
311 | |||
312 | NN = nnit.current()->NetNode; | ||
313 | |||
314 | if( NN->hasDataForFile( SF->name() ) ) { | ||
315 | // netnode can have data | ||
316 | |||
317 | // are there instances of this node ? | ||
318 | for( QDictIterator<ANetNodeInstance> nniit( | ||
319 | NSResources->netNodeInstances() ); | ||
320 | ! needToGenerate && nniit.current(); | ||
321 | ++nniit ) { | ||
322 | if( nniit.current()->nodeClass() == NN ) { | ||
323 | // yes | ||
324 | Log(("Node %s has data\n", | ||
325 | nniit.current()->name() )); | ||
326 | needToGenerate = 1; | ||
327 | break; | ||
303 | } | 328 | } |
304 | } | 329 | } |
305 | } | 330 | } |
306 | } | 331 | } |
307 | 332 | ||
308 | // | 333 | if( ! needToGenerate ) { |
309 | // generate all system files | 334 | // no instances found that might need to write data |
310 | // | 335 | // in this systemfile |
311 | for( QDictIterator<SystemFile> sfit(SFM); | 336 | Log(("No nodes for systemfile %s\n", SF->name().latin1() )); |
312 | sfit.current(); | 337 | continue; |
313 | ++sfit ) { | 338 | } |
314 | SF = sfit.current(); | ||
315 | 339 | ||
316 | Log( ( "Generating %s\n", SF->name().latin1() )); | 340 | // ok generate this system file |
317 | SF->open(); | 341 | SF->open(); |
318 | 342 | ||
319 | do { // so we can break; | 343 | // global presection for this system file |
344 | if( ! SF->preSection() ) { | ||
345 | S = qApp->translate( "NetworkSettings", | ||
346 | "<p>Error in section \"Preamble\" for file \"%1\"</p>" ). | ||
347 | arg( SF->name() ); | ||
348 | return S; | ||
349 | } | ||
320 | 350 | ||
321 | // global presection for this system file | 351 | // find connections that want to write to this file |
322 | if( SF->preSection() ) { | 352 | for( QDictIterator<NodeCollection> ncit(M); |
353 | ncit.current(); | ||
354 | ++ncit ) { | ||
355 | |||
356 | NC = ncit.current(); | ||
357 | |||
358 | if( NC->done() ) { | ||
359 | // already done | ||
360 | continue; | ||
361 | } | ||
362 | |||
363 | if( ! NC->hasDataForFile( SF->name() ) ) { | ||
364 | // no data | ||
365 | continue; | ||
366 | } | ||
367 | |||
368 | Log(("Generating %s for connection %s\n", | ||
369 | SF->name().latin1(), NC->name().latin1() )); | ||
370 | // find highest item that wants to write data to this file | ||
371 | FirstWithData = NC->firstWithDataForFile( SF->name() ); | ||
372 | |||
373 | // find device on which this connection works | ||
374 | CurDev = NC->device(); | ||
375 | // class of that node | ||
376 | CurDevNN = CurDev->netNode()->nodeClass(); | ||
377 | |||
378 | Log(( "%s is done %d\n", | ||
379 | FirstWithData->nodeClass()->name(), | ||
380 | FirstWithData->nodeClass()->done() )); | ||
381 | |||
382 | if( ! FirstWithData->nodeClass()->done() ) { | ||
383 | // generate fixed part | ||
384 | if( ! SF->preDeviceSection( CurDevNN ) ) { | ||
323 | S = qApp->translate( "NetworkSettings", | 385 | S = qApp->translate( "NetworkSettings", |
324 | "<p>Error in preSection for file \"%1\"</p>" ). | 386 | "<p>Error in section \"Pre-Device\" for file \"%1\"</p>" ). |
325 | arg( SF->name() ); | 387 | arg( SF->name() ); |
326 | return S; | 388 | return S; |
327 | } | 389 | } |
328 | 390 | ||
329 | // find all netnodes and figure out if | 391 | if( FirstWithData->nodeClass()->generateFile( |
330 | // for that node there are instances | 392 | SF->name(), SF->path(), *SF, -1 ) == 2 ) { |
331 | for( QDictIterator<NetNode_t> nnit( | 393 | S = qApp->translate( "NetworkSettings", |
332 | NSResources->netNodes() ); | 394 | "<p>Error in section \"Common\" for file \"%1\" and node \"%2\"</p>" ). |
333 | nnit.current(); | 395 | arg( SF->name() ). |
334 | ++nnit ) { | 396 | arg( CurDevNN->name() ); |
335 | 397 | return S; | |
336 | CurDevNN = nnit.current()->NetNode; | 398 | } |
337 | 399 | FirstWithData->nodeClass()->setDone( 1 ); | |
338 | // are there instances for this netnode ? | 400 | } |
339 | NNI = 0; | 401 | |
340 | for( QDictIterator<ANetNodeInstance> nniit( | 402 | NoOfDevs = 0; |
341 | NSResources->netNodeInstances() ); | 403 | DevCtStart = -1; |
342 | nniit.current(); | 404 | |
343 | ++nniit ) { | 405 | if( SF->knowsDeviceInstances() ) { |
344 | if( nniit.current()->nodeClass() == CurDevNN ) { | 406 | DevCtStart = 0; |
345 | NNI = nniit.current(); | 407 | NoOfDevs = CurDevNN->instanceCount(); |
346 | break; | 408 | } |
347 | } | 409 | |
410 | Log(( "Node %s is done %d\n", | ||
411 | CurDev->netNode()->nodeClass()->name(), | ||
412 | CurDev->netNode()->nodeClass()->done() )); | ||
413 | |||
414 | if( ! CurDev->netNode()->nodeClass()->done() ) { | ||
415 | // first time this device is handled | ||
416 | // generate common device specific part | ||
417 | for( int i = DevCtStart; i < NoOfDevs ; i ++ ) { | ||
418 | |||
419 | if( FirstWithData->nodeClass()->generateFile( | ||
420 | SF->name(), SF->path(), *SF, CurDev->netNode(), i ) == 2 ) { | ||
421 | S = qApp->translate( "NetworkSettings", | ||
422 | "<p>Error in section \"Device\" for file \"%1\" and node \"%2\"</p>" ). | ||
423 | arg( SF->name() ). | ||
424 | arg( CurDevNN->name() ); | ||
425 | return S; | ||
348 | } | 426 | } |
427 | } | ||
428 | CurDev->netNode()->nodeClass()->setDone( 1 ); | ||
429 | } | ||
349 | 430 | ||
350 | if( ! NNI ) | 431 | // generate profile specific info |
351 | // no instances -> next netnode type | 432 | // for all nodeconnections that work on the same device |
352 | continue; | 433 | for( QDictIterator<NodeCollection> ncit2(M); |
434 | ncit2.current(); | ||
435 | ++ncit2 ) { | ||
353 | 436 | ||
354 | // has this node data for this system file ? | 437 | if( ncit2.current()->device() != CurDev ) { |
355 | if( (CurDev = NNI->runtime()->asDevice() ) ) { | 438 | // different device |
356 | // generate start for this nodetype for all possible devices of this type | 439 | continue; |
357 | for( int i = 0; i < CurDevNN->instanceCount(); i ++ ) { | 440 | } |
358 | S = generateSystemFileNode( *SF, CurDev, NNI, i ); | 441 | |
359 | if( ! S.isEmpty() ) | 442 | Log(("Connection %s of same family\n", ncit2.current()->name().latin1() )); |
360 | return S; | 443 | // generate |
361 | } | 444 | NNI = ncit2.current()->firstWithDataForFile( SF->name() ); |
362 | } else { | 445 | for( int i = DevCtStart; i < NoOfDevs ; i ++ ) { |
363 | S = generateSystemFileNode( *SF, 0, NNI, -1 ); | 446 | if( ! SF->preNodeSection( NNI, i ) ) { |
364 | if( ! S.isEmpty() ) | 447 | S = qApp->translate( "NetworkSettings", |
448 | "<p>Error in \"Pre-Node Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
449 | arg( SF->name() ). | ||
450 | arg( CurDevNN->name() ); | ||
451 | return S; | ||
452 | } | ||
453 | |||
454 | switch( NNI->generateFile( | ||
455 | SF->name(), SF->path(), *SF, i ) ) { | ||
456 | case 0 : | ||
457 | (*SF) << endl; | ||
458 | break; | ||
459 | case 1 : | ||
460 | break; | ||
461 | case 2 : | ||
462 | S = qApp->translate( "NetworkSettings", | ||
463 | "<p>Error in section \"Node\" for file \"%1\" and node \"%2\"</p>" ). | ||
464 | arg( SF->name() ). | ||
465 | arg( CurDevNN->name() ); | ||
365 | return S; | 466 | return S; |
366 | } | 467 | } |
367 | } | ||
368 | 468 | ||
369 | if( SF->postSection() ) { | 469 | if( ! SF->postNodeSection( NNI, i ) ) { |
370 | S = qApp->translate( "NetworkSettings", | 470 | S = qApp->translate( "NetworkSettings", |
371 | "<p>Error in postSection for file \"%1\"</p>" ). | 471 | "<p>Error in \"Post-Node Part\" for file \"%1\" and node \"%2\"</p>" ). |
372 | arg( SF->name() ); | 472 | arg( SF->name() ). |
373 | return S; | 473 | arg( CurDevNN->name() ); |
474 | return S; | ||
475 | } | ||
374 | } | 476 | } |
375 | 477 | ||
376 | } while( 0 ); | 478 | ncit2.current()->setDone( 1 ); |
377 | SF->close(); | 479 | |
480 | } | ||
481 | } | ||
482 | |||
483 | if( ! SF->postDeviceSection( CurDevNN ) ) { | ||
484 | S = qApp->translate( "NetworkSettings", | ||
485 | "<p>Error in section \"Post-Device\" for file \"%1\" and node \"%2\"</p>" ). | ||
486 | arg( SF->name() ). | ||
487 | arg( CurDevNN->name() ); | ||
488 | return S; | ||
489 | } | ||
490 | |||
491 | |||
492 | if( ! SF->postSection() ) { | ||
493 | S = qApp->translate( "NetworkSettings", | ||
494 | "<p>Error in section \"Closure\" for file \"%1\"</p>" ). | ||
495 | arg( SF->name() ); | ||
496 | return S; | ||
378 | } | 497 | } |
498 | |||
499 | // end of file | ||
500 | SF->close(); | ||
379 | } | 501 | } |
380 | Force = 0; | ||
381 | return S; | 502 | return S; |
382 | } | 503 | } |
383 | 504 | ||
384 | QList<NodeCollection> NetworkSettingsData::collectPossible( const char * Interface ) { | 505 | QList<NodeCollection> NetworkSettingsData::collectPossible( const char * Interface ) { |
385 | // collect connections that can work on top of this interface | 506 | // collect connections that can work on top of this interface |
386 | NodeCollection * NC; | 507 | NodeCollection * NC; |
387 | QList<NodeCollection> PossibleConnections; | 508 | QList<NodeCollection> PossibleConnections; |
388 | Name2Connection_t & M = NSResources->connections(); | 509 | Name2Connection_t & M = NSResources->connections(); |
389 | 510 | ||
390 | // for all connections | 511 | // for all connections |
391 | for( QDictIterator<NodeCollection> it(M); | 512 | for( QDictIterator<NodeCollection> it(M); |
392 | it.current(); | 513 | it.current(); |
393 | ++it ) { | 514 | ++it ) { |
394 | NC = it.current(); | 515 | NC = it.current(); |
395 | // check if this profile handles the requested interface | 516 | // check if this profile handles the requested interface |
396 | if( NC->handlesInterface( Interface ) && // if different Intf. | 517 | if( NC->handlesInterface( Interface ) && // if different Intf. |
397 | NC->state() != Disabled && // if not enabled | 518 | NC->state() != Disabled && // if not enabled |
398 | NC->state() != IsUp // if already used | 519 | NC->state() != IsUp // if already used |
399 | ) { | 520 | ) { |
400 | Log( ( "Append %s for %s\n", NC->name().latin1(), Interface)); | 521 | Log( ( "Append %s for %s\n", NC->name().latin1(), Interface)); |
401 | PossibleConnections.append( NC ); | 522 | PossibleConnections.append( NC ); |
402 | } | 523 | } |
403 | } | 524 | } |
404 | return PossibleConnections; | 525 | return PossibleConnections; |
405 | } | 526 | } |
406 | 527 | ||
407 | 528 | ||
408 | /* | 529 | /* |
409 | Called by the system to see if interface can be brought UP | 530 | Called by the system to see if interface can be brought UP |
410 | 531 | ||
411 | if allowed, echo Interface-allowed else Interface-disallowed | 532 | if allowed, echo Interface-allowed else Interface-disallowed |
412 | */ | 533 | */ |
413 | 534 | ||
414 | bool NetworkSettingsData::canStart( const char * Interface ) { | 535 | bool NetworkSettingsData::canStart( const char * Interface ) { |
415 | // load situation | 536 | // load situation |
416 | NodeCollection * NC = 0; | 537 | NodeCollection * NC = 0; |
417 | QList<NodeCollection> PossibleConnections; | 538 | QList<NodeCollection> PossibleConnections; |
418 | 539 | ||
419 | PossibleConnections = collectPossible( Interface ); | 540 | PossibleConnections = collectPossible( Interface ); |
420 | 541 | ||
421 | Log( ( "Possiblilies %d\n", PossibleConnections.count() )); | 542 | Log( ( "Possiblilies %d\n", PossibleConnections.count() )); |
422 | switch( PossibleConnections.count() ) { | 543 | switch( PossibleConnections.count() ) { |
423 | case 0 : // no connections | 544 | case 0 : // no connections |
424 | break; | 545 | break; |
425 | case 1 : // one connection | 546 | case 1 : // one connection |
426 | NC = PossibleConnections.first(); | 547 | NC = PossibleConnections.first(); |
427 | break; | 548 | break; |
428 | default : // need to ask user ? | 549 | default : // need to ask user ? |
429 | return 1; | 550 | return 1; |
430 | } | 551 | } |
431 | 552 | ||
432 | if( NC ) { | 553 | if( NC ) { |
433 | switch( NC->state() ) { | 554 | switch( NC->state() ) { |
434 | case Unchecked : | 555 | case Unchecked : |
435 | case Unknown : | 556 | case Unknown : |
436 | case Unavailable : | 557 | case Unavailable : |
437 | case Disabled : | 558 | case Disabled : |
438 | // this profile does not allow interface to be UP | 559 | // this profile does not allow interface to be UP |
439 | // -> try others | 560 | // -> try others |
440 | break; | 561 | break; |
441 | case Off : | 562 | case Off : |
442 | // try to UP the device | 563 | // try to UP the device |
443 | if( ! NC->setState( Activate ) ) { | 564 | if( ! NC->setState( Activate ) ) { |
444 | // cannot bring device Online -> try other alters | 565 | // cannot bring device Online -> try other alters |
445 | break; | 566 | break; |
446 | } | 567 | } |
447 | // FT | 568 | // FT |
448 | case Available : | 569 | case Available : |
449 | case IsUp : // also called for 'ifdown' | 570 | case IsUp : // also called for 'ifdown' |
450 | // device is ready -> done | 571 | // device is ready -> done |
451 | printf( "%s-c%d-allowed\n", Interface, NC->number() ); | 572 | printf( "%s-c%d-allowed\n", Interface, NC->number() ); |
452 | return 0; | 573 | return 0; |
453 | } | 574 | } |
454 | } | 575 | } |
455 | 576 | ||
456 | // if we come here no alternatives are possible | 577 | // if we come here no alternatives are possible |
457 | printf( "%s-cnn-disallowed\n", Interface ); | 578 | printf( "%s-cnn-disallowed\n", Interface ); |
458 | return 0; | 579 | return 0; |
459 | } | 580 | } |
460 | 581 | ||
461 | /* | 582 | /* |
462 | Called by the system to regenerate config files | 583 | Called by the system to regenerate config files |
463 | */ | 584 | */ |
464 | 585 | ||
465 | bool NetworkSettingsData::regenerate( void ) { | 586 | bool NetworkSettingsData::regenerate( void ) { |
466 | QString S; | 587 | QString S = generateSettings(); |
467 | // load situation | ||
468 | S = generateSettings( TRUE ); | ||
469 | if( ! S.isEmpty() ) { | 588 | if( ! S.isEmpty() ) { |
470 | fprintf( stdout, "%s\n", S.latin1() ); | 589 | fprintf( stdout, "%s\n", S.latin1() ); |
471 | return 1; | 590 | return 1; |
472 | } | 591 | } |
473 | return 0; | 592 | return 0; |
474 | } | 593 | } |
475 | |||
476 | QString NetworkSettingsData::generateSystemFileNode( | ||
477 | SystemFile &SF, | ||
478 | AsDevice * CurDev, | ||
479 | ANetNodeInstance * DevNNI, | ||
480 | long DevInstNr ) { | ||
481 | |||
482 | QString S=""; | ||
483 | ANetNode * CurDevNN = DevNNI->nodeClass(); | ||
484 | Name2Connection_t & M = NSResources->connections(); | ||
485 | |||
486 | if( SF.preDeviceSection( CurDevNN ) ) { | ||
487 | S = qApp->translate( "NetworkSettings", | ||
488 | "<p>Error in \"Pre-Device Part\" for file \"%1\" and nodetype \"%2\"</p>" ). | ||
489 | arg( SF.name() ). | ||
490 | arg( CurDevNN->name() ); | ||
491 | return S; | ||
492 | } | ||
493 | |||
494 | if( CurDevNN->hasDataFor( SF.name() ) ) { | ||
495 | if( CurDevNN->generateDeviceDataForCommonFile( SF, DevInstNr ) ) { | ||
496 | S = qApp->translate( "NetworkSettings", | ||
497 | "<p>Error in \"Device Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
498 | arg( SF.name() ). | ||
499 | arg( CurDevNN->name() ); | ||
500 | return S; | ||
501 | } | ||
502 | } | ||
503 | |||
504 | // now generate profile specific data for all | ||
505 | // connections working on a device of the current | ||
506 | // netnode type | ||
507 | for( QDictIterator<NodeCollection> ncit(M); | ||
508 | ncit.current(); | ||
509 | ++ncit ) { | ||
510 | NodeCollection * NC = ncit.current(); | ||
511 | |||
512 | // currenly only those connections that work on | ||
513 | // the current device (or on no device if no current) | ||
514 | AsDevice * Dev = NC->device(); | ||
515 | |||
516 | if( CurDev ) { | ||
517 | if( CurDevNN != Dev->netNode()->nodeClass() ) { | ||
518 | // other device type -> later | ||
519 | continue; | ||
520 | } | ||
521 | } else { | ||
522 | if( Dev ) { | ||
523 | // other | ||
524 | continue; | ||
525 | } | ||
526 | } | ||
527 | |||
528 | // generate 'entry' | ||
529 | if( SF.preNodeSection( DevNNI, DevInstNr ) ) { | ||
530 | S = qApp->translate( "NetworkSettings", | ||
531 | "<p>Error in \"Pre-Node Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
532 | arg( SF.name() ). | ||
533 | arg( CurDevNN->name() ); | ||
534 | return S; | ||
535 | } | ||
536 | |||
537 | // ask all nodes in connection | ||
538 | for( QListIterator<ANetNodeInstance> cncit(*NC); | ||
539 | cncit.current(); | ||
540 | ++cncit ) { | ||
541 | ANetNodeInstance * NNI = cncit.current(); | ||
542 | |||
543 | if( NNI->hasDataFor( SF.name() ) ) { | ||
544 | if( NNI->generateDataForCommonFile(SF,DevInstNr) ) { | ||
545 | S = qApp->translate( "NetworkSettings", | ||
546 | "<p>Error in \"Node Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
547 | arg( SF.name() ). | ||
548 | arg( NNI->nodeClass()->name() ); | ||
549 | return S; | ||
550 | } | ||
551 | } | ||
552 | } | ||
553 | |||
554 | if( SF.postNodeSection( DevNNI, DevInstNr ) ) { | ||
555 | S = qApp->translate( "NetworkSettings", | ||
556 | "<p>Error in \"Post-Node Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
557 | arg( SF.name() ). | ||
558 | arg( CurDevNN->name() ); | ||
559 | return S; | ||
560 | } | ||
561 | SF << endl; | ||
562 | } | ||
563 | |||
564 | if( SF.postDeviceSection( CurDevNN ) ) { | ||
565 | S = qApp->translate( "NetworkSettings", | ||
566 | "<p>Error in \"Post-Device Part\" for file \"%1\" and node \"%2\"</p>" ). | ||
567 | arg( SF.name() ). | ||
568 | arg( CurDevNN->name() ); | ||
569 | return S; | ||
570 | } | ||
571 | |||
572 | return S; | ||
573 | } | ||
diff --git a/noncore/settings/networksettings2/nsdata.h b/noncore/settings/networksettings2/nsdata.h index 57eb722..507185e 100644 --- a/noncore/settings/networksettings2/nsdata.h +++ b/noncore/settings/networksettings2/nsdata.h | |||
@@ -1,46 +1,37 @@ | |||
1 | #ifndef __NSDATA_H | 1 | #ifndef __NSDATA_H |
2 | #define __NSDATA_H | 2 | #define __NSDATA_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class NetworkSettingsData { | 6 | class NetworkSettingsData { |
7 | 7 | ||
8 | public : | 8 | public : |
9 | 9 | ||
10 | NetworkSettingsData( void ); | 10 | NetworkSettingsData( void ); |
11 | ~NetworkSettingsData( void ); | 11 | ~NetworkSettingsData( void ); |
12 | 12 | ||
13 | void loadSettings( void ); | 13 | void loadSettings( void ); |
14 | QString saveSettings( void ); | 14 | QString saveSettings( void ); |
15 | 15 | ||
16 | QString generateSettings( bool Force = FALSE ); | 16 | QString generateSettings( void ); |
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 ) | ||
29 | { Force = m; } | ||
30 | |||
31 | private : | 28 | private : |
32 | 29 | ||
33 | QString NetworkSettingsData::generateSystemFileNode( | ||
34 | SystemFile & SF, | ||
35 | AsDevice * CurDev, | ||
36 | ANetNodeInstance * DevNNI, | ||
37 | long DevInstNr ); | ||
38 | bool IsModified; | 30 | bool IsModified; |
39 | bool Force; | ||
40 | 31 | ||
41 | // collect strings in config file nobody wants | 32 | // collect strings in config file nobody wants |
42 | QStringList LeftOvers; | 33 | QStringList LeftOvers; |
43 | 34 | ||
44 | }; | 35 | }; |
45 | 36 | ||
46 | #endif | 37 | #endif |
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui b/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui index 826843a..0c5f4c8 100644 --- a/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui +++ b/noncore/settings/networksettings2/ppp/PPPAuthGUI.ui | |||
@@ -1,112 +1,112 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>PPPAuthGUI</class> | 2 | <class>PPPAuthGUI</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QWidget</class> | 4 | <class>QWidget</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>PPPAuthGUI</cstring> | 7 | <cstring>PPPAuthGUI</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>249</width> | 14 | <width>245</width> |
15 | <height>209</height> | 15 | <height>209</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>PPPAuth</string> | 20 | <string>PPPAuth</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <property> | 25 | <property> |
26 | <name>layoutSpacing</name> | 26 | <name>layoutSpacing</name> |
27 | </property> | 27 | </property> |
28 | <vbox> | 28 | <vbox> |
29 | <property stdset="1"> | 29 | <property stdset="1"> |
30 | <name>margin</name> | 30 | <name>margin</name> |
31 | <number>0</number> | 31 | <number>0</number> |
32 | </property> | 32 | </property> |
33 | <property stdset="1"> | 33 | <property stdset="1"> |
34 | <name>spacing</name> | 34 | <name>spacing</name> |
35 | <number>0</number> | 35 | <number>0</number> |
36 | </property> | 36 | </property> |
37 | <widget> | 37 | <widget> |
38 | <class>QButtonGroup</class> | 38 | <class>QButtonGroup</class> |
39 | <property stdset="1"> | 39 | <property stdset="1"> |
40 | <name>name</name> | 40 | <name>name</name> |
41 | <cstring>ButtonGroup1</cstring> | 41 | <cstring>ButtonGroup1</cstring> |
42 | </property> | 42 | </property> |
43 | <property stdset="1"> | 43 | <property stdset="1"> |
44 | <name>frameShape</name> | 44 | <name>frameShape</name> |
45 | <enum>NoFrame</enum> | 45 | <enum>NoFrame</enum> |
46 | </property> | 46 | </property> |
47 | <property stdset="1"> | 47 | <property stdset="1"> |
48 | <name>title</name> | 48 | <name>title</name> |
49 | <string></string> | 49 | <string></string> |
50 | </property> | 50 | </property> |
51 | <property> | 51 | <property> |
52 | <name>layoutMargin</name> | 52 | <name>layoutMargin</name> |
53 | </property> | 53 | </property> |
54 | <property> | 54 | <property> |
55 | <name>layoutSpacing</name> | 55 | <name>layoutSpacing</name> |
56 | </property> | 56 | </property> |
57 | <vbox> | 57 | <vbox> |
58 | <property stdset="1"> | 58 | <property stdset="1"> |
59 | <name>margin</name> | 59 | <name>margin</name> |
60 | <number>0</number> | 60 | <number>3</number> |
61 | </property> | 61 | </property> |
62 | <property stdset="1"> | 62 | <property stdset="1"> |
63 | <name>spacing</name> | 63 | <name>spacing</name> |
64 | <number>0</number> | 64 | <number>2</number> |
65 | </property> | 65 | </property> |
66 | <widget> | 66 | <widget> |
67 | <class>QRadioButton</class> | 67 | <class>QRadioButton</class> |
68 | <property stdset="1"> | 68 | <property stdset="1"> |
69 | <name>name</name> | 69 | <name>name</name> |
70 | <cstring>Login_RB</cstring> | 70 | <cstring>Login_RB</cstring> |
71 | </property> | 71 | </property> |
72 | <property stdset="1"> | 72 | <property stdset="1"> |
73 | <name>text</name> | 73 | <name>text</name> |
74 | <string>Login</string> | 74 | <string>Login</string> |
75 | </property> | 75 | </property> |
76 | <property stdset="1"> | 76 | <property stdset="1"> |
77 | <name>checked</name> | 77 | <name>checked</name> |
78 | <bool>true</bool> | 78 | <bool>true</bool> |
79 | </property> | 79 | </property> |
80 | </widget> | 80 | </widget> |
81 | <widget> | 81 | <widget> |
82 | <class>QLayoutWidget</class> | 82 | <class>QLayoutWidget</class> |
83 | <property stdset="1"> | 83 | <property stdset="1"> |
84 | <name>name</name> | 84 | <name>name</name> |
85 | <cstring>Layout3</cstring> | 85 | <cstring>Layout3</cstring> |
86 | </property> | 86 | </property> |
87 | <hbox> | 87 | <hbox> |
88 | <property stdset="1"> | 88 | <property stdset="1"> |
89 | <name>margin</name> | 89 | <name>margin</name> |
90 | <number>0</number> | 90 | <number>0</number> |
91 | </property> | 91 | </property> |
92 | <property stdset="1"> | 92 | <property stdset="1"> |
93 | <name>spacing</name> | 93 | <name>spacing</name> |
94 | <number>6</number> | 94 | <number>6</number> |
95 | </property> | 95 | </property> |
96 | <spacer> | 96 | <spacer> |
97 | <property> | 97 | <property> |
98 | <name>name</name> | 98 | <name>name</name> |
99 | <cstring>Spacer3</cstring> | 99 | <cstring>Spacer3</cstring> |
100 | </property> | 100 | </property> |
101 | <property stdset="1"> | 101 | <property stdset="1"> |
102 | <name>orientation</name> | 102 | <name>orientation</name> |
103 | <enum>Horizontal</enum> | 103 | <enum>Horizontal</enum> |
104 | </property> | 104 | </property> |
105 | <property stdset="1"> | 105 | <property stdset="1"> |
106 | <name>sizeType</name> | 106 | <name>sizeType</name> |
107 | <enum>Fixed</enum> | 107 | <enum>Fixed</enum> |
108 | </property> | 108 | </property> |
109 | <property> | 109 | <property> |
110 | <name>sizeHint</name> | 110 | <name>sizeHint</name> |
111 | <size> | 111 | <size> |
112 | <width>16</width> | 112 | <width>16</width> |
@@ -146,287 +146,281 @@ | |||
146 | <name>margin</name> | 146 | <name>margin</name> |
147 | <number>2</number> | 147 | <number>2</number> |
148 | </property> | 148 | </property> |
149 | <property stdset="1"> | 149 | <property stdset="1"> |
150 | <name>spacing</name> | 150 | <name>spacing</name> |
151 | <number>1</number> | 151 | <number>1</number> |
152 | </property> | 152 | </property> |
153 | <widget row="0" column="0" > | 153 | <widget row="0" column="0" > |
154 | <class>QLineEdit</class> | 154 | <class>QLineEdit</class> |
155 | <property stdset="1"> | 155 | <property stdset="1"> |
156 | <name>name</name> | 156 | <name>name</name> |
157 | <cstring>LoginExpect_LE</cstring> | 157 | <cstring>LoginExpect_LE</cstring> |
158 | </property> | 158 | </property> |
159 | <property stdset="1"> | 159 | <property stdset="1"> |
160 | <name>text</name> | 160 | <name>text</name> |
161 | <string>ogin:</string> | 161 | <string>ogin:</string> |
162 | </property> | 162 | </property> |
163 | </widget> | 163 | </widget> |
164 | <widget row="0" column="1" > | 164 | <widget row="0" column="1" > |
165 | <class>QLineEdit</class> | 165 | <class>QLineEdit</class> |
166 | <property stdset="1"> | 166 | <property stdset="1"> |
167 | <name>name</name> | 167 | <name>name</name> |
168 | <cstring>LoginSend_LE</cstring> | 168 | <cstring>LoginSend_LE</cstring> |
169 | </property> | 169 | </property> |
170 | </widget> | 170 | </widget> |
171 | <widget row="1" column="0" > | 171 | <widget row="1" column="0" > |
172 | <class>QLineEdit</class> | 172 | <class>QLineEdit</class> |
173 | <property stdset="1"> | 173 | <property stdset="1"> |
174 | <name>name</name> | 174 | <name>name</name> |
175 | <cstring>PasswordExpect_LE</cstring> | 175 | <cstring>PasswordExpect_LE</cstring> |
176 | </property> | 176 | </property> |
177 | <property stdset="1"> | 177 | <property stdset="1"> |
178 | <name>text</name> | 178 | <name>text</name> |
179 | <string>assword:</string> | 179 | <string>assword:</string> |
180 | </property> | 180 | </property> |
181 | </widget> | 181 | </widget> |
182 | <widget row="1" column="1" > | 182 | <widget row="1" column="1" > |
183 | <class>QLineEdit</class> | 183 | <class>QLineEdit</class> |
184 | <property stdset="1"> | 184 | <property stdset="1"> |
185 | <name>name</name> | 185 | <name>name</name> |
186 | <cstring>PasswordSend_LE</cstring> | 186 | <cstring>PasswordSend_LE</cstring> |
187 | </property> | 187 | </property> |
188 | </widget> | 188 | </widget> |
189 | </grid> | 189 | </grid> |
190 | </widget> | 190 | </widget> |
191 | </hbox> | 191 | </hbox> |
192 | </widget> | 192 | </widget> |
193 | <widget> | 193 | <widget> |
194 | <class>QRadioButton</class> | 194 | <class>QLayoutWidget</class> |
195 | <property stdset="1"> | 195 | <property stdset="1"> |
196 | <name>name</name> | 196 | <name>name</name> |
197 | <cstring>PapChap_RB</cstring> | 197 | <cstring>Layout3</cstring> |
198 | </property> | ||
199 | <property stdset="1"> | ||
200 | <name>text</name> | ||
201 | <string>Pap/Chap/EAP</string> | ||
202 | </property> | 198 | </property> |
199 | <hbox> | ||
200 | <property stdset="1"> | ||
201 | <name>margin</name> | ||
202 | <number>0</number> | ||
203 | </property> | ||
204 | <property stdset="1"> | ||
205 | <name>spacing</name> | ||
206 | <number>6</number> | ||
207 | </property> | ||
208 | <widget> | ||
209 | <class>QRadioButton</class> | ||
210 | <property stdset="1"> | ||
211 | <name>name</name> | ||
212 | <cstring>Pap_RB</cstring> | ||
213 | </property> | ||
214 | <property stdset="1"> | ||
215 | <name>text</name> | ||
216 | <string>Pap</string> | ||
217 | </property> | ||
218 | </widget> | ||
219 | <widget> | ||
220 | <class>QRadioButton</class> | ||
221 | <property stdset="1"> | ||
222 | <name>name</name> | ||
223 | <cstring>Chap_RB</cstring> | ||
224 | </property> | ||
225 | <property stdset="1"> | ||
226 | <name>text</name> | ||
227 | <string>Chap</string> | ||
228 | </property> | ||
229 | </widget> | ||
230 | <widget> | ||
231 | <class>QRadioButton</class> | ||
232 | <property stdset="1"> | ||
233 | <name>name</name> | ||
234 | <cstring>EAP_RB</cstring> | ||
235 | </property> | ||
236 | <property stdset="1"> | ||
237 | <name>text</name> | ||
238 | <string>EAP</string> | ||
239 | </property> | ||
240 | </widget> | ||
241 | </hbox> | ||
203 | </widget> | 242 | </widget> |
204 | <widget> | 243 | <widget> |
205 | <class>QLayoutWidget</class> | 244 | <class>QLayoutWidget</class> |
206 | <property stdset="1"> | 245 | <property stdset="1"> |
207 | <name>name</name> | 246 | <name>name</name> |
208 | <cstring>Layout5</cstring> | 247 | <cstring>Layout5</cstring> |
209 | </property> | 248 | </property> |
210 | <hbox> | 249 | <hbox> |
211 | <property stdset="1"> | 250 | <property stdset="1"> |
212 | <name>margin</name> | 251 | <name>margin</name> |
213 | <number>0</number> | 252 | <number>0</number> |
214 | </property> | 253 | </property> |
215 | <property stdset="1"> | 254 | <property stdset="1"> |
216 | <name>spacing</name> | 255 | <name>spacing</name> |
217 | <number>6</number> | 256 | <number>6</number> |
218 | </property> | 257 | </property> |
219 | <spacer> | 258 | <spacer> |
220 | <property> | 259 | <property> |
221 | <name>name</name> | 260 | <name>name</name> |
222 | <cstring>Spacer3_2</cstring> | 261 | <cstring>Spacer3_2</cstring> |
223 | </property> | 262 | </property> |
224 | <property stdset="1"> | 263 | <property stdset="1"> |
225 | <name>orientation</name> | 264 | <name>orientation</name> |
226 | <enum>Horizontal</enum> | 265 | <enum>Horizontal</enum> |
227 | </property> | 266 | </property> |
228 | <property stdset="1"> | 267 | <property stdset="1"> |
229 | <name>sizeType</name> | 268 | <name>sizeType</name> |
230 | <enum>Fixed</enum> | 269 | <enum>Fixed</enum> |
231 | </property> | 270 | </property> |
232 | <property> | 271 | <property> |
233 | <name>sizeHint</name> | 272 | <name>sizeHint</name> |
234 | <size> | 273 | <size> |
235 | <width>16</width> | 274 | <width>16</width> |
236 | <height>20</height> | 275 | <height>20</height> |
237 | </size> | 276 | </size> |
238 | </property> | 277 | </property> |
239 | </spacer> | 278 | </spacer> |
240 | <widget> | 279 | <widget> |
241 | <class>QGroupBox</class> | 280 | <class>QGroupBox</class> |
242 | <property stdset="1"> | 281 | <property stdset="1"> |
243 | <name>name</name> | 282 | <name>name</name> |
244 | <cstring>GroupBox3</cstring> | 283 | <cstring>GroupBox3</cstring> |
245 | </property> | 284 | </property> |
246 | <property stdset="1"> | 285 | <property stdset="1"> |
247 | <name>enabled</name> | 286 | <name>enabled</name> |
248 | <bool>false</bool> | 287 | <bool>false</bool> |
249 | </property> | 288 | </property> |
250 | <property stdset="1"> | 289 | <property stdset="1"> |
251 | <name>sizePolicy</name> | 290 | <name>sizePolicy</name> |
252 | <sizepolicy> | 291 | <sizepolicy> |
253 | <hsizetype>7</hsizetype> | 292 | <hsizetype>7</hsizetype> |
254 | <vsizetype>5</vsizetype> | 293 | <vsizetype>5</vsizetype> |
255 | </sizepolicy> | 294 | </sizepolicy> |
256 | </property> | 295 | </property> |
257 | <property stdset="1"> | 296 | <property stdset="1"> |
258 | <name>frameShape</name> | 297 | <name>frameShape</name> |
259 | <enum>NoFrame</enum> | 298 | <enum>NoFrame</enum> |
260 | </property> | 299 | </property> |
261 | <property stdset="1"> | 300 | <property stdset="1"> |
262 | <name>title</name> | 301 | <name>title</name> |
263 | <string></string> | 302 | <string></string> |
264 | </property> | 303 | </property> |
265 | <property> | 304 | <property> |
266 | <name>layoutMargin</name> | 305 | <name>layoutMargin</name> |
267 | </property> | 306 | </property> |
268 | <property> | 307 | <property> |
269 | <name>layoutSpacing</name> | 308 | <name>layoutSpacing</name> |
270 | </property> | 309 | </property> |
271 | <grid> | 310 | <grid> |
272 | <property stdset="1"> | 311 | <property stdset="1"> |
273 | <name>margin</name> | 312 | <name>margin</name> |
274 | <number>2</number> | 313 | <number>2</number> |
275 | </property> | 314 | </property> |
276 | <property stdset="1"> | 315 | <property stdset="1"> |
277 | <name>spacing</name> | 316 | <name>spacing</name> |
278 | <number>1</number> | 317 | <number>2</number> |
279 | </property> | 318 | </property> |
280 | <widget row="2" column="0" > | 319 | <widget row="1" column="0" > |
281 | <class>QLabel</class> | 320 | <class>QLabel</class> |
282 | <property stdset="1"> | 321 | <property stdset="1"> |
283 | <name>name</name> | 322 | <name>name</name> |
284 | <cstring>TextLabel1_2</cstring> | 323 | <cstring>TextLabel1_2</cstring> |
285 | </property> | 324 | </property> |
286 | <property stdset="1"> | 325 | <property stdset="1"> |
287 | <name>text</name> | 326 | <name>text</name> |
288 | <string>Server</string> | 327 | <string>Server</string> |
289 | </property> | 328 | </property> |
290 | </widget> | 329 | </widget> |
291 | <widget row="3" column="0" > | 330 | <widget row="2" column="0" > |
292 | <class>QLabel</class> | 331 | <class>QLabel</class> |
293 | <property stdset="1"> | 332 | <property stdset="1"> |
294 | <name>name</name> | 333 | <name>name</name> |
295 | <cstring>TextLabel1_3</cstring> | 334 | <cstring>TextLabel1_3</cstring> |
296 | </property> | 335 | </property> |
297 | <property stdset="1"> | 336 | <property stdset="1"> |
298 | <name>text</name> | 337 | <name>text</name> |
299 | <string>Secret</string> | 338 | <string>Secret</string> |
300 | </property> | 339 | </property> |
301 | </widget> | 340 | </widget> |
302 | <widget row="0" column="1" > | 341 | <widget row="1" column="1" > |
303 | <class>QComboBox</class> | 342 | <class>QLineEdit</class> |
304 | <item> | ||
305 | <property> | ||
306 | <name>text</name> | ||
307 | <string>PAP</string> | ||
308 | </property> | ||
309 | </item> | ||
310 | <item> | ||
311 | <property> | ||
312 | <name>text</name> | ||
313 | <string>CHAP</string> | ||
314 | </property> | ||
315 | </item> | ||
316 | <item> | ||
317 | <property> | ||
318 | <name>text</name> | ||
319 | <string>EAP</string> | ||
320 | </property> | ||
321 | </item> | ||
322 | <property stdset="1"> | ||
323 | <name>name</name> | ||
324 | <cstring>AuthMethod_CB</cstring> | ||
325 | </property> | ||
326 | </widget> | ||
327 | <widget row="1" column="0" > | ||
328 | <class>QLabel</class> | ||
329 | <property stdset="1"> | 343 | <property stdset="1"> |
330 | <name>name</name> | 344 | <name>name</name> |
331 | <cstring>TextLabel1</cstring> | 345 | <cstring>Server_LE</cstring> |
332 | </property> | 346 | </property> |
333 | <property stdset="1"> | 347 | <property stdset="1"> |
334 | <name>text</name> | 348 | <name>text</name> |
335 | <string>Client</string> | 349 | <string>*</string> |
336 | </property> | 350 | </property> |
337 | </widget> | 351 | </widget> |
338 | <widget row="0" column="0" > | 352 | <widget row="2" column="1" > |
339 | <class>QLabel</class> | 353 | <class>QLineEdit</class> |
340 | <property stdset="1"> | 354 | <property stdset="1"> |
341 | <name>name</name> | 355 | <name>name</name> |
342 | <cstring>TextLabel1_4</cstring> | 356 | <cstring>Secret_LE</cstring> |
343 | </property> | ||
344 | <property stdset="1"> | ||
345 | <name>text</name> | ||
346 | <string>Method</string> | ||
347 | </property> | 357 | </property> |
348 | </widget> | 358 | </widget> |
349 | <widget row="1" column="1" rowspan="1" colspan="2" > | 359 | <widget row="0" column="1" > |
350 | <class>QLineEdit</class> | 360 | <class>QLineEdit</class> |
351 | <property stdset="1"> | 361 | <property stdset="1"> |
352 | <name>name</name> | 362 | <name>name</name> |
353 | <cstring>Client_LE</cstring> | 363 | <cstring>Client_LE</cstring> |
354 | </property> | 364 | </property> |
355 | <property stdset="1"> | 365 | <property stdset="1"> |
356 | <name>text</name> | 366 | <name>text</name> |
357 | <string>*</string> | 367 | <string>*</string> |
358 | </property> | 368 | </property> |
359 | </widget> | 369 | </widget> |
360 | <widget row="2" column="1" rowspan="1" colspan="2" > | 370 | <widget row="0" column="0" > |
361 | <class>QLineEdit</class> | 371 | <class>QLabel</class> |
362 | <property stdset="1"> | 372 | <property stdset="1"> |
363 | <name>name</name> | 373 | <name>name</name> |
364 | <cstring>Server_LE</cstring> | 374 | <cstring>TextLabel1</cstring> |
365 | </property> | 375 | </property> |
366 | <property stdset="1"> | 376 | <property stdset="1"> |
367 | <name>text</name> | 377 | <name>text</name> |
368 | <string>*</string> | 378 | <string>Client</string> |
369 | </property> | ||
370 | </widget> | ||
371 | <widget row="3" column="1" rowspan="1" colspan="2" > | ||
372 | <class>QLineEdit</class> | ||
373 | <property stdset="1"> | ||
374 | <name>name</name> | ||
375 | <cstring>Secret_LE</cstring> | ||
376 | </property> | 379 | </property> |
377 | </widget> | 380 | </widget> |
378 | <spacer row="0" column="2" > | ||
379 | <property> | ||
380 | <name>name</name> | ||
381 | <cstring>Spacer7</cstring> | ||
382 | </property> | ||
383 | <property stdset="1"> | ||
384 | <name>orientation</name> | ||
385 | <enum>Horizontal</enum> | ||
386 | </property> | ||
387 | <property stdset="1"> | ||
388 | <name>sizeType</name> | ||
389 | <enum>Expanding</enum> | ||
390 | </property> | ||
391 | <property> | ||
392 | <name>sizeHint</name> | ||
393 | <size> | ||
394 | <width>20</width> | ||
395 | <height>20</height> | ||
396 | </size> | ||
397 | </property> | ||
398 | </spacer> | ||
399 | </grid> | 381 | </grid> |
400 | </widget> | 382 | </widget> |
401 | </hbox> | 383 | </hbox> |
402 | </widget> | 384 | </widget> |
403 | <widget> | 385 | <widget> |
404 | <class>QRadioButton</class> | 386 | <class>QRadioButton</class> |
405 | <property stdset="1"> | 387 | <property stdset="1"> |
406 | <name>name</name> | 388 | <name>name</name> |
407 | <cstring>Terminal_RB</cstring> | 389 | <cstring>Terminal_RB</cstring> |
408 | </property> | 390 | </property> |
409 | <property stdset="1"> | 391 | <property stdset="1"> |
410 | <name>text</name> | 392 | <name>text</name> |
411 | <string>Terminal</string> | 393 | <string>Terminal</string> |
412 | </property> | 394 | </property> |
413 | </widget> | 395 | </widget> |
414 | </vbox> | 396 | </vbox> |
415 | </widget> | 397 | </widget> |
416 | </vbox> | 398 | </vbox> |
417 | </widget> | 399 | </widget> |
418 | <connections> | 400 | <connections> |
419 | <connection> | 401 | <connection> |
420 | <sender>PapChap_RB</sender> | 402 | <sender>Pap_RB</sender> |
421 | <signal>toggled(bool)</signal> | 403 | <signal>toggled(bool)</signal> |
422 | <receiver>GroupBox3</receiver> | 404 | <receiver>GroupBox3</receiver> |
423 | <slot>setEnabled(bool)</slot> | 405 | <slot>setEnabled(bool)</slot> |
424 | </connection> | 406 | </connection> |
425 | <connection> | 407 | <connection> |
426 | <sender>Login_RB</sender> | 408 | <sender>Login_RB</sender> |
427 | <signal>toggled(bool)</signal> | 409 | <signal>toggled(bool)</signal> |
428 | <receiver>GroupBox1</receiver> | 410 | <receiver>GroupBox1</receiver> |
429 | <slot>setEnabled(bool)</slot> | 411 | <slot>setEnabled(bool)</slot> |
430 | </connection> | 412 | </connection> |
413 | <connection> | ||
414 | <sender>Chap_RB</sender> | ||
415 | <signal>toggled(bool)</signal> | ||
416 | <receiver>GroupBox3</receiver> | ||
417 | <slot>setEnabled(bool)</slot> | ||
418 | </connection> | ||
419 | <connection> | ||
420 | <sender>EAP_RB</sender> | ||
421 | <signal>toggled(bool)</signal> | ||
422 | <receiver>GroupBox3</receiver> | ||
423 | <slot>setEnabled(bool)</slot> | ||
424 | </connection> | ||
431 | </connections> | 425 | </connections> |
432 | </UI> | 426 | </UI> |
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp b/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp index f305cc4..450d560 100644 --- a/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp +++ b/noncore/settings/networksettings2/ppp/PPPAuthedit.cpp | |||
@@ -1,85 +1,105 @@ | |||
1 | #include <stdio.h> | 1 | #include <stdio.h> |
2 | #include <qcombobox.h> | 2 | #include <qcombobox.h> |
3 | #include <qmessagebox.h> | 3 | #include <qmessagebox.h> |
4 | #include <qradiobutton.h> | 4 | #include <qradiobutton.h> |
5 | #include <qlineedit.h> | 5 | #include <qlineedit.h> |
6 | #include <GUIUtils.h> | 6 | #include <GUIUtils.h> |
7 | #include "PPPAuthedit.h" | 7 | #include "PPPAuthedit.h" |
8 | 8 | ||
9 | PPPAuthEdit::PPPAuthEdit( QWidget * Parent ) : PPPAuthGUI( Parent ){ | 9 | PPPAuthEdit::PPPAuthEdit( QWidget * Parent ) : PPPAuthGUI( Parent ){ |
10 | } | 10 | } |
11 | 11 | ||
12 | bool PPPAuthEdit::PAP_Checked( void ) { | ||
13 | return ( Pap_RB->isChecked() || | ||
14 | Chap_RB->isChecked() || | ||
15 | EAP_RB->isChecked() | ||
16 | ); | ||
17 | } | ||
18 | |||
12 | QString PPPAuthEdit::acceptable( void ) { | 19 | QString PPPAuthEdit::acceptable( void ) { |
13 | if( Login_RB->isChecked() ) { | 20 | if( Login_RB->isChecked() ) { |
14 | if( LoginSend_LE->text().isEmpty() ) | 21 | if( LoginSend_LE->text().isEmpty() ) |
15 | return tr("Login send missing"); | 22 | return tr("Login send missing"); |
16 | if( LoginExpect_LE->text().isEmpty() ) | 23 | if( LoginExpect_LE->text().isEmpty() ) |
17 | return tr("Login expect missing"); | 24 | return tr("Login expect missing"); |
18 | if( PasswordSend_LE->text().isEmpty() ) | 25 | if( PasswordSend_LE->text().isEmpty() ) |
19 | return tr("Password send missing"); | 26 | return tr("Password send missing"); |
20 | if( PasswordExpect_LE->text().isEmpty() ) | 27 | if( PasswordExpect_LE->text().isEmpty() ) |
21 | return tr("Password expect missing"); | 28 | return tr("Password expect missing"); |
22 | } else if( PapChap_RB->isChecked() ) { | 29 | } else if( PAP_Checked() ) { |
23 | if( Client_LE->text().isEmpty() ) | 30 | if( Client_LE->text().isEmpty() ) |
24 | return tr("Pap/Chap/EAP client id missing"); | 31 | return tr("Pap/Chap/EAP client id missing"); |
25 | if( Server_LE->text().isEmpty() ) | 32 | if( Server_LE->text().isEmpty() ) |
26 | return tr("Pap/Chap/EAP server id missing"); | 33 | return tr("Pap/Chap/EAP server id missing"); |
27 | if( Secret_LE->text().isEmpty() ) | 34 | if( Secret_LE->text().isEmpty() ) |
28 | return tr("Pap/Chap/EAP secret id missing"); | 35 | return tr("Pap/Chap/EAP secret id missing"); |
29 | } | 36 | } |
30 | return QString(); | 37 | return QString(); |
31 | } | 38 | } |
32 | 39 | ||
33 | bool PPPAuthEdit::commit( PPPData_t & D ) { | 40 | bool PPPAuthEdit::commit( PPPData_t & D ) { |
34 | bool SM = 0; | 41 | bool SM = 0; |
35 | 42 | ||
36 | if( ( D.Auth.Mode == 0 && ! Login_RB->isChecked() ) || | 43 | if( ( D.Auth.Mode == 0 && ! Login_RB->isChecked() ) || |
37 | ( D.Auth.Mode == 1 && ! PapChap_RB->isChecked() ) || | 44 | ( D.Auth.Mode == 1 && ! PAP_Checked() ) || |
38 | ( D.Auth.Mode == 2 && ! Terminal_RB->isChecked() ) ) { | 45 | ( D.Auth.Mode == 2 && ! Terminal_RB->isChecked() ) ) { |
39 | // mode modifed | 46 | // mode modifed |
40 | SM = 1; | 47 | SM = 1; |
41 | D.Auth.Mode = ( Login_RB->isChecked() ) ? | 48 | D.Auth.Mode = ( Login_RB->isChecked() ) ? |
42 | 0 : | 49 | 0 : |
43 | ( ( PapChap_RB->isChecked() ) ? | 50 | ( PAP_Checked() ) ? 1 : 2; |
44 | 1 : 2 ); | ||
45 | } | 51 | } |
46 | 52 | ||
47 | if( Login_RB->isChecked() ) { | 53 | if( Login_RB->isChecked() ) { |
48 | TXTM( D.Auth.Login.Expect, LoginExpect_LE, SM ); | 54 | TXTM( D.Auth.Login.Expect, LoginExpect_LE, SM ); |
49 | TXTM( D.Auth.Login.Send, LoginSend_LE, SM ); | 55 | TXTM( D.Auth.Login.Send, LoginSend_LE, SM ); |
50 | TXTM( D.Auth.Password.Expect, PasswordExpect_LE, SM ); | 56 | TXTM( D.Auth.Password.Expect, PasswordExpect_LE, SM ); |
51 | TXTM( D.Auth.Password.Send, PasswordSend_LE, SM ); | 57 | TXTM( D.Auth.Password.Send, PasswordSend_LE, SM ); |
52 | } else if( PapChap_RB->isChecked() ) { | 58 | } else if( PAP_Checked() ) { |
53 | TXTM( D.Auth.Client, Client_LE, SM ); | 59 | TXTM( D.Auth.Client, Client_LE, SM ); |
54 | TXTM( D.Auth.Server, Server_LE, SM ); | 60 | TXTM( D.Auth.Server, Server_LE, SM ); |
55 | TXTM( D.Auth.Secret, Secret_LE, SM ); | 61 | TXTM( D.Auth.Secret, Secret_LE, SM ); |
56 | CIM( D.Auth.PCEMode, AuthMethod_CB, SM ); | 62 | if( Pap_RB->isChecked() ) { |
63 | D.Auth.PCEMode = 0; | ||
64 | } else if( Chap_RB->isChecked() ) { | ||
65 | D.Auth.PCEMode = 1; | ||
66 | } else if( EAP_RB->isChecked() ) { | ||
67 | D.Auth.PCEMode = 2; | ||
68 | } | ||
57 | } | 69 | } |
58 | return SM; | 70 | return SM; |
59 | } | 71 | } |
60 | 72 | ||
61 | void PPPAuthEdit::showData( PPPData_t & D ) { | 73 | void PPPAuthEdit::showData( PPPData_t & D ) { |
62 | 74 | ||
63 | switch( D.Auth.Mode ) { | 75 | switch( D.Auth.Mode ) { |
64 | case 0 : | 76 | case 0 : |
65 | Login_RB->isChecked(); | 77 | Login_RB->setChecked( TRUE ); |
66 | break; | 78 | break; |
67 | case 1 : | 79 | case 1 : |
68 | PapChap_RB->isChecked(); | 80 | switch( D.Auth.PCEMode ) { |
81 | case 0 : | ||
82 | Pap_RB->setChecked( TRUE ); | ||
83 | break; | ||
84 | case 1 : | ||
85 | Chap_RB->setChecked( TRUE ); | ||
86 | break; | ||
87 | case 2 : | ||
88 | EAP_RB->setChecked( TRUE ); | ||
89 | break; | ||
90 | } | ||
69 | break; | 91 | break; |
70 | case 2 : | 92 | case 2 : |
71 | Terminal_RB->isChecked(); | 93 | Terminal_RB->setChecked( TRUE ); |
72 | break; | 94 | break; |
73 | } | 95 | } |
74 | 96 | ||
75 | LoginExpect_LE->setText( D.Auth.Login.Expect ); | 97 | LoginExpect_LE->setText( D.Auth.Login.Expect ); |
76 | PasswordExpect_LE->setText( D.Auth.Password.Expect ); | 98 | PasswordExpect_LE->setText( D.Auth.Password.Expect ); |
77 | LoginSend_LE->setText( D.Auth.Login.Send ); | 99 | LoginSend_LE->setText( D.Auth.Login.Send ); |
78 | PasswordSend_LE->setText( D.Auth.Password.Send ); | 100 | PasswordSend_LE->setText( D.Auth.Password.Send ); |
79 | 101 | ||
80 | Client_LE->setText( D.Auth.Client ); | 102 | Client_LE->setText( D.Auth.Client ); |
81 | Server_LE->setText( D.Auth.Server ); | 103 | Server_LE->setText( D.Auth.Server ); |
82 | Secret_LE->setText( D.Auth.Secret ); | 104 | Secret_LE->setText( D.Auth.Secret ); |
83 | |||
84 | AuthMethod_CB->setCurrentItem( D.Auth.PCEMode ); | ||
85 | } | 105 | } |
diff --git a/noncore/settings/networksettings2/ppp/PPPAuthedit.h b/noncore/settings/networksettings2/ppp/PPPAuthedit.h index cbd540e..2392569 100644 --- a/noncore/settings/networksettings2/ppp/PPPAuthedit.h +++ b/noncore/settings/networksettings2/ppp/PPPAuthedit.h | |||
@@ -1,15 +1,17 @@ | |||
1 | #include "pppdata.h" | 1 | #include "pppdata.h" |
2 | #include "PPPAuthGUI.h" | 2 | #include "PPPAuthGUI.h" |
3 | 3 | ||
4 | class PPPAuthEdit : public PPPAuthGUI { | 4 | class PPPAuthEdit : public PPPAuthGUI { |
5 | 5 | ||
6 | public : | 6 | public : |
7 | 7 | ||
8 | PPPAuthEdit( QWidget * parent ); | 8 | PPPAuthEdit( QWidget * parent ); |
9 | QString acceptable( void ); | 9 | QString acceptable( void ); |
10 | bool commit( PPPData_t & Data ); | 10 | bool commit( PPPData_t & Data ); |
11 | void showData( PPPData_t & Data ); | 11 | void showData( PPPData_t & Data ); |
12 | bool PAP_Checked( void ); | ||
13 | |||
12 | 14 | ||
13 | private : | 15 | private : |
14 | 16 | ||
15 | }; | 17 | }; |
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.cpp b/noncore/settings/networksettings2/ppp/ppp_NN.cpp index b7edf87..ff4465c 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NN.cpp +++ b/noncore/settings/networksettings2/ppp/ppp_NN.cpp | |||
@@ -1,68 +1,85 @@ | |||
1 | #include <qfile.h> | ||
2 | #include <qtextstream.h> | ||
1 | #include "ppp_NN.h" | 3 | #include "ppp_NN.h" |
2 | #include "ppp_NNI.h" | 4 | #include "ppp_NNI.h" |
3 | 5 | ||
6 | QStringList * PPPNetNode::ProperFiles = 0; | ||
7 | |||
4 | static const char * PPPNeeds[] = | 8 | static const char * PPPNeeds[] = |
5 | { "line", | 9 | { "line", |
6 | "modem", | 10 | "modem", |
7 | 0 | 11 | 0 |
8 | }; | 12 | }; |
9 | 13 | ||
10 | /** | 14 | /** |
11 | * Constructor, find all of the possible interfaces | 15 | * Constructor, find all of the possible interfaces |
12 | */ | 16 | */ |
13 | PPPNetNode::PPPNetNode() : ANetNode(tr("PPP Connection")) { | 17 | PPPNetNode::PPPNetNode() : ANetNode(tr("PPP Connection")) { |
18 | |||
19 | // proper files : will leak | ||
20 | ProperFiles =new QStringList; | ||
21 | *ProperFiles << "peers"; | ||
22 | *ProperFiles << "chatscript"; | ||
23 | |||
24 | // system files | ||
25 | NSResources->addSystemFile( | ||
26 | "pap-secrets", "/tmp/pap-secrets", 0 ); | ||
27 | NSResources->addSystemFile( | ||
28 | "chap-secrets", "/tmp/chap-secrets", 0 ); | ||
14 | } | 29 | } |
15 | 30 | ||
16 | /** | 31 | /** |
17 | * Delete any interfaces that we own. | 32 | * Delete any interfaces that we own. |
18 | */ | 33 | */ |
19 | PPPNetNode::~PPPNetNode(){ | 34 | PPPNetNode::~PPPNetNode(){ |
20 | } | 35 | } |
21 | 36 | ||
22 | const QString PPPNetNode::nodeDescription(){ | 37 | const QString PPPNetNode::nodeDescription(){ |
23 | return tr("\ | 38 | return tr("\ |
24 | <p>Sets up IP using PPP.</p>\ | 39 | <p>Sets up IP using PPP.</p>\ |
25 | <p>Use this for dialup devices or serial setups</p>\ | 40 | <p>Use this for dialup devices or serial setups</p>\ |
26 | " | 41 | " |
27 | ); | 42 | ); |
28 | } | 43 | } |
29 | 44 | ||
30 | ANetNodeInstance * PPPNetNode::createInstance( void ) { | 45 | ANetNodeInstance * PPPNetNode::createInstance( void ) { |
31 | return new APPP( this ); | 46 | return new APPP( this ); |
32 | } | 47 | } |
33 | 48 | ||
34 | const char ** PPPNetNode::needs( void ) { | 49 | const char ** PPPNetNode::needs( void ) { |
35 | return PPPNeeds; | 50 | return PPPNeeds; |
36 | } | 51 | } |
37 | 52 | ||
38 | const char * PPPNetNode::provides( void ) { | 53 | const char * PPPNetNode::provides( void ) { |
39 | return "connection"; | 54 | return "connection"; |
40 | } | 55 | } |
41 | 56 | ||
42 | bool PPPNetNode::generateProperFilesFor( | 57 | QStringList * PPPNetNode::properFiles( void ) { |
43 | ANetNodeInstance * ) { | 58 | return ProperFiles; |
44 | return 0; | 59 | |
45 | } | 60 | } |
46 | 61 | ||
47 | bool PPPNetNode::generateDeviceDataForCommonFile( | 62 | // need to generate : |
48 | SystemFile & , | 63 | // /etc/ppp/pap-secrets |
49 | long ) { | 64 | // /etc/ppp/pap-secrets |
50 | return 0; | 65 | bool PPPNetNode::hasDataForFile( const QString & S ) { |
66 | return S == "pap-secrets" || | ||
67 | S == "chap-secrets" ; | ||
51 | } | 68 | } |
52 | 69 | ||
53 | QString PPPNetNode::genNic( long NicNr ) { | 70 | QString PPPNetNode::genNic( long NicNr ) { |
54 | QString S; | 71 | QString S; |
55 | return S.sprintf( "ppp%ld", NicNr ); | 72 | return S.sprintf( "ppp%ld", NicNr ); |
56 | } | 73 | } |
57 | 74 | ||
58 | void PPPNetNode::setSpecificAttribute( QString & , QString & ) { | 75 | void PPPNetNode::setSpecificAttribute( QString & , QString & ) { |
59 | } | 76 | } |
60 | 77 | ||
61 | void PPPNetNode::saveSpecificAttribute( QTextStream & ) { | 78 | void PPPNetNode::saveSpecificAttribute( QTextStream & ) { |
62 | } | 79 | } |
63 | 80 | ||
64 | extern "C" { | 81 | extern "C" { |
65 | void create_plugin( QList<ANetNode> & PNN ) { | 82 | void create_plugin( QList<ANetNode> & PNN ) { |
66 | PNN.append( new PPPNetNode() ); | 83 | PNN.append( new PPPNetNode() ); |
67 | } | 84 | } |
68 | } | 85 | } |
diff --git a/noncore/settings/networksettings2/ppp/ppp_NN.h b/noncore/settings/networksettings2/ppp/ppp_NN.h index b1483c4..249be5a 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NN.h +++ b/noncore/settings/networksettings2/ppp/ppp_NN.h | |||
@@ -1,46 +1,43 @@ | |||
1 | #ifndef PPP_NETNODE_H | 1 | #ifndef PPP_NETNODE_H |
2 | #define PPP_NETNODE_H | 2 | #define PPP_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class APPP; | 6 | class APPP; |
7 | 7 | ||
8 | class PPPNetNode : public ANetNode{ | 8 | class PPPNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
14 | PPPNetNode(); | 14 | PPPNetNode(); |
15 | virtual ~PPPNetNode(); | 15 | virtual ~PPPNetNode(); |
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 nodeDescription() ; | 20 | virtual bool hasDataForFile( const QString & S ); |
21 | 21 | ||
22 | virtual ANetNodeInstance * createInstance( void ); | 22 | virtual const QString nodeDescription() ; |
23 | virtual ANetNodeInstance * createInstance( void ); | ||
24 | virtual const char ** needs( void ); | ||
25 | virtual const char * provides( void ); | ||
23 | 26 | ||
24 | virtual const char ** needs( void ); | 27 | virtual QString genNic( long NicNr ); |
25 | virtual const char * provides( void ); | 28 | virtual QStringList * properFiles( void ); |
26 | |||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | |||
33 | virtual QString genNic( long NicNr ); | ||
34 | 29 | ||
35 | private: | 30 | private: |
36 | 31 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 32 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 33 | virtual void saveSpecificAttribute( QTextStream & TS ); |
34 | |||
35 | static QStringList * ProperFiles; | ||
39 | }; | 36 | }; |
40 | 37 | ||
41 | extern "C" | 38 | extern "C" |
42 | { | 39 | { |
43 | void create_plugin( QList<ANetNode> & PNN ); | 40 | void create_plugin( QList<ANetNode> & PNN ); |
44 | }; | 41 | }; |
45 | 42 | ||
46 | #endif | 43 | #endif |
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp index d0fd31c..ba639de 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NNI.cpp +++ b/noncore/settings/networksettings2/ppp/ppp_NNI.cpp | |||
@@ -1,48 +1,50 @@ | |||
1 | #include <qfile.h> | ||
2 | #include <qfileinfo.h> | ||
1 | #include "PPPedit.h" | 3 | #include "PPPedit.h" |
2 | #include "ppp_NNI.h" | 4 | #include "ppp_NNI.h" |
3 | #include "ppp_NN.h" | 5 | #include "ppp_NN.h" |
4 | 6 | ||
5 | APPP::APPP( PPPNetNode * PNN ) : ANetNodeInstance( PNN ) { | 7 | APPP::APPP( PPPNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | Data.DNS.ServerAssigned = 1; | 8 | Data.DNS.ServerAssigned = 1; |
7 | Data.DNS.DomainName = ""; | 9 | Data.DNS.DomainName = ""; |
8 | 10 | ||
9 | Data.Auth.Mode = 0; | 11 | Data.Auth.Mode = 0; |
10 | Data.Auth.Login.Expect = "ogin:"; | 12 | Data.Auth.Login.Expect = "ogin:"; |
11 | Data.Auth.Password.Expect = "assword:"; | 13 | Data.Auth.Password.Expect = "assword:"; |
12 | Data.Auth.PCEMode = 0; | 14 | Data.Auth.PCEMode = 0; |
13 | Data.Auth.Client = "*"; | 15 | Data.Auth.Client = "*"; |
14 | Data.Auth.Server = "*"; | 16 | Data.Auth.Server = "*"; |
15 | Data.Auth.Secret = ""; | 17 | Data.Auth.Secret = ""; |
16 | 18 | ||
17 | Data.IP.IPAutomatic = 1; | 19 | Data.IP.IPAutomatic = 1; |
18 | Data.IP.IPAddress = ""; | 20 | Data.IP.IPAddress = ""; |
19 | Data.IP.IPSubMask = ""; | 21 | Data.IP.IPSubMask = ""; |
20 | Data.IP.GWAutomatic = 1; | 22 | Data.IP.GWAutomatic = 1; |
21 | Data.IP.GWAddress = ""; | 23 | Data.IP.GWAddress = ""; |
22 | Data.IP.GWIsDefault = 1; | 24 | Data.IP.GWIsDefault = 1; |
23 | GUI = 0; | 25 | GUI = 0; |
24 | RT = 0; | 26 | RT = 0; |
25 | 27 | ||
26 | } | 28 | } |
27 | 29 | ||
28 | void APPP::setSpecificAttribute( QString & A, QString & V ) { | 30 | void APPP::setSpecificAttribute( QString & A, QString & V ) { |
29 | if( A.startsWith( "dns" ) ) { | 31 | if( A.startsWith( "dns" ) ) { |
30 | if( A == "dnsserverassigned" ) { | 32 | if( A == "dnsserverassigned" ) { |
31 | Data.DNS.ServerAssigned = (V == "yes"); | 33 | Data.DNS.ServerAssigned = (V == "yes"); |
32 | } else if( A == "dnsdomainname" ) { | 34 | } else if( A == "dnsdomainname" ) { |
33 | Data.DNS.DomainName = V; | 35 | Data.DNS.DomainName = V; |
34 | } else if( A == "dnsserver" ) { | 36 | } else if( A == "dnsserver" ) { |
35 | Data.DNS.Servers.resize( Data.DNS.Servers.size()+1 ); | 37 | Data.DNS.Servers.resize( Data.DNS.Servers.size()+1 ); |
36 | Data.DNS.Servers[Data.DNS.Servers.size()-1] = | 38 | Data.DNS.Servers[Data.DNS.Servers.size()-1] = |
37 | new QString( V ); | 39 | new QString( V ); |
38 | } | 40 | } |
39 | } else if( A.startsWith( "auth" ) ) { | 41 | } else if( A.startsWith( "auth" ) ) { |
40 | if( A == "authmode" ) { | 42 | if( A == "authmode" ) { |
41 | Data.Auth.Mode = V.toShort(); | 43 | Data.Auth.Mode = V.toShort(); |
42 | } else if( A == "authloginexpect" ) { | 44 | } else if( A == "authloginexpect" ) { |
43 | Data.Auth.Login.Expect = V; | 45 | Data.Auth.Login.Expect = V; |
44 | } else if( A == "authloginsend" ) { | 46 | } else if( A == "authloginsend" ) { |
45 | Data.Auth.Login.Send = V; | 47 | Data.Auth.Login.Send = V; |
46 | } else if( A == "authpasswordexpect" ) { | 48 | } else if( A == "authpasswordexpect" ) { |
47 | Data.Auth.Password.Expect = V; | 49 | Data.Auth.Password.Expect = V; |
48 | } else if( A == "authpasswordsend" ) { | 50 | } else if( A == "authpasswordsend" ) { |
@@ -68,54 +70,152 @@ void APPP::setSpecificAttribute( QString & A, QString & V ) { | |||
68 | } else if( A == "ipsubmask" ) { | 70 | } else if( A == "ipsubmask" ) { |
69 | Data.IP.IPSubMask = V; | 71 | Data.IP.IPSubMask = V; |
70 | } else if( A == "gwaddress" ) { | 72 | } else if( A == "gwaddress" ) { |
71 | Data.IP.GWAddress = V; | 73 | Data.IP.GWAddress = V; |
72 | } | 74 | } |
73 | } | 75 | } |
74 | } | 76 | } |
75 | 77 | ||
76 | void APPP::saveSpecificAttribute( QTextStream & TS ) { | 78 | void APPP::saveSpecificAttribute( QTextStream & TS ) { |
77 | TS << "dnsserverassigned=" << | 79 | TS << "dnsserverassigned=" << |
78 | ( ( Data.DNS.ServerAssigned ) ? "yes" : "no" ) << endl; | 80 | ( ( Data.DNS.ServerAssigned ) ? "yes" : "no" ) << endl; |
79 | TS << "dnsdomainname=" << Data.DNS.DomainName << endl; | 81 | TS << "dnsdomainname=" << Data.DNS.DomainName << endl; |
80 | for( unsigned int i = 0; i < Data.DNS.Servers.size(); i ++ ) { | 82 | for( unsigned int i = 0; i < Data.DNS.Servers.size(); i ++ ) { |
81 | TS << "dnsserver=" << *(Data.DNS.Servers[i]) << endl; | 83 | TS << "dnsserver=" << *(Data.DNS.Servers[i]) << endl; |
82 | } | 84 | } |
83 | TS << "authmode=" << Data.Auth.Mode << endl; | 85 | TS << "authmode=" << Data.Auth.Mode << endl; |
84 | TS << "authloginexpect=" << quote( Data.Auth.Login.Expect ) << endl; | 86 | TS << "authloginexpect=" << quote( Data.Auth.Login.Expect ) << endl; |
85 | TS << "authloginsend=" << quote( Data.Auth.Login.Send ) << endl; | 87 | TS << "authloginsend=" << quote( Data.Auth.Login.Send ) << endl; |
86 | TS << "authpasswordexpect=" << quote( Data.Auth.Password.Expect ) << endl; | 88 | TS << "authpasswordexpect=" << quote( Data.Auth.Password.Expect ) << endl; |
87 | TS << "authpasswordsend=" << quote( Data.Auth.Password.Send ) << endl; | 89 | TS << "authpasswordsend=" << quote( Data.Auth.Password.Send ) << endl; |
88 | TS << "authpcemode=" << Data.Auth.PCEMode << endl; | 90 | TS << "authpcemode=" << Data.Auth.PCEMode << endl; |
89 | TS << "authclient=" << Data.Auth.Client << endl; | 91 | TS << "authclient=" << Data.Auth.Client << endl; |
90 | TS << "authserver=" << Data.Auth.Server << endl; | 92 | TS << "authserver=" << Data.Auth.Server << endl; |
91 | TS << "authsecret=" << quote( Data.Auth.Secret ) << endl; | 93 | TS << "authsecret=" << quote( Data.Auth.Secret ) << endl; |
92 | TS << "ipautomatic=" << ( ( Data.IP.IPAutomatic ) ? "yes" : "no" ) << endl; | 94 | TS << "ipautomatic=" << ( ( Data.IP.IPAutomatic ) ? "yes" : "no" ) << endl; |
93 | TS << "gwautomatic=" << ( ( Data.IP.GWAutomatic ) ? "yes" : "no" ) << endl; | 95 | TS << "gwautomatic=" << ( ( Data.IP.GWAutomatic ) ? "yes" : "no" ) << endl; |
94 | TS << "gwisdefault=" << ( ( Data.IP.GWIsDefault ) ? "yes" : "no" ) << endl; | 96 | TS << "gwisdefault=" << ( ( Data.IP.GWIsDefault ) ? "yes" : "no" ) << endl; |
95 | TS << "ipaddress=" << Data.IP.IPAddress << endl; | 97 | TS << "ipaddress=" << Data.IP.IPAddress << endl; |
96 | TS << "ipsubmask=" << Data.IP.IPSubMask << endl; | 98 | TS << "ipsubmask=" << Data.IP.IPSubMask << endl; |
97 | TS << "gwaddress=" << Data.IP.GWAddress << endl; | 99 | TS << "gwaddress=" << Data.IP.GWAddress << endl; |
98 | } | 100 | } |
99 | 101 | ||
100 | QWidget * APPP::edit( QWidget * parent ) { | 102 | QWidget * APPP::edit( QWidget * parent ) { |
101 | GUI = new PPPEdit( parent ); | 103 | GUI = new PPPEdit( parent ); |
102 | GUI->showData( Data ); | 104 | GUI->showData( Data ); |
103 | return GUI; | 105 | return GUI; |
104 | } | 106 | } |
105 | 107 | ||
106 | QString APPP::acceptable( void ) { | 108 | QString APPP::acceptable( void ) { |
107 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 109 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
108 | } | 110 | } |
109 | 111 | ||
110 | void APPP::commit( void ) { | 112 | void APPP::commit( void ) { |
111 | if( GUI && GUI->commit( Data ) ) { | 113 | if( GUI && GUI->commit( Data ) ) { |
112 | setModified( 1 ); | 114 | setModified( 1 ); |
113 | } | 115 | } |
114 | } | 116 | } |
115 | 117 | ||
116 | bool APPP::generateDataForCommonFile( | 118 | QFile * APPP::openFile( const QString & ID ) { |
117 | SystemFile & , | 119 | QFile * F = 0; |
118 | long) { | 120 | QString S; |
119 | return 1; | 121 | |
122 | if( ID == "peers" ) { | ||
123 | S = removeSpaces( QString("/tmp/") + connection()->name() ); | ||
124 | |||
125 | F = new QFile( S ); | ||
126 | |||
127 | if( ! F->open( IO_WriteOnly ) ) { | ||
128 | Log(("Cannot open file %s\n", S.latin1() )); | ||
129 | return 0; | ||
130 | } | ||
131 | } else if ( ID == "chatscripts" ) { | ||
132 | S = removeSpaces( QString("/tmp/") + connection()->name() + ".chat" ); | ||
133 | F = new QFile( S ); | ||
134 | |||
135 | if( ! F->open( IO_WriteOnly ) ) { | ||
136 | Log(("Cannot open file %s\n", S.latin1() )); | ||
137 | return 0; | ||
138 | } | ||
139 | } | ||
140 | if( F ) { | ||
141 | Log(("Generate proper file %s = %s\n", | ||
142 | ID.latin1(), F->name().latin1())); | ||
143 | } | ||
144 | return F; | ||
120 | } | 145 | } |
121 | 146 | ||
147 | short APPP::generateFile( const QString & ID, | ||
148 | const QString & Path, | ||
149 | QTextStream & TS, | ||
150 | long DevNr ) { | ||
151 | short rvl, rvd; | ||
152 | |||
153 | rvl = 1; | ||
154 | rvd = 1; | ||
155 | |||
156 | if( ID == "pap-secrets" ) { | ||
157 | Log(("Generate PPP for %s\n", ID.latin1() )); | ||
158 | if( Data.Auth.Mode == 1 && Data.Auth.PCEMode == 0 ) { | ||
159 | TS << "# secrets for " | ||
160 | << connection()->name().latin1() | ||
161 | << endl; | ||
162 | TS << Data.Auth.Client | ||
163 | << " " | ||
164 | << Data.Auth.Server | ||
165 | << " " | ||
166 | << Data.Auth.Secret | ||
167 | << endl; | ||
168 | rvl = 0; | ||
169 | rvd = connection()->getToplevel()->generateFileEmbedded( | ||
170 | ID, Path, TS, DevNr ); | ||
171 | } | ||
172 | } else if( ID == "chap-secrets" ) { | ||
173 | Log(("Generate PPP for %s\n", ID.latin1() )); | ||
174 | if( Data.Auth.Mode == 1 && Data.Auth.PCEMode != 0 ) { | ||
175 | // used for both EAP and Chap | ||
176 | TS << "# secrets for " | ||
177 | << connection()->name().latin1() | ||
178 | << endl; | ||
179 | TS << Data.Auth.Client | ||
180 | << " " | ||
181 | << Data.Auth.Server | ||
182 | << " " | ||
183 | << Data.Auth.Secret | ||
184 | << endl; | ||
185 | |||
186 | rvl = 0; | ||
187 | rvd = connection()->getToplevel()->generateFileEmbedded( | ||
188 | ID, Path, TS, DevNr ); | ||
189 | } | ||
190 | } else if ( ID == "peers" ) { | ||
191 | QFileInfo FI(Path); | ||
192 | Log(("Generate PPP for %s\n", ID.latin1() )); | ||
193 | |||
194 | TS << "connect \"/usr/sbin/chat -v -f /etc/ppp/" | ||
195 | << FI.baseName() | ||
196 | << ".chat\"" | ||
197 | << endl; | ||
198 | |||
199 | if( Data.IP.GWIsDefault ) { | ||
200 | TS << "defaultroute" | ||
201 | << endl; | ||
202 | } | ||
203 | |||
204 | TS << "linkname " | ||
205 | << removeSpaces( ID.latin1() ) | ||
206 | << endl; | ||
207 | |||
208 | // insert other data here | ||
209 | rvl = 0; | ||
210 | rvd = connection()->getToplevel()->generateFileEmbedded( | ||
211 | ID, Path, TS, DevNr ); | ||
212 | } else if ( ID == "chatscripts" ) { | ||
213 | Log(("Generate PPP for %s\n", ID.latin1() )); | ||
214 | rvl = 0; | ||
215 | rvd = connection()->getToplevel()->generateFileEmbedded( | ||
216 | ID, Path, TS, DevNr ); | ||
217 | } | ||
218 | |||
219 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
220 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
221 | } | ||
diff --git a/noncore/settings/networksettings2/ppp/ppp_NNI.h b/noncore/settings/networksettings2/ppp/ppp_NNI.h index 989c2f0..0bf8fa9 100644 --- a/noncore/settings/networksettings2/ppp/ppp_NNI.h +++ b/noncore/settings/networksettings2/ppp/ppp_NNI.h | |||
@@ -1,48 +1,51 @@ | |||
1 | #ifndef PPP_H | 1 | #ifndef PPP_H |
2 | #define PPP_H | 2 | #define PPP_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "pppdata.h" | 5 | #include "pppdata.h" |
6 | #include "ppprun.h" | 6 | #include "ppprun.h" |
7 | 7 | ||
8 | class PPPNetNode; | 8 | class PPPNetNode; |
9 | class PPPEdit; | 9 | class PPPEdit; |
10 | class QTextStream; | ||
10 | 11 | ||
11 | class APPP : public ANetNodeInstance { | 12 | class APPP : public ANetNodeInstance { |
12 | 13 | ||
13 | public : | 14 | public : |
14 | 15 | ||
15 | APPP( PPPNetNode * PNN ); | 16 | APPP( PPPNetNode * PNN ); |
16 | 17 | ||
17 | QWidget * edit( QWidget * parent ); | ||
18 | QString acceptable( void ); | ||
19 | void commit( void ); | ||
20 | |||
21 | RuntimeInfo * runtime( void ) | 18 | RuntimeInfo * runtime( void ) |
22 | { if( RT == 0 ) | 19 | { if( RT == 0 ) { |
23 | RT = new PPPRun( this, Data ); | 20 | RT = new PPPRun( this, Data ); |
21 | } | ||
24 | return RT->runtimeInfo(); | 22 | return RT->runtimeInfo(); |
25 | } | 23 | } |
26 | 24 | ||
25 | QWidget * edit( QWidget * parent ); | ||
26 | QString acceptable( void ); | ||
27 | void commit( void ); | ||
28 | |||
27 | virtual void * data( void ) | 29 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 30 | { return (void *)&Data; } |
29 | 31 | ||
30 | virtual bool hasDataFor( const QString & ) | 32 | virtual QFile * openFile( const QString & ID ); |
31 | { return 0; } | 33 | short generateFile( const QString & ID, |
34 | const QString & Path, | ||
35 | QTextStream & TS, | ||
36 | long DevNr ); | ||
32 | 37 | ||
33 | virtual bool generateDataForCommonFile( | ||
34 | SystemFile & SF, long DevNr ); | ||
35 | protected : | 38 | protected : |
36 | 39 | ||
37 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 40 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
38 | virtual void saveSpecificAttribute( QTextStream & TS ); | 41 | virtual void saveSpecificAttribute( QTextStream & TS ); |
39 | 42 | ||
40 | private : | 43 | private : |
41 | 44 | ||
42 | PPPEdit * GUI; | 45 | PPPEdit * GUI; |
43 | PPPData Data; | 46 | PPPData Data; |
44 | PPPRun * RT; | 47 | PPPRun * RT; |
45 | 48 | ||
46 | }; | 49 | }; |
47 | 50 | ||
48 | #endif | 51 | #endif |
diff --git a/noncore/settings/networksettings2/profile/profile_NN.cpp b/noncore/settings/networksettings2/profile/profile_NN.cpp index 59c34a3..945b48d 100644 --- a/noncore/settings/networksettings2/profile/profile_NN.cpp +++ b/noncore/settings/networksettings2/profile/profile_NN.cpp | |||
@@ -1,62 +1,51 @@ | |||
1 | #include "profile_NN.h" | 1 | #include "profile_NN.h" |
2 | #include "profile_NNI.h" | 2 | #include "profile_NNI.h" |
3 | 3 | ||
4 | static const char * ProfileNeeds[] = | 4 | static const char * ProfileNeeds[] = |
5 | { "connection", | 5 | { "connection", |
6 | 0 | 6 | 0 |
7 | }; | 7 | }; |
8 | 8 | ||
9 | /** | 9 | /** |
10 | * Constructor, find all of the possible interfaces | 10 | * Constructor, find all of the possible interfaces |
11 | */ | 11 | */ |
12 | ProfileNetNode::ProfileNetNode() : ANetNode( tr("Regular profile")) { | 12 | ProfileNetNode::ProfileNetNode() : ANetNode( tr("Regular connection profile")) { |
13 | } | 13 | } |
14 | 14 | ||
15 | /** | 15 | /** |
16 | * Delete any interfaces that we own. | 16 | * Delete any interfaces that we own. |
17 | */ | 17 | */ |
18 | ProfileNetNode::~ProfileNetNode(){ | 18 | ProfileNetNode::~ProfileNetNode(){ |
19 | } | 19 | } |
20 | 20 | ||
21 | const QString ProfileNetNode::nodeDescription(){ | 21 | const QString ProfileNetNode::nodeDescription(){ |
22 | return tr("\ | 22 | return tr("\ |
23 | <p>Define use of an IP connection.</p>\ | 23 | <p>Define use of an IP connection.</p>\ |
24 | <p>Configure if and when this connection needs to be established</p>\ | 24 | <p>Configure if and when this connection needs to be established</p>\ |
25 | " | 25 | " |
26 | ); | 26 | ); |
27 | } | 27 | } |
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( | ||
42 | ANetNodeInstance * ) { | ||
43 | return 0; | ||
44 | } | ||
45 | |||
46 | bool ProfileNetNode::generateDeviceDataForCommonFile( | ||
47 | SystemFile & , | ||
48 | long ) { | ||
49 | return 0; | ||
50 | } | ||
51 | |||
52 | void ProfileNetNode::setSpecificAttribute( QString & , QString & ) { | 41 | void ProfileNetNode::setSpecificAttribute( QString & , QString & ) { |
53 | } | 42 | } |
54 | 43 | ||
55 | void ProfileNetNode::saveSpecificAttribute( QTextStream & ) { | 44 | void ProfileNetNode::saveSpecificAttribute( QTextStream & ) { |
56 | } | 45 | } |
57 | 46 | ||
58 | extern "C" { | 47 | extern "C" { |
59 | void create_plugin( QList<ANetNode> & PNN ) { | 48 | void create_plugin( QList<ANetNode> & PNN ) { |
60 | PNN.append( new ProfileNetNode() ); | 49 | PNN.append( new ProfileNetNode() ); |
61 | } | 50 | } |
62 | } | 51 | } |
diff --git a/noncore/settings/networksettings2/profile/profile_NN.h b/noncore/settings/networksettings2/profile/profile_NN.h index e602bd7..1f1ee2c 100644 --- a/noncore/settings/networksettings2/profile/profile_NN.h +++ b/noncore/settings/networksettings2/profile/profile_NN.h | |||
@@ -1,44 +1,36 @@ | |||
1 | #ifndef PROFILE_NETNODE_H | 1 | #ifndef PROFILE_NETNODE_H |
2 | #define PROFILE_NETNODE_H | 2 | #define PROFILE_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AProfile; | 6 | class AProfile; |
7 | 7 | ||
8 | class ProfileNetNode : public ANetNode{ | 8 | class ProfileNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | |||
22 | virtual ANetNodeInstance * createInstance( void ); | 21 | virtual ANetNodeInstance * createInstance( void ); |
23 | |||
24 | virtual const char ** needs( void ); | 22 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 23 | virtual const char * provides( void ); |
26 | 24 | ||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr); | ||
32 | |||
33 | private: | 25 | private: |
34 | 26 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 27 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 28 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 29 | }; |
38 | 30 | ||
39 | extern "C" | 31 | extern "C" |
40 | { | 32 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 33 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 34 | }; |
43 | 35 | ||
44 | #endif | 36 | #endif |
diff --git a/noncore/settings/networksettings2/profile/profile_NNI.cpp b/noncore/settings/networksettings2/profile/profile_NNI.cpp index cb52b2a..f0f0b97 100644 --- a/noncore/settings/networksettings2/profile/profile_NNI.cpp +++ b/noncore/settings/networksettings2/profile/profile_NNI.cpp | |||
@@ -5,54 +5,73 @@ | |||
5 | AProfile::AProfile( ProfileNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | AProfile::AProfile( ProfileNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | Data.Automatic = 1; | 6 | Data.Automatic = 1; |
7 | Data.Confirm = 0; | 7 | Data.Confirm = 0; |
8 | Data.Description = ""; | 8 | Data.Description = ""; |
9 | Data.Disabled = 0; | 9 | Data.Disabled = 0; |
10 | Data.TriggerVPN = 0; | 10 | Data.TriggerVPN = 0; |
11 | GUI = 0; | 11 | GUI = 0; |
12 | RT = 0; | 12 | RT = 0; |
13 | } | 13 | } |
14 | 14 | ||
15 | void AProfile::setSpecificAttribute( QString & Attr, QString & Value ) { | 15 | void AProfile::setSpecificAttribute( QString & Attr, QString & Value ) { |
16 | 16 | ||
17 | if ( Attr == "automatic" ) { | 17 | if ( Attr == "automatic" ) { |
18 | Data.Automatic = (Value=="yes"); | 18 | Data.Automatic = (Value=="yes"); |
19 | } else if ( Attr == "preconfirm" ) { | 19 | } else if ( Attr == "preconfirm" ) { |
20 | Data.Confirm = (Value=="yes"); | 20 | Data.Confirm = (Value=="yes"); |
21 | } else if ( Attr == "disabled" ) { | 21 | } else if ( Attr == "disabled" ) { |
22 | Data.Disabled = (Value=="yes"); | 22 | Data.Disabled = (Value=="yes"); |
23 | } else if ( Attr == "triggervpn" ) { | 23 | } else if ( Attr == "triggervpn" ) { |
24 | Data.TriggerVPN = (Value=="yes"); | 24 | Data.TriggerVPN = (Value=="yes"); |
25 | } else if ( Attr == "description" ) { | 25 | } else if ( Attr == "description" ) { |
26 | Data.Description = Value; | 26 | Data.Description = Value; |
27 | } | 27 | } |
28 | } | 28 | } |
29 | 29 | ||
30 | void AProfile::saveSpecificAttribute( QTextStream & TS ) { | 30 | void AProfile::saveSpecificAttribute( QTextStream & TS ) { |
31 | TS << "automatic=" << ((Data.Automatic) ? "yes" : "no") << endl; | 31 | TS << "automatic=" << ((Data.Automatic) ? "yes" : "no") << endl; |
32 | TS << "preconfirm=" << ((Data.Confirm) ? "yes" : "no") << endl; | 32 | TS << "preconfirm=" << ((Data.Confirm) ? "yes" : "no") << endl; |
33 | TS << "disabled=" << ((Data.Disabled) ? "yes" : "no") << endl; | 33 | TS << "disabled=" << ((Data.Disabled) ? "yes" : "no") << endl; |
34 | TS << "triggervpn=" << ((Data.TriggerVPN) ? "yes" : "no") << endl; | 34 | TS << "triggervpn=" << ((Data.TriggerVPN) ? "yes" : "no") << endl; |
35 | TS << "description=" << Data.Description << endl; | 35 | TS << "description=" << Data.Description << endl; |
36 | } | 36 | } |
37 | 37 | ||
38 | QWidget * AProfile::edit( QWidget * parent ) { | 38 | QWidget * AProfile::edit( QWidget * parent ) { |
39 | GUI = new ProfileEdit( parent, this ); | 39 | GUI = new ProfileEdit( parent, this ); |
40 | GUI->showData( Data ); | 40 | GUI->showData( Data ); |
41 | return GUI; | 41 | return GUI; |
42 | } | 42 | } |
43 | 43 | ||
44 | QString AProfile::acceptable( void ) { | 44 | QString AProfile::acceptable( void ) { |
45 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 45 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
46 | } | 46 | } |
47 | 47 | ||
48 | void AProfile::commit( void ) { | 48 | void AProfile::commit( void ) { |
49 | if( GUI && GUI->commit( Data ) ) | 49 | if( GUI && GUI->commit( Data ) ) |
50 | setModified( 1 ); | 50 | setModified( 1 ); |
51 | } | 51 | } |
52 | 52 | ||
53 | bool AProfile::generateDataForCommonFile( | 53 | short AProfile::generateFileEmbedded( const QString & ID, |
54 | SystemFile & , | 54 | const QString & Path, |
55 | long) { | 55 | QTextStream & TS, |
56 | return 1; | 56 | long DevNr ) { |
57 | |||
58 | short rvl, rvd; | ||
59 | |||
60 | rvl = 1; | ||
61 | |||
62 | if( ID == "interfaces" ) { | ||
63 | Log(("Generate Profile for %s\n", ID.latin1() )); | ||
64 | if( Data.TriggerVPN ) { | ||
65 | // this profile triggers VPN -> insert trigger | ||
66 | TS << " up networksettings2 --triggervpn" | ||
67 | << endl; | ||
68 | rvl = 0; | ||
69 | } | ||
70 | } | ||
71 | rvd = ANetNodeInstance::generateFileEmbedded( ID, Path, TS, DevNr ); | ||
72 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
73 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
57 | } | 74 | } |
58 | 75 | ||
76 | |||
77 | |||
diff --git a/noncore/settings/networksettings2/profile/profile_NNI.h b/noncore/settings/networksettings2/profile/profile_NNI.h index 2c2db7f..957f4af 100644 --- a/noncore/settings/networksettings2/profile/profile_NNI.h +++ b/noncore/settings/networksettings2/profile/profile_NNI.h | |||
@@ -1,51 +1,50 @@ | |||
1 | #ifndef PROFILE_H | 1 | #ifndef PROFILE_H |
2 | #define PROFILE_H | 2 | #define PROFILE_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "profiledata.h" | 5 | #include "profiledata.h" |
6 | #include "profilerun.h" | 6 | #include "profilerun.h" |
7 | 7 | ||
8 | class ProfileNetNode; | 8 | class ProfileNetNode; |
9 | class ProfileEdit; | 9 | class ProfileEdit; |
10 | 10 | ||
11 | class AProfile : public ANetNodeInstance { | 11 | class AProfile : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AProfile( ProfileNetNode * PNN ); | 15 | AProfile( ProfileNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new ProfileRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | const QString & description( void ) | ||
22 | { return Data.Description; } | ||
23 | RuntimeInfo * runtime( void ) | ||
24 | { if( RT == 0 ) | ||
25 | RT = new ProfileRun( this, Data ); | ||
26 | return RT; | ||
27 | } | ||
28 | |||
29 | virtual void * data( void ) | 26 | virtual void * data( void ) |
30 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
31 | 28 | ||
32 | virtual bool hasDataFor( const QString & ) | 29 | virtual short generateFileEmbedded( const QString & ID, |
33 | { return 0; } | 30 | const QString & Path, |
31 | QTextStream & TS, | ||
32 | long DevNr ); | ||
34 | 33 | ||
35 | virtual bool generateDataForCommonFile( | 34 | const QString & description( void ) |
36 | SystemFile & SF, long DevNr); | 35 | { return Data.Description; } |
37 | 36 | ||
38 | protected : | 37 | protected : |
39 | 38 | ||
40 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 39 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
41 | virtual void saveSpecificAttribute( QTextStream & TS ); | 40 | virtual void saveSpecificAttribute( QTextStream & TS ); |
42 | 41 | ||
43 | private : | 42 | private : |
44 | 43 | ||
45 | ProfileEdit * GUI; | 44 | ProfileEdit * GUI; |
46 | ProfileData Data; | 45 | ProfileData Data; |
47 | ProfileRun * RT; | 46 | ProfileRun * RT; |
48 | 47 | ||
49 | }; | 48 | }; |
50 | 49 | ||
51 | #endif | 50 | #endif |
diff --git a/noncore/settings/networksettings2/usb/usb_NN.cpp b/noncore/settings/networksettings2/usb/usb_NN.cpp index c10a09c..14c479a 100644 --- a/noncore/settings/networksettings2/usb/usb_NN.cpp +++ b/noncore/settings/networksettings2/usb/usb_NN.cpp | |||
@@ -1,77 +1,54 @@ | |||
1 | #include "usb_NN.h" | 1 | #include "usb_NN.h" |
2 | #include "usb_NNI.h" | 2 | #include "usb_NNI.h" |
3 | 3 | ||
4 | static const char * USBNeeds[] = | 4 | static const char * USBNeeds[] = |
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 | USBNetNode::USBNetNode() : ANetNode(tr("USB Cable Connect")) { | 11 | USBNetNode::USBNetNode() : ANetNode(tr("USB Cable Connect")) { |
12 | } | 12 | } |
13 | 13 | ||
14 | /** | 14 | /** |
15 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
16 | */ | 16 | */ |
17 | USBNetNode::~USBNetNode(){ | 17 | USBNetNode::~USBNetNode(){ |
18 | } | 18 | } |
19 | 19 | ||
20 | const QString USBNetNode::nodeDescription(){ | 20 | const QString USBNetNode::nodeDescription(){ |
21 | return tr("\ | 21 | return tr("\ |
22 | <p>Configure Ethernet over USB.</p>\ | 22 | <p>Configure Ethernet over USB.</p>\ |
23 | <p>Use this for a computer to computer USB cable connection</p>\ | 23 | <p>Use this for a computer to computer USB cable connection</p>\ |
24 | " | 24 | " |
25 | ); | 25 | ); |
26 | } | 26 | } |
27 | 27 | ||
28 | ANetNodeInstance * USBNetNode::createInstance( void ) { | 28 | ANetNodeInstance * USBNetNode::createInstance( void ) { |
29 | return new AUSB( this ); | 29 | return new AUSB( this ); |
30 | } | 30 | } |
31 | 31 | ||
32 | const char ** USBNetNode::needs( void ) { | 32 | const char ** USBNetNode::needs( void ) { |
33 | return USBNeeds; | 33 | return USBNeeds; |
34 | } | 34 | } |
35 | 35 | ||
36 | const char * USBNetNode::provides( void ) { | 36 | const char * USBNetNode::provides( void ) { |
37 | return "device"; | 37 | return "device"; |
38 | } | 38 | } |
39 | 39 | ||
40 | bool USBNetNode::generateProperFilesFor( | ||
41 | ANetNodeInstance * ) { | ||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | bool USBNetNode::hasDataFor( const QString & S ) { | ||
46 | return (S== "interfaces"); | ||
47 | } | ||
48 | |||
49 | bool USBNetNode::generateDeviceDataForCommonFile( | ||
50 | SystemFile & S , | ||
51 | long DevNr ) { | ||
52 | QString NIC = genNic( DevNr ); | ||
53 | |||
54 | if( S.name() == "interfaces" ) { | ||
55 | // generate mapping stanza for this interface | ||
56 | S << "# check if " << NIC << " can be brought UP" << endl; | ||
57 | S << "mapping " << NIC << endl; | ||
58 | S << " script networksettings2-request" << endl << endl; | ||
59 | } | ||
60 | return 0; | ||
61 | } | ||
62 | |||
63 | QString USBNetNode::genNic( long ) { | 40 | QString USBNetNode::genNic( long ) { |
64 | return QString( "usbf" ); | 41 | return QString( "usbf" ); |
65 | } | 42 | } |
66 | 43 | ||
67 | void USBNetNode::setSpecificAttribute( QString & , QString & ) { | 44 | void USBNetNode::setSpecificAttribute( QString & , QString & ) { |
68 | } | 45 | } |
69 | 46 | ||
70 | void USBNetNode::saveSpecificAttribute( QTextStream & ) { | 47 | void USBNetNode::saveSpecificAttribute( QTextStream & ) { |
71 | } | 48 | } |
72 | 49 | ||
73 | extern "C" { | 50 | extern "C" { |
74 | void create_plugin( QList<ANetNode> & PNN ) { | 51 | void create_plugin( QList<ANetNode> & PNN ) { |
75 | PNN.append( new USBNetNode() ); | 52 | PNN.append( new USBNetNode() ); |
76 | } | 53 | } |
77 | } | 54 | } |
diff --git a/noncore/settings/networksettings2/usb/usb_NN.h b/noncore/settings/networksettings2/usb/usb_NN.h index fea89f0..73da15a 100644 --- a/noncore/settings/networksettings2/usb/usb_NN.h +++ b/noncore/settings/networksettings2/usb/usb_NN.h | |||
@@ -1,45 +1,38 @@ | |||
1 | #ifndef USB_NETNODE_H | 1 | #ifndef USB_NETNODE_H |
2 | #define USB_NETNODE_H | 2 | #define USB_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AUSB; | 6 | class AUSB; |
7 | 7 | ||
8 | class USBNetNode : public ANetNode{ | 8 | class USBNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
14 | USBNetNode(); | 14 | USBNetNode(); |
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | |||
22 | virtual ANetNodeInstance * createInstance( void ); | 21 | virtual ANetNodeInstance * createInstance( void ); |
23 | |||
24 | virtual const char ** needs( void ); | 22 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 23 | virtual const char * provides( void ); |
26 | 24 | ||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & S); | ||
29 | virtual bool generateDeviceDataForCommonFile( | ||
30 | SystemFile & SF, long DevNr ); | ||
31 | |||
32 | virtual QString genNic( long nr ); | 25 | virtual QString genNic( long nr ); |
33 | 26 | ||
34 | private: | 27 | private: |
35 | 28 | ||
36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 29 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
37 | virtual void saveSpecificAttribute( QTextStream & TS ); | 30 | virtual void saveSpecificAttribute( QTextStream & TS ); |
38 | }; | 31 | }; |
39 | 32 | ||
40 | extern "C" | 33 | extern "C" |
41 | { | 34 | { |
42 | void create_plugin( QList<ANetNode> & PNN ); | 35 | void create_plugin( QList<ANetNode> & PNN ); |
43 | }; | 36 | }; |
44 | 37 | ||
45 | #endif | 38 | #endif |
diff --git a/noncore/settings/networksettings2/usb/usb_NNI.cpp b/noncore/settings/networksettings2/usb/usb_NNI.cpp index e90204c..50c6e8d 100644 --- a/noncore/settings/networksettings2/usb/usb_NNI.cpp +++ b/noncore/settings/networksettings2/usb/usb_NNI.cpp | |||
@@ -1,52 +1,61 @@ | |||
1 | #include <qpe/qpeapplication.h> | 1 | #include <qpe/qpeapplication.h> |
2 | #include "usbedit.h" | 2 | #include "usbedit.h" |
3 | #include "usb_NNI.h" | 3 | #include "usb_NNI.h" |
4 | #include "usb_NN.h" | 4 | #include "usb_NN.h" |
5 | 5 | ||
6 | AUSB::AUSB( USBNetNode * PNN ) : ANetNodeInstance( PNN ) { | 6 | AUSB::AUSB( USBNetNode * PNN ) : ANetNodeInstance( PNN ) { |
7 | 7 | ||
8 | GUI = 0; | 8 | GUI = 0; |
9 | RT = 0; | 9 | RT = 0; |
10 | } | 10 | } |
11 | 11 | ||
12 | void AUSB::setSpecificAttribute( QString & , QString & ) { | 12 | void AUSB::setSpecificAttribute( QString & , QString & ) { |
13 | } | 13 | } |
14 | 14 | ||
15 | void AUSB::saveSpecificAttribute( QTextStream & ) { | 15 | void AUSB::saveSpecificAttribute( QTextStream & ) { |
16 | } | 16 | } |
17 | 17 | ||
18 | 18 | ||
19 | QWidget * AUSB::edit( QWidget * parent ) { | 19 | QWidget * AUSB::edit( QWidget * parent ) { |
20 | GUI = new USBEdit( parent ); | 20 | GUI = new USBEdit( parent ); |
21 | GUI->showData( Data ); | 21 | GUI->showData( Data ); |
22 | return GUI; | 22 | return GUI; |
23 | } | 23 | } |
24 | 24 | ||
25 | QString AUSB::acceptable( void ) { | 25 | QString AUSB::acceptable( void ) { |
26 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 26 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
27 | } | 27 | } |
28 | 28 | ||
29 | void AUSB::commit( void ) { | 29 | void AUSB::commit( void ) { |
30 | if( GUI && GUI->commit( Data ) ) { | 30 | if( GUI && GUI->commit( Data ) ) { |
31 | setModified( 1 ); | 31 | setModified( 1 ); |
32 | } | 32 | } |
33 | } | 33 | } |
34 | 34 | ||
35 | bool AUSB::hasDataFor( const QString & S ) { | 35 | short AUSB::generateFileEmbedded( const QString & ID, |
36 | return (S== "interfaces"); | 36 | const QString & Path, |
37 | } | 37 | QTextStream & TS, |
38 | 38 | long DevNr ) { | |
39 | bool AUSB::generateDataForCommonFile( SystemFile & S, long DevNr ) { | 39 | |
40 | QString NIC = runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); | 40 | QString NIC = runtime()->device()->netNode()->nodeClass()->genNic( DevNr ); |
41 | short rvl, rvd; | ||
42 | |||
43 | rvl = 1; | ||
41 | 44 | ||
42 | if( S.name() == "interfaces" ) { | 45 | if( ID == "interfaces" ) { |
46 | Log(("Generate USB for %s\n", ID.latin1() )); | ||
43 | // generate mapping stanza for this interface | 47 | // generate mapping stanza for this interface |
44 | S << " pre-up " | 48 | TS << " pre-up " |
45 | << QPEApplication::qpeDir() | 49 | << QPEApplication::qpeDir() |
46 | << "bin/setmacaddress.sh " | 50 | << "bin/setmacaddress.sh " |
47 | << NIC | 51 | << NIC |
48 | << " || true" | 52 | << " || true" |
49 | << endl; | 53 | << endl; |
54 | rvl = 0; | ||
50 | } | 55 | } |
51 | return 0; | 56 | rvd = ANetNodeInstance::generateFileEmbedded( ID, Path, TS, DevNr ); |
57 | |||
58 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
59 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
60 | |||
52 | } | 61 | } |
diff --git a/noncore/settings/networksettings2/usb/usb_NNI.h b/noncore/settings/networksettings2/usb/usb_NNI.h index d2ee217..fcdfd91 100644 --- a/noncore/settings/networksettings2/usb/usb_NNI.h +++ b/noncore/settings/networksettings2/usb/usb_NNI.h | |||
@@ -1,46 +1,46 @@ | |||
1 | #ifndef USB_H | 1 | #ifndef USB_H |
2 | #define USB_H | 2 | #define USB_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "usbdata.h" | 5 | #include "usbdata.h" |
6 | #include "usbrun.h" | 6 | #include "usbrun.h" |
7 | 7 | ||
8 | class USBNetNode; | 8 | class USBNetNode; |
9 | class USBEdit; | 9 | class USBEdit; |
10 | 10 | ||
11 | class AUSB : public ANetNodeInstance { | 11 | class AUSB : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AUSB( USBNetNode * PNN ); | 15 | AUSB( USBNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new USBRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new USBRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & S); | 29 | virtual short generateFileEmbedded( const QString & ID, |
31 | virtual bool generateDataForCommonFile( | 30 | const QString & Path, |
32 | SystemFile & SF, long DevNr ); | 31 | QTextStream & TS, |
32 | long DevNr ); | ||
33 | 33 | ||
34 | protected : | 34 | protected : |
35 | 35 | ||
36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
37 | virtual void saveSpecificAttribute( QTextStream & TS ); | 37 | virtual void saveSpecificAttribute( QTextStream & TS ); |
38 | 38 | ||
39 | private : | 39 | private : |
40 | 40 | ||
41 | USBEdit * GUI; | 41 | USBEdit * GUI; |
42 | USBData Data; | 42 | USBData Data; |
43 | USBRun * RT; | 43 | USBRun * RT; |
44 | }; | 44 | }; |
45 | 45 | ||
46 | #endif | 46 | #endif |
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.cpp b/noncore/settings/networksettings2/vpn/vpn_NN.cpp index 6c7b308..9d3b6e7 100644 --- a/noncore/settings/networksettings2/vpn/vpn_NN.cpp +++ b/noncore/settings/networksettings2/vpn/vpn_NN.cpp | |||
@@ -1,62 +1,50 @@ | |||
1 | #include "vpn_NN.h" | 1 | #include "vpn_NN.h" |
2 | #include "vpn_NNI.h" | 2 | #include "vpn_NNI.h" |
3 | 3 | ||
4 | static const char * VPNNeeds[] = | 4 | static const char * VPNNeeds[] = |
5 | { "connection", | 5 | { 0 |
6 | 0 | ||
7 | }; | 6 | }; |
8 | 7 | ||
9 | /** | 8 | /** |
10 | * Constructor, find all of the possible interfaces | 9 | * Constructor, find all of the possible interfaces |
11 | */ | 10 | */ |
12 | VPNNetNode::VPNNetNode() : ANetNode(tr("VPN Connection")) { | 11 | VPNNetNode::VPNNetNode() : ANetNode(tr("VPN Connection")) { |
13 | } | 12 | } |
14 | 13 | ||
15 | /** | 14 | /** |
16 | * Delete any interfaces that we own. | 15 | * Delete any interfaces that we own. |
17 | */ | 16 | */ |
18 | VPNNetNode::~VPNNetNode(){ | 17 | VPNNetNode::~VPNNetNode(){ |
19 | } | 18 | } |
20 | 19 | ||
21 | const QString VPNNetNode::nodeDescription(){ | 20 | const QString VPNNetNode::nodeDescription(){ |
22 | return tr("\ | 21 | return tr("\ |
23 | <p>Configure private IP connection.</p>\ | 22 | <p>Configure private IP connection.</p>\ |
24 | <p>Defines Secure tunnels over non secure IP sessions</p>\ | 23 | <p>Defines Secure tunnels over non secure IP sessions</p>\ |
25 | " | 24 | " |
26 | ); | 25 | ); |
27 | } | 26 | } |
28 | 27 | ||
29 | ANetNodeInstance * VPNNetNode::createInstance( void ) { | 28 | ANetNodeInstance * VPNNetNode::createInstance( void ) { |
30 | return new AVPN( this ); | 29 | return new AVPN( this ); |
31 | } | 30 | } |
32 | 31 | ||
33 | const char ** VPNNetNode::needs( void ) { | 32 | const char ** VPNNetNode::needs( void ) { |
34 | return VPNNeeds; | 33 | return VPNNeeds; |
35 | } | 34 | } |
36 | 35 | ||
37 | const char * VPNNetNode::provides( void ) { | 36 | const char * VPNNetNode::provides( void ) { |
38 | return "connection"; | 37 | return "connection"; |
39 | } | 38 | } |
40 | 39 | ||
41 | bool VPNNetNode::generateProperFilesFor( | ||
42 | ANetNodeInstance * ) { | ||
43 | return 0; | ||
44 | } | ||
45 | |||
46 | bool VPNNetNode::generateDeviceDataForCommonFile( | ||
47 | SystemFile & , | ||
48 | long ) { | ||
49 | return 0; | ||
50 | } | ||
51 | |||
52 | void VPNNetNode::setSpecificAttribute( QString & , QString & ) { | 40 | void VPNNetNode::setSpecificAttribute( QString & , QString & ) { |
53 | } | 41 | } |
54 | 42 | ||
55 | void VPNNetNode::saveSpecificAttribute( QTextStream & ) { | 43 | void VPNNetNode::saveSpecificAttribute( QTextStream & ) { |
56 | } | 44 | } |
57 | 45 | ||
58 | extern "C" { | 46 | extern "C" { |
59 | void create_plugin( QList<ANetNode> & PNN ) { | 47 | void create_plugin( QList<ANetNode> & PNN ) { |
60 | PNN.append( new VPNNetNode() ); | 48 | PNN.append( new VPNNetNode() ); |
61 | } | 49 | } |
62 | } | 50 | } |
diff --git a/noncore/settings/networksettings2/vpn/vpn_NN.h b/noncore/settings/networksettings2/vpn/vpn_NN.h index 5b6632e..3c7b5e0 100644 --- a/noncore/settings/networksettings2/vpn/vpn_NN.h +++ b/noncore/settings/networksettings2/vpn/vpn_NN.h | |||
@@ -1,44 +1,36 @@ | |||
1 | #ifndef VPN_NETNODE_H | 1 | #ifndef VPN_NETNODE_H |
2 | #define VPN_NETNODE_H | 2 | #define VPN_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AVPN; | 6 | class AVPN; |
7 | 7 | ||
8 | class VPNNetNode : public ANetNode{ | 8 | class VPNNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | public: |
13 | 13 | ||
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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | |||
22 | virtual ANetNodeInstance * createInstance( void ); | 21 | virtual ANetNodeInstance * createInstance( void ); |
23 | |||
24 | virtual const char ** needs( void ); | 22 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 23 | virtual const char * provides( void ); |
26 | 24 | ||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | virtual bool hasDataFor( const QString & ) | ||
29 | { return 0; } | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | |||
33 | private: | 25 | private: |
34 | 26 | ||
35 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 27 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
36 | virtual void saveSpecificAttribute( QTextStream & TS ); | 28 | virtual void saveSpecificAttribute( QTextStream & TS ); |
37 | }; | 29 | }; |
38 | 30 | ||
39 | extern "C" | 31 | extern "C" |
40 | { | 32 | { |
41 | void create_plugin( QList<ANetNode> & PNN ); | 33 | void create_plugin( QList<ANetNode> & PNN ); |
42 | }; | 34 | }; |
43 | 35 | ||
44 | #endif | 36 | #endif |
diff --git a/noncore/settings/networksettings2/vpn/vpn_NNI.cpp b/noncore/settings/networksettings2/vpn/vpn_NNI.cpp index ee999e8..6c20aeb 100644 --- a/noncore/settings/networksettings2/vpn/vpn_NNI.cpp +++ b/noncore/settings/networksettings2/vpn/vpn_NNI.cpp | |||
@@ -1,36 +1,30 @@ | |||
1 | #include "vpnedit.h" | 1 | #include "vpnedit.h" |
2 | #include "vpn_NNI.h" | 2 | #include "vpn_NNI.h" |
3 | #include "vpn_NN.h" | 3 | #include "vpn_NN.h" |
4 | 4 | ||
5 | AVPN::AVPN( VPNNetNode * PNN ) : ANetNodeInstance( PNN ) { | 5 | AVPN::AVPN( VPNNetNode * PNN ) : ANetNodeInstance( PNN ) { |
6 | GUI = 0; | 6 | GUI = 0; |
7 | RT = 0; | 7 | RT = 0; |
8 | } | 8 | } |
9 | 9 | ||
10 | void AVPN::setSpecificAttribute( QString & , QString & ) { | 10 | void AVPN::setSpecificAttribute( QString & , QString & ) { |
11 | } | 11 | } |
12 | 12 | ||
13 | void AVPN::saveSpecificAttribute( QTextStream & ) { | 13 | void AVPN::saveSpecificAttribute( QTextStream & ) { |
14 | } | 14 | } |
15 | 15 | ||
16 | QWidget * AVPN::edit( QWidget * parent ) { | 16 | QWidget * AVPN::edit( QWidget * parent ) { |
17 | GUI = new VPNEdit( parent ); | 17 | GUI = new VPNEdit( parent ); |
18 | GUI->showData( Data ); | 18 | GUI->showData( Data ); |
19 | return GUI; | 19 | return GUI; |
20 | } | 20 | } |
21 | 21 | ||
22 | QString AVPN::acceptable( void ) { | 22 | QString AVPN::acceptable( void ) { |
23 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 23 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
24 | } | 24 | } |
25 | 25 | ||
26 | void AVPN::commit( void ) { | 26 | void AVPN::commit( void ) { |
27 | if( GUI && GUI->commit( Data ) ) | 27 | if( GUI && GUI->commit( Data ) ) |
28 | setModified( 1 ); | 28 | setModified( 1 ); |
29 | } | 29 | } |
30 | 30 | ||
31 | bool AVPN::generateDataForCommonFile( | ||
32 | SystemFile & , | ||
33 | long) { | ||
34 | return 1; | ||
35 | } | ||
36 | |||
diff --git a/noncore/settings/networksettings2/vpn/vpn_NNI.h b/noncore/settings/networksettings2/vpn/vpn_NNI.h index c3eb016..aee5891 100644 --- a/noncore/settings/networksettings2/vpn/vpn_NNI.h +++ b/noncore/settings/networksettings2/vpn/vpn_NNI.h | |||
@@ -1,47 +1,43 @@ | |||
1 | #ifndef VPN_H | 1 | #ifndef VPN_H |
2 | #define VPN_H | 2 | #define VPN_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "vpndata.h" | 5 | #include "vpndata.h" |
6 | #include "vpnrun.h" | 6 | #include "vpnrun.h" |
7 | 7 | ||
8 | class VPNNetNode; | 8 | class VPNNetNode; |
9 | class VPNEdit; | 9 | class VPNEdit; |
10 | 10 | ||
11 | class AVPN : public ANetNodeInstance { | 11 | class AVPN : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AVPN( VPNNetNode * PNN ); | 15 | AVPN( VPNNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new VPNRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new VPNRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | 29 | |
31 | { return 0; } | ||
32 | virtual bool generateDataForCommonFile( | ||
33 | SystemFile & SF, long DevNr ); | ||
34 | protected : | 30 | protected : |
35 | 31 | ||
36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 32 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
37 | virtual void saveSpecificAttribute( QTextStream & TS ); | 33 | virtual void saveSpecificAttribute( QTextStream & TS ); |
38 | 34 | ||
39 | private : | 35 | private : |
40 | 36 | ||
41 | VPNEdit * GUI; | 37 | VPNEdit * GUI; |
42 | VPNData Data; | 38 | VPNData Data; |
43 | VPNRun * RT; | 39 | VPNRun * RT; |
44 | 40 | ||
45 | }; | 41 | }; |
46 | 42 | ||
47 | #endif | 43 | #endif |
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.cpp b/noncore/settings/networksettings2/wlan/wlan_NN.cpp index ce8a734..e4c3f60 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NN.cpp +++ b/noncore/settings/networksettings2/wlan/wlan_NN.cpp | |||
@@ -1,85 +1,62 @@ | |||
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(tr("WLan Device")) { | 11 | WLanNetNode::WLanNetNode() : ANetNode(tr("WLan Device")) { |
12 | InstanceCount = 2; | 12 | InstanceCount = 2; |
13 | } | 13 | } |
14 | 14 | ||
15 | /** | 15 | /** |
16 | * Delete any interfaces that we own. | 16 | * Delete any interfaces that we own. |
17 | */ | 17 | */ |
18 | WLanNetNode::~WLanNetNode(){ | 18 | WLanNetNode::~WLanNetNode(){ |
19 | } | 19 | } |
20 | 20 | ||
21 | const QString WLanNetNode::nodeDescription(){ | 21 | const QString WLanNetNode::nodeDescription(){ |
22 | return tr("\ | 22 | return tr("\ |
23 | <p>Configure Wi/Fi or WLan network cards.</p>\ | 23 | <p>Configure Wi/Fi or WLan network cards.</p>\ |
24 | <p>Defines Wireless options for those cards</p>\ | 24 | <p>Defines Wireless options for those cards</p>\ |
25 | " | 25 | " |
26 | ); | 26 | ); |
27 | } | 27 | } |
28 | 28 | ||
29 | ANetNodeInstance * WLanNetNode::createInstance( void ) { | 29 | ANetNodeInstance * WLanNetNode::createInstance( void ) { |
30 | return new AWLan( this ); | 30 | return new AWLan( this ); |
31 | } | 31 | } |
32 | 32 | ||
33 | const char ** WLanNetNode::needs( void ) { | 33 | const char ** WLanNetNode::needs( void ) { |
34 | return WLanNeeds; | 34 | return WLanNeeds; |
35 | } | 35 | } |
36 | 36 | ||
37 | const char * WLanNetNode::provides( void ) { | 37 | const char * WLanNetNode::provides( void ) { |
38 | return "device"; | 38 | return "device"; |
39 | } | 39 | } |
40 | 40 | ||
41 | bool WLanNetNode::generateProperFilesFor( | ||
42 | ANetNodeInstance * ) { | ||
43 | return 0; | ||
44 | } | ||
45 | |||
46 | bool WLanNetNode::hasDataFor( const QString & S ) { | ||
47 | return S == "interfaces"; | ||
48 | } | ||
49 | |||
50 | bool WLanNetNode::generateDeviceDataForCommonFile( | ||
51 | SystemFile & S, | ||
52 | long DevNr ) { | ||
53 | QString NIC = genNic( DevNr ); | ||
54 | |||
55 | if( S.name() == "interfaces" ) { | ||
56 | // generate mapping stanza for this interface | ||
57 | S << "# check if " << NIC << " can be brought UP" << endl; | ||
58 | S << "mapping " << NIC << endl; | ||
59 | S << " script networksettings2-request" << endl << endl; | ||
60 | } | ||
61 | return 0; | ||
62 | } | ||
63 | |||
64 | QString WLanNetNode::genNic( long nr ) { | 41 | QString WLanNetNode::genNic( long nr ) { |
65 | QString S; | 42 | QString S; |
66 | return S.sprintf( "wlan%ld", nr ); | 43 | return S.sprintf( "wlan%ld", nr ); |
67 | } | 44 | } |
68 | 45 | ||
69 | void WLanNetNode::setSpecificAttribute( QString & A, QString & V ) { | 46 | void WLanNetNode::setSpecificAttribute( QString & A, QString & V ) { |
70 | if( A == "interfacecount" ) { | 47 | if( A == "interfacecount" ) { |
71 | InstanceCount = V.toLong(); | 48 | InstanceCount = V.toLong(); |
72 | } | 49 | } |
73 | } | 50 | } |
74 | 51 | ||
75 | void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) { | 52 | void WLanNetNode::saveSpecificAttribute( QTextStream & TS ) { |
76 | TS << "interfacecount=" | 53 | TS << "interfacecount=" |
77 | << InstanceCount | 54 | << InstanceCount |
78 | << endl; | 55 | << endl; |
79 | } | 56 | } |
80 | 57 | ||
81 | extern "C" { | 58 | extern "C" { |
82 | void create_plugin( QList<ANetNode> & PNN ) { | 59 | void create_plugin( QList<ANetNode> & PNN ) { |
83 | PNN.append( new WLanNetNode() ); | 60 | PNN.append( new WLanNetNode() ); |
84 | } | 61 | } |
85 | } | 62 | } |
diff --git a/noncore/settings/networksettings2/wlan/wlan_NN.h b/noncore/settings/networksettings2/wlan/wlan_NN.h index b5ff3fd..c13c05c 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NN.h +++ b/noncore/settings/networksettings2/wlan/wlan_NN.h | |||
@@ -1,53 +1,44 @@ | |||
1 | #ifndef WLAN_NETNODE_H | 1 | #ifndef WLAN_NETNODE_H |
2 | #define WLAN_NETNODE_H | 2 | #define WLAN_NETNODE_H |
3 | 3 | ||
4 | #include "netnode.h" | 4 | #include "netnode.h" |
5 | 5 | ||
6 | class AWLan; | 6 | class AWLan; |
7 | 7 | ||
8 | class WLanNetNode : public ANetNode{ | 8 | class WLanNetNode : public ANetNode{ |
9 | 9 | ||
10 | Q_OBJECT | 10 | Q_OBJECT |
11 | 11 | ||
12 | public: | 12 | 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 nodeDescription() ; | 20 | virtual const QString nodeDescription() ; |
21 | |||
22 | virtual ANetNodeInstance * createInstance( void ); | 21 | virtual ANetNodeInstance * createInstance( void ); |
23 | |||
24 | virtual const char ** needs( void ); | 22 | virtual const char ** needs( void ); |
25 | virtual const char * provides( void ); | 23 | virtual const char * provides( void ); |
26 | 24 | ||
27 | virtual bool generateProperFilesFor( ANetNodeInstance * NNI ); | ||
28 | |||
29 | virtual bool hasDataFor( const QString & S ); | ||
30 | virtual bool generateDeviceDataForCommonFile( | ||
31 | SystemFile & SF, long DevNr ); | ||
32 | |||
33 | virtual long instanceCount( void ) | 25 | virtual long instanceCount( void ) |
34 | { return InstanceCount; } | 26 | { return InstanceCount; } |
35 | |||
36 | virtual QString genNic( long ); | 27 | virtual QString genNic( long ); |
37 | 28 | ||
38 | private: | 29 | private: |
39 | 30 | ||
40 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 31 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
41 | virtual void saveSpecificAttribute( QTextStream & TS ); | 32 | virtual void saveSpecificAttribute( QTextStream & TS ); |
42 | 33 | ||
43 | // number of interfaces for this device | 34 | // number of interfaces for this device |
44 | long InstanceCount; | 35 | long InstanceCount; |
45 | 36 | ||
46 | }; | 37 | }; |
47 | 38 | ||
48 | extern "C" | 39 | extern "C" |
49 | { | 40 | { |
50 | void create_plugin( QList<ANetNode> & PNN ); | 41 | void create_plugin( QList<ANetNode> & PNN ); |
51 | }; | 42 | }; |
52 | 43 | ||
53 | #endif | 44 | #endif |
diff --git a/noncore/settings/networksettings2/wlan/wlan_NNI.cpp b/noncore/settings/networksettings2/wlan/wlan_NNI.cpp index 61969f2..0e4fc4c 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NNI.cpp +++ b/noncore/settings/networksettings2/wlan/wlan_NNI.cpp | |||
@@ -34,107 +34,118 @@ void AWLan::setSpecificAttribute( QString & A, QString & V ) { | |||
34 | Data.Encrypted = (V=="yes"); | 34 | Data.Encrypted = (V=="yes"); |
35 | } else if( A == "acceptnonencrypted" ) { | 35 | } else if( A == "acceptnonencrypted" ) { |
36 | Data.AcceptNonEncrypted = (V=="yes"); | 36 | Data.AcceptNonEncrypted = (V=="yes"); |
37 | } else if( A == "key0" ) { | 37 | } else if( A == "key0" ) { |
38 | Data.Key[0] = V; | 38 | Data.Key[0] = V; |
39 | } else if( A == "key1" ) { | 39 | } else if( A == "key1" ) { |
40 | Data.Key[1] = V; | 40 | Data.Key[1] = V; |
41 | } else if( A == "key2" ) { | 41 | } else if( A == "key2" ) { |
42 | Data.Key[2] = V; | 42 | Data.Key[2] = V; |
43 | } else if( A == "key3" ) { | 43 | } else if( A == "key3" ) { |
44 | Data.Key[3] = V; | 44 | Data.Key[3] = V; |
45 | } | 45 | } |
46 | } | 46 | } |
47 | 47 | ||
48 | void AWLan::saveSpecificAttribute( QTextStream & S ) { | 48 | void AWLan::saveSpecificAttribute( QTextStream & S ) { |
49 | S << "essid=" << quote( Data.ESSID ) << endl; | 49 | S << "essid=" << quote( Data.ESSID ) << endl; |
50 | S << "nodename=" << quote( Data.NodeName ) << endl; | 50 | S << "nodename=" << quote( Data.NodeName ) << endl; |
51 | S << "mode=" << Data.Mode << endl; | 51 | S << "mode=" << Data.Mode << endl; |
52 | S << "specificap=" | 52 | S << "specificap=" |
53 | << ((Data.SpecificAP) ? "yes" : "no") | 53 | << ((Data.SpecificAP) ? "yes" : "no") |
54 | << endl; | 54 | << endl; |
55 | S << "apmac=" << Data.APMac << endl; | 55 | S << "apmac=" << Data.APMac << endl; |
56 | S << "encrypted=" | 56 | S << "encrypted=" |
57 | << ((Data.Encrypted) ? "yes" : "no") | 57 | << ((Data.Encrypted) ? "yes" : "no") |
58 | << endl; | 58 | << endl; |
59 | S << "acceptnonencrypted=" | 59 | S << "acceptnonencrypted=" |
60 | << ((Data.AcceptNonEncrypted) ? "yes" : "no") | 60 | << ((Data.AcceptNonEncrypted) ? "yes" : "no") |
61 | << endl; | 61 | << endl; |
62 | for( int i = 0 ;i < 4 ; i ++ ) { | 62 | for( int i = 0 ;i < 4 ; i ++ ) { |
63 | S << "key" << i << "=" << Data.Key[i] << endl; | 63 | S << "key" << i << "=" << Data.Key[i] << endl; |
64 | } | 64 | } |
65 | } | 65 | } |
66 | 66 | ||
67 | QWidget * AWLan::edit( QWidget * parent ) { | 67 | QWidget * AWLan::edit( QWidget * parent ) { |
68 | GUI = new WLanEdit( parent, this ); | 68 | GUI = new WLanEdit( parent, this ); |
69 | GUI->showData( Data ); | 69 | GUI->showData( Data ); |
70 | return GUI; | 70 | return GUI; |
71 | } | 71 | } |
72 | 72 | ||
73 | QString AWLan::acceptable( void ) { | 73 | QString AWLan::acceptable( void ) { |
74 | return ( GUI ) ? GUI->acceptable( ) : QString(); | 74 | return ( GUI ) ? GUI->acceptable( ) : QString(); |
75 | } | 75 | } |
76 | 76 | ||
77 | void AWLan::commit( void ) { | 77 | void AWLan::commit( void ) { |
78 | if( GUI && GUI->commit( Data ) ) | 78 | if( GUI && GUI->commit( Data ) ) |
79 | setModified( 1 ); | 79 | setModified( 1 ); |
80 | } | 80 | } |
81 | 81 | ||
82 | bool AWLan::generateDataForCommonFile( | 82 | short AWLan::generateFileEmbedded( const QString & ID, |
83 | SystemFile & S, | 83 | const QString & Path, |
84 | long ) { | 84 | QTextStream & TS, |
85 | long DevNr ) { | ||
85 | 86 | ||
86 | S << " wireless_essid \"" | 87 | short rvl, rvd; |
87 | << Data.ESSID | ||
88 | << "\"" | ||
89 | << endl; | ||
90 | 88 | ||
91 | if( ! Data.NodeName.isEmpty() ) { | 89 | rvl = 1; |
92 | if( Data.NodeName == tr("<UseHostName>") ) { | 90 | |
93 | char Buf[100]; | 91 | if( ID == "interfaces" ) { |
94 | if( gethostname(Buf, sizeof(Buf) ) == 0 ) { | 92 | Log(("Generate WLanNNI for %s\n", ID.latin1() )); |
95 | Buf[99] = '\0'; // just to make sure | 93 | TS << " wireless_essid \"" |
96 | S << " wireless_nick " | 94 | << Data.ESSID |
97 | << Buf | 95 | << "\"" |
98 | << endl; | 96 | << endl; |
97 | |||
98 | if( ! Data.NodeName.isEmpty() ) { | ||
99 | if( Data.NodeName == tr("<UseHostName>") ) { | ||
100 | char Buf[100]; | ||
101 | if( gethostname(Buf, sizeof(Buf) ) == 0 ) { | ||
102 | Buf[99] = '\0'; // just to make sure | ||
103 | TS << " wireless_nick " | ||
104 | << Buf | ||
105 | << endl; | ||
106 | } | ||
107 | } else { | ||
108 | TS << " wireless_nick \"" | ||
109 | << Data.NodeName | ||
110 | << "\"" | ||
111 | << endl; | ||
99 | } | 112 | } |
100 | } else { | ||
101 | S << " wireless_nick \"" | ||
102 | << Data.NodeName | ||
103 | << "\"" | ||
104 | << endl; | ||
105 | } | 113 | } |
106 | } | ||
107 | 114 | ||
108 | char * M; | 115 | char * M = "Auto"; |
109 | switch ( Data.Mode ) { | 116 | switch ( Data.Mode ) { |
110 | case 0 : | 117 | case 0 : |
111 | M = "Auto"; | 118 | break; |
112 | break; | 119 | case 1 : |
113 | case 1 : | 120 | M = "Managed"; |
114 | M = "Managed"; | 121 | break; |
115 | break; | 122 | case 2 : |
116 | case 2 : | 123 | M = "Ad-Hoc"; |
117 | M = "Ad-Hoc"; | 124 | break; |
118 | break; | 125 | } |
119 | } | ||
120 | 126 | ||
121 | S << " wireless_mode " | 127 | TS << " wireless_mode " |
122 | << M | 128 | << M |
123 | << endl; | 129 | << endl; |
124 | if( Data.Encrypted ) { | 130 | if( Data.Encrypted ) { |
125 | for( int i = 0; i < 4; i ++ ) { | 131 | for( int i = 0; i < 4; i ++ ) { |
126 | if( ! Data.Key[i].isEmpty() ) { | 132 | if( ! Data.Key[i].isEmpty() ) { |
127 | S << " wireless_key" | 133 | TS << " wireless_key" |
128 | << i | 134 | << i |
129 | << " " | 135 | << " " |
130 | << Data.Key[i] | 136 | << Data.Key[i] |
131 | << endl; | 137 | << endl; |
138 | } | ||
132 | } | 139 | } |
140 | TS << " wireless_keymode " | ||
141 | << ((Data.AcceptNonEncrypted) ? "open" : "restricted") | ||
142 | << endl; | ||
133 | } | 143 | } |
134 | S << " wireless_keymode " | 144 | rvl = 0; |
135 | << ((Data.AcceptNonEncrypted) ? "open" : "restricted") | ||
136 | << endl; | ||
137 | } | 145 | } |
138 | return 0; | 146 | rvd = ANetNodeInstance::generateFileEmbedded( ID, Path, TS, DevNr); |
147 | |||
148 | return (rvd == 2 || rvl == 2 ) ? 2 : | ||
149 | (rvd == 0 || rvl == 0 ) ? 0 : 1; | ||
139 | } | 150 | } |
140 | 151 | ||
diff --git a/noncore/settings/networksettings2/wlan/wlan_NNI.h b/noncore/settings/networksettings2/wlan/wlan_NNI.h index 2211c47..a9be65f 100644 --- a/noncore/settings/networksettings2/wlan/wlan_NNI.h +++ b/noncore/settings/networksettings2/wlan/wlan_NNI.h | |||
@@ -1,47 +1,47 @@ | |||
1 | #ifndef WLAN_H | 1 | #ifndef WLAN_H |
2 | #define WLAN_H | 2 | #define WLAN_H |
3 | 3 | ||
4 | #include <netnode.h> | 4 | #include <netnode.h> |
5 | #include "wlandata.h" | 5 | #include "wlandata.h" |
6 | #include "wlanrun.h" | 6 | #include "wlanrun.h" |
7 | 7 | ||
8 | class WLanNetNode; | 8 | class WLanNetNode; |
9 | class WLanEdit; | 9 | class WLanEdit; |
10 | 10 | ||
11 | class AWLan : public ANetNodeInstance { | 11 | class AWLan : public ANetNodeInstance { |
12 | 12 | ||
13 | public : | 13 | public : |
14 | 14 | ||
15 | AWLan( WLanNetNode * PNN ); | 15 | AWLan( WLanNetNode * PNN ); |
16 | 16 | ||
17 | RuntimeInfo * runtime( void ) | ||
18 | { return | ||
19 | ( RT ) ? RT : ( RT = new WLanRun( this, Data ) ); | ||
20 | } | ||
21 | |||
17 | QWidget * edit( QWidget * parent ); | 22 | QWidget * edit( QWidget * parent ); |
18 | QString acceptable( void ); | 23 | QString acceptable( void ); |
19 | void commit( void ); | 24 | void commit( void ); |
20 | 25 | ||
21 | RuntimeInfo * runtime( void ) | ||
22 | { if( RT == 0 ) | ||
23 | RT = new WLanRun( this, Data ); | ||
24 | return RT; | ||
25 | } | ||
26 | |||
27 | virtual void * data( void ) | 26 | virtual void * data( void ) |
28 | { return (void *)&Data; } | 27 | { return (void *)&Data; } |
29 | 28 | ||
30 | virtual bool hasDataFor( const QString & ) | 29 | virtual short generateFileEmbedded( const QString & ID, |
31 | { return 1; } | 30 | const QString & Path, |
32 | virtual bool generateDataForCommonFile( | 31 | QTextStream & TS, |
33 | SystemFile & SF, long DevNr ); | 32 | long DevNr ); |
33 | |||
34 | protected : | 34 | protected : |
35 | 35 | ||
36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); | 36 | virtual void setSpecificAttribute( QString & Attr, QString & Value ); |
37 | virtual void saveSpecificAttribute( QTextStream & TS ); | 37 | virtual void saveSpecificAttribute( QTextStream & TS ); |
38 | 38 | ||
39 | private : | 39 | private : |
40 | 40 | ||
41 | WLanEdit * GUI; | 41 | WLanEdit * GUI; |
42 | WLanData Data; | 42 | WLanData Data; |
43 | WLanRun * RT; | 43 | WLanRun * RT; |
44 | 44 | ||
45 | }; | 45 | }; |
46 | 46 | ||
47 | #endif | 47 | #endif |