summaryrefslogtreecommitdiff
path: root/noncore/settings/networksettings/wlan/wlanmodule.cpp
Unidiff
Diffstat (limited to 'noncore/settings/networksettings/wlan/wlanmodule.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/networksettings/wlan/wlanmodule.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp
index 371b689..7bded85 100644
--- a/noncore/settings/networksettings/wlan/wlanmodule.cpp
+++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp
@@ -61,25 +61,25 @@ bool WLANModule::isOwner(Interface *i){
61 return false; 61 return false;
62 62
63 i->setHardwareName("802.11b"); 63 i->setHardwareName("802.11b");
64 list.append(i); 64 list.append(i);
65 return true; 65 return true;
66} 66}
67 67
68/** 68/**
69 * Create, and return the WLANConfigure Module 69 * Create, and return the WLANConfigure Module
70 * @return QWidget* pointer to this modules configure. 70 * @return QWidget* pointer to this modules configure.
71 */ 71 */
72QWidget *WLANModule::configure(Interface *i){ 72QWidget *WLANModule::configure(Interface *i){
73 WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, false, Qt::WDestructiveClose); 73 WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose);
74 wlanconfig->setProfile(profile); 74 wlanconfig->setProfile(profile);
75 return wlanconfig; 75 return wlanconfig;
76} 76}
77 77
78/** 78/**
79 * Create, and return the Information Module 79 * Create, and return the Information Module
80 * @return QWidget* pointer to this modules info. 80 * @return QWidget* pointer to this modules info.
81 */ 81 */
82QWidget *WLANModule::information(Interface *i){ 82QWidget *WLANModule::information(Interface *i){
83 WExtensions we(i->getInterfaceName()); 83 WExtensions we(i->getInterfaceName());
84 if(!we.doesHaveWirelessExtensions()) 84 if(!we.doesHaveWirelessExtensions())
85 return NULL; 85 return NULL;
@@ -123,92 +123,99 @@ void WLANModule::receive(const QCString &param, const QByteArray &arg)
123 QStringList params = QStringList::split(",",param); 123 QStringList params = QStringList::split(",",param);
124 int count = params.count(); 124 int count = params.count();
125 qDebug("WLANModule got %i params", count ); 125 qDebug("WLANModule got %i params", count );
126 if (count < 2){ 126 if (count < 2){
127 qDebug("Erorr less than 2 parameter"); 127 qDebug("Erorr less than 2 parameter");
128 qDebug("RETURNING"); 128 qDebug("RETURNING");
129 return; 129 return;
130 } 130 }
131 131
132 QDataStream stream(arg,IO_ReadOnly); 132 QDataStream stream(arg,IO_ReadOnly);
133 QString interface; 133 QString interface;
134 QString action; 134 QString action;
135 QDialog *toShow;
135 while (! stream.atEnd() ){ 136 while (! stream.atEnd() ){
136 stream >> interface; 137 stream >> interface;
137 stream >> action; 138 stream >> action;
138 qDebug("WLANModule got interface %s and acion %s", interface.latin1(), action.latin1()); 139 qDebug("WLANModule got interface %s and acion %s", interface.latin1(), action.latin1());
139 // find interfaces 140 // find interfaces
140 Interface *ifa=0; 141 Interface *ifa=0;
141 for ( Interface *i=list.first(); i != 0; i=list.next() ){ 142 for ( Interface *i=list.first(); i != 0; i=list.next() ){
142 if (i->getInterfaceName() == interface){ 143 if (i->getInterfaceName() == interface){
143 qDebug("WLANModule found interface %s",interface.latin1()); 144 qDebug("WLANModule found interface %s",interface.latin1());
144 ifa = i; 145 ifa = i;
145 } 146 }
146 } 147 }
147 148
148 if (ifa == 0){ 149 if (ifa == 0){
149 qDebug("WLANModule Did not find %s",interface.latin1()); 150 qDebug("WLANModule Did not find %s",interface.latin1());
150 qDebug("returning"); 151 qDebug("skipping");
151 return; 152 count = 0;
152 } 153 }
153 154
154 if (count == 2){ 155 if (count == 2){
155 // those should call the interface directly 156 // those should call the interface directly
156 QWidget *info = getInfo( ifa ); 157 QWidget *info = getInfo( ifa );
157 info->showMaximized(); 158 info->showMaximized();
158 159
159 if ( action.contains("start" ) ){ 160 if ( action.contains("start" ) ){
160 ifa->start(); 161 ifa->start();
161 } else if ( action.contains("restart" ) ){ 162 } else if ( action.contains("restart" ) ){
162 ifa->restart(); 163 ifa->restart();
163 } else if ( action.contains("stop" ) ){ 164 } else if ( action.contains("stop" ) ){
164 ifa->stop(); 165 ifa->stop();
165 }else if ( action.contains("refresh" ) ){ 166 }else if ( action.contains("refresh" ) ){
166 ifa->refresh(); 167 ifa->refresh();
167 } 168 }
168 }else if (count == 3){ 169 }else if (count == 3){
169 QString value; 170 QString value;
170 if (!wlanconfigWiget){ 171 if (!wlanconfigWiget){
171 //FIXME: what if it got closed meanwhile? 172 //FIXME: what if it got closed meanwhile?
172 wlanconfigWiget = (WLANImp*) configure(ifa); 173 wlanconfigWiget = (WLANImp*) configure(ifa);
174 toShow = (QDialog*) wlanconfigWiget;
173 } 175 }
174 wlanconfigWiget->showMaximized(); 176 wlanconfigWiget->showMaximized();
175 stream >> value; 177 stream >> value;
176 qDebug("WLANModule is setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() ); 178 qDebug("WLANModule is setting %s of %s to %s", action.latin1(), interface.latin1(), value.latin1() );
177 if ( action.contains("ESSID") ){ 179 if ( action.contains("ESSID") ){
178 QComboBox *combo = wlanconfigWiget->essid; 180 QComboBox *combo = wlanconfigWiget->essid;
179 bool found = false; 181 bool found = false;
180 for ( int i = 0; i < combo->count(); i++) 182 for ( int i = 0; i < combo->count(); i++)
181 if ( combo->text( i ) == value ){ 183 if ( combo->text( i ) == value ){
182 combo->setCurrentItem( i ); 184 combo->setCurrentItem( i );
183 found = true; 185 found = true;
184 } 186 }
185 if (!found) combo->insertItem( value, 0 ); 187 if (!found) combo->insertItem( value, 0 );
186 }else if ( action.contains("Mode") ){ 188 }else if ( action.contains("Mode") ){
187 QComboBox *combo = wlanconfigWiget->mode; 189 QComboBox *combo = wlanconfigWiget->mode;
188 for ( int i = 0; i < combo->count(); i++) 190 for ( int i = 0; i < combo->count(); i++)
189 if ( combo->text( i ) == value ){ 191 if ( combo->text( i ) == value ){
190 combo->setCurrentItem( i ); 192 combo->setCurrentItem( i );
191 } 193 }
192 194
193 }else if (action.contains("Channel")){ 195 }else if (action.contains("Channel")){
194 wlanconfigWiget->specifyChan->setChecked( true ); 196 bool ok;
195 wlanconfigWiget->networkChannel->setValue( value.toInt() ); 197 int chan = value.toInt( &ok );
198 if (ok){
199 wlanconfigWiget->specifyChan->setChecked( true );
200 wlanconfigWiget->networkChannel->setValue( chan );
201 }
196 }else if (action.contains("MacAddr")){ 202 }else if (action.contains("MacAddr")){
197 wlanconfigWiget->specifyAp->setChecked( true ); 203 wlanconfigWiget->specifyAp->setChecked( true );
198 wlanconfigWiget->macEdit->setText( value ); 204 wlanconfigWiget->macEdit->setText( value );
199 }else 205 }else
200 qDebug("wlan plugin has no clue"); 206 qDebug("wlan plugin has no clue");
201 } 207 }
202 }// while stream 208 }// while stream
209 if (toShow) toShow->exec();
203} 210}
204 211
205QWidget *WLANModule::getInfo( Interface *i) 212QWidget *WLANModule::getInfo( Interface *i)
206{ 213{
207 qDebug("WLANModule::getInfo start"); 214 qDebug("WLANModule::getInfo start");
208 WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose); 215 WlanInfoImp *info = new WlanInfoImp(0, i->getInterfaceName(), Qt::WDestructiveClose);
209 InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i); 216 InterfaceInformationImp *information = new InterfaceInformationImp(info->tabWidget, "InterfaceSetupImp", i);
210 info->tabWidget->insertTab(information, "TCP/IP", 0); 217 info->tabWidget->insertTab(information, "TCP/IP", 0);
211 218
212 qDebug("WLANModule::getInfo return"); 219 qDebug("WLANModule::getInfo return");
213 return info; 220 return info;
214} 221}