Diffstat (limited to 'noncore/settings/networksettings2/networksettings.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/networksettings2/networksettings.cpp | 52 |
1 files changed, 23 insertions, 29 deletions
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,26 +1,28 @@ | |||
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 ); |
@@ -32,24 +34,31 @@ NetworkSettings::NetworkSettings( QWidget *parent, | |||
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 | ||
@@ -69,40 +78,36 @@ NetworkSettings::NetworkSettings( QWidget *parent, | |||
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 ) { |
@@ -136,67 +141,64 @@ void NetworkSettings::SLOT_RefreshStates( void ) { | |||
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() ); |
@@ -310,33 +312,25 @@ void NetworkSettings::SLOT_CheckState( void ) { | |||
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; |