author | mickeyl <mickeyl> | 2004-04-09 15:00:06 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2004-04-09 15:00:06 (UTC) |
commit | fb2f09533c7476a266a877c351007c2706b2da0d (patch) (unidiff) | |
tree | 9742d4cb8fd07fd5530c3c29b5f049dcecd46ef4 | |
parent | 39547839995c9f72ca9216ba5c2127246428ece8 (diff) | |
download | opie-fb2f09533c7476a266a877c351007c2706b2da0d.zip opie-fb2f09533c7476a266a877c351007c2706b2da0d.tar.gz opie-fb2f09533c7476a266a877c351007c2706b2da0d.tar.bz2 |
- eliminate cylic dependency
- complete using opie debugging framework
- sanitize #include order
21 files changed, 96 insertions, 55 deletions
diff --git a/noncore/settings/networksettings/interfaces/config.in b/noncore/settings/networksettings/interfaces/config.in index d84cd24..2175800 100644 --- a/noncore/settings/networksettings/interfaces/config.in +++ b/noncore/settings/networksettings/interfaces/config.in | |||
@@ -1,4 +1,4 @@ | |||
1 | config INTERFACES | 1 | config INTERFACES |
2 | boolean | 2 | boolean "Build interfaces for networksettings" |
3 | default "y" if NETWORKSETUP | 3 | default "y" |
4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE | 4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2CORE |
diff --git a/noncore/settings/networksettings/networksettings.pro b/noncore/settings/networksettings/networksettings.pro index 55d2291..9ad9be4 100644 --- a/noncore/settings/networksettings/networksettings.pro +++ b/noncore/settings/networksettings/networksettings.pro | |||
@@ -1,12 +1,11 @@ | |||
1 | CONFIG = qt warn_on quick-app | 1 | CONFIG = qt warn_on quick-app |
2 | HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h module.h | 2 | HEADERS = mainwindowimp.h addconnectionimp.h defaultmodule.h module.h |
3 | SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp | 3 | SOURCES = main.cpp mainwindowimp.cpp addconnectionimp.cpp |
4 | INCLUDEPATH += $(OPIEDIR)/include interfaces/ . | 4 | INCLUDEPATH += $(OPIEDIR)/include interfaces/ . |
5 | DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan/ ppp/ | 5 | DEPENDPATH += $(OPIEDIR)/include interfaces/ wlan/ ppp/ |
6 | LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings -Linterfaces/ -linterfaces -lopiecore2 -lopieui2 | 6 | LIBS += -lqpe -L$(OPIEDIR)/plugins/networksettings -Linterfaces/ -linterfaces -lopiecore2 -lopieui2 |
7 | INTERFACES = mainwindow.ui addconnection.ui | 7 | INTERFACES = mainwindow.ui addconnection.ui |
8 | TARGET = networksettings | 8 | TARGET = networksettings |
9 | 9 | ||
10 | 10 | ||
11 | |||
12 | include ( $(OPIEDIR)/include.pro ) | 11 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/settings/networksettings/ppp/accounts.cpp b/noncore/settings/networksettings/ppp/accounts.cpp index aedc0b9..f05e7ac 100644 --- a/noncore/settings/networksettings/ppp/accounts.cpp +++ b/noncore/settings/networksettings/ppp/accounts.cpp | |||
@@ -1,225 +1,227 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "accounts.h" | 27 | #include "accounts.h" |
28 | #include "authwidget.h" | 28 | #include "authwidget.h" |
29 | #include "pppdata.h" | 29 | #include "pppdata.h" |
30 | #include "edit.h" | 30 | #include "edit.h" |
31 | 31 | ||
32 | /* OPIE */ | 32 | /* OPIE */ |
33 | #include <opie2/odebug.h> | ||
33 | #include <qpe/qpeapplication.h> | 34 | #include <qpe/qpeapplication.h> |
35 | using namespace Opie::Core; | ||
34 | 36 | ||
35 | /* QT */ | 37 | /* QT */ |
36 | #include <qdir.h> | 38 | #include <qdir.h> |
37 | #include <qlayout.h> | 39 | #include <qlayout.h> |
38 | #include <qtabwidget.h> | 40 | #include <qtabwidget.h> |
39 | #include <qtabdialog.h> | 41 | #include <qtabdialog.h> |
40 | #include <qwhatsthis.h> | 42 | #include <qwhatsthis.h> |
41 | #include <qmessagebox.h> | 43 | #include <qmessagebox.h> |
42 | #include <qapplication.h> | 44 | #include <qapplication.h> |
43 | #include <qbuttongroup.h> | 45 | #include <qbuttongroup.h> |
44 | #include <qmessagebox.h> | 46 | #include <qmessagebox.h> |
45 | #include <qvgroupbox.h> | 47 | #include <qvgroupbox.h> |
46 | 48 | ||
47 | /* STD */ | 49 | /* STD */ |
48 | #include <stdlib.h> | 50 | #include <stdlib.h> |
49 | 51 | ||
50 | void parseargs(char* buf, char** args); | 52 | void parseargs(char* buf, char** args); |
51 | 53 | ||
52 | 54 | ||
53 | AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f ) | 55 | AccountWidget::AccountWidget( PPPData *pd, QWidget *parent, const char *name, WFlags f ) |
54 | : ChooserWidget( pd, parent, name, f ) | 56 | : ChooserWidget( pd, parent, name, f ) |
55 | { | 57 | { |
56 | 58 | ||
57 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected account")); | 59 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected account")); |
58 | QWhatsThis::add(new_b, tr("Create a new dialup connection\n" | 60 | QWhatsThis::add(new_b, tr("Create a new dialup connection\n" |
59 | "to the Internet")); | 61 | "to the Internet")); |
60 | QWhatsThis::add(copy_b, | 62 | QWhatsThis::add(copy_b, |
61 | tr("Makes a copy of the selected account. All\n" | 63 | tr("Makes a copy of the selected account. All\n" |
62 | "settings of the selected account are copied\n" | 64 | "settings of the selected account are copied\n" |
63 | "to a new account, that you can modify to fit your\n" | 65 | "to a new account, that you can modify to fit your\n" |
64 | "needs")); | 66 | "needs")); |
65 | QWhatsThis::add(delete_b, | 67 | QWhatsThis::add(delete_b, |
66 | tr("<p>Deletes the selected account\n\n" | 68 | tr("<p>Deletes the selected account\n\n" |
67 | "<font color=\"red\"><b>Use with care!</b></font>")); | 69 | "<font color=\"red\"><b>Use with care!</b></font>")); |
68 | 70 | ||
69 | 71 | ||
70 | 72 | ||
71 | copy_b->setEnabled( false ); //FIXME | 73 | copy_b->setEnabled( false ); //FIXME |
72 | // delete_b->setEnabled( false ); //FIXME | 74 | // delete_b->setEnabled( false ); //FIXME |
73 | 75 | ||
74 | listListbox->insertStringList(_pppdata->getAccountList()); | 76 | listListbox->insertStringList(_pppdata->getAccountList()); |
75 | 77 | ||
76 | for (uint i = 0; i < listListbox->count(); i++) | 78 | for (uint i = 0; i < listListbox->count(); i++) |
77 | { | 79 | { |
78 | if ( listListbox->text(i) == _pppdata->accname() ) | 80 | if ( listListbox->text(i) == _pppdata->accname() ) |
79 | listListbox->setCurrentItem( i ); | 81 | listListbox->setCurrentItem( i ); |
80 | } | 82 | } |
81 | } | 83 | } |
82 | 84 | ||
83 | 85 | ||
84 | 86 | ||
85 | void AccountWidget::slotListBoxSelect(int idx) | 87 | void AccountWidget::slotListBoxSelect(int idx) |
86 | { | 88 | { |
87 | bool ok = _pppdata->setAccount( listListbox->text(idx) ); | 89 | bool ok = _pppdata->setAccount( listListbox->text(idx) ); |
88 | ok = (bool)(idx != -1); | 90 | ok = (bool)(idx != -1); |
89 | delete_b->setEnabled(ok); | 91 | delete_b->setEnabled(ok); |
90 | edit_b->setEnabled(ok); | 92 | edit_b->setEnabled(ok); |
91 | //FIXME copy_b->setEnabled(ok); | 93 | //FIXME copy_b->setEnabled(ok); |
92 | } | 94 | } |
93 | 95 | ||
94 | void AccountWidget::edit() | 96 | void AccountWidget::edit() |
95 | { | 97 | { |
96 | _pppdata->setAccount(listListbox->text(listListbox->currentItem())); | 98 | _pppdata->setAccount(listListbox->text(listListbox->currentItem())); |
97 | 99 | ||
98 | int result = doTab(); | 100 | int result = doTab(); |
99 | 101 | ||
100 | if(result == QDialog::Accepted) | 102 | if(result == QDialog::Accepted) |
101 | { | 103 | { |
102 | listListbox->changeItem(_pppdata->accname(),listListbox->currentItem()); | 104 | listListbox->changeItem(_pppdata->accname(),listListbox->currentItem()); |
103 | // emit resetaccounts(); | 105 | // emit resetaccounts(); |
104 | _pppdata->save(); | 106 | _pppdata->save(); |
105 | } | 107 | } |
106 | } | 108 | } |
107 | 109 | ||
108 | 110 | ||
109 | void AccountWidget::create() | 111 | void AccountWidget::create() |
110 | { | 112 | { |
111 | 113 | ||
112 | // if(listListbox->count() == MAX_ACCOUNTS) { | 114 | // if(listListbox->count() == MAX_ACCOUNTS) { |
113 | // QMessageBox::information(this, "sorry", | 115 | // QMessageBox::information(this, "sorry", |
114 | // tr("Maximum number of accounts reached.")); | 116 | // tr("Maximum number of accounts reached.")); |
115 | // return; | 117 | // return; |
116 | // } | 118 | // } |
117 | 119 | ||
118 | int result; | 120 | int result; |
119 | if (_pppdata->newaccount() == -1) | 121 | if (_pppdata->newaccount() == -1) |
120 | { | 122 | { |
121 | odebug << "_pppdata->newaccount() == -1" << oendl; | 123 | odebug << "_pppdata->newaccount() == -1" << oendl; |
122 | return; | 124 | return; |
123 | } | 125 | } |
124 | result = doTab(); | 126 | result = doTab(); |
125 | 127 | ||
126 | if(result == QDialog::Accepted) | 128 | if(result == QDialog::Accepted) |
127 | { | 129 | { |
128 | listListbox->insertItem(_pppdata->accname()); | 130 | listListbox->insertItem(_pppdata->accname()); |
129 | listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true); | 131 | listListbox->setSelected(listListbox->findItem(_pppdata->accname()),true); |
130 | 132 | ||
131 | _pppdata->save(); | 133 | _pppdata->save(); |
132 | } | 134 | } |
133 | else | 135 | else |
134 | _pppdata->deleteAccount(); | 136 | _pppdata->deleteAccount(); |
135 | } | 137 | } |
136 | 138 | ||
137 | 139 | ||
138 | void AccountWidget::copy() | 140 | void AccountWidget::copy() |
139 | { | 141 | { |
140 | // if(listListbox->count() == MAX_ACCOUNTS) { | 142 | // if(listListbox->count() == MAX_ACCOUNTS) { |
141 | // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); | 143 | // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); |
142 | // return; | 144 | // return; |
143 | // } | 145 | // } |
144 | 146 | ||
145 | if(listListbox->currentItem()<0) | 147 | if(listListbox->currentItem()<0) |
146 | { | 148 | { |
147 | QMessageBox::information(this, "sorry", tr("No account selected.")); | 149 | QMessageBox::information(this, "sorry", tr("No account selected.")); |
148 | return; | 150 | return; |
149 | } | 151 | } |
150 | 152 | ||
151 | _pppdata->copyaccount(listListbox->currentText()); | 153 | _pppdata->copyaccount(listListbox->currentText()); |
152 | 154 | ||
153 | listListbox->insertItem(_pppdata->accname()); | 155 | listListbox->insertItem(_pppdata->accname()); |
154 | // emit resetaccounts(); | 156 | // emit resetaccounts(); |
155 | _pppdata->save(); | 157 | _pppdata->save(); |
156 | } | 158 | } |
157 | 159 | ||
158 | 160 | ||
159 | void AccountWidget::remove() | 161 | void AccountWidget::remove() |
160 | { | 162 | { |
161 | 163 | ||
162 | QString s = tr("Are you sure you want to delete\nthe account \"%1\"?") | 164 | QString s = tr("Are you sure you want to delete\nthe account \"%1\"?") |
163 | .arg(listListbox->text(listListbox->currentItem())); | 165 | .arg(listListbox->text(listListbox->currentItem())); |
164 | 166 | ||
165 | if(QMessageBox::warning(this,tr("Confirm"),s, | 167 | if(QMessageBox::warning(this,tr("Confirm"),s, |
166 | QMessageBox::Yes,QMessageBox::No | 168 | QMessageBox::Yes,QMessageBox::No |
167 | ) != QMessageBox::Yes) | 169 | ) != QMessageBox::Yes) |
168 | return; | 170 | return; |
169 | 171 | ||
170 | if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) | 172 | if(_pppdata->deleteAccount(listListbox->text(listListbox->currentItem()))) |
171 | listListbox->removeItem(listListbox->currentItem()); | 173 | listListbox->removeItem(listListbox->currentItem()); |
172 | 174 | ||
173 | 175 | ||
174 | // emit resetaccounts(); | 176 | // emit resetaccounts(); |
175 | // _pppdata->save(); | 177 | // _pppdata->save(); |
176 | 178 | ||
177 | 179 | ||
178 | slotListBoxSelect(listListbox->currentItem()); | 180 | slotListBoxSelect(listListbox->currentItem()); |
179 | 181 | ||
180 | } | 182 | } |
181 | 183 | ||
182 | 184 | ||
183 | int AccountWidget::doTab() | 185 | int AccountWidget::doTab() |
184 | { | 186 | { |
185 | QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp ); | 187 | QDialog *dlg = new QDialog( 0, "newAccount", true, Qt::WStyle_ContextHelp ); |
186 | QVBoxLayout *layout = new QVBoxLayout( dlg ); | 188 | QVBoxLayout *layout = new QVBoxLayout( dlg ); |
187 | layout->setSpacing( 0 ); | 189 | layout->setSpacing( 0 ); |
188 | layout->setMargin( 1 ); | 190 | layout->setMargin( 1 ); |
189 | 191 | ||
190 | QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); | 192 | QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); |
191 | layout->addWidget( tabWindow ); | 193 | layout->addWidget( tabWindow ); |
192 | 194 | ||
193 | bool isnewaccount; | 195 | bool isnewaccount; |
194 | 196 | ||
195 | if(_pppdata->accname().isEmpty()) | 197 | if(_pppdata->accname().isEmpty()) |
196 | { | 198 | { |
197 | dlg->setCaption(tr("New Account")); | 199 | dlg->setCaption(tr("New Account")); |
198 | isnewaccount = true; | 200 | isnewaccount = true; |
199 | } | 201 | } |
200 | else | 202 | else |
201 | { | 203 | { |
202 | QString tit = tr("Edit Account: "); | 204 | QString tit = tr("Edit Account: "); |
203 | tit += _pppdata->accname(); | 205 | tit += _pppdata->accname(); |
204 | dlg->setCaption(tit); | 206 | dlg->setCaption(tit); |
205 | isnewaccount = false; | 207 | isnewaccount = false; |
206 | } | 208 | } |
207 | 209 | ||
208 | // // DIAL WIDGET | 210 | // // DIAL WIDGET |
209 | dial_w = new DialWidget( _pppdata, tabWindow, isnewaccount, "Dial Setup"); | 211 | dial_w = new DialWidget( _pppdata, tabWindow, isnewaccount, "Dial Setup"); |
210 | tabWindow->addTab( dial_w, tr("Dial") ); | 212 | tabWindow->addTab( dial_w, tr("Dial") ); |
211 | 213 | ||
212 | // // AUTH WIDGET | 214 | // // AUTH WIDGET |
213 | auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script")); | 215 | auth_w = new AuthWidget( _pppdata, tabWindow, isnewaccount, tr("Edit Login Script")); |
214 | tabWindow->addTab( auth_w, tr("Authentication") ); | 216 | tabWindow->addTab( auth_w, tr("Authentication") ); |
215 | 217 | ||
216 | // // IP WIDGET | 218 | // // IP WIDGET |
217 | ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup")); | 219 | ip_w = new IPWidget( _pppdata, tabWindow, isnewaccount, tr("IP Setup")); |
218 | tabWindow->addTab( ip_w, tr("IP") ); | 220 | tabWindow->addTab( ip_w, tr("IP") ); |
219 | 221 | ||
220 | // // GATEWAY WIDGET | 222 | // // GATEWAY WIDGET |
221 | gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup")); | 223 | gateway_w = new GatewayWidget( _pppdata, tabWindow, isnewaccount, tr("Gateway Setup")); |
222 | tabWindow->addTab( gateway_w, tr("Gateway") ); | 224 | tabWindow->addTab( gateway_w, tr("Gateway") ); |
223 | 225 | ||
224 | // // DNS WIDGET | 226 | // // DNS WIDGET |
225 | dns_w = new DNSWidget( _pppdata, tabWindow, isnewaccount, tr("DNS Servers") ); | 227 | dns_w = new DNSWidget( _pppdata, tabWindow, isnewaccount, tr("DNS Servers") ); |
diff --git a/noncore/settings/networksettings/ppp/authwidget.cpp b/noncore/settings/networksettings/ppp/authwidget.cpp index f3d842f..c94c3bc 100644 --- a/noncore/settings/networksettings/ppp/authwidget.cpp +++ b/noncore/settings/networksettings/ppp/authwidget.cpp | |||
@@ -1,197 +1,201 @@ | |||
1 | |||
2 | #include <qlayout.h> | ||
3 | #include <qmessagebox.h> | ||
4 | #include <qtoolbutton.h> | ||
5 | #include <qwhatsthis.h> | ||
6 | |||
7 | #include "auth.h" | 1 | #include "auth.h" |
8 | #include "authwidget.h" | 2 | #include "authwidget.h" |
9 | #include "edit.h" | 3 | #include "edit.h" |
10 | #include "pppdata.h" | 4 | #include "pppdata.h" |
11 | 5 | ||
6 | /* OPIE */ | ||
7 | #include <opie2/odebug.h> | ||
8 | using namespace Opie::Core; | ||
9 | |||
10 | /* QT */ | ||
11 | #include <qlayout.h> | ||
12 | #include <qmessagebox.h> | ||
13 | #include <qtoolbutton.h> | ||
14 | #include <qwhatsthis.h> | ||
12 | 15 | ||
16 | /* XPM */ | ||
13 | static const char* const image0_data[] = { | 17 | static const char* const image0_data[] = { |
14 | "16 16 2 1", | 18 | "16 16 2 1", |
15 | ". c None", | 19 | ". c None", |
16 | "# c #000000", | 20 | "# c #000000", |
17 | "................", | 21 | "................", |
18 | "...#...###...##.", | 22 | "...#...###...##.", |
19 | "..#.#..#..#.##..", | 23 | "..#.#..#..#.##..", |
20 | "..###..###.##...", | 24 | "..###..###.##...", |
21 | ".#...#.#..##....", | 25 | ".#...#.#..##....", |
22 | ".#...#.#.##.....", | 26 | ".#...#.#.##.....", |
23 | "........##.#..#.", | 27 | "........##.#..#.", |
24 | "..##...##...##..", | 28 | "..##...##...##..", |
25 | ".#..#.###...##..", | 29 | ".#..#.###...##..", |
26 | ".#...##..#.#..#.", | 30 | ".#...##..#.#..#.", |
27 | ".#..##..........", | 31 | ".#..##..........", |
28 | ".#.##.#..#.#..#.", | 32 | ".#.##.#..#.#..#.", |
29 | "..##...##...##..", | 33 | "..##...##...##..", |
30 | ".##....##...##..", | 34 | ".##....##...##..", |
31 | ".#....#..#.#..#.", | 35 | ".#....#..#.#..#.", |
32 | "................"}; | 36 | "................"}; |
33 | 37 | ||
34 | 38 | ||
35 | AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) | 39 | AuthWidget::AuthWidget(PPPData *pd, QWidget *parent, bool isnewaccount, const char *name ) |
36 | : QWidget( parent, name), | 40 | : QWidget( parent, name), |
37 | scriptWidget(0), | 41 | scriptWidget(0), |
38 | _pppdata(pd), | 42 | _pppdata(pd), |
39 | isNewAccount(isnewaccount) | 43 | isNewAccount(isnewaccount) |
40 | { | 44 | { |
41 | layout = new QGridLayout(this); | 45 | layout = new QGridLayout(this); |
42 | 46 | ||
43 | auth_l = new QLabel(tr("Authentication: "), this); | 47 | auth_l = new QLabel(tr("Authentication: "), this); |
44 | layout->addWidget(auth_l, 0, 0); | 48 | layout->addWidget(auth_l, 0, 0); |
45 | 49 | ||
46 | auth = new QComboBox(this); | 50 | auth = new QComboBox(this); |
47 | auth->insertItem(tr("Script-based")); | 51 | auth->insertItem(tr("Script-based")); |
48 | auth->insertItem(tr("PAP")); | 52 | auth->insertItem(tr("PAP")); |
49 | auth->insertItem(tr("Terminal-based")); | 53 | auth->insertItem(tr("Terminal-based")); |
50 | auth->insertItem(tr("CHAP")); | 54 | auth->insertItem(tr("CHAP")); |
51 | auth->insertItem(tr("PAP/CHAP")); | 55 | auth->insertItem(tr("PAP/CHAP")); |
52 | layout->addWidget(auth, 0, 1); | 56 | layout->addWidget(auth, 0, 1); |
53 | 57 | ||
54 | connect( auth, SIGNAL(activated(const QString&)), | 58 | connect( auth, SIGNAL(activated(const QString&)), |
55 | SLOT(authChanged(const QString&))); | 59 | SLOT(authChanged(const QString&))); |
56 | 60 | ||
57 | QString tmp = tr("<p>Specifies the method used to identify yourself to\n" | 61 | QString tmp = tr("<p>Specifies the method used to identify yourself to\n" |
58 | "the PPP server. Most universities still use\n" | 62 | "the PPP server. Most universities still use\n" |
59 | "<b>Terminal</b>- or <b>Script</b>-based authentication,\n" | 63 | "<b>Terminal</b>- or <b>Script</b>-based authentication,\n" |
60 | "while most ISP use <b>PAP</b> and/or <b>CHAP</b>. If\n" | 64 | "while most ISP use <b>PAP</b> and/or <b>CHAP</b>. If\n" |
61 | "unsure, contact your ISP.\n" | 65 | "unsure, contact your ISP.\n" |
62 | "\n" | 66 | "\n" |
63 | "If you can choose between PAP and CHAP,\n" | 67 | "If you can choose between PAP and CHAP,\n" |
64 | "choose CHAP, because it's much safer. If you don't know\n" | 68 | "choose CHAP, because it's much safer. If you don't know\n" |
65 | "whether PAP or CHAP is right, choose PAP/CHAP."); | 69 | "whether PAP or CHAP is right, choose PAP/CHAP."); |
66 | 70 | ||
67 | QWhatsThis::add(auth_l,tmp); | 71 | QWhatsThis::add(auth_l,tmp); |
68 | QWhatsThis::add(auth,tmp); | 72 | QWhatsThis::add(auth,tmp); |
69 | 73 | ||
70 | user_l = new QLabel( tr("Username: "), this); | 74 | user_l = new QLabel( tr("Username: "), this); |
71 | layout->addWidget( user_l, 1, 0 ); | 75 | layout->addWidget( user_l, 1, 0 ); |
72 | userName = new QLineEdit( this, "usernameEdit" ); | 76 | userName = new QLineEdit( this, "usernameEdit" ); |
73 | layout->addWidget( userName, 1, 1 ); | 77 | layout->addWidget( userName, 1, 1 ); |
74 | tmp = tr("Enter your username here..."); | 78 | tmp = tr("Enter your username here..."); |
75 | QWhatsThis::add( user_l, tmp ); | 79 | QWhatsThis::add( user_l, tmp ); |
76 | QWhatsThis::add( userName, tmp ); | 80 | QWhatsThis::add( userName, tmp ); |
77 | 81 | ||
78 | pw_l = new QLabel( tr("Password: "), this); | 82 | pw_l = new QLabel( tr("Password: "), this); |
79 | layout->addWidget( pw_l, 2, 0 ); | 83 | layout->addWidget( pw_l, 2, 0 ); |
80 | passWord = new QLineEdit( this, "pw" ); | 84 | passWord = new QLineEdit( this, "pw" ); |
81 | passWord->setAutoMask( true ); | 85 | passWord->setAutoMask( true ); |
82 | passWord->setEchoMode( QLineEdit::Password ); | 86 | passWord->setEchoMode( QLineEdit::Password ); |
83 | layout->addWidget( passWord, 2, 1 ); | 87 | layout->addWidget( passWord, 2, 1 ); |
84 | hidePw = new QToolButton( this ); | 88 | hidePw = new QToolButton( this ); |
85 | hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) ); | 89 | hidePw->setPixmap( QPixmap( ( const char** ) image0_data ) ); |
86 | hidePw->setToggleButton( true ); | 90 | hidePw->setToggleButton( true ); |
87 | layout->addWidget( hidePw, 2, 2 ); | 91 | layout->addWidget( hidePw, 2, 2 ); |
88 | 92 | ||
89 | connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool))); | 93 | connect(hidePw, SIGNAL(toggled(bool)), SLOT(toggleEchoMode(bool))); |
90 | 94 | ||
91 | tmp = tr("Enter your password here"); | 95 | tmp = tr("Enter your password here"); |
92 | QWhatsThis::add( pw_l, tmp ); | 96 | QWhatsThis::add( pw_l, tmp ); |
93 | QWhatsThis::add( passWord, tmp ); | 97 | QWhatsThis::add( passWord, tmp ); |
94 | 98 | ||
95 | store_password = new QCheckBox(tr("Store password"), this); | 99 | store_password = new QCheckBox(tr("Store password"), this); |
96 | layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight); | 100 | layout->addMultiCellWidget(store_password, 3, 3, 0, 1, AlignRight); |
97 | QWhatsThis::add(store_password, | 101 | QWhatsThis::add(store_password, |
98 | tr("<p>When this is turned on, your ISP password\n" | 102 | tr("<p>When this is turned on, your ISP password\n" |
99 | "will be saved in <i>kppp</i>'s config file, so\n" | 103 | "will be saved in <i>kppp</i>'s config file, so\n" |
100 | "you do not need to type it in every time.\n" | 104 | "you do not need to type it in every time.\n" |
101 | "\n" | 105 | "\n" |
102 | "<b><font color=\"red\">Warning:</font> your password will be stored as\n" | 106 | "<b><font color=\"red\">Warning:</font> your password will be stored as\n" |
103 | "plain text in the config file, which is\n" | 107 | "plain text in the config file, which is\n" |
104 | "readable only to you. Make sure nobody\n" | 108 | "readable only to you. Make sure nobody\n" |
105 | "gains access to this file!")); | 109 | "gains access to this file!")); |
106 | 110 | ||
107 | if (isNewAccount){ | 111 | if (isNewAccount){ |
108 | // select PAP/CHAP as default | 112 | // select PAP/CHAP as default |
109 | auth->setCurrentItem(AUTH_PAPCHAP); | 113 | auth->setCurrentItem(AUTH_PAPCHAP); |
110 | store_password->setChecked(true); | 114 | store_password->setChecked(true); |
111 | }else{ | 115 | }else{ |
112 | auth->setCurrentItem(_pppdata->authMethod()); | 116 | auth->setCurrentItem(_pppdata->authMethod()); |
113 | authChanged( auth->currentText() ); | 117 | authChanged( auth->currentText() ); |
114 | userName->setText( _pppdata->storedUsername() ); | 118 | userName->setText( _pppdata->storedUsername() ); |
115 | store_password->setChecked(_pppdata->storePassword()); | 119 | store_password->setChecked(_pppdata->storePassword()); |
116 | if (store_password->isChecked()) | 120 | if (store_password->isChecked()) |
117 | passWord->setText( _pppdata->storedPassword() ); | 121 | passWord->setText( _pppdata->storedPassword() ); |
118 | } | 122 | } |
119 | } | 123 | } |
120 | 124 | ||
121 | bool AuthWidget::check() | 125 | bool AuthWidget::check() |
122 | { | 126 | { |
123 | bool ret = true; | 127 | bool ret = true; |
124 | if (scriptWidget){ | 128 | if (scriptWidget){ |
125 | if (!scriptWidget->check()){ | 129 | if (!scriptWidget->check()){ |
126 | QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>")); | 130 | QMessageBox::critical(this, tr("error"), tr("<qt>Login script has unbalanced loop Start/End<qt>")); |
127 | ret = false; | 131 | ret = false; |
128 | } | 132 | } |
129 | } | 133 | } |
130 | return ret; | 134 | return ret; |
131 | } | 135 | } |
132 | 136 | ||
133 | void AuthWidget::save() | 137 | void AuthWidget::save() |
134 | { | 138 | { |
135 | _pppdata->setAuthMethod(auth->currentItem()); | 139 | _pppdata->setAuthMethod(auth->currentItem()); |
136 | if (scriptWidget) scriptWidget->save(); | 140 | if (scriptWidget) scriptWidget->save(); |
137 | _pppdata->setStoredUsername( userName->text() ); | 141 | _pppdata->setStoredUsername( userName->text() ); |
138 | _pppdata->setStorePassword(store_password->isChecked()); | 142 | _pppdata->setStorePassword(store_password->isChecked()); |
139 | if (store_password->isChecked()) | 143 | if (store_password->isChecked()) |
140 | _pppdata->setStoredPassword( passWord->text() ); | 144 | _pppdata->setStoredPassword( passWord->text() ); |
141 | } | 145 | } |
142 | 146 | ||
143 | void AuthWidget::authChanged( const QString &authStr ) | 147 | void AuthWidget::authChanged( const QString &authStr ) |
144 | { | 148 | { |
145 | odebug << "AuthWidget::authChanged( " << authStr.latin1() << " )" << oendl; | 149 | odebug << "AuthWidget::authChanged( " << authStr.latin1() << " )" << oendl; |
146 | if ( authStr.contains( tr("Script-based") ) ){ | 150 | if ( authStr.contains( tr("Script-based") ) ){ |
147 | showUsernamePassword( false ); | 151 | showUsernamePassword( false ); |
148 | showScriptWindow( true ); | 152 | showScriptWindow( true ); |
149 | } else if ( authStr.contains( tr("PAP") ) || | 153 | } else if ( authStr.contains( tr("PAP") ) || |
150 | authStr.contains( tr("CHAP") ) ){ | 154 | authStr.contains( tr("CHAP") ) ){ |
151 | showUsernamePassword( true ); | 155 | showUsernamePassword( true ); |
152 | showScriptWindow( false ); | 156 | showScriptWindow( false ); |
153 | } else { | 157 | } else { |
154 | odebug << "do not really know how to handle" << oendl; | 158 | odebug << "do not really know how to handle" << oendl; |
155 | showUsernamePassword( false ); | 159 | showUsernamePassword( false ); |
156 | showScriptWindow( false ); | 160 | showScriptWindow( false ); |
157 | } | 161 | } |
158 | } | 162 | } |
159 | 163 | ||
160 | 164 | ||
161 | void AuthWidget::showUsernamePassword( bool show ) | 165 | void AuthWidget::showUsernamePassword( bool show ) |
162 | { | 166 | { |
163 | if (show){ | 167 | if (show){ |
164 | user_l->show(); | 168 | user_l->show(); |
165 | userName->show(); | 169 | userName->show(); |
166 | pw_l->show(); | 170 | pw_l->show(); |
167 | passWord->show(); | 171 | passWord->show(); |
168 | store_password->show(); | 172 | store_password->show(); |
169 | hidePw->show(); | 173 | hidePw->show(); |
170 | }else{//!show | 174 | }else{//!show |
171 | user_l->hide(); | 175 | user_l->hide(); |
172 | userName->hide(); | 176 | userName->hide(); |
173 | pw_l->hide(); | 177 | pw_l->hide(); |
174 | passWord->hide(); | 178 | passWord->hide(); |
175 | store_password->hide(); | 179 | store_password->hide(); |
176 | hidePw->hide(); | 180 | hidePw->hide(); |
177 | } | 181 | } |
178 | } | 182 | } |
179 | 183 | ||
180 | void AuthWidget::showScriptWindow( bool show ) | 184 | void AuthWidget::showScriptWindow( bool show ) |
181 | { | 185 | { |
182 | if (show){ | 186 | if (show){ |
183 | if (!scriptWidget){ | 187 | if (!scriptWidget){ |
184 | scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid"); | 188 | scriptWidget = new ScriptWidget( _pppdata, this, isNewAccount, "scriptWid"); |
185 | layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 ); | 189 | layout->addMultiCellWidget( scriptWidget, 1, 4, 0, 1 ); |
186 | } | 190 | } |
187 | scriptWidget->show(); | 191 | scriptWidget->show(); |
188 | }else{ // !show | 192 | }else{ // !show |
189 | if (scriptWidget) scriptWidget->hide(); | 193 | if (scriptWidget) scriptWidget->hide(); |
190 | } | 194 | } |
191 | } | 195 | } |
192 | 196 | ||
193 | void AuthWidget::toggleEchoMode( bool t ) | 197 | void AuthWidget::toggleEchoMode( bool t ) |
194 | { | 198 | { |
195 | passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password ); | 199 | passWord->setEchoMode( t ? QLineEdit::Normal : QLineEdit::Password ); |
196 | } | 200 | } |
197 | 201 | ||
diff --git a/noncore/settings/networksettings/ppp/config.in b/noncore/settings/networksettings/ppp/config.in index 0b71434..570ebfe 100644 --- a/noncore/settings/networksettings/ppp/config.in +++ b/noncore/settings/networksettings/ppp/config.in | |||
@@ -1,4 +1,4 @@ | |||
1 | config PPP | 1 | config PPP |
2 | boolean "opie-networksettingsplugin-kppp (PPP module)" | 2 | boolean "opie-networksettingsplugin-kppp (PPP module)" |
3 | default "n" if NETWORKSETUP | 3 | default "y" |
4 | depends ( LIBQPE || LIBQPE-X11 ) && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES | 4 | depends ( LIBQPE || LIBQPE-X11 ) && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES |
diff --git a/noncore/settings/networksettings/ppp/connect.cpp b/noncore/settings/networksettings/ppp/connect.cpp index b75410c..24d33f4 100644 --- a/noncore/settings/networksettings/ppp/connect.cpp +++ b/noncore/settings/networksettings/ppp/connect.cpp | |||
@@ -1,229 +1,230 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * | 4 | * |
5 | * Copyright (C) 1997 Bernd Johannes Wuebben | 5 | * Copyright (C) 1997 Bernd Johannes Wuebben |
6 | * wuebben@math.cornell.edu | 6 | * wuebben@math.cornell.edu |
7 | * Copyright (C) 1998-2001 Harri Porten <porten@kde.org> | 7 | * Copyright (C) 1998-2001 Harri Porten <porten@kde.org> |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | //#include <config.h> | 27 | /* OPIE */ |
28 | #include <opie2/odebug.h> | ||
29 | using namespace Opie::Core; | ||
28 | 30 | ||
31 | /* QT */ | ||
29 | #include <qlayout.h> | 32 | #include <qlayout.h> |
30 | #include <qregexp.h> | 33 | #include <qregexp.h> |
31 | |||
32 | #include <qapplication.h> | 34 | #include <qapplication.h> |
33 | //#include <kdebug.h> | ||
34 | //#include <klocale.h> | ||
35 | #include <qmessagebox.h> | 35 | #include <qmessagebox.h> |
36 | #include <qpushbutton.h> | 36 | #include <qpushbutton.h> |
37 | 37 | ||
38 | /* STD */ | ||
38 | #include <unistd.h> | 39 | #include <unistd.h> |
39 | #include <stdlib.h> | 40 | #include <stdlib.h> |
40 | #include <string.h> | 41 | #include <string.h> |
41 | #include <fcntl.h> | 42 | #include <fcntl.h> |
42 | #include <netdb.h> | 43 | #include <netdb.h> |
43 | #include <sys/types.h> | 44 | #include <sys/types.h> |
44 | #include <sys/socket.h> | 45 | #include <sys/socket.h> |
45 | #include <arpa/inet.h> | 46 | #include <arpa/inet.h> |
46 | #include <netinet/in.h> | 47 | #include <netinet/in.h> |
47 | #include <sys/ioctl.h> | 48 | #include <sys/ioctl.h> |
48 | #include <assert.h> | 49 | #include <assert.h> |
49 | 50 | ||
50 | #ifdef _XPG4_2 | 51 | #ifdef _XPG4_2 |
51 | #define __xnet_connectconnect | 52 | #define __xnet_connectconnect |
52 | #endif | 53 | #endif |
53 | 54 | ||
54 | #include <errno.h> | 55 | #include <errno.h> |
55 | 56 | ||
56 | #ifdef HAVE_SYS_PARAM_H | 57 | #ifdef HAVE_SYS_PARAM_H |
57 | #include <sys/param.h> | 58 | #include <sys/param.h> |
58 | #endif | 59 | #endif |
59 | 60 | ||
60 | #ifdef __linux__ | 61 | #ifdef __linux__ |
61 | #include "runtests.h" | 62 | #include "runtests.h" |
62 | #endif | 63 | #endif |
63 | 64 | ||
64 | #include "auth.h" | 65 | #include "auth.h" |
65 | #include "connect.h" | 66 | #include "connect.h" |
66 | //#include "docking.h" | 67 | //#include "docking.h" |
67 | #include "interfaceppp.h" | 68 | #include "interfaceppp.h" |
68 | #include "modem.h" | 69 | #include "modem.h" |
69 | #include "kpppconfig.h" | 70 | #include "kpppconfig.h" |
70 | #include "pppdata.h" | 71 | #include "pppdata.h" |
71 | #include "kpppwidget.h" | 72 | #include "kpppwidget.h" |
72 | //#include "requester.h" | 73 | //#include "requester.h" |
73 | //#include "utils.h" | 74 | //#include "utils.h" |
74 | #define execute_command system | 75 | #define execute_command system |
75 | 76 | ||
76 | QString old_hostname; | 77 | QString old_hostname; |
77 | bool modified_hostname; | 78 | bool modified_hostname; |
78 | 79 | ||
79 | 80 | ||
80 | ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *name) | 81 | ConnectWidget::ConnectWidget(InterfacePPP *ifp, QWidget *parent, const char *name) |
81 | : QWidget(parent, name), | 82 | : QWidget(parent, name), |
82 | myreadbuffer(""), | 83 | myreadbuffer(""), |
83 | main_timer_ID(0), | 84 | main_timer_ID(0), |
84 | vmain(0), | 85 | vmain(0), |
85 | substate(-1), | 86 | substate(-1), |
86 | scriptindex(0), | 87 | scriptindex(0), |
87 | loopnest(0), | 88 | loopnest(0), |
88 | loopend(false), | 89 | loopend(false), |
89 | semaphore(false), | 90 | semaphore(false), |
90 | expecting(false), | 91 | expecting(false), |
91 | readbuffer(""), | 92 | readbuffer(""), |
92 | scanvar(""), | 93 | scanvar(""), |
93 | scanning(false), | 94 | scanning(false), |
94 | pausing(false), | 95 | pausing(false), |
95 | dialnumber(0), | 96 | dialnumber(0), |
96 | _ifaceppp(ifp) | 97 | _ifaceppp(ifp) |
97 | { | 98 | { |
98 | modified_hostname = false; | 99 | modified_hostname = false; |
99 | 100 | ||
100 | QVBoxLayout *tl = new QVBoxLayout(this, 8, 10); | 101 | QVBoxLayout *tl = new QVBoxLayout(this, 8, 10); |
101 | QString tit = QObject::tr("Connecting to: "); | 102 | QString tit = QObject::tr("Connecting to: "); |
102 | setCaption(tit); | 103 | setCaption(tit); |
103 | 104 | ||
104 | QHBoxLayout *l0 = new QHBoxLayout(10); | 105 | QHBoxLayout *l0 = new QHBoxLayout(10); |
105 | tl->addLayout(l0); | 106 | tl->addLayout(l0); |
106 | l0->addSpacing(10); | 107 | l0->addSpacing(10); |
107 | messg = new QLabel(this, "messg"); | 108 | messg = new QLabel(this, "messg"); |
108 | messg->setFrameStyle(QFrame::Panel|QFrame::Sunken); | 109 | messg->setFrameStyle(QFrame::Panel|QFrame::Sunken); |
109 | messg->setAlignment(AlignCenter); | 110 | messg->setAlignment(AlignCenter); |
110 | messg->setText(QObject::tr("Unable to create modem lock file.")); | 111 | messg->setText(QObject::tr("Unable to create modem lock file.")); |
111 | messg->setMinimumHeight(messg->sizeHint().height() + 5); | 112 | messg->setMinimumHeight(messg->sizeHint().height() + 5); |
112 | // int messw = (messg->sizeHint().width() * 12) / 10; | 113 | // int messw = (messg->sizeHint().width() * 12) / 10; |
113 | // messw = QMAX(messw,280); | 114 | // messw = QMAX(messw,280); |
114 | // messg->setMinimumWidth(messw); | 115 | // messg->setMinimumWidth(messw); |
115 | if (_ifaceppp->getStatus()) | 116 | if (_ifaceppp->getStatus()) |
116 | messg->setText(QObject::tr("Online")); | 117 | messg->setText(QObject::tr("Online")); |
117 | else | 118 | else |
118 | messg->setText(QObject::tr("Offline")); | 119 | messg->setText(QObject::tr("Offline")); |
119 | l0->addSpacing(10); | 120 | l0->addSpacing(10); |
120 | l0->addWidget(messg); | 121 | l0->addWidget(messg); |
121 | l0->addSpacing(10); | 122 | l0->addSpacing(10); |
122 | 123 | ||
123 | QHBoxLayout *l1 = new QHBoxLayout(10); | 124 | QHBoxLayout *l1 = new QHBoxLayout(10); |
124 | tl->addLayout(l1); | 125 | tl->addLayout(l1); |
125 | l1->addStretch(1); | 126 | l1->addStretch(1); |
126 | 127 | ||
127 | debug = new QPushButton(QObject::tr("Log"), this); | 128 | debug = new QPushButton(QObject::tr("Log"), this); |
128 | debug->setToggleButton(true); | 129 | debug->setToggleButton(true); |
129 | debug->setEnabled( false ); // FIXME: disable the log button | 130 | debug->setEnabled( false ); // FIXME: disable the log button |
130 | connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow())); | 131 | connect(debug, SIGNAL(clicked()), SIGNAL(toggleDebugWindow())); |
131 | 132 | ||
132 | cancel = new QPushButton(QObject::tr("Cancel"), this); | 133 | cancel = new QPushButton(QObject::tr("Cancel"), this); |
133 | cancel->setFocus(); | 134 | cancel->setFocus(); |
134 | connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); | 135 | connect(cancel, SIGNAL(clicked()), SLOT(cancelbutton())); |
135 | 136 | ||
136 | // int maxw = QMAX(cancel->sizeHint().width(), | 137 | // int maxw = QMAX(cancel->sizeHint().width(), |
137 | // debug->sizeHint().width()); | 138 | // debug->sizeHint().width()); |
138 | // maxw = QMAX(maxw,65); | 139 | // maxw = QMAX(maxw,65); |
139 | // debug->setFixedWidth(maxw); | 140 | // debug->setFixedWidth(maxw); |
140 | // cancel->setFixedWidth(maxw); | 141 | // cancel->setFixedWidth(maxw); |
141 | l1->addWidget(debug); | 142 | l1->addWidget(debug); |
142 | l1->addWidget(cancel); | 143 | l1->addWidget(cancel); |
143 | 144 | ||
144 | // setFixedSize(sizeHint()); | 145 | // setFixedSize(sizeHint()); |
145 | 146 | ||
146 | pausetimer = new QTimer(this); | 147 | pausetimer = new QTimer(this); |
147 | connect(pausetimer, SIGNAL(timeout()), SLOT(pause())); | 148 | connect(pausetimer, SIGNAL(timeout()), SLOT(pause())); |
148 | 149 | ||
149 | qApp->processEvents(); | 150 | qApp->processEvents(); |
150 | 151 | ||
151 | timeout_timer = new QTimer(this); | 152 | timeout_timer = new QTimer(this); |
152 | connect(timeout_timer, SIGNAL(timeout()), SLOT(script_timed_out())); | 153 | connect(timeout_timer, SIGNAL(timeout()), SLOT(script_timed_out())); |
153 | 154 | ||
154 | inittimer = new QTimer(this); | 155 | inittimer = new QTimer(this); |
155 | connect(inittimer, SIGNAL(timeout()), SLOT(init())); | 156 | connect(inittimer, SIGNAL(timeout()), SLOT(init())); |
156 | 157 | ||
157 | if_timeout_timer = new QTimer(this); | 158 | if_timeout_timer = new QTimer(this); |
158 | connect(if_timeout_timer, SIGNAL(timeout()), SLOT(if_waiting_timed_out())); | 159 | connect(if_timeout_timer, SIGNAL(timeout()), SLOT(if_waiting_timed_out())); |
159 | 160 | ||
160 | connect(this,SIGNAL(if_waiting_signal()),this,SLOT(if_waiting_slot())); | 161 | connect(this,SIGNAL(if_waiting_signal()),this,SLOT(if_waiting_slot())); |
161 | 162 | ||
162 | prompt = new PWEntry( this, "pw" ); | 163 | prompt = new PWEntry( this, "pw" ); |
163 | if_timer = new QTimer(this); | 164 | if_timer = new QTimer(this); |
164 | connect(if_timer,SIGNAL(timeout()), SLOT(if_waiting_slot())); | 165 | connect(if_timer,SIGNAL(timeout()), SLOT(if_waiting_slot())); |
165 | } | 166 | } |
166 | 167 | ||
167 | 168 | ||
168 | ConnectWidget::~ConnectWidget() { | 169 | ConnectWidget::~ConnectWidget() { |
169 | } | 170 | } |
170 | 171 | ||
171 | 172 | ||
172 | void ConnectWidget::preinit() { | 173 | void ConnectWidget::preinit() { |
173 | // this is all just to keep the GUI nice and snappy .... | 174 | // this is all just to keep the GUI nice and snappy .... |
174 | // you have to see to believe ... | 175 | // you have to see to believe ... |
175 | messg->setText(QObject::tr("Looking for modem...")); | 176 | messg->setText(QObject::tr("Looking for modem...")); |
176 | inittimer->start(100); | 177 | inittimer->start(100); |
177 | } | 178 | } |
178 | 179 | ||
179 | 180 | ||
180 | void ConnectWidget::init() { | 181 | void ConnectWidget::init() { |
181 | _ifaceppp->data()->setpppdError(0); | 182 | _ifaceppp->data()->setpppdError(0); |
182 | inittimer->stop(); | 183 | inittimer->stop(); |
183 | vmain = 0; | 184 | vmain = 0; |
184 | substate = -1; | 185 | substate = -1; |
185 | expecting = false; | 186 | expecting = false; |
186 | pausing = false; | 187 | pausing = false; |
187 | scriptindex = 0; | 188 | scriptindex = 0; |
188 | myreadbuffer = ""; | 189 | myreadbuffer = ""; |
189 | scanning = false; | 190 | scanning = false; |
190 | scanvar = ""; | 191 | scanvar = ""; |
191 | firstrunID = true; | 192 | firstrunID = true; |
192 | firstrunPW = true; | 193 | firstrunPW = true; |
193 | // stats->totalbytes = 0; | 194 | // stats->totalbytes = 0; |
194 | dialnumber = 0; | 195 | dialnumber = 0; |
195 | 196 | ||
196 | // p_kppp->con_speed = ""; | 197 | // p_kppp->con_speed = ""; |
197 | 198 | ||
198 | // p_kppp->setQuitOnDisconnect (p_kppp->quitOnDisconnect() || _ifaceppp->data()->quit_on_disconnect()); | 199 | // p_kppp->setQuitOnDisconnect (p_kppp->quitOnDisconnect() || _ifaceppp->data()->quit_on_disconnect()); |
199 | 200 | ||
200 | comlist = &_ifaceppp->data()->scriptType(); | 201 | comlist = &_ifaceppp->data()->scriptType(); |
201 | arglist = &_ifaceppp->data()->script(); | 202 | arglist = &_ifaceppp->data()->script(); |
202 | 203 | ||
203 | QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname()); | 204 | QString tit = QObject::tr("Connecting to: %1").arg(_ifaceppp->data()->accname()); |
204 | setCaption(tit); | 205 | setCaption(tit); |
205 | 206 | ||
206 | qApp->processEvents(); | 207 | qApp->processEvents(); |
207 | 208 | ||
208 | // run the "before-connect" command | 209 | // run the "before-connect" command |
209 | if (!_ifaceppp->data()->command_before_connect().isEmpty()) { | 210 | if (!_ifaceppp->data()->command_before_connect().isEmpty()) { |
210 | messg->setText(QObject::tr("Running pre-startup command...")); | 211 | messg->setText(QObject::tr("Running pre-startup command...")); |
211 | emit debugMessage(QObject::tr("Running pre-startup command...")); | 212 | emit debugMessage(QObject::tr("Running pre-startup command...")); |
212 | 213 | ||
213 | qApp->processEvents(); | 214 | qApp->processEvents(); |
214 | QApplication::flushX(); | 215 | QApplication::flushX(); |
215 | pid_t id = execute_command(_ifaceppp->data()->command_before_connect()); | 216 | pid_t id = execute_command(_ifaceppp->data()->command_before_connect()); |
216 | // int i, status; | 217 | // int i, status; |
217 | 218 | ||
218 | // do { | 219 | // do { |
219 | // qApp->processEvents(); | 220 | // qApp->processEvents(); |
220 | // i = waitpid(id, &status, WNOHANG); | 221 | // i = waitpid(id, &status, WNOHANG); |
221 | // usleep(100000); | 222 | // usleep(100000); |
222 | // } while (i == 0 && errno == 0); | 223 | // } while (i == 0 && errno == 0); |
223 | } | 224 | } |
224 | 225 | ||
225 | int lock = _ifaceppp->modem()->lockdevice(); | 226 | int lock = _ifaceppp->modem()->lockdevice(); |
226 | 227 | ||
227 | if (lock == 1) { | 228 | if (lock == 1) { |
228 | messg->setText(QObject::tr("Modem device is locked.")); | 229 | messg->setText(QObject::tr("Modem device is locked.")); |
229 | vmain = 20; // wait until cancel is pressed | 230 | vmain = 20; // wait until cancel is pressed |
diff --git a/noncore/settings/networksettings/ppp/devices.cpp b/noncore/settings/networksettings/ppp/devices.cpp index 350ff32..42de44c 100644 --- a/noncore/settings/networksettings/ppp/devices.cpp +++ b/noncore/settings/networksettings/ppp/devices.cpp | |||
@@ -1,217 +1,219 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "interfaceppp.h" | 27 | #include "interfaceppp.h" |
28 | #include "devices.h" | 28 | #include "devices.h" |
29 | #include "authwidget.h" | 29 | #include "authwidget.h" |
30 | #include "pppdata.h" | 30 | #include "pppdata.h" |
31 | #include "edit.h" | 31 | #include "edit.h" |
32 | #include "general.h" | 32 | #include "general.h" |
33 | 33 | ||
34 | /* OPIE */ | 34 | /* OPIE */ |
35 | #include <opie2/odebug.h> | ||
35 | #include <qpe/qpeapplication.h> | 36 | #include <qpe/qpeapplication.h> |
37 | using namespace Opie::Core; | ||
36 | 38 | ||
37 | /* QT */ | 39 | /* QT */ |
38 | #include <qdir.h> | 40 | #include <qdir.h> |
39 | #include <qlayout.h> | 41 | #include <qlayout.h> |
40 | #include <qtabwidget.h> | 42 | #include <qtabwidget.h> |
41 | #include <qtabdialog.h> | 43 | #include <qtabdialog.h> |
42 | #include <qwhatsthis.h> | 44 | #include <qwhatsthis.h> |
43 | #include <qmessagebox.h> | 45 | #include <qmessagebox.h> |
44 | #include <qapplication.h> | 46 | #include <qapplication.h> |
45 | #include <qbuttongroup.h> | 47 | #include <qbuttongroup.h> |
46 | #include <qmessagebox.h> | 48 | #include <qmessagebox.h> |
47 | #include <qvgroupbox.h> | 49 | #include <qvgroupbox.h> |
48 | 50 | ||
49 | /* STD */ | 51 | /* STD */ |
50 | #include <stdlib.h> | 52 | #include <stdlib.h> |
51 | 53 | ||
52 | 54 | ||
53 | void parseargs(char* buf, char** args); | 55 | void parseargs(char* buf, char** args); |
54 | 56 | ||
55 | DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) | 57 | DevicesWidget::DevicesWidget( InterfacePPP* ip, QWidget *parent, const char *name, WFlags f ) |
56 | : ChooserWidget(ip->data(), parent, name, f) | 58 | : ChooserWidget(ip->data(), parent, name, f) |
57 | { | 59 | { |
58 | _ifaceppp = ip; | 60 | _ifaceppp = ip; |
59 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); | 61 | QWhatsThis::add(edit_b, tr("Allows you to modify the selected device")); |
60 | QWhatsThis::add(new_b, tr("Create a new device") ); | 62 | QWhatsThis::add(new_b, tr("Create a new device") ); |
61 | 63 | ||
62 | QWhatsThis::add(copy_b, | 64 | QWhatsThis::add(copy_b, |
63 | tr("Makes a copy of the selected device. All\n" | 65 | tr("Makes a copy of the selected device. All\n" |
64 | "settings of the selected device are copied\n" | 66 | "settings of the selected device are copied\n" |
65 | "to a new device, that you can modify to fit your\n" | 67 | "to a new device, that you can modify to fit your\n" |
66 | "needs")); | 68 | "needs")); |
67 | QWhatsThis::add(delete_b, | 69 | QWhatsThis::add(delete_b, |
68 | tr("<p>Deletes the selected device\n\n" | 70 | tr("<p>Deletes the selected device\n\n" |
69 | "<font color=\"red\"><b>Use with care!</b></font>")); | 71 | "<font color=\"red\"><b>Use with care!</b></font>")); |
70 | 72 | ||
71 | copy_b->setEnabled( false ); //FIXME | 73 | copy_b->setEnabled( false ); //FIXME |
72 | // delete_b->setEnabled( false ); //FIXME | 74 | // delete_b->setEnabled( false ); //FIXME |
73 | 75 | ||
74 | QStringList tmp = _pppdata->getDevicesNamesList(); | 76 | QStringList tmp = _pppdata->getDevicesNamesList(); |
75 | odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl; | 77 | odebug << "DevicesWidget::DevicesWidget got devices " << tmp.join("--").latin1() << "" << oendl; |
76 | listListbox->insertStringList(tmp); | 78 | listListbox->insertStringList(tmp); |
77 | 79 | ||
78 | for (uint i = 0; i < listListbox->count(); i++){ | 80 | for (uint i = 0; i < listListbox->count(); i++){ |
79 | odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl; | 81 | odebug << "listListbox->text(i) " << listListbox->text(i).latin1() << " == _pppdata->devname() " << _pppdata->devname().latin1() << "" << oendl; |
80 | if ( listListbox->text(i) == _pppdata->devname() ) | 82 | if ( listListbox->text(i) == _pppdata->devname() ) |
81 | listListbox->setCurrentItem( i ); | 83 | listListbox->setCurrentItem( i ); |
82 | } | 84 | } |
83 | } | 85 | } |
84 | 86 | ||
85 | 87 | ||
86 | 88 | ||
87 | void DevicesWidget::slotListBoxSelect(int idx) { | 89 | void DevicesWidget::slotListBoxSelect(int idx) { |
88 | bool ok = _pppdata->setDevice( listListbox->text(idx) ); | 90 | bool ok = _pppdata->setDevice( listListbox->text(idx) ); |
89 | delete_b->setEnabled((bool)(idx != -1)); | 91 | delete_b->setEnabled((bool)(idx != -1)); |
90 | edit_b->setEnabled((bool)(idx != -1)); | 92 | edit_b->setEnabled((bool)(idx != -1)); |
91 | //FIXME copy_b->setEnabled((bool)(idx != -1)); | 93 | //FIXME copy_b->setEnabled((bool)(idx != -1)); |
92 | } | 94 | } |
93 | 95 | ||
94 | void DevicesWidget::edit() { | 96 | void DevicesWidget::edit() { |
95 | _pppdata->setDevice(listListbox->text(listListbox->currentItem())); | 97 | _pppdata->setDevice(listListbox->text(listListbox->currentItem())); |
96 | 98 | ||
97 | int result = doTab(); | 99 | int result = doTab(); |
98 | 100 | ||
99 | if(result == QDialog::Accepted) { | 101 | if(result == QDialog::Accepted) { |
100 | listListbox->changeItem(_pppdata->devname(),listListbox->currentItem()); | 102 | listListbox->changeItem(_pppdata->devname(),listListbox->currentItem()); |
101 | _pppdata->save(); | 103 | _pppdata->save(); |
102 | } | 104 | } |
103 | } | 105 | } |
104 | 106 | ||
105 | 107 | ||
106 | void DevicesWidget::create() { | 108 | void DevicesWidget::create() { |
107 | 109 | ||
108 | // if(listListbox->count() == MAX_ACCOUNTS) { | 110 | // if(listListbox->count() == MAX_ACCOUNTS) { |
109 | // QMessageBox::information(this, "sorry", | 111 | // QMessageBox::information(this, "sorry", |
110 | // tr("Maximum number of accounts reached.")); | 112 | // tr("Maximum number of accounts reached.")); |
111 | // return; | 113 | // return; |
112 | // } | 114 | // } |
113 | 115 | ||
114 | int result; | 116 | int result; |
115 | if (_pppdata->newdevice() == -1){ | 117 | if (_pppdata->newdevice() == -1){ |
116 | return; | 118 | return; |
117 | } | 119 | } |
118 | result = doTab(); | 120 | result = doTab(); |
119 | 121 | ||
120 | if(result == QDialog::Accepted) { | 122 | if(result == QDialog::Accepted) { |
121 | listListbox->insertItem(_pppdata->devname()); | 123 | listListbox->insertItem(_pppdata->devname()); |
122 | listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true ); | 124 | listListbox->setSelected(listListbox->findItem(_pppdata->devname()),true ); |
123 | 125 | ||
124 | _pppdata->save(); | 126 | _pppdata->save(); |
125 | } else | 127 | } else |
126 | _pppdata->deleteDevice(); | 128 | _pppdata->deleteDevice(); |
127 | } | 129 | } |
128 | 130 | ||
129 | 131 | ||
130 | void DevicesWidget::copy() { | 132 | void DevicesWidget::copy() { |
131 | // if(listListbox->count() == MAX_ACCOUNTS) { | 133 | // if(listListbox->count() == MAX_ACCOUNTS) { |
132 | // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); | 134 | // QMessageBox::information(this, "sorry", tr("Maximum number of accounts reached.")); |
133 | // return; | 135 | // return; |
134 | // } | 136 | // } |
135 | 137 | ||
136 | if(listListbox->currentItem()<0) { | 138 | if(listListbox->currentItem()<0) { |
137 | QMessageBox::information(this, "sorry", tr("No devices selected.")); | 139 | QMessageBox::information(this, "sorry", tr("No devices selected.")); |
138 | return; | 140 | return; |
139 | } | 141 | } |
140 | 142 | ||
141 | _pppdata->copydevice(listListbox->currentText()); | 143 | _pppdata->copydevice(listListbox->currentText()); |
142 | 144 | ||
143 | listListbox->insertItem(_pppdata->devname()); | 145 | listListbox->insertItem(_pppdata->devname()); |
144 | _pppdata->save(); | 146 | _pppdata->save(); |
145 | } | 147 | } |
146 | 148 | ||
147 | 149 | ||
148 | void DevicesWidget::remove() { | 150 | void DevicesWidget::remove() { |
149 | 151 | ||
150 | QString s = tr("Are you sure you want to delete\nthe device \"%1\"?") | 152 | QString s = tr("Are you sure you want to delete\nthe device \"%1\"?") |
151 | .arg(listListbox->text(listListbox->currentItem())); | 153 | .arg(listListbox->text(listListbox->currentItem())); |
152 | 154 | ||
153 | if(QMessageBox::warning(this,tr("Confirm"),s, | 155 | if(QMessageBox::warning(this,tr("Confirm"),s, |
154 | QMessageBox::Yes,QMessageBox::No | 156 | QMessageBox::Yes,QMessageBox::No |
155 | ) != QMessageBox::Yes) | 157 | ) != QMessageBox::Yes) |
156 | return; | 158 | return; |
157 | 159 | ||
158 | if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem()))) | 160 | if(_pppdata->deleteDevice(listListbox->text(listListbox->currentItem()))) |
159 | listListbox->removeItem(listListbox->currentItem()); | 161 | listListbox->removeItem(listListbox->currentItem()); |
160 | 162 | ||
161 | 163 | ||
162 | // _pppdata->save(); | 164 | // _pppdata->save(); |
163 | 165 | ||
164 | 166 | ||
165 | slotListBoxSelect(listListbox->currentItem()); | 167 | slotListBoxSelect(listListbox->currentItem()); |
166 | 168 | ||
167 | } | 169 | } |
168 | 170 | ||
169 | 171 | ||
170 | int DevicesWidget::doTab(){ | 172 | int DevicesWidget::doTab(){ |
171 | QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp ); | 173 | QDialog *dlg = new QDialog( 0, "newDevice", true, Qt::WStyle_ContextHelp ); |
172 | QVBoxLayout *layout = new QVBoxLayout( dlg ); | 174 | QVBoxLayout *layout = new QVBoxLayout( dlg ); |
173 | layout->setSpacing( 0 ); | 175 | layout->setSpacing( 0 ); |
174 | layout->setMargin( 1 ); | 176 | layout->setMargin( 1 ); |
175 | 177 | ||
176 | QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); | 178 | QTabWidget *tabWindow = new QTabWidget( dlg, "tabWindow" ); |
177 | layout->addWidget( tabWindow ); | 179 | layout->addWidget( tabWindow ); |
178 | 180 | ||
179 | bool isnew; | 181 | bool isnew; |
180 | 182 | ||
181 | if(_pppdata->devname().isEmpty()) { | 183 | if(_pppdata->devname().isEmpty()) { |
182 | dlg->setCaption(tr("New Device")); | 184 | dlg->setCaption(tr("New Device")); |
183 | isnew = true; | 185 | isnew = true; |
184 | } else { | 186 | } else { |
185 | QString tit = tr("Edit Device: "); | 187 | QString tit = tr("Edit Device: "); |
186 | tit += _pppdata->devname(); | 188 | tit += _pppdata->devname(); |
187 | dlg->setCaption(tit); | 189 | dlg->setCaption(tit); |
188 | isnew = false; | 190 | isnew = false; |
189 | } | 191 | } |
190 | 192 | ||
191 | modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); | 193 | modem1 = new ModemWidget( _pppdata, tabWindow, "modem1" ); |
192 | tabWindow->addTab( modem1, tr("&Device") ); | 194 | tabWindow->addTab( modem1, tr("&Device") ); |
193 | modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); | 195 | modem2 = new ModemWidget2( _pppdata, _ifaceppp, tabWindow, "modem2" ); |
194 | tabWindow->addTab( modem2, tr("&Modem") ); | 196 | tabWindow->addTab( modem2, tr("&Modem") ); |
195 | 197 | ||
196 | int result = 0; | 198 | int result = 0; |
197 | bool ok = false; | 199 | bool ok = false; |
198 | 200 | ||
199 | while (!ok){ | 201 | while (!ok){ |
200 | result = QPEApplication::execDialog( dlg ); | 202 | result = QPEApplication::execDialog( dlg ); |
201 | ok = true; | 203 | ok = true; |
202 | 204 | ||
203 | if(result == QDialog::Accepted) { | 205 | if(result == QDialog::Accepted) { |
204 | if (!modem1->save()){ | 206 | if (!modem1->save()){ |
205 | QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); | 207 | QMessageBox::critical(this, "error", tr( "You must enter a unique device name")); |
206 | ok = false; | 208 | ok = false; |
207 | }else{ | 209 | }else{ |
208 | modem2->save(); | 210 | modem2->save(); |
209 | } | 211 | } |
210 | } | 212 | } |
211 | } | 213 | } |
212 | 214 | ||
213 | delete dlg; | 215 | delete dlg; |
214 | 216 | ||
215 | return result; | 217 | return result; |
216 | } | 218 | } |
217 | 219 | ||
diff --git a/noncore/settings/networksettings/ppp/general.cpp b/noncore/settings/networksettings/ppp/general.cpp index 69bb682..40ba19b 100644 --- a/noncore/settings/networksettings/ppp/general.cpp +++ b/noncore/settings/networksettings/ppp/general.cpp | |||
@@ -1,227 +1,229 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "general.h" | 27 | #include "general.h" |
28 | #include "interfaceppp.h" | 28 | #include "interfaceppp.h" |
29 | #include "modeminfo.h" | 29 | #include "modeminfo.h" |
30 | #include "modemcmds.h" | 30 | #include "modemcmds.h" |
31 | #include "pppdata.h" | 31 | #include "pppdata.h" |
32 | 32 | ||
33 | /* OPIE */ | 33 | /* OPIE */ |
34 | #include <opie2/odebug.h> | ||
34 | #include <qpe/config.h> | 35 | #include <qpe/config.h> |
35 | #include <qpe/qpeapplication.h> | 36 | #include <qpe/qpeapplication.h> |
37 | using namespace Opie::Core; | ||
36 | 38 | ||
37 | /* QT */ | 39 | /* QT */ |
38 | #include <qcheckbox.h> | 40 | #include <qcheckbox.h> |
39 | #include <qcombobox.h> | 41 | #include <qcombobox.h> |
40 | #include <qlabel.h> | 42 | #include <qlabel.h> |
41 | #include <qlayout.h> | 43 | #include <qlayout.h> |
42 | #include <qpushbutton.h> | 44 | #include <qpushbutton.h> |
43 | #include <qslider.h> | 45 | #include <qslider.h> |
44 | #include <qspinbox.h> | 46 | #include <qspinbox.h> |
45 | #include <qwhatsthis.h> | 47 | #include <qwhatsthis.h> |
46 | 48 | ||
47 | /* STD */ | 49 | /* STD */ |
48 | #include <termios.h> | 50 | #include <termios.h> |
49 | #include <string.h> | 51 | #include <string.h> |
50 | 52 | ||
51 | 53 | ||
52 | ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) | 54 | ModemWidget::ModemWidget( PPPData *pd, QWidget *parent, const char *name ) |
53 | : QWidget(parent, name), _pppdata(pd) | 55 | : QWidget(parent, name), _pppdata(pd) |
54 | { | 56 | { |
55 | int k; | 57 | int k; |
56 | 58 | ||
57 | QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); | 59 | QGridLayout *tl = new QGridLayout(this, 8, 2, 0 );//, KDialog::spacingHint()); |
58 | 60 | ||
59 | QLabel *label1; | 61 | QLabel *label1; |
60 | 62 | ||
61 | label1 = new QLabel(tr("Modem &name:"), this); | 63 | label1 = new QLabel(tr("Modem &name:"), this); |
62 | tl->addWidget(label1, 0, 0); | 64 | tl->addWidget(label1, 0, 0); |
63 | 65 | ||
64 | modemname = new QLineEdit(this, "modemName"); | 66 | modemname = new QLineEdit(this, "modemName"); |
65 | modemname->setText( _pppdata->devname() ); | 67 | modemname->setText( _pppdata->devname() ); |
66 | label1->setBuddy(modemname); | 68 | label1->setBuddy(modemname); |
67 | tl->addWidget(modemname, 0, 1); | 69 | tl->addWidget(modemname, 0, 1); |
68 | 70 | ||
69 | label1 = new QLabel(tr("Modem de&vice:"), this); | 71 | label1 = new QLabel(tr("Modem de&vice:"), this); |
70 | tl->addWidget(label1, 1, 0); | 72 | tl->addWidget(label1, 1, 0); |
71 | 73 | ||
72 | modemdevice = new QComboBox(false, this); | 74 | modemdevice = new QComboBox(false, this); |
73 | modemdevice->setEditable( true ); | 75 | modemdevice->setEditable( true ); |
74 | modemdevice->setDuplicatesEnabled ( false ); | 76 | modemdevice->setDuplicatesEnabled ( false ); |
75 | modemdevice->setInsertionPolicy( QComboBox::AtTop ); | 77 | modemdevice->setInsertionPolicy( QComboBox::AtTop ); |
76 | label1->setBuddy(modemdevice); | 78 | label1->setBuddy(modemdevice); |
77 | 79 | ||
78 | Config cfg("NetworkSetupPPP"); | 80 | Config cfg("NetworkSetupPPP"); |
79 | cfg.setGroup("Devices_General"); | 81 | cfg.setGroup("Devices_General"); |
80 | QStringList devs = cfg.readListEntry("devices",','); | 82 | QStringList devs = cfg.readListEntry("devices",','); |
81 | if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; | 83 | if (devs.isEmpty()) devs << "/dev/modem" << "/dev/ircomm0" << "/dev/ttyS0"; |
82 | modemdevice->insertStringList( devs ); | 84 | modemdevice->insertStringList( devs ); |
83 | tl->addWidget(modemdevice, 1, 1); | 85 | tl->addWidget(modemdevice, 1, 1); |
84 | 86 | ||
85 | // connect(modemdevice, SIGNAL(activated(int)), | 87 | // connect(modemdevice, SIGNAL(activated(int)), |
86 | // SLOT(setmodemdc(int))); | 88 | // SLOT(setmodemdc(int))); |
87 | // connect(modemdevice, SIGNAL(textChanged(const QString&) ), | 89 | // connect(modemdevice, SIGNAL(textChanged(const QString&) ), |
88 | // SLOT( setmodemdc(const QString&) ) ); | 90 | // SLOT( setmodemdc(const QString&) ) ); |
89 | 91 | ||
90 | QString tmp = tr("This specifies the serial port your modem is attached \n" | 92 | QString tmp = tr("This specifies the serial port your modem is attached \n" |
91 | "to. On Linux/x86, typically this is either /dev/ttyS0 \n" | 93 | "to. On Linux/x86, typically this is either /dev/ttyS0 \n" |
92 | "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" | 94 | "(COM1 under DOS) or /dev/ttyS1 (COM2 under DOS).\n" |
93 | "\n" | 95 | "\n" |
94 | "If you have an internal ISDN card with AT command\n" | 96 | "If you have an internal ISDN card with AT command\n" |
95 | "emulation (most cards under Linux support this), you\n" | 97 | "emulation (most cards under Linux support this), you\n" |
96 | "should select one of the /dev/ttyIx devices."); | 98 | "should select one of the /dev/ttyIx devices."); |
97 | 99 | ||
98 | QWhatsThis::add(label1,tmp); | 100 | QWhatsThis::add(label1,tmp); |
99 | QWhatsThis::add(modemdevice,tmp); | 101 | QWhatsThis::add(modemdevice,tmp); |
100 | 102 | ||
101 | 103 | ||
102 | label1 = new QLabel(tr("&Flow control:"), this); | 104 | label1 = new QLabel(tr("&Flow control:"), this); |
103 | tl->addWidget(label1, 2, 0); | 105 | tl->addWidget(label1, 2, 0); |
104 | 106 | ||
105 | flowcontrol = new QComboBox(false, this); | 107 | flowcontrol = new QComboBox(false, this); |
106 | label1->setBuddy(flowcontrol); | 108 | label1->setBuddy(flowcontrol); |
107 | flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); | 109 | flowcontrol->insertItem(tr("Hardware [CRTSCTS]")); |
108 | flowcontrol->insertItem(tr("Software [XON/XOFF]")); | 110 | flowcontrol->insertItem(tr("Software [XON/XOFF]")); |
109 | flowcontrol->insertItem(tr("None")); | 111 | flowcontrol->insertItem(tr("None")); |
110 | tl->addWidget(flowcontrol, 2, 1); | 112 | tl->addWidget(flowcontrol, 2, 1); |
111 | // connect(flowcontrol, SIGNAL(activated(int)), | 113 | // connect(flowcontrol, SIGNAL(activated(int)), |
112 | // SLOT(setflowcontrol(int))); | 114 | // SLOT(setflowcontrol(int))); |
113 | 115 | ||
114 | tmp = tr("<p>Specifies how the serial port and modem\n" | 116 | tmp = tr("<p>Specifies how the serial port and modem\n" |
115 | "communicate. You should not change this unless\n" | 117 | "communicate. You should not change this unless\n" |
116 | "you know what you are doing.\n" | 118 | "you know what you are doing.\n" |
117 | "\n" | 119 | "\n" |
118 | "<b>Default</b>: CRTSCTS"); | 120 | "<b>Default</b>: CRTSCTS"); |
119 | 121 | ||
120 | QWhatsThis::add(label1,tmp); | 122 | QWhatsThis::add(label1,tmp); |
121 | QWhatsThis::add(flowcontrol,tmp); | 123 | QWhatsThis::add(flowcontrol,tmp); |
122 | 124 | ||
123 | QLabel *labelenter = new QLabel(tr("&Line termination:"), this); | 125 | QLabel *labelenter = new QLabel(tr("&Line termination:"), this); |
124 | tl->addWidget(labelenter, 3, 0); | 126 | tl->addWidget(labelenter, 3, 0); |
125 | 127 | ||
126 | enter = new QComboBox(false, this); | 128 | enter = new QComboBox(false, this); |
127 | labelenter->setBuddy(enter); | 129 | labelenter->setBuddy(enter); |
128 | enter->insertItem("CR"); | 130 | enter->insertItem("CR"); |
129 | enter->insertItem("LF"); | 131 | enter->insertItem("LF"); |
130 | enter->insertItem("CR/LF"); | 132 | enter->insertItem("CR/LF"); |
131 | tl->addWidget(enter, 3, 1); | 133 | tl->addWidget(enter, 3, 1); |
132 | // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); | 134 | // connect(enter, SIGNAL(activated(int)), SLOT(setenter(int))); |
133 | tmp = tr("<p>Specifies how AT commands are sent to your\n" | 135 | tmp = tr("<p>Specifies how AT commands are sent to your\n" |
134 | "modem. Most modems will work fine with the\n" | 136 | "modem. Most modems will work fine with the\n" |
135 | "default <i>CR/LF</i>. If your modem does not react\n" | 137 | "default <i>CR/LF</i>. If your modem does not react\n" |
136 | "to the init string, you should try different\n" | 138 | "to the init string, you should try different\n" |
137 | "settings here\n" | 139 | "settings here\n" |
138 | "\n" | 140 | "\n" |
139 | "<b>Default</b>: CR/LF"); | 141 | "<b>Default</b>: CR/LF"); |
140 | 142 | ||
141 | QWhatsThis::add(labelenter,tmp); | 143 | QWhatsThis::add(labelenter,tmp); |
142 | QWhatsThis::add(enter, tmp); | 144 | QWhatsThis::add(enter, tmp); |
143 | 145 | ||
144 | QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); | 146 | QLabel *baud_label = new QLabel(tr("Co&nnection speed:"), this); |
145 | tl->addWidget(baud_label, 4, 0); | 147 | tl->addWidget(baud_label, 4, 0); |
146 | baud_c = new QComboBox(this); | 148 | baud_c = new QComboBox(this); |
147 | baud_label->setBuddy(baud_c); | 149 | baud_label->setBuddy(baud_c); |
148 | 150 | ||
149 | static const char *baudrates[] = | 151 | static const char *baudrates[] = |
150 | { | 152 | { |
151 | 153 | ||
152 | #ifdef B460800 | 154 | #ifdef B460800 |
153 | "460800", | 155 | "460800", |
154 | #endif | 156 | #endif |
155 | 157 | ||
156 | #ifdef B230400 | 158 | #ifdef B230400 |
157 | "230400", | 159 | "230400", |
158 | #endif | 160 | #endif |
159 | 161 | ||
160 | #ifdef B115200 | 162 | #ifdef B115200 |
161 | "115200", | 163 | "115200", |
162 | #endif | 164 | #endif |
163 | 165 | ||
164 | #ifdef B57600 | 166 | #ifdef B57600 |
165 | "57600", | 167 | "57600", |
166 | #endif | 168 | #endif |
167 | 169 | ||
168 | "38400", | 170 | "38400", |
169 | "19200", | 171 | "19200", |
170 | "9600", | 172 | "9600", |
171 | "2400", | 173 | "2400", |
172 | 0 | 174 | 0 |
173 | }; | 175 | }; |
174 | 176 | ||
175 | for(k = 0; baudrates[k]; k++) | 177 | for(k = 0; baudrates[k]; k++) |
176 | baud_c->insertItem(baudrates[k]); | 178 | baud_c->insertItem(baudrates[k]); |
177 | 179 | ||
178 | baud_c->setCurrentItem(3); | 180 | baud_c->setCurrentItem(3); |
179 | // connect(baud_c, SIGNAL(activated(int)), | 181 | // connect(baud_c, SIGNAL(activated(int)), |
180 | // this, SLOT(speed_selection(int))); | 182 | // this, SLOT(speed_selection(int))); |
181 | tl->addWidget(baud_c, 4, 1); | 183 | tl->addWidget(baud_c, 4, 1); |
182 | 184 | ||
183 | tmp = tr("Specifies the speed your modem and the serial\n" | 185 | tmp = tr("Specifies the speed your modem and the serial\n" |
184 | "port talk to each other. You should begin with\n" | 186 | "port talk to each other. You should begin with\n" |
185 | "the default of 38400 bits/sec. If everything\n" | 187 | "the default of 38400 bits/sec. If everything\n" |
186 | "works you can try to increase this value, but to\n" | 188 | "works you can try to increase this value, but to\n" |
187 | "no more than 115200 bits/sec (unless you know\n" | 189 | "no more than 115200 bits/sec (unless you know\n" |
188 | "that your serial port supports higher speeds)."); | 190 | "that your serial port supports higher speeds)."); |
189 | 191 | ||
190 | QWhatsThis::add(baud_label,tmp); | 192 | QWhatsThis::add(baud_label,tmp); |
191 | QWhatsThis::add(baud_c,tmp); | 193 | QWhatsThis::add(baud_c,tmp); |
192 | 194 | ||
193 | for(int i=0; i <= enter->count()-1; i++) | 195 | for(int i=0; i <= enter->count()-1; i++) |
194 | { | 196 | { |
195 | if(_pppdata->enter() == enter->text(i)) | 197 | if(_pppdata->enter() == enter->text(i)) |
196 | enter->setCurrentItem(i); | 198 | enter->setCurrentItem(i); |
197 | } | 199 | } |
198 | 200 | ||
199 | tl->addRowSpacing(5, 10); | 201 | tl->addRowSpacing(5, 10); |
200 | 202 | ||
201 | //Modem Lock File | 203 | //Modem Lock File |
202 | modemlockfile = new QCheckBox(tr("&Use lock file"), this); | 204 | modemlockfile = new QCheckBox(tr("&Use lock file"), this); |
203 | 205 | ||
204 | modemlockfile->setChecked(_pppdata->modemLockFile()); | 206 | modemlockfile->setChecked(_pppdata->modemLockFile()); |
205 | // connect(modemlockfile, SIGNAL(toggled(bool)), | 207 | // connect(modemlockfile, SIGNAL(toggled(bool)), |
206 | // SLOT(modemlockfilechanged(bool))); | 208 | // SLOT(modemlockfilechanged(bool))); |
207 | tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); | 209 | tl->addMultiCellWidget(modemlockfile, 6, 6, 0, 1); |
208 | // l12->addStretch(1); | 210 | // l12->addStretch(1); |
209 | QWhatsThis::add(modemlockfile, | 211 | QWhatsThis::add(modemlockfile, |
210 | tr("<p>To prevent other programs from accessing the\n" | 212 | tr("<p>To prevent other programs from accessing the\n" |
211 | "modem while a connection is established, a\n" | 213 | "modem while a connection is established, a\n" |
212 | "file can be created to indicate that the modem\n" | 214 | "file can be created to indicate that the modem\n" |
213 | "is in use. On Linux an example file would be\n" | 215 | "is in use. On Linux an example file would be\n" |
214 | "<tt>/var/lock/LCK..ttyS1</tt>\n" | 216 | "<tt>/var/lock/LCK..ttyS1</tt>\n" |
215 | "Here you can select whether this locking will\n" | 217 | "Here you can select whether this locking will\n" |
216 | "be done.\n" | 218 | "be done.\n" |
217 | "\n" | 219 | "\n" |
218 | "<b>Default</b>: On")); | 220 | "<b>Default</b>: On")); |
219 | 221 | ||
220 | // Modem Timeout Line Edit Box | 222 | // Modem Timeout Line Edit Box |
221 | QHBoxLayout *timeoutLayout = new QHBoxLayout( this ); | 223 | QHBoxLayout *timeoutLayout = new QHBoxLayout( this ); |
222 | QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); | 224 | QLabel *timeoutlabel = new QLabel( tr("Modem timeout:") ,this, "timeout" ); |
223 | modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); | 225 | modemtimeout = new QSpinBox( 1, 120, 1, this, "modemTimeout" ); |
224 | // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); | 226 | // modemtimeout = new KIntNumInput(_pppdata->modemTimeout(), this); |
225 | // modemtimeout->setLabel(tr("Modem &timeout:")); | 227 | // modemtimeout->setLabel(tr("Modem &timeout:")); |
226 | // modemtimeout->setRange(1, 120, 1); | 228 | // modemtimeout->setRange(1, 120, 1); |
227 | modemtimeout->setSuffix(tr(" sec")); | 229 | modemtimeout->setSuffix(tr(" sec")); |
diff --git a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp index 5a76293..4755aed 100644 --- a/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp +++ b/noncore/settings/networksettings/ppp/interfaceinformationppp.cpp | |||
@@ -1,41 +1,45 @@ | |||
1 | #include "interfaceinformationppp.h" | 1 | #include "interfaceinformationppp.h" |
2 | #include "connect.h" | ||
3 | #include "conwindow.h" | ||
4 | |||
5 | /* OPIE */ | ||
6 | #include <opie2/odebug.h> | ||
7 | using namespace Opie::Core; | ||
2 | 8 | ||
9 | /* QT */ | ||
3 | #include <qpushbutton.h> | 10 | #include <qpushbutton.h> |
4 | #include <qlabel.h> | 11 | #include <qlabel.h> |
5 | #include <qmessagebox.h> | 12 | #include <qmessagebox.h> |
6 | #include <qabstractlayout.h> | 13 | #include <qabstractlayout.h> |
7 | 14 | ||
8 | #include "connect.h" | ||
9 | #include "conwindow.h" | ||
10 | |||
11 | #ifdef QWS | 15 | #ifdef QWS |
12 | #else | 16 | #else |
13 | #define showMaximized show | 17 | #define showMaximized show |
14 | #endif | 18 | #endif |
15 | 19 | ||
16 | /** | 20 | /** |
17 | * Constructor for the InterfaceInformationImp class. This class pretty much | 21 | * Constructor for the InterfaceInformationImp class. This class pretty much |
18 | * just display's information about the interface that is passed to it. | 22 | * just display's information about the interface that is passed to it. |
19 | */ | 23 | */ |
20 | InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f) | 24 | InterfaceInformationPPP::InterfaceInformationPPP(QWidget *parent, const char *name, Interface *i, WFlags f) |
21 | :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp) | 25 | :InterfaceInformationImp(parent, name, i, Qt::WStyle_ContextHelp) |
22 | { | 26 | { |
23 | odebug << "InterfaceInformationPPP::InterfaceInformationPPP " << name << "" << oendl; | 27 | odebug << "InterfaceInformationPPP::InterfaceInformationPPP " << name << "" << oendl; |
24 | con = new ConnectWidget( (InterfacePPP*)i, this, "con" ); | 28 | con = new ConnectWidget( (InterfacePPP*)i, this, "con" ); |
25 | con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, | 29 | con->setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, |
26 | QSizePolicy::Fixed) ); | 30 | QSizePolicy::Fixed) ); |
27 | 31 | ||
28 | macAddressLabel->hide(); | 32 | macAddressLabel->hide(); |
29 | subnetMaskLabel->hide(); | 33 | subnetMaskLabel->hide(); |
30 | broadcastLabel->hide(); | 34 | broadcastLabel->hide(); |
31 | TextLabel23->hide(); | 35 | TextLabel23->hide(); |
32 | TextLabel21->hide(); | 36 | TextLabel21->hide(); |
33 | TextLabel24->hide(); | 37 | TextLabel24->hide(); |
34 | 38 | ||
35 | InterfaceInformationLayout->addWidget( con, 1, 0 ); | 39 | InterfaceInformationLayout->addWidget( con, 1, 0 ); |
36 | connect(i, SIGNAL(begin_connect()),con, SLOT(preinit())); | 40 | connect(i, SIGNAL(begin_connect()),con, SLOT(preinit())); |
37 | connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) ); | 41 | connect(i, SIGNAL(hangup_now() ), con, SLOT(cancelbutton() ) ); |
38 | } | 42 | } |
39 | 43 | ||
40 | 44 | ||
41 | 45 | ||
diff --git a/noncore/settings/networksettings/ppp/interfaceppp.cpp b/noncore/settings/networksettings/ppp/interfaceppp.cpp index 5cc6f70..7d52f66 100644 --- a/noncore/settings/networksettings/ppp/interfaceppp.cpp +++ b/noncore/settings/networksettings/ppp/interfaceppp.cpp | |||
@@ -1,174 +1,178 @@ | |||
1 | #include "auth.h" | ||
2 | #include "interfaceppp.h" | ||
3 | #include "modem.h" | ||
4 | #include "pppdata.h" | ||
5 | |||
6 | /* OPIE */ | ||
7 | #include <opie2/odebug.h> | ||
8 | using namespace Opie::Core; | ||
1 | 9 | ||
10 | /* QT */ | ||
2 | #include <qmessagebox.h> | 11 | #include <qmessagebox.h> |
3 | #include <qlayout.h> | 12 | #include <qlayout.h> |
4 | #include <qlineedit.h> | 13 | #include <qlineedit.h> |
5 | #include <qlabel.h> | 14 | #include <qlabel.h> |
6 | 15 | ||
7 | #include "auth.h" | ||
8 | #include "interfaceppp.h" | ||
9 | #include "modem.h" | ||
10 | #include "pppdata.h" | ||
11 | |||
12 | InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) | 16 | InterfacePPP::InterfacePPP(QObject *parent, const char *name, bool status) |
13 | : Interface(parent, name, status), | 17 | : Interface(parent, name, status), |
14 | _modemPtr(0), | 18 | _modemPtr(0), |
15 | _dataPtr(0) | 19 | _dataPtr(0) |
16 | { | 20 | { |
17 | odebug << "InterfacePPP::InterfacePPP(" << oendl; | 21 | odebug << "InterfacePPP::InterfacePPP(" << oendl; |
18 | } | 22 | } |
19 | 23 | ||
20 | PPPData* InterfacePPP::data()const | 24 | PPPData* InterfacePPP::data()const |
21 | { | 25 | { |
22 | if (!_dataPtr){ | 26 | if (!_dataPtr){ |
23 | odebug << "creating new Data obj" << oendl; | 27 | odebug << "creating new Data obj" << oendl; |
24 | _dataPtr = new PPPData(); | 28 | _dataPtr = new PPPData(); |
25 | _dataPtr->setDevice( getInterfaceName() ); | 29 | _dataPtr->setDevice( getInterfaceName() ); |
26 | _dataPtr->setAccount( getHardwareName() ); | 30 | _dataPtr->setAccount( getHardwareName() ); |
27 | } | 31 | } |
28 | return _dataPtr; | 32 | return _dataPtr; |
29 | } | 33 | } |
30 | 34 | ||
31 | Modem* InterfacePPP::modem()const | 35 | Modem* InterfacePPP::modem()const |
32 | { | 36 | { |
33 | if (!_modemPtr){ | 37 | if (!_modemPtr){ |
34 | odebug << "creating new modem obj" << oendl; | 38 | odebug << "creating new modem obj" << oendl; |
35 | _modemPtr = new Modem( data() ); | 39 | _modemPtr = new Modem( data() ); |
36 | } | 40 | } |
37 | return _modemPtr; | 41 | return _modemPtr; |
38 | } | 42 | } |
39 | 43 | ||
40 | bool InterfacePPP::refresh() | 44 | bool InterfacePPP::refresh() |
41 | { | 45 | { |
42 | odebug << "InterfacePPP::refresh()" << oendl; | 46 | odebug << "InterfacePPP::refresh()" << oendl; |
43 | QString old = getInterfaceName(); | 47 | QString old = getInterfaceName(); |
44 | setInterfaceName( modem()->pppDevice() ); | 48 | setInterfaceName( modem()->pppDevice() ); |
45 | 49 | ||
46 | (void)Interface::refresh(); | 50 | (void)Interface::refresh(); |
47 | 51 | ||
48 | setInterfaceName( old ); | 52 | setInterfaceName( old ); |
49 | emit updateInterface(this); | 53 | emit updateInterface(this); |
50 | 54 | ||
51 | return true; | 55 | return true; |
52 | } | 56 | } |
53 | 57 | ||
54 | void InterfacePPP::start() | 58 | void InterfacePPP::start() |
55 | { | 59 | { |
56 | odebug << "InterfacePPP::start" << oendl; | 60 | odebug << "InterfacePPP::start" << oendl; |
57 | 61 | ||
58 | if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) { | 62 | if (data()->password().isEmpty() && !data()->storedUsername().isEmpty() ) { |
59 | 63 | ||
60 | QDialog mb( 0, "Dialog", true ); | 64 | QDialog mb( 0, "Dialog", true ); |
61 | mb.setCaption( tr( "No password" ) ); | 65 | mb.setCaption( tr( "No password" ) ); |
62 | QVBoxLayout layout( &mb ); | 66 | QVBoxLayout layout( &mb ); |
63 | QLabel text ( &mb ); | 67 | QLabel text ( &mb ); |
64 | text.setText( tr("Username defined but no password\n Please enter a password") ); | 68 | text.setText( tr("Username defined but no password\n Please enter a password") ); |
65 | QLineEdit lineedit( &mb ); | 69 | QLineEdit lineedit( &mb ); |
66 | lineedit.setEchoMode( QLineEdit::Password ); | 70 | lineedit.setEchoMode( QLineEdit::Password ); |
67 | layout.addWidget( &text ); | 71 | layout.addWidget( &text ); |
68 | layout.addWidget( &lineedit ); | 72 | layout.addWidget( &lineedit ); |
69 | if ( mb.exec() == QDialog::Accepted ) { | 73 | if ( mb.exec() == QDialog::Accepted ) { |
70 | data()->setPassword( lineedit.text() ); | 74 | data()->setPassword( lineedit.text() ); |
71 | } | 75 | } |
72 | } | 76 | } |
73 | 77 | ||
74 | QFileInfo info(pppdPath()); | 78 | QFileInfo info(pppdPath()); |
75 | 79 | ||
76 | if(!info.exists()){ | 80 | if(!info.exists()){ |
77 | QMessageBox::warning(0, tr("Error"), | 81 | QMessageBox::warning(0, tr("Error"), |
78 | QObject::tr("<qt>Cannot find the PPP daemon!<br>" | 82 | QObject::tr("<qt>Cannot find the PPP daemon!<br>" |
79 | "Make sure that pppd is installed and " | 83 | "Make sure that pppd is installed and " |
80 | "that you have entered the correct path.</qt>")); | 84 | "that you have entered the correct path.</qt>")); |
81 | return; | 85 | return; |
82 | } | 86 | } |
83 | //#if 0 | 87 | //#if 0 |
84 | if(!info.isExecutable()){ | 88 | if(!info.isExecutable()){ |
85 | 89 | ||
86 | QString string; | 90 | QString string; |
87 | string = QObject::tr( "<qt>Cannot execute:<br> %1<br>" | 91 | string = QObject::tr( "<qt>Cannot execute:<br> %1<br>" |
88 | "Please make sure that you have given " | 92 | "Please make sure that you have given " |
89 | "setuid permission and that " | 93 | "setuid permission and that " |
90 | "pppd is executable.<br>").arg(pppdPath()); | 94 | "pppd is executable.<br>").arg(pppdPath()); |
91 | QMessageBox::warning(0, tr("Error"), string); | 95 | QMessageBox::warning(0, tr("Error"), string); |
92 | return; | 96 | return; |
93 | 97 | ||
94 | } | 98 | } |
95 | //#endif | 99 | //#endif |
96 | 100 | ||
97 | QFileInfo info2(data()->modemDevice()); | 101 | QFileInfo info2(data()->modemDevice()); |
98 | 102 | ||
99 | if(!info2.exists()){ | 103 | if(!info2.exists()){ |
100 | QString string; | 104 | QString string; |
101 | string = QObject::tr( "<qt>Cannot find:<br> %1<br>" | 105 | string = QObject::tr( "<qt>Cannot find:<br> %1<br>" |
102 | "Please make sure you have setup " | 106 | "Please make sure you have setup " |
103 | "your modem device properly " | 107 | "your modem device properly " |
104 | "and/or adjust the location of the modem device on " | 108 | "and/or adjust the location of the modem device on " |
105 | "the modem tab of " | 109 | "the modem tab of " |
106 | "the setup dialog.</qt>").arg(data()->modemDevice()); | 110 | "the setup dialog.</qt>").arg(data()->modemDevice()); |
107 | QMessageBox::warning(0, tr("Error"), string); | 111 | QMessageBox::warning(0, tr("Error"), string); |
108 | return; | 112 | return; |
109 | } | 113 | } |
110 | 114 | ||
111 | // if this is a PAP or CHAP account, ensure that username is | 115 | // if this is a PAP or CHAP account, ensure that username is |
112 | // supplied | 116 | // supplied |
113 | if(data()->authMethod() == AUTH_PAP || | 117 | if(data()->authMethod() == AUTH_PAP || |
114 | data()->authMethod() == AUTH_CHAP || | 118 | data()->authMethod() == AUTH_CHAP || |
115 | data()->authMethod() == AUTH_PAPCHAP ) { | 119 | data()->authMethod() == AUTH_PAPCHAP ) { |
116 | if(false){ //FIXME: ID_Edit->text().isEmpty()) { | 120 | if(false){ //FIXME: ID_Edit->text().isEmpty()) { |
117 | QMessageBox::warning(0,tr("Error"), | 121 | QMessageBox::warning(0,tr("Error"), |
118 | QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); | 122 | QObject::tr("<qt>You have selected the authentication method PAP or CHAP. This requires that you supply a username and a password!</qt>")); |
119 | // FIXME: return; | 123 | // FIXME: return; |
120 | } else { | 124 | } else { |
121 | if(!modem()->setSecret(data()->authMethod(), | 125 | if(!modem()->setSecret(data()->authMethod(), |
122 | PPPData::encodeWord(data()->storedUsername()), | 126 | PPPData::encodeWord(data()->storedUsername()), |
123 | PPPData::encodeWord(data()->password())) | 127 | PPPData::encodeWord(data()->password())) |
124 | ) { | 128 | ) { |
125 | QString s; | 129 | QString s; |
126 | s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>" | 130 | s = QObject::tr("<qt>Cannot create PAP/CHAP authentication<br>" |
127 | "file \"%1\"</qt>").arg(PAP_AUTH_FILE); | 131 | "file \"%1\"</qt>").arg(PAP_AUTH_FILE); |
128 | QMessageBox::warning(0, tr("Error"), s); | 132 | QMessageBox::warning(0, tr("Error"), s); |
129 | return; | 133 | return; |
130 | } | 134 | } |
131 | } | 135 | } |
132 | } | 136 | } |
133 | 137 | ||
134 | if (data()->phonenumber().isEmpty()) { | 138 | if (data()->phonenumber().isEmpty()) { |
135 | QString s = QObject::tr("You must specify a telephone number!"); | 139 | QString s = QObject::tr("You must specify a telephone number!"); |
136 | QMessageBox::warning(0, tr("Error"), s); | 140 | QMessageBox::warning(0, tr("Error"), s); |
137 | return; | 141 | return; |
138 | } | 142 | } |
139 | 143 | ||
140 | // SEGFAULTS: | 144 | // SEGFAULTS: |
141 | // setStatus( true ); | 145 | // setStatus( true ); |
142 | // emit updateInterface((Interface*) this); | 146 | // emit updateInterface((Interface*) this); |
143 | 147 | ||
144 | emit begin_connect(); | 148 | emit begin_connect(); |
145 | 149 | ||
146 | odebug << "InterfacePPP::start END" << oendl; | 150 | odebug << "InterfacePPP::start END" << oendl; |
147 | } | 151 | } |
148 | 152 | ||
149 | void InterfacePPP::stop() | 153 | void InterfacePPP::stop() |
150 | { | 154 | { |
151 | odebug << "InterfacePPP::stop" << oendl; | 155 | odebug << "InterfacePPP::stop" << oendl; |
152 | // emit hangup_now(); | 156 | // emit hangup_now(); |
153 | status = false; // not connected | 157 | status = false; // not connected |
154 | setStatus( false ); | 158 | setStatus( false ); |
155 | emit hangup_now(); | 159 | emit hangup_now(); |
156 | refresh(); | 160 | refresh(); |
157 | 161 | ||
158 | } | 162 | } |
159 | 163 | ||
160 | void InterfacePPP::save() | 164 | void InterfacePPP::save() |
161 | { | 165 | { |
162 | data()->save(); | 166 | data()->save(); |
163 | emit updateInterface((Interface*) this); | 167 | emit updateInterface((Interface*) this); |
164 | } | 168 | } |
165 | QString InterfacePPP::pppDev()const { | 169 | QString InterfacePPP::pppDev()const { |
166 | return modem()->pppDevice(); | 170 | return modem()->pppDevice(); |
167 | } | 171 | } |
168 | pid_t InterfacePPP::pppPID()const{ | 172 | pid_t InterfacePPP::pppPID()const{ |
169 | return modem()->pppPID(); | 173 | return modem()->pppPID(); |
170 | } | 174 | } |
171 | void InterfacePPP::setPPPDpid( pid_t pid) { | 175 | void InterfacePPP::setPPPDpid( pid_t pid) { |
172 | setStatus( true ); | 176 | setStatus( true ); |
173 | modem()->setPPPDPid( pid ); | 177 | modem()->setPPPDPid( pid ); |
174 | } | 178 | } |
diff --git a/noncore/settings/networksettings/ppp/modem.cpp b/noncore/settings/networksettings/ppp/modem.cpp index f3f2639..5913a22 100644 --- a/noncore/settings/networksettings/ppp/modem.cpp +++ b/noncore/settings/networksettings/ppp/modem.cpp | |||
@@ -1,218 +1,223 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd Front End for the KDE project | 2 | * kPPP: A pppd Front End for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * This file was added by Harri Porten <porten@tu-harburg.de> | 9 | * This file was added by Harri Porten <porten@tu-harburg.de> |
10 | * | 10 | * |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | /* OPIE */ | ||
28 | #include <opie2/odebug.h> | ||
29 | using namespace Opie::Core; | ||
30 | |||
31 | /* STD */ | ||
27 | #include <errno.h> | 32 | #include <errno.h> |
28 | #include <stdlib.h> | 33 | #include <stdlib.h> |
29 | #include <unistd.h> | 34 | #include <unistd.h> |
30 | #include <fcntl.h> | 35 | #include <fcntl.h> |
31 | #include <signal.h> | 36 | #include <signal.h> |
32 | #include <sys/ioctl.h> | 37 | #include <sys/ioctl.h> |
33 | #include <sys/types.h> | 38 | #include <sys/types.h> |
34 | #include <sys/stat.h> | 39 | #include <sys/stat.h> |
35 | #include <setjmp.h> | 40 | #include <setjmp.h> |
36 | #include <regex.h> | 41 | #include <regex.h> |
37 | #include <qregexp.h> | 42 | #include <qregexp.h> |
38 | #include <assert.h> | 43 | #include <assert.h> |
39 | #include <string.h> | 44 | #include <string.h> |
40 | 45 | ||
41 | #ifdef HAVE_RESOLV_H | 46 | #ifdef HAVE_RESOLV_H |
42 | # include <arpa/nameser.h> | 47 | # include <arpa/nameser.h> |
43 | # include <resolv.h> | 48 | # include <resolv.h> |
44 | #endif | 49 | #endif |
45 | 50 | ||
46 | #ifndef _PATH_RESCONF | 51 | #ifndef _PATH_RESCONF |
47 | #define _PATH_RESCONF "/etc/resolv.conf" | 52 | #define _PATH_RESCONF "/etc/resolv.conf" |
48 | #endif | 53 | #endif |
49 | 54 | ||
50 | #define strlcpy strcpy | 55 | #define strlcpy strcpy |
51 | #include "auth.h" | 56 | #include "auth.h" |
52 | #include "modem.h" | 57 | #include "modem.h" |
53 | #include "pppdata.h" | 58 | #include "pppdata.h" |
54 | #define qError qDebug | 59 | #define qError qDebug |
55 | 60 | ||
56 | 61 | ||
57 | #define MY_ASSERT(x) if (!(x)) { \ | 62 | #define MY_ASSERT(x) if (!(x)) { \ |
58 | ofatal << "ASSERT: \"" << #x << "\" in " << __FILE__ << " (" << __LINE__ << ")\n" << oendl; \ | 63 | ofatal << "ASSERT: \"" << #x << "\" in " << __FILE__ << " (" << __LINE__ << ")\n" << oendl; \ |
59 | exit(1); } | 64 | exit(1); } |
60 | 65 | ||
61 | 66 | ||
62 | static sigjmp_buf jmp_buffer; | 67 | static sigjmp_buf jmp_buffer; |
63 | 68 | ||
64 | //Modem *Modem::modem = 0; | 69 | //Modem *Modem::modem = 0; |
65 | 70 | ||
66 | 71 | ||
67 | const char* pppdPath() { | 72 | const char* pppdPath() { |
68 | // wasting a few bytes | 73 | // wasting a few bytes |
69 | static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)]; | 74 | static char buffer[sizeof(PPPDSEARCHPATH)+sizeof(PPPDNAME)]; |
70 | static char *pppdPath = 0L; | 75 | static char *pppdPath = 0L; |
71 | char *p; | 76 | char *p; |
72 | 77 | ||
73 | if(pppdPath == 0L) { | 78 | if(pppdPath == 0L) { |
74 | const char *c = PPPDSEARCHPATH; | 79 | const char *c = PPPDSEARCHPATH; |
75 | while(*c != '\0') { | 80 | while(*c != '\0') { |
76 | while(*c == ':') | 81 | while(*c == ':') |
77 | c++; | 82 | c++; |
78 | p = buffer; | 83 | p = buffer; |
79 | while(*c != '\0' && *c != ':') | 84 | while(*c != '\0' && *c != ':') |
80 | *p++ = *c++; | 85 | *p++ = *c++; |
81 | *p = '\0'; | 86 | *p = '\0'; |
82 | strcat(p, "/"); | 87 | strcat(p, "/"); |
83 | strcat(p, PPPDNAME); | 88 | strcat(p, PPPDNAME); |
84 | if(access(buffer, F_OK) == 0) | 89 | if(access(buffer, F_OK) == 0) |
85 | return (pppdPath = buffer); | 90 | return (pppdPath = buffer); |
86 | } | 91 | } |
87 | } | 92 | } |
88 | 93 | ||
89 | return pppdPath; | 94 | return pppdPath; |
90 | } | 95 | } |
91 | 96 | ||
92 | 97 | ||
93 | Modem::Modem( PPPData* pd ) | 98 | Modem::Modem( PPPData* pd ) |
94 | { | 99 | { |
95 | _pppdata = pd; | 100 | _pppdata = pd; |
96 | modemfd = -1; | 101 | modemfd = -1; |
97 | _pppdExitStatus = -1; | 102 | _pppdExitStatus = -1; |
98 | pppdPid = -1; | 103 | pppdPid = -1; |
99 | sn = m_modemDebug = 0L; | 104 | sn = m_modemDebug = 0L; |
100 | data_mode = false; | 105 | data_mode = false; |
101 | modem_is_locked = false; | 106 | modem_is_locked = false; |
102 | lockfile[0] = '\0'; | 107 | lockfile[0] = '\0'; |
103 | device = "/dev/modem"; | 108 | device = "/dev/modem"; |
104 | } | 109 | } |
105 | 110 | ||
106 | 111 | ||
107 | Modem::~Modem() | 112 | Modem::~Modem() |
108 | { | 113 | { |
109 | } | 114 | } |
110 | 115 | ||
111 | 116 | ||
112 | speed_t Modem::modemspeed() { | 117 | speed_t Modem::modemspeed() { |
113 | // convert the string modem speed int the gpppdata object to a t_speed type | 118 | // convert the string modem speed int the gpppdata object to a t_speed type |
114 | // to set the modem. The constants here should all be ifdef'd because | 119 | // to set the modem. The constants here should all be ifdef'd because |
115 | // other systems may not have them | 120 | // other systems may not have them |
116 | int i = _pppdata->speed().toInt()/100; | 121 | int i = _pppdata->speed().toInt()/100; |
117 | 122 | ||
118 | switch(i) { | 123 | switch(i) { |
119 | case 24: | 124 | case 24: |
120 | return B2400; | 125 | return B2400; |
121 | break; | 126 | break; |
122 | case 96: | 127 | case 96: |
123 | return B9600; | 128 | return B9600; |
124 | break; | 129 | break; |
125 | case 192: | 130 | case 192: |
126 | return B19200; | 131 | return B19200; |
127 | break; | 132 | break; |
128 | case 384: | 133 | case 384: |
129 | return B38400; | 134 | return B38400; |
130 | break; | 135 | break; |
131 | #ifdef B57600 | 136 | #ifdef B57600 |
132 | case 576: | 137 | case 576: |
133 | return B57600; | 138 | return B57600; |
134 | break; | 139 | break; |
135 | #endif | 140 | #endif |
136 | 141 | ||
137 | #ifdef B115200 | 142 | #ifdef B115200 |
138 | case 1152: | 143 | case 1152: |
139 | return B115200; | 144 | return B115200; |
140 | break; | 145 | break; |
141 | #endif | 146 | #endif |
142 | 147 | ||
143 | #ifdef B230400 | 148 | #ifdef B230400 |
144 | case 2304: | 149 | case 2304: |
145 | return B230400; | 150 | return B230400; |
146 | break; | 151 | break; |
147 | #endif | 152 | #endif |
148 | 153 | ||
149 | #ifdef B460800 | 154 | #ifdef B460800 |
150 | case 4608: | 155 | case 4608: |
151 | return B460800; | 156 | return B460800; |
152 | break; | 157 | break; |
153 | #endif | 158 | #endif |
154 | 159 | ||
155 | default: | 160 | default: |
156 | return B38400; | 161 | return B38400; |
157 | break; | 162 | break; |
158 | } | 163 | } |
159 | } | 164 | } |
160 | 165 | ||
161 | bool Modem::opentty() { | 166 | bool Modem::opentty() { |
162 | // int flags; | 167 | // int flags; |
163 | 168 | ||
164 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 169 | //begin if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
165 | close(modemfd); | 170 | close(modemfd); |
166 | device = _pppdata->modemDevice(); | 171 | device = _pppdata->modemDevice(); |
167 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { | 172 | if ((modemfd = open(device, O_RDWR|O_NDELAY|O_NOCTTY)) == -1) { |
168 | odebug << "error opening modem device !" << oendl; | 173 | odebug << "error opening modem device !" << oendl; |
169 | errmsg = QObject::tr("Unable to open modem."); | 174 | errmsg = QObject::tr("Unable to open modem."); |
170 | return false; | 175 | return false; |
171 | } | 176 | } |
172 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { | 177 | //bend if((modemfd = Requester::rq->openModem(gpppdata.modemDevice()))<0) { |
173 | //} | 178 | //} |
174 | 179 | ||
175 | #if 0 | 180 | #if 0 |
176 | if(_pppdata->UseCDLine()) { | 181 | if(_pppdata->UseCDLine()) { |
177 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { | 182 | if(ioctl(modemfd, TIOCMGET, &flags) == -1) { |
178 | errmsg = QObject::tr("Unable to detect state of CD line."); | 183 | errmsg = QObject::tr("Unable to detect state of CD line."); |
179 | ::close(modemfd); | 184 | ::close(modemfd); |
180 | modemfd = -1; | 185 | modemfd = -1; |
181 | return false; | 186 | return false; |
182 | } | 187 | } |
183 | if ((flags&TIOCM_CD) == 0) { | 188 | if ((flags&TIOCM_CD) == 0) { |
184 | errmsg = QObject::tr("The modem is not ready."); | 189 | errmsg = QObject::tr("The modem is not ready."); |
185 | ::close(modemfd); | 190 | ::close(modemfd); |
186 | modemfd = -1; | 191 | modemfd = -1; |
187 | return false; | 192 | return false; |
188 | } | 193 | } |
189 | } | 194 | } |
190 | #endif | 195 | #endif |
191 | 196 | ||
192 | tcdrain (modemfd); | 197 | tcdrain (modemfd); |
193 | tcflush (modemfd, TCIOFLUSH); | 198 | tcflush (modemfd, TCIOFLUSH); |
194 | 199 | ||
195 | if(tcgetattr(modemfd, &tty) < 0){ | 200 | if(tcgetattr(modemfd, &tty) < 0){ |
196 | // this helps in some cases | 201 | // this helps in some cases |
197 | tcsendbreak(modemfd, 0); | 202 | tcsendbreak(modemfd, 0); |
198 | sleep(1); | 203 | sleep(1); |
199 | if(tcgetattr(modemfd, &tty) < 0){ | 204 | if(tcgetattr(modemfd, &tty) < 0){ |
200 | errmsg = QObject::tr("The modem is busy."); | 205 | errmsg = QObject::tr("The modem is busy."); |
201 | ::close(modemfd); | 206 | ::close(modemfd); |
202 | modemfd = -1; | 207 | modemfd = -1; |
203 | return false; | 208 | return false; |
204 | } | 209 | } |
205 | } | 210 | } |
206 | 211 | ||
207 | memset(&initial_tty,'\0',sizeof(initial_tty)); | 212 | memset(&initial_tty,'\0',sizeof(initial_tty)); |
208 | 213 | ||
209 | initial_tty = tty; | 214 | initial_tty = tty; |
210 | 215 | ||
211 | tty.c_cc[VMIN] = 0; // nonblocking | 216 | tty.c_cc[VMIN] = 0; // nonblocking |
212 | tty.c_cc[VTIME] = 0; | 217 | tty.c_cc[VTIME] = 0; |
213 | tty.c_oflag = 0; | 218 | tty.c_oflag = 0; |
214 | tty.c_lflag = 0; | 219 | tty.c_lflag = 0; |
215 | 220 | ||
216 | tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); | 221 | tty.c_cflag &= ~(CSIZE | CSTOPB | PARENB); |
217 | tty.c_cflag |= CS8 | CREAD; | 222 | tty.c_cflag |= CS8 | CREAD; |
218 | tty.c_cflag |= CLOCAL; // ignore modem status lines | 223 | tty.c_cflag |= CLOCAL; // ignore modem status lines |
diff --git a/noncore/settings/networksettings/ppp/ppp.pro b/noncore/settings/networksettings/ppp/ppp.pro index 62ca2b5..45fa0ee 100644 --- a/noncore/settings/networksettings/ppp/ppp.pro +++ b/noncore/settings/networksettings/ppp/ppp.pro | |||
@@ -1,17 +1,14 @@ | |||
1 | #TEMPLATE = app | ||
2 | # | ||
3 | TEMPLATE = lib | 1 | TEMPLATE = lib |
4 | #CONFIG += qt plugin warn_on | ||
5 | CONFIG += qt plugin warn_on | 2 | CONFIG += qt plugin warn_on |
6 | DESTDIR = $(OPIEDIR)/plugins/networksettings | 3 | DESTDIR = $(OPIEDIR)/plugins/networksettings |
7 | HEADERS = pppmodule.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h chooserwidget.h devices.h | 4 | HEADERS = pppmodule.h modem.h modeminfo.h pppdata.h kpppconfig.h pppdata.h runtests.h general.h modemcmds.h conwindow.h accounts.h connect.h edit.h scriptedit.h pppdargs.h iplined.h pwentry.h pppconfig.h interfaceinformationppp.h interfaceppp.h authwidget.h chooserwidget.h devices.h |
8 | SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp chooserwidget.cpp devices.cpp | 5 | SOURCES = pppmodule.cpp modem.cpp modeminfo.cpp pppdata.cpp runtests.cpp general.cpp modemcmds.cpp conwindow.cpp accounts.cpp connect.cpp edit.cpp scriptedit.cpp pppdargs.cpp iplined.cpp pwentry.cpp pppconfig.cpp interfaceinformationppp.cpp interfaceppp.cpp authwidget.cpp chooserwidget.cpp devices.cpp |
9 | INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ | 6 | INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ |
10 | DEPENDPATH+= $(OPIEDIR)/include | 7 | DEPENDPATH+= $(OPIEDIR)/include |
11 | LIBS += -lqpe -L../interfaces/ -linterfaces | 8 | LIBS += -lqpe -L../interfaces/ -linterfaces |
12 | TARGET = kppp | 9 | TARGET = kppp |
13 | VERSION = 1.0.0 | 10 | VERSION = 1.0.0 |
14 | 11 | ||
15 | 12 | ||
16 | 13 | ||
17 | include ( $(OPIEDIR)/include.pro ) | 14 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/settings/networksettings/ppp/pppconfig.cpp b/noncore/settings/networksettings/ppp/pppconfig.cpp index a8c99fd..d2a1490 100644 --- a/noncore/settings/networksettings/ppp/pppconfig.cpp +++ b/noncore/settings/networksettings/ppp/pppconfig.cpp | |||
@@ -1,75 +1,79 @@ | |||
1 | |||
2 | #include <qlayout.h> | ||
3 | #include <qmessagebox.h> | ||
4 | #include <qtabwidget.h> | ||
5 | |||
6 | #include "accounts.h" | 1 | #include "accounts.h" |
7 | #include "devices.h" | 2 | #include "devices.h" |
8 | #include "general.h" | 3 | #include "general.h" |
9 | #include "interfaceppp.h" | 4 | #include "interfaceppp.h" |
10 | #include "modem.h" | 5 | #include "modem.h" |
11 | #include "pppconfig.h" | 6 | #include "pppconfig.h" |
12 | #include "pppdata.h" | 7 | #include "pppdata.h" |
13 | #include "runtests.h" | 8 | #include "runtests.h" |
14 | 9 | ||
10 | /* OPIE */ | ||
11 | #include <opie2/odebug.h> | ||
12 | using namespace Opie::Core; | ||
13 | |||
14 | /* QT */ | ||
15 | #include <qlayout.h> | ||
16 | #include <qmessagebox.h> | ||
17 | #include <qtabwidget.h> | ||
18 | |||
15 | PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent, | 19 | PPPConfigWidget::PPPConfigWidget( InterfacePPP* iface, QWidget *parent, |
16 | const char *name, | 20 | const char *name, |
17 | bool modal, WFlags fl ) | 21 | bool modal, WFlags fl ) |
18 | : QDialog(parent, name, modal, fl) | 22 | : QDialog(parent, name, modal, fl) |
19 | { | 23 | { |
20 | setCaption(tr("Configure Modem")); | 24 | setCaption(tr("Configure Modem")); |
21 | int result = runTests(); | 25 | int result = runTests(); |
22 | if(result == TEST_CRITICAL){ | 26 | if(result == TEST_CRITICAL){ |
23 | QMessageBox::critical(0, tr("Modem failure"), tr("A critical failure appeard while testing the modem") ); | 27 | QMessageBox::critical(0, tr("Modem failure"), tr("A critical failure appeard while testing the modem") ); |
24 | return; | 28 | return; |
25 | } | 29 | } |
26 | 30 | ||
27 | interface = iface; | 31 | interface = iface; |
28 | odebug << "PPPConfigWidget::PPPConfigWidget" << oendl; | 32 | odebug << "PPPConfigWidget::PPPConfigWidget" << oendl; |
29 | odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; | 33 | odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; |
30 | 34 | ||
31 | odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; | 35 | odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; |
32 | 36 | ||
33 | 37 | ||
34 | QVBoxLayout *layout = new QVBoxLayout( this ); | 38 | QVBoxLayout *layout = new QVBoxLayout( this ); |
35 | layout->setSpacing( 0 ); | 39 | layout->setSpacing( 0 ); |
36 | layout->setMargin( 1 ); | 40 | layout->setMargin( 1 ); |
37 | tabWindow = new QTabWidget( this, "tabWidget" ); | 41 | tabWindow = new QTabWidget( this, "tabWidget" ); |
38 | layout->addWidget( tabWindow ); | 42 | layout->addWidget( tabWindow ); |
39 | 43 | ||
40 | accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp ); | 44 | accounts = new AccountWidget( interface->data(), tabWindow, "accounts", Qt::WStyle_ContextHelp ); |
41 | tabWindow->addTab( accounts, tr("&Accounts") ); | 45 | tabWindow->addTab( accounts, tr("&Accounts") ); |
42 | devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp ); | 46 | devices = new DevicesWidget( interface, tabWindow, "devices", Qt::WStyle_ContextHelp ); |
43 | tabWindow->addTab( devices, tr("&Devices") ); | 47 | tabWindow->addTab( devices, tr("&Devices") ); |
44 | 48 | ||
45 | //OLD: | 49 | //OLD: |
46 | // modem1 = new ModemWidget( interface, tabWindow, "modem1" ); | 50 | // modem1 = new ModemWidget( interface, tabWindow, "modem1" ); |
47 | // tabWindow->addTab( modem1, tr("&Device") ); | 51 | // tabWindow->addTab( modem1, tr("&Device") ); |
48 | // modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); | 52 | // modem2 = new ModemWidget2( interface, tabWindow, "modem2" ); |
49 | // tabWindow->addTab( modem2, tr("&Modem") ); | 53 | // tabWindow->addTab( modem2, tr("&Modem") ); |
50 | 54 | ||
51 | } | 55 | } |
52 | 56 | ||
53 | 57 | ||
54 | PPPConfigWidget::~PPPConfigWidget() | 58 | PPPConfigWidget::~PPPConfigWidget() |
55 | { | 59 | { |
56 | 60 | ||
57 | } | 61 | } |
58 | 62 | ||
59 | void PPPConfigWidget::accept() | 63 | void PPPConfigWidget::accept() |
60 | { | 64 | { |
61 | odebug << "PPPConfigWidget::accept" << oendl; | 65 | odebug << "PPPConfigWidget::accept" << oendl; |
62 | odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; | 66 | odebug << " _pppdata->accname >" << interface->data()->accname().latin1() << "<" << oendl; |
63 | odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; | 67 | odebug << " interface->getHardwareName >" << interface->getHardwareName().latin1() << "<" << oendl; |
64 | interface->setInterfaceName( interface->data()->devname() ); | 68 | interface->setInterfaceName( interface->data()->devname() ); |
65 | interface->setHardwareName( interface->data()->accname() ); | 69 | interface->setHardwareName( interface->data()->accname() ); |
66 | interface->save(); | 70 | interface->save(); |
67 | QDialog::accept(); | 71 | QDialog::accept(); |
68 | } | 72 | } |
69 | 73 | ||
70 | 74 | ||
71 | void PPPConfigWidget::reject() | 75 | void PPPConfigWidget::reject() |
72 | { | 76 | { |
73 | interface->data()->cancel(); | 77 | interface->data()->cancel(); |
74 | QDialog::reject(); | 78 | QDialog::reject(); |
75 | } | 79 | } |
diff --git a/noncore/settings/networksettings/ppp/pppdata.cpp b/noncore/settings/networksettings/ppp/pppdata.cpp index 567ccf8..eb03ef4 100644 --- a/noncore/settings/networksettings/ppp/pppdata.cpp +++ b/noncore/settings/networksettings/ppp/pppdata.cpp | |||
@@ -1,229 +1,231 @@ | |||
1 | /* | 1 | /* |
2 | * kPPP: A pppd front end for the KDE project | 2 | * kPPP: A pppd front end for the KDE project |
3 | * | 3 | * |
4 | * $Id$ | 4 | * $Id$ |
5 | * | 5 | * |
6 | * Copyright (C) 1997 Bernd Johannes Wuebben | 6 | * Copyright (C) 1997 Bernd Johannes Wuebben |
7 | * wuebben@math.cornell.edu | 7 | * wuebben@math.cornell.edu |
8 | * | 8 | * |
9 | * based on EzPPP: | 9 | * based on EzPPP: |
10 | * Copyright (C) 1997 Jay Painter | 10 | * Copyright (C) 1997 Jay Painter |
11 | * | 11 | * |
12 | * This program is free software; you can redistribute it and/or | 12 | * This program is free software; you can redistribute it and/or |
13 | * modify it under the terms of the GNU Library General Public | 13 | * modify it under the terms of the GNU Library General Public |
14 | * License as published by the Free Software Foundation; either | 14 | * License as published by the Free Software Foundation; either |
15 | * version 2 of the License, or (at your option) any later version. | 15 | * version 2 of the License, or (at your option) any later version. |
16 | * | 16 | * |
17 | * This program is distributed in the hope that it will be useful, | 17 | * This program is distributed in the hope that it will be useful, |
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
20 | * Library General Public License for more details. | 20 | * Library General Public License for more details. |
21 | * | 21 | * |
22 | * You should have received a copy of the GNU Library General Public | 22 | * You should have received a copy of the GNU Library General Public |
23 | * License along with this program; if not, write to the Free | 23 | * License along with this program; if not, write to the Free |
24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | 24 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include "pppdata.h" | 27 | #include "pppdata.h" |
28 | #include "runtests.h" | 28 | #include "runtests.h" |
29 | //#include "devices.h" | 29 | |
30 | //#include <klocale.h> | 30 | /* OPIE */ |
31 | #include <opie2/odebug.h> | ||
31 | #include <qpe/config.h> | 32 | #include <qpe/config.h> |
33 | using namespace Opie::Core; | ||
34 | |||
35 | /* QT */ | ||
32 | #include <qmessagebox.h> | 36 | #include <qmessagebox.h> |
33 | #include <qapplication.h> | 37 | #include <qapplication.h> |
34 | // #include <klocale.h> | 38 | |
35 | // #include <kconfig.h> | 39 | /* STD */ |
36 | // #include <kmessagebox.h> | ||
37 | // #include <kapplication.h> | ||
38 | #include <assert.h> | 40 | #include <assert.h> |
39 | 41 | ||
40 | #define SEPARATOR -sseepp- | 42 | #define SEPARATOR -sseepp- |
41 | #define SEP QString("%1SEPARATOR%1") | 43 | #define SEP QString("%1SEPARATOR%1") |
42 | 44 | ||
43 | PPPData::PPPData() | 45 | PPPData::PPPData() |
44 | : passwd(""), | 46 | : passwd(""), |
45 | _modemName(""), | 47 | _modemName(""), |
46 | highcount(-1), // start out with no entries | 48 | highcount(-1), // start out with no entries |
47 | highcountdev(-1), // start out with no entries | 49 | highcountdev(-1), // start out with no entries |
48 | // caccount(-1), // set the current account index also | 50 | // caccount(-1), // set the current account index also |
49 | suidprocessid(-1), // process ID of setuid child | 51 | suidprocessid(-1), // process ID of setuid child |
50 | pppdisrunning(false), | 52 | pppdisrunning(false), |
51 | pppderror(0) | 53 | pppderror(0) |
52 | { | 54 | { |
53 | highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; | 55 | highcount = readNumConfig(GENERAL_GRP, NUMACCOUNTS_KEY, 0) - 1; |
54 | highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1; | 56 | highcountdev = readNumConfig(GENERAL_GRP, NUMDEVICES_KEY, 0) - 1; |
55 | Config cfg = config(); | 57 | Config cfg = config(); |
56 | cfg.setGroup(GENERAL_GRP); | 58 | cfg.setGroup(GENERAL_GRP); |
57 | accountList = cfg.readListEntry(ACCOUNT_LIST, ',' ); | 59 | accountList = cfg.readListEntry(ACCOUNT_LIST, ',' ); |
58 | deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' ); | 60 | deviceList = cfg.readListEntry(DEVICESNAMES_LIST, ',' ); |
59 | odebug << "PPPData::PPPData has a accountList " << accountList.join("---").latin1() << "" << oendl; | 61 | odebug << "PPPData::PPPData has a accountList " << accountList.join("---").latin1() << "" << oendl; |
60 | odebug << "PPPData::PPPData has a deviceList " << deviceList.join("---").latin1() << "" << oendl; | 62 | odebug << "PPPData::PPPData has a deviceList " << deviceList.join("---").latin1() << "" << oendl; |
61 | 63 | ||
62 | // if (highcount > MAX_ACCOUNTS) | 64 | // if (highcount > MAX_ACCOUNTS) |
63 | // highcount = MAX_ACCOUNTS; | 65 | // highcount = MAX_ACCOUNTS; |
64 | 66 | ||
65 | // if(highcount >= 0 && defaultAccount().isEmpty()) { | 67 | // if(highcount >= 0 && defaultAccount().isEmpty()) { |
66 | // setAccountbyIndex(0); | 68 | // setAccountbyIndex(0); |
67 | // setDefaultAccount(accname()); | 69 | // setDefaultAccount(accname()); |
68 | // } else if(!setAccount(defaultAccount())) | 70 | // } else if(!setAccount(defaultAccount())) |
69 | setDefaultAccount(accname()); | 71 | setDefaultAccount(accname()); |
70 | 72 | ||
71 | // start out with internal debugging disabled | 73 | // start out with internal debugging disabled |
72 | // the user is still free to specify `debug' on his own | 74 | // the user is still free to specify `debug' on his own |
73 | setPPPDebug(false); | 75 | setPPPDebug(false); |
74 | 76 | ||
75 | ::pppdVersion(&pppdVer, &pppdMod, &pppdPatch); | 77 | ::pppdVersion(&pppdVer, &pppdMod, &pppdPatch); |
76 | 78 | ||
77 | } | 79 | } |
78 | 80 | ||
79 | Config PPPData::config() | 81 | Config PPPData::config() |
80 | { | 82 | { |
81 | return Config("NetworkSetupPPP"); | 83 | return Config("NetworkSetupPPP"); |
82 | } | 84 | } |
83 | 85 | ||
84 | // | 86 | // |
85 | // save configuration | 87 | // save configuration |
86 | // | 88 | // |
87 | void PPPData::save() | 89 | void PPPData::save() |
88 | { | 90 | { |
89 | odebug << "PPPData saving data" << oendl; | 91 | odebug << "PPPData saving data" << oendl; |
90 | writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); | 92 | writeConfig(GENERAL_GRP, NUMACCOUNTS_KEY, count()); |
91 | writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1); | 93 | writeConfig(GENERAL_GRP, NUMDEVICES_KEY, highcountdev + 1); |
92 | QString key; | 94 | QString key; |
93 | QStringList keys; | 95 | QStringList keys; |
94 | Config cfg = config(); | 96 | Config cfg = config(); |
95 | cfg.setGroup(GENERAL_GRP); | 97 | cfg.setGroup(GENERAL_GRP); |
96 | cfg.writeEntry(ACCOUNT_LIST, accountList, ',' ); | 98 | cfg.writeEntry(ACCOUNT_LIST, accountList, ',' ); |
97 | cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' ); | 99 | cfg.writeEntry(DEVICESNAMES_LIST, deviceList, ',' ); |
98 | 100 | ||
99 | for( QMap<QString,QString>::Iterator it = stringEntries.begin(); | 101 | for( QMap<QString,QString>::Iterator it = stringEntries.begin(); |
100 | it != stringEntries.end(); ++it ){ | 102 | it != stringEntries.end(); ++it ){ |
101 | QString val = it.data(); | 103 | QString val = it.data(); |
102 | key = it.key(); | 104 | key = it.key(); |
103 | // odebug << "saving " << key.latin1() << " -> " << val.latin1() << "" << oendl; | 105 | // odebug << "saving " << key.latin1() << " -> " << val.latin1() << "" << oendl; |
104 | keys = QStringList::split( "SEPARATOR", key ); | 106 | keys = QStringList::split( "SEPARATOR", key ); |
105 | //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< value >" << val.latin1() << "<" << oendl; | 107 | //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< value >" << val.latin1() << "<" << oendl; |
106 | cfg.setGroup(keys[0]); | 108 | cfg.setGroup(keys[0]); |
107 | cfg.writeEntry(keys[1], val); | 109 | cfg.writeEntry(keys[1], val); |
108 | } | 110 | } |
109 | for( QMap<QString,int>::Iterator it = intEntries.begin(); | 111 | for( QMap<QString,int>::Iterator it = intEntries.begin(); |
110 | it != intEntries.end(); ++it ){ | 112 | it != intEntries.end(); ++it ){ |
111 | int val = it.data(); | 113 | int val = it.data(); |
112 | key = it.key(); | 114 | key = it.key(); |
113 | // odebug << "saving " << key.latin1() << " -> " << val << "" << oendl; | 115 | // odebug << "saving " << key.latin1() << " -> " << val << "" << oendl; |
114 | keys = QStringList::split( "SEPARATOR", key ); | 116 | keys = QStringList::split( "SEPARATOR", key ); |
115 | //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< val " << val << "" << oendl; | 117 | //odebug << "group >" << keys[0].latin1() << "< key >" << keys[1].latin1() << "< val " << val << "" << oendl; |
116 | cfg.setGroup(keys[0]); | 118 | cfg.setGroup(keys[0]); |
117 | cfg.writeEntry(keys[1], val); | 119 | cfg.writeEntry(keys[1], val); |
118 | } | 120 | } |
119 | for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); | 121 | for( QMap<QString,QStringList>::Iterator it = listEntries.begin(); |
120 | it != listEntries.end(); ++it ){ | 122 | it != listEntries.end(); ++it ){ |
121 | QStringList val = it.data(); | 123 | QStringList val = it.data(); |
122 | key = it.key(); | 124 | key = it.key(); |
123 | QChar sep = sepEntries[key]; | 125 | QChar sep = sepEntries[key]; |
124 | // odebug << "saving " << key.latin1() << " -> " << val.join(sep).latin1() << "" << oendl; | 126 | // odebug << "saving " << key.latin1() << " -> " << val.join(sep).latin1() << "" << oendl; |
125 | keys = QStringList::split( "SEPARATOR", key ); | 127 | keys = QStringList::split( "SEPARATOR", key ); |
126 | cfg.setGroup(keys[0]); | 128 | cfg.setGroup(keys[0]); |
127 | cfg.writeEntry(keys[1], val, sep); | 129 | cfg.writeEntry(keys[1], val, sep); |
128 | } | 130 | } |
129 | } | 131 | } |
130 | 132 | ||
131 | 133 | ||
132 | // | 134 | // |
133 | // cancel changes | 135 | // cancel changes |
134 | // | 136 | // |
135 | void PPPData::cancel() { | 137 | void PPPData::cancel() { |
136 | stringEntries.clear(); | 138 | stringEntries.clear(); |
137 | intEntries.clear(); | 139 | intEntries.clear(); |
138 | listEntries.clear(); | 140 | listEntries.clear(); |
139 | } | 141 | } |
140 | 142 | ||
141 | // functions to read/write date to configuration file | 143 | // functions to read/write date to configuration file |
142 | QString PPPData::readConfig(const QString &group, const QString &key, | 144 | QString PPPData::readConfig(const QString &group, const QString &key, |
143 | const QString &defvalue = "") | 145 | const QString &defvalue = "") |
144 | { | 146 | { |
145 | // odebug << "PPPData::readConfig key >" << key.latin1() << "< group >" << group.latin1() << "<" << oendl; | 147 | // odebug << "PPPData::readConfig key >" << key.latin1() << "< group >" << group.latin1() << "<" << oendl; |
146 | QString idx = SEP.arg(group).arg(key); | 148 | QString idx = SEP.arg(group).arg(key); |
147 | if (stringEntries.find(idx) != stringEntries.end()) | 149 | if (stringEntries.find(idx) != stringEntries.end()) |
148 | return stringEntries[idx]; | 150 | return stringEntries[idx]; |
149 | Config cfg = config(); | 151 | Config cfg = config(); |
150 | cfg.setGroup(group); | 152 | cfg.setGroup(group); |
151 | return cfg.readEntry(key, defvalue); | 153 | return cfg.readEntry(key, defvalue); |
152 | } | 154 | } |
153 | 155 | ||
154 | 156 | ||
155 | int PPPData::readNumConfig(const QString &group, const QString &key, | 157 | int PPPData::readNumConfig(const QString &group, const QString &key, |
156 | int defvalue) | 158 | int defvalue) |
157 | { | 159 | { |
158 | QString idx = SEP.arg(group).arg(key); | 160 | QString idx = SEP.arg(group).arg(key); |
159 | if (intEntries.find(idx) != intEntries.end()) | 161 | if (intEntries.find(idx) != intEntries.end()) |
160 | return intEntries[idx]; | 162 | return intEntries[idx]; |
161 | Config cfg = config(); | 163 | Config cfg = config(); |
162 | cfg.setGroup(group); | 164 | cfg.setGroup(group); |
163 | return cfg.readNumEntry(key, defvalue); | 165 | return cfg.readNumEntry(key, defvalue); |
164 | 166 | ||
165 | // if (config) { | 167 | // if (config) { |
166 | // config->setGroup(group); | 168 | // config->setGroup(group); |
167 | // return config->readNumEntry(key, defvalue); | 169 | // return config->readNumEntry(key, defvalue); |
168 | // } else | 170 | // } else |
169 | // return defvalue; | 171 | // return defvalue; |
170 | 172 | ||
171 | } | 173 | } |
172 | 174 | ||
173 | 175 | ||
174 | bool PPPData::readListConfig(const QString &group, const QString &key, | 176 | bool PPPData::readListConfig(const QString &group, const QString &key, |
175 | QStringList &list, char sep) { | 177 | QStringList &list, char sep) { |
176 | list.clear(); | 178 | list.clear(); |
177 | QString idx = SEP.arg(group).arg(key); | 179 | QString idx = SEP.arg(group).arg(key); |
178 | if (listEntries.find(idx) != listEntries.end()){ | 180 | if (listEntries.find(idx) != listEntries.end()){ |
179 | list = listEntries[idx]; | 181 | list = listEntries[idx]; |
180 | return true; | 182 | return true; |
181 | } | 183 | } |
182 | Config cfg = config(); | 184 | Config cfg = config(); |
183 | cfg.setGroup(group); | 185 | cfg.setGroup(group); |
184 | list = cfg.readListEntry(key, sep); | 186 | list = cfg.readListEntry(key, sep); |
185 | if (list.count() > 0) return true; | 187 | if (list.count() > 0) return true; |
186 | return false; | 188 | return false; |
187 | 189 | ||
188 | // if (config) { | 190 | // if (config) { |
189 | // config->setGroup(group); | 191 | // config->setGroup(group); |
190 | // list = config->readListEntry(key, sep); | 192 | // list = config->readListEntry(key, sep); |
191 | // return true; | 193 | // return true; |
192 | // } else | 194 | // } else |
193 | // return false; | 195 | // return false; |
194 | } | 196 | } |
195 | 197 | ||
196 | 198 | ||
197 | void PPPData::writeConfig(const QString &group, const QString &key, | 199 | void PPPData::writeConfig(const QString &group, const QString &key, |
198 | const QString &value) { | 200 | const QString &value) { |
199 | stringEntries.insert( SEP.arg(group).arg(key), value ); | 201 | stringEntries.insert( SEP.arg(group).arg(key), value ); |
200 | // if (config) { | 202 | // if (config) { |
201 | // config->setGroup(group); | 203 | // config->setGroup(group); |
202 | // config->writeEntry(key, value); | 204 | // config->writeEntry(key, value); |
203 | // } | 205 | // } |
204 | } | 206 | } |
205 | 207 | ||
206 | 208 | ||
207 | void PPPData::writeConfig(const QString &group, const QString &key, int value) | 209 | void PPPData::writeConfig(const QString &group, const QString &key, int value) |
208 | { | 210 | { |
209 | intEntries.insert( SEP.arg(group).arg(key), value ); | 211 | intEntries.insert( SEP.arg(group).arg(key), value ); |
210 | // if (config) { | 212 | // if (config) { |
211 | // config->setGroup(group); | 213 | // config->setGroup(group); |
212 | // config->writeEntry(key, value); | 214 | // config->writeEntry(key, value); |
213 | // } | 215 | // } |
214 | } | 216 | } |
215 | 217 | ||
216 | 218 | ||
217 | void PPPData::writeListConfig(const QString &group, const QString &key, | 219 | void PPPData::writeListConfig(const QString &group, const QString &key, |
218 | QStringList &list, char sep) | 220 | QStringList &list, char sep) |
219 | { | 221 | { |
220 | listEntries.insert( SEP.arg(group).arg(key), list ); | 222 | listEntries.insert( SEP.arg(group).arg(key), list ); |
221 | sepEntries.insert( SEP.arg(group).arg(key), sep ); | 223 | sepEntries.insert( SEP.arg(group).arg(key), sep ); |
222 | // if (config) { | 224 | // if (config) { |
223 | // config->setGroup(group); | 225 | // config->setGroup(group); |
224 | // config->writeEntry(key, list, sep); | 226 | // config->writeEntry(key, list, sep); |
225 | // } | 227 | // } |
226 | } | 228 | } |
227 | 229 | ||
228 | 230 | ||
229 | // | 231 | // |
diff --git a/noncore/settings/networksettings/ppp/pppmodule.cpp b/noncore/settings/networksettings/ppp/pppmodule.cpp index 2291e8a..b102a10 100644 --- a/noncore/settings/networksettings/ppp/pppmodule.cpp +++ b/noncore/settings/networksettings/ppp/pppmodule.cpp | |||
@@ -1,203 +1,205 @@ | |||
1 | 1 | ||
2 | #include "modem.h" | 2 | #include "modem.h" |
3 | #include "pppconfig.h" | 3 | #include "pppconfig.h" |
4 | #include "pppmodule.h" | 4 | #include "pppmodule.h" |
5 | #include "pppdata.h" | 5 | #include "pppdata.h" |
6 | #include "interfaceinformationppp.h" | 6 | #include "interfaceinformationppp.h" |
7 | #include "interfaceppp.h" | 7 | #include "interfaceppp.h" |
8 | 8 | ||
9 | /* OPIE */ | 9 | /* OPIE */ |
10 | #include <opie2/odebug.h> | ||
10 | #include <qpe/config.h> | 11 | #include <qpe/config.h> |
11 | #include <qpe/qpeapplication.h> | 12 | #include <qpe/qpeapplication.h> |
13 | using namespace Opie::Core; | ||
12 | 14 | ||
13 | /* QT */ | 15 | /* QT */ |
14 | 16 | ||
15 | /* STD */ | 17 | /* STD */ |
16 | #include <errno.h> | 18 | #include <errno.h> |
17 | #include <signal.h> | 19 | #include <signal.h> |
18 | 20 | ||
19 | // don't polute global namespace | 21 | // don't polute global namespace |
20 | namespace | 22 | namespace |
21 | { | 23 | { |
22 | /* | 24 | /* |
23 | * If network settings is qutting and we've ppp | 25 | * If network settings is qutting and we've ppp |
24 | * devices open we need to save the pid_t the PPData | 26 | * devices open we need to save the pid_t the PPData |
25 | * and the interface number | 27 | * and the interface number |
26 | */ | 28 | */ |
27 | struct Connection | 29 | struct Connection |
28 | { | 30 | { |
29 | pid_t pid; | 31 | pid_t pid; |
30 | QString device; | 32 | QString device; |
31 | QString name; | 33 | QString name; |
32 | }; | 34 | }; |
33 | class InterfaceKeeper | 35 | class InterfaceKeeper |
34 | { | 36 | { |
35 | public: | 37 | public: |
36 | InterfaceKeeper(); | 38 | InterfaceKeeper(); |
37 | ~InterfaceKeeper(); | 39 | ~InterfaceKeeper(); |
38 | 40 | ||
39 | void addInterface( pid_t, const QString& pppDev, const QString& name ); | 41 | void addInterface( pid_t, const QString& pppDev, const QString& name ); |
40 | QMap<QString, Connection> interfaces()const; // will check if still available | 42 | QMap<QString, Connection> interfaces()const; // will check if still available |
41 | private: | 43 | private: |
42 | bool isAvailable( pid_t )const; | 44 | bool isAvailable( pid_t )const; |
43 | QMap<QString, Connection> m_interfaces; | 45 | QMap<QString, Connection> m_interfaces; |
44 | }; | 46 | }; |
45 | } | 47 | } |
46 | 48 | ||
47 | 49 | ||
48 | /** | 50 | /** |
49 | * Constructor, find all of the possible interfaces | 51 | * Constructor, find all of the possible interfaces |
50 | * We also need to restore the state.. it could be that | 52 | * We also need to restore the state.. it could be that |
51 | * an interface was up while closing the application | 53 | * an interface was up while closing the application |
52 | * we need to be able to shut it down... | 54 | * we need to be able to shut it down... |
53 | */ | 55 | */ |
54 | PPPModule::PPPModule() : Module() | 56 | PPPModule::PPPModule() : Module() |
55 | { | 57 | { |
56 | InterfaceKeeper inFace; | 58 | InterfaceKeeper inFace; |
57 | QMap<QString,Connection> running = inFace.interfaces(); | 59 | QMap<QString,Connection> running = inFace.interfaces(); |
58 | QStringList handledInterfaceNames; | 60 | QStringList handledInterfaceNames; |
59 | 61 | ||
60 | QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces(); | 62 | QMap<QString,QString> ifaces = PPPData::getConfiguredInterfaces(); |
61 | QMap<QString,QString>::Iterator it; | 63 | QMap<QString,QString>::Iterator it; |
62 | InterfacePPP *iface; | 64 | InterfacePPP *iface; |
63 | odebug << "getting interfaces" << oendl; | 65 | odebug << "getting interfaces" << oendl; |
64 | for( it = ifaces.begin(); it != ifaces.end(); ++it ) | 66 | for( it = ifaces.begin(); it != ifaces.end(); ++it ) |
65 | { | 67 | { |
66 | odebug << "ifaces " << it.key().latin1() << " " << it.data().latin1() << "" << oendl; | 68 | odebug << "ifaces " << it.key().latin1() << " " << it.data().latin1() << "" << oendl; |
67 | iface = new InterfacePPP( 0, it.key() ); | 69 | iface = new InterfacePPP( 0, it.key() ); |
68 | iface->setHardwareName( it.data() ); | 70 | iface->setHardwareName( it.data() ); |
69 | list.append( (Interface*)iface ); | 71 | list.append( (Interface*)iface ); |
70 | 72 | ||
71 | // check if (*it) is one of the running ifaces | 73 | // check if (*it) is one of the running ifaces |
72 | if ( running.contains( it.data() ) ) | 74 | if ( running.contains( it.data() ) ) |
73 | { | 75 | { |
74 | odebug << "iface is running " << it.key().latin1() << "" << oendl; | 76 | odebug << "iface is running " << it.key().latin1() << "" << oendl; |
75 | handledInterfaceNames << running[it.data()].device; | 77 | handledInterfaceNames << running[it.data()].device; |
76 | iface->setStatus( true ); | 78 | iface->setStatus( true ); |
77 | iface->setPPPDpid( running[it.data()].pid ); | 79 | iface->setPPPDpid( running[it.data()].pid ); |
78 | iface->modem()->setPPPDevice( running[it.data()].device ); | 80 | iface->modem()->setPPPDevice( running[it.data()].device ); |
79 | iface->refresh(); | 81 | iface->refresh(); |
80 | } | 82 | } |
81 | } | 83 | } |
82 | 84 | ||
83 | setHandledInterfaceNames( handledInterfaceNames ); | 85 | setHandledInterfaceNames( handledInterfaceNames ); |
84 | } | 86 | } |
85 | 87 | ||
86 | /** | 88 | /** |
87 | * Delete any interfaces that we own. | 89 | * Delete any interfaces that we own. |
88 | */ | 90 | */ |
89 | PPPModule::~PPPModule() | 91 | PPPModule::~PPPModule() |
90 | { | 92 | { |
91 | odebug << "PPPModule::~PPPModule() " << oendl; | 93 | odebug << "PPPModule::~PPPModule() " << oendl; |
92 | QMap<QString,QString> ifaces; | 94 | QMap<QString,QString> ifaces; |
93 | InterfaceKeeper keeper; | 95 | InterfaceKeeper keeper; |
94 | Interface *i; | 96 | Interface *i; |
95 | for ( i=list.first(); i != 0; i=list.next() ) | 97 | for ( i=list.first(); i != 0; i=list.next() ) |
96 | { | 98 | { |
97 | /* if online save the state */ | 99 | /* if online save the state */ |
98 | if ( i->getStatus() ) | 100 | if ( i->getStatus() ) |
99 | { | 101 | { |
100 | odebug << "Iface " << i->getHardwareName().latin1() << " is still up" << oendl; | 102 | odebug << "Iface " << i->getHardwareName().latin1() << " is still up" << oendl; |
101 | InterfacePPP* ppp = static_cast<InterfacePPP*>(i); | 103 | InterfacePPP* ppp = static_cast<InterfacePPP*>(i); |
102 | keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() ); | 104 | keeper.addInterface( ppp->pppPID(), ppp->pppDev(), ppp->getHardwareName() ); |
103 | } | 105 | } |
104 | ifaces.insert( i->getInterfaceName(), i->getHardwareName() ); | 106 | ifaces.insert( i->getInterfaceName(), i->getHardwareName() ); |
105 | delete i; | 107 | delete i; |
106 | } | 108 | } |
107 | PPPData::setConfiguredInterfaces( ifaces ); | 109 | PPPData::setConfiguredInterfaces( ifaces ); |
108 | } | 110 | } |
109 | 111 | ||
110 | /** | 112 | /** |
111 | * Change the current profile | 113 | * Change the current profile |
112 | */ | 114 | */ |
113 | void PPPModule::setProfile(const QString &newProfile) | 115 | void PPPModule::setProfile(const QString &newProfile) |
114 | { | 116 | { |
115 | profile = newProfile; | 117 | profile = newProfile; |
116 | } | 118 | } |
117 | 119 | ||
118 | /** | 120 | /** |
119 | * get the icon name for this device. | 121 | * get the icon name for this device. |
120 | * @param Interface* can be used in determining the icon. | 122 | * @param Interface* can be used in determining the icon. |
121 | * @return QString the icon name (minus .png, .gif etc) | 123 | * @return QString the icon name (minus .png, .gif etc) |
122 | */ | 124 | */ |
123 | QString PPPModule::getPixmapName(Interface* ) | 125 | QString PPPModule::getPixmapName(Interface* ) |
124 | { | 126 | { |
125 | return "ppp"; | 127 | return "ppp"; |
126 | } | 128 | } |
127 | 129 | ||
128 | /** | 130 | /** |
129 | * Check to see if the interface i is owned by this module. | 131 | * Check to see if the interface i is owned by this module. |
130 | * @param Interface* interface to check against | 132 | * @param Interface* interface to check against |
131 | * @return bool true if i is owned by this module, false otherwise. | 133 | * @return bool true if i is owned by this module, false otherwise. |
132 | */ | 134 | */ |
133 | bool PPPModule::isOwner(Interface *i) | 135 | bool PPPModule::isOwner(Interface *i) |
134 | { | 136 | { |
135 | return list.find( i ) != -1; | 137 | return list.find( i ) != -1; |
136 | } | 138 | } |
137 | 139 | ||
138 | /** | 140 | /** |
139 | * Create, and return the WLANConfigure Module | 141 | * Create, and return the WLANConfigure Module |
140 | * @return QWidget* pointer to this modules configure. | 142 | * @return QWidget* pointer to this modules configure. |
141 | */ | 143 | */ |
142 | QWidget *PPPModule::configure(Interface *i) | 144 | QWidget *PPPModule::configure(Interface *i) |
143 | { | 145 | { |
144 | odebug << "return ModemWidget" << oendl; | 146 | odebug << "return ModemWidget" << oendl; |
145 | PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i, | 147 | PPPConfigWidget *pppconfig = new PPPConfigWidget( (InterfacePPP*)i, |
146 | 0, "PPPConfig", false, | 148 | 0, "PPPConfig", false, |
147 | (Qt::WDestructiveClose | Qt::WStyle_ContextHelp)); | 149 | (Qt::WDestructiveClose | Qt::WStyle_ContextHelp)); |
148 | return pppconfig; | 150 | return pppconfig; |
149 | } | 151 | } |
150 | 152 | ||
151 | /** | 153 | /** |
152 | * Create, and return the Information Module | 154 | * Create, and return the Information Module |
153 | * @return QWidget* pointer to this modules info. | 155 | * @return QWidget* pointer to this modules info. |
154 | */ | 156 | */ |
155 | QWidget *PPPModule::information(Interface *i) | 157 | QWidget *PPPModule::information(Interface *i) |
156 | { | 158 | { |
157 | // We don't have any advanced pppd information widget yet :-D | 159 | // We don't have any advanced pppd information widget yet :-D |
158 | // TODO ^ | 160 | // TODO ^ |
159 | 161 | ||
160 | return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i ); | 162 | return new InterfaceInformationPPP( 0, "InterfaceInformationPPP", i ); |
161 | } | 163 | } |
162 | 164 | ||
163 | /** | 165 | /** |
164 | * Get all active (up or down) interfaces | 166 | * Get all active (up or down) interfaces |
165 | * @return QList<Interface> A list of interfaces that exsist that havn't | 167 | * @return QList<Interface> A list of interfaces that exsist that havn't |
166 | * been called by isOwner() | 168 | * been called by isOwner() |
167 | */ | 169 | */ |
168 | QList<Interface> PPPModule::getInterfaces() | 170 | QList<Interface> PPPModule::getInterfaces() |
169 | { | 171 | { |
170 | // List all of the files in the peer directory | 172 | // List all of the files in the peer directory |
171 | odebug << "PPPModule::getInterfaces" << oendl; | 173 | odebug << "PPPModule::getInterfaces" << oendl; |
172 | return list; | 174 | return list; |
173 | } | 175 | } |
174 | 176 | ||
175 | /** | 177 | /** |
176 | * Attempt to add a new interface as defined by name | 178 | * Attempt to add a new interface as defined by name |
177 | * @param name the name of the type of interface that should be created given | 179 | * @param name the name of the type of interface that should be created given |
178 | * by possibleNewInterfaces(); | 180 | * by possibleNewInterfaces(); |
179 | * @return Interface* NULL if it was unable to be created. | 181 | * @return Interface* NULL if it was unable to be created. |
180 | */ | 182 | */ |
181 | Interface *PPPModule::addNewInterface(const QString &newInterface) | 183 | Interface *PPPModule::addNewInterface(const QString &newInterface) |
182 | { | 184 | { |
183 | 185 | ||
184 | InterfacePPP *ifaceppp; | 186 | InterfacePPP *ifaceppp; |
185 | Interface *iface; | 187 | Interface *iface; |
186 | ifaceppp = new InterfacePPP(); | 188 | ifaceppp = new InterfacePPP(); |
187 | PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true); | 189 | PPPConfigWidget imp(ifaceppp, 0, "PPPConfigImp", true); |
188 | 190 | ||
189 | if( QPEApplication::execDialog( &imp ) == QDialog::Accepted ) | 191 | if( QPEApplication::execDialog( &imp ) == QDialog::Accepted ) |
190 | { | 192 | { |
191 | iface = (InterfacePPP*) ifaceppp; | 193 | iface = (InterfacePPP*) ifaceppp; |
192 | iface->setModuleOwner( this ); | 194 | iface->setModuleOwner( this ); |
193 | list.append( iface ); | 195 | list.append( iface ); |
194 | return iface; | 196 | return iface; |
195 | } | 197 | } |
196 | else | 198 | else |
197 | { | 199 | { |
198 | delete ifaceppp; | 200 | delete ifaceppp; |
199 | iface = NULL; | 201 | iface = NULL; |
200 | } | 202 | } |
201 | return iface; | 203 | return iface; |
202 | } | 204 | } |
203 | 205 | ||
diff --git a/noncore/settings/networksettings/wlan/config.in b/noncore/settings/networksettings/wlan/config.in index d4661cb..233764e 100644 --- a/noncore/settings/networksettings/wlan/config.in +++ b/noncore/settings/networksettings/wlan/config.in | |||
@@ -1,6 +1,6 @@ | |||
1 | config WLAN | 1 | config WLAN |
2 | boolean "opie-networksettingsplugin-wlan (wireless LAN module)" | 2 | boolean "opie-networksettingsplugin-wlan (wireless LAN module)" |
3 | default "n" if NETWORKSETUP | 3 | default "y" |
4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && LIBOPIE2NET | 4 | depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE2UI && NETWORKSETUP && NETWORKSETUP-CORE && INTERFACES && LIBOPIE2NET |
5 | #comment "opie-networksettingsplugin-wlan needs libopie2ui, libopie2net and networksetup" | 5 | #comment "opie-networksettingsplugin-wlan needs libopie2ui, libopie2net and networksetup" |
6 | #depends !( LIBOPIE2NET && NETWORKSETUP) \ No newline at end of file | 6 | #depends !( LIBOPIE2NET && NETWORKSETUP) |
diff --git a/noncore/settings/networksettings/wlan/infoimp.cpp b/noncore/settings/networksettings/wlan/infoimp.cpp index c558f5e..273bed8 100644 --- a/noncore/settings/networksettings/wlan/infoimp.cpp +++ b/noncore/settings/networksettings/wlan/infoimp.cpp | |||
@@ -1,56 +1,61 @@ | |||
1 | #include "infoimp.h" | 1 | #include "infoimp.h" |
2 | #include "wextensions.h" | 2 | #include "wextensions.h" |
3 | 3 | ||
4 | /* OPIE */ | ||
5 | #include <opie2/odebug.h> | ||
6 | using namespace Opie::Core; | ||
7 | |||
8 | /* QT */ | ||
4 | #include <qtimer.h> | 9 | #include <qtimer.h> |
5 | #include <qprogressbar.h> | 10 | #include <qprogressbar.h> |
6 | #include <qlabel.h> | 11 | #include <qlabel.h> |
7 | 12 | ||
8 | /** | 13 | /** |
9 | * Constructor. If wireless extensions are enabled on device name then | 14 | * Constructor. If wireless extensions are enabled on device name then |
10 | * start a timer that every second will update the information. | 15 | * start a timer that every second will update the information. |
11 | */ | 16 | */ |
12 | WlanInfoImp::WlanInfoImp( QWidget* parent, const char* name, WFlags fl): WlanInfo(parent, name, fl){ | 17 | WlanInfoImp::WlanInfoImp( QWidget* parent, const char* name, WFlags fl): WlanInfo(parent, name, fl){ |
13 | WExtensions *wExtensions = new WExtensions(name); | 18 | WExtensions *wExtensions = new WExtensions(name); |
14 | if(!wExtensions->doesHaveWirelessExtensions()){ | 19 | if(!wExtensions->doesHaveWirelessExtensions()){ |
15 | delete wExtensions; | 20 | delete wExtensions; |
16 | odebug << "WlanInfoImp::No wireless extension" << oendl; | 21 | odebug << "WlanInfoImp::No wireless extension" << oendl; |
17 | return; | 22 | return; |
18 | } | 23 | } |
19 | delete wExtensions; | 24 | delete wExtensions; |
20 | timer = new QTimer( this ); | 25 | timer = new QTimer( this ); |
21 | connect( timer, SIGNAL(timeout()), this, SLOT(update())); | 26 | connect( timer, SIGNAL(timeout()), this, SLOT(update())); |
22 | timer->start( 1000, false ); | 27 | timer->start( 1000, false ); |
23 | } | 28 | } |
24 | 29 | ||
25 | /** | 30 | /** |
26 | * Updates the information about the wireless device. | 31 | * Updates the information about the wireless device. |
27 | */ | 32 | */ |
28 | void WlanInfoImp::update(){ | 33 | void WlanInfoImp::update(){ |
29 | WExtensions *wExtensions = new WExtensions(this->name()); | 34 | WExtensions *wExtensions = new WExtensions(this->name()); |
30 | if(!wExtensions->doesHaveWirelessExtensions()){ | 35 | if(!wExtensions->doesHaveWirelessExtensions()){ |
31 | odebug << "No extension" << oendl; | 36 | odebug << "No extension" << oendl; |
32 | delete wExtensions; | 37 | delete wExtensions; |
33 | timer->stop(); | 38 | timer->stop(); |
34 | return; | 39 | return; |
35 | } | 40 | } |
36 | essidLabel->setText(wExtensions->essid()); | 41 | essidLabel->setText(wExtensions->essid()); |
37 | apLabel->setText(wExtensions->ap()); | 42 | apLabel->setText(wExtensions->ap()); |
38 | stationLabel->setText(wExtensions->station()); | 43 | stationLabel->setText(wExtensions->station()); |
39 | modeLabel->setText(wExtensions->mode()); | 44 | modeLabel->setText(wExtensions->mode()); |
40 | channelLabel->setText(QString("%1").arg(wExtensions->channel())); | 45 | channelLabel->setText(QString("%1").arg(wExtensions->channel())); |
41 | int signal = 0; | 46 | int signal = 0; |
42 | int noise = 0; | 47 | int noise = 0; |
43 | int quality = 0; | 48 | int quality = 0; |
44 | wExtensions->stats(signal, noise, quality); | 49 | wExtensions->stats(signal, noise, quality); |
45 | if(signalProgressBar->progress() != signal) | 50 | if(signalProgressBar->progress() != signal) |
46 | signalProgressBar->setProgress(signal); | 51 | signalProgressBar->setProgress(signal); |
47 | if(noiseProgressBar->progress() != noise) | 52 | if(noiseProgressBar->progress() != noise) |
48 | noiseProgressBar->setProgress(noise); | 53 | noiseProgressBar->setProgress(noise); |
49 | if(qualityProgressBar->progress() != quality) | 54 | if(qualityProgressBar->progress() != quality) |
50 | qualityProgressBar->setProgress(quality); | 55 | qualityProgressBar->setProgress(quality); |
51 | rateLabel->setText(QString("%1 Mb/s").arg(wExtensions->rate())); | 56 | rateLabel->setText(QString("%1 Mb/s").arg(wExtensions->rate())); |
52 | delete wExtensions; | 57 | delete wExtensions; |
53 | } | 58 | } |
54 | 59 | ||
55 | // infoimp.cpp | 60 | // infoimp.cpp |
56 | 61 | ||
diff --git a/noncore/settings/networksettings/wlan/wextensions.cpp b/noncore/settings/networksettings/wlan/wextensions.cpp index 9c64323..fe21f02 100644 --- a/noncore/settings/networksettings/wlan/wextensions.cpp +++ b/noncore/settings/networksettings/wlan/wextensions.cpp | |||
@@ -1,200 +1,207 @@ | |||
1 | #include "wextensions.h" | 1 | #include "wextensions.h" |
2 | 2 | ||
3 | /* OPIE */ | ||
4 | #include <opie2/odebug.h> | ||
5 | using namespace Opie::Core; | ||
6 | |||
7 | /* QT */ | ||
3 | #include <qfile.h> | 8 | #include <qfile.h> |
4 | #include <qtextstream.h> | 9 | #include <qtextstream.h> |
5 | 10 | ||
11 | /* STD */ | ||
6 | #include <arpa/inet.h> | 12 | #include <arpa/inet.h> |
7 | #include <sys/socket.h> | 13 | #include <sys/socket.h> |
8 | #include <sys/ioctl.h> | 14 | #include <sys/ioctl.h> |
9 | |||
10 | #include <math.h> | 15 | #include <math.h> |
11 | 16 | ||
12 | #define PROCNETWIRELESS "/proc/net/wireless" | 17 | #define PROCNETWIRELESS "/proc/net/wireless" |
13 | #define IW_LOWER 0 | 18 | #define IW_LOWER 0 |
14 | #define IW_UPPER 256 | 19 | #define IW_UPPER 256 |
15 | 20 | ||
21 | #warning This is duplicated code. Use libopienet2! | ||
22 | |||
16 | /** | 23 | /** |
17 | * Constructor. Sets hasWirelessExtensions | 24 | * Constructor. Sets hasWirelessExtensions |
18 | */ | 25 | */ |
19 | WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false), interface(interfaceName) { | 26 | WExtensions::WExtensions(QString interfaceName): hasWirelessExtensions(false), interface(interfaceName) { |
20 | fd = socket( AF_INET, SOCK_DGRAM, 0 ); | 27 | fd = socket( AF_INET, SOCK_DGRAM, 0 ); |
21 | if(fd == -1) | 28 | if(fd == -1) |
22 | return; | 29 | return; |
23 | 30 | ||
24 | const char* buffer[200]; | 31 | const char* buffer[200]; |
25 | memset( &iwr, 0, sizeof( iwr ) ); | 32 | memset( &iwr, 0, sizeof( iwr ) ); |
26 | iwr.u.essid.pointer = (caddr_t) buffer; | 33 | iwr.u.essid.pointer = (caddr_t) buffer; |
27 | iwr.u.essid.length = IW_ESSID_MAX_SIZE; | 34 | iwr.u.essid.length = IW_ESSID_MAX_SIZE; |
28 | iwr.u.essid.flags = 0; | 35 | iwr.u.essid.flags = 0; |
29 | 36 | ||
30 | // check if it is an IEEE 802.11 standard conform | 37 | // check if it is an IEEE 802.11 standard conform |
31 | // wireless device by sending SIOCGIWESSID | 38 | // wireless device by sending SIOCGIWESSID |
32 | // which also gives back the Extended Service Set ID | 39 | // which also gives back the Extended Service Set ID |
33 | // (see IEEE 802.11 for more information) | 40 | // (see IEEE 802.11 for more information) |
34 | 41 | ||
35 | const char* iname = interface.latin1(); | 42 | const char* iname = interface.latin1(); |
36 | strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname ); | 43 | strcpy( iwr.ifr_ifrn.ifrn_name, (const char *)iname ); |
37 | if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) ) | 44 | if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr ) ) |
38 | hasWirelessExtensions = true; | 45 | hasWirelessExtensions = true; |
39 | } | 46 | } |
40 | 47 | ||
41 | /** | 48 | /** |
42 | * @return QString the station name of the access point. | 49 | * @return QString the station name of the access point. |
43 | */ | 50 | */ |
44 | QString WExtensions::station(){ | 51 | QString WExtensions::station(){ |
45 | if(!hasWirelessExtensions) | 52 | if(!hasWirelessExtensions) |
46 | return QString(); | 53 | return QString(); |
47 | const char* buffer[200]; | 54 | const char* buffer[200]; |
48 | iwr.u.data.pointer = (caddr_t) buffer; | 55 | iwr.u.data.pointer = (caddr_t) buffer; |
49 | iwr.u.data.length = IW_ESSID_MAX_SIZE; | 56 | iwr.u.data.length = IW_ESSID_MAX_SIZE; |
50 | iwr.u.data.flags = 0; | 57 | iwr.u.data.flags = 0; |
51 | if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){ | 58 | if ( 0 == ioctl( fd, SIOCGIWNICKN, &iwr )){ |
52 | iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0'; | 59 | iwr.u.data.pointer[(unsigned int) iwr.u.data.length-1] = '\0'; |
53 | return QString(iwr.u.data.pointer); | 60 | return QString(iwr.u.data.pointer); |
54 | } | 61 | } |
55 | return QString(); | 62 | return QString(); |
56 | } | 63 | } |
57 | 64 | ||
58 | /** | 65 | /** |
59 | * @return QString the essid of the host 802.11 access point. | 66 | * @return QString the essid of the host 802.11 access point. |
60 | */ | 67 | */ |
61 | QString WExtensions::essid(){ | 68 | QString WExtensions::essid(){ |
62 | if(!hasWirelessExtensions) | 69 | if(!hasWirelessExtensions) |
63 | return QString(); | 70 | return QString(); |
64 | if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){ | 71 | if ( 0 == ioctl( fd, SIOCGIWESSID, &iwr )){ |
65 | iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length] = '\0'; | 72 | iwr.u.essid.pointer[(unsigned int) iwr.u.essid.length] = '\0'; |
66 | return QString(iwr.u.essid.pointer); | 73 | return QString(iwr.u.essid.pointer); |
67 | } | 74 | } |
68 | return QString(); | 75 | return QString(); |
69 | } | 76 | } |
70 | 77 | ||
71 | /** | 78 | /** |
72 | * @return QString the mode of interface | 79 | * @return QString the mode of interface |
73 | */ | 80 | */ |
74 | QString WExtensions::mode(){ | 81 | QString WExtensions::mode(){ |
75 | if(!hasWirelessExtensions) | 82 | if(!hasWirelessExtensions) |
76 | return QString(); | 83 | return QString(); |
77 | if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) ) | 84 | if ( 0 == ioctl( fd, SIOCGIWMODE, &iwr ) ) |
78 | return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed"); | 85 | return QString("%1").arg(iwr.u.mode == IW_MODE_ADHOC ? "Ad-Hoc" : "Managed"); |
79 | return QString(); | 86 | return QString(); |
80 | } | 87 | } |
81 | 88 | ||
82 | /** | 89 | /** |
83 | * Get the frequency that the interface is running at. | 90 | * Get the frequency that the interface is running at. |
84 | * @return int the frequency that the interfacae is running at. | 91 | * @return int the frequency that the interfacae is running at. |
85 | */ | 92 | */ |
86 | double WExtensions::frequency(){ | 93 | double WExtensions::frequency(){ |
87 | if(!hasWirelessExtensions) | 94 | if(!hasWirelessExtensions) |
88 | return 0; | 95 | return 0; |
89 | if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr )) | 96 | if ( 0 == ioctl( fd, SIOCGIWFREQ, &iwr )) |
90 | return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); | 97 | return (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); |
91 | return 0; | 98 | return 0; |
92 | } | 99 | } |
93 | 100 | ||
94 | /** | 101 | /** |
95 | * Get the channel that the interface is running at. | 102 | * Get the channel that the interface is running at. |
96 | * @return int the channel that the interfacae is running at. | 103 | * @return int the channel that the interfacae is running at. |
97 | */ | 104 | */ |
98 | int WExtensions::channel(){ | 105 | int WExtensions::channel(){ |
99 | if(!hasWirelessExtensions) | 106 | if(!hasWirelessExtensions) |
100 | return 0; | 107 | return 0; |
101 | if ( 0 != ioctl( fd, SIOCGIWFREQ, &iwr )) | 108 | if ( 0 != ioctl( fd, SIOCGIWFREQ, &iwr )) |
102 | return 0; | 109 | return 0; |
103 | 110 | ||
104 | // http://www.elanix.com/pdf/an137e.pdf | 111 | // http://www.elanix.com/pdf/an137e.pdf |
105 | 112 | ||
106 | double num = (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); | 113 | double num = (double( iwr.u.freq.m ) * pow( 10, iwr.u.freq.e ) / 1000000000); |
107 | double left = 2.401; | 114 | double left = 2.401; |
108 | double right = 2.416; | 115 | double right = 2.416; |
109 | for(int channel = 1; channel<= 15; channel++){ | 116 | for(int channel = 1; channel<= 15; channel++){ |
110 | if( num >= left && num <= right ) | 117 | if( num >= left && num <= right ) |
111 | return channel; | 118 | return channel; |
112 | left += 0.005; | 119 | left += 0.005; |
113 | right += 0.005; | 120 | right += 0.005; |
114 | } | 121 | } |
115 | odebug << QString("Unknown frequency: %1, returning -1 for the channel.").arg(num).latin1() << oendl; | 122 | odebug << QString("Unknown frequency: %1, returning -1 for the channel.").arg(num).latin1() << oendl; |
116 | return -1; | 123 | return -1; |
117 | } | 124 | } |
118 | 125 | ||
119 | /*** | 126 | /*** |
120 | * Get the current rate that the card is transmiting at. | 127 | * Get the current rate that the card is transmiting at. |
121 | * @return double the rate, 0 if error. | 128 | * @return double the rate, 0 if error. |
122 | */ | 129 | */ |
123 | double WExtensions::rate(){ | 130 | double WExtensions::rate(){ |
124 | if(!hasWirelessExtensions) | 131 | if(!hasWirelessExtensions) |
125 | return 0; | 132 | return 0; |
126 | if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){ | 133 | if(0 == ioctl(fd, SIOCGIWRATE, &iwr)){ |
127 | return ((double)iwr.u.bitrate.value)/1000000; | 134 | return ((double)iwr.u.bitrate.value)/1000000; |
128 | } | 135 | } |
129 | return 0; | 136 | return 0; |
130 | } | 137 | } |
131 | 138 | ||
132 | 139 | ||
133 | /** | 140 | /** |
134 | * @return QString the AccessPoint that the interface is connected to. | 141 | * @return QString the AccessPoint that the interface is connected to. |
135 | */ | 142 | */ |
136 | QString WExtensions::ap(){ | 143 | QString WExtensions::ap(){ |
137 | if(!hasWirelessExtensions) | 144 | if(!hasWirelessExtensions) |
138 | return QString(); | 145 | return QString(); |
139 | if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){ | 146 | if ( 0 == ioctl( fd, SIOCGIWAP, &iwr )){ |
140 | QString ap; | 147 | QString ap; |
141 | ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", | 148 | ap = ap.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", |
142 | iwr.u.ap_addr.sa_data[0]&0xff, | 149 | iwr.u.ap_addr.sa_data[0]&0xff, |
143 | iwr.u.ap_addr.sa_data[1]&0xff, | 150 | iwr.u.ap_addr.sa_data[1]&0xff, |
144 | iwr.u.ap_addr.sa_data[2]&0xff, | 151 | iwr.u.ap_addr.sa_data[2]&0xff, |
145 | iwr.u.ap_addr.sa_data[3]&0xff, | 152 | iwr.u.ap_addr.sa_data[3]&0xff, |
146 | iwr.u.ap_addr.sa_data[4]&0xff, | 153 | iwr.u.ap_addr.sa_data[4]&0xff, |
147 | iwr.u.ap_addr.sa_data[5]&0xff ); | 154 | iwr.u.ap_addr.sa_data[5]&0xff ); |
148 | return ap; | 155 | return ap; |
149 | } | 156 | } |
150 | else return QString(); | 157 | else return QString(); |
151 | } | 158 | } |
152 | 159 | ||
153 | /** | 160 | /** |
154 | * Get the stats for interfaces | 161 | * Get the stats for interfaces |
155 | * @param signal the signal strength of interface | 162 | * @param signal the signal strength of interface |
156 | * @param noise the noise level of the interface | 163 | * @param noise the noise level of the interface |
157 | * @param quality the quality level of the interface | 164 | * @param quality the quality level of the interface |
158 | * @return bool true if successful | 165 | * @return bool true if successful |
159 | */ | 166 | */ |
160 | bool WExtensions::stats(int &signal, int &noise, int &quality){ | 167 | bool WExtensions::stats(int &signal, int &noise, int &quality){ |
161 | // gather link quality from /proc/net/wireless | 168 | // gather link quality from /proc/net/wireless |
162 | if(!QFile::exists(PROCNETWIRELESS)) | 169 | if(!QFile::exists(PROCNETWIRELESS)) |
163 | return false; | 170 | return false; |
164 | 171 | ||
165 | char c; | 172 | char c; |
166 | QString status; | 173 | QString status; |
167 | QString name; | 174 | QString name; |
168 | 175 | ||
169 | QFile wfile( PROCNETWIRELESS ); | 176 | QFile wfile( PROCNETWIRELESS ); |
170 | if(!wfile.open( IO_ReadOnly )) | 177 | if(!wfile.open( IO_ReadOnly )) |
171 | return false; | 178 | return false; |
172 | 179 | ||
173 | QTextStream wstream( &wfile ); | 180 | QTextStream wstream( &wfile ); |
174 | wstream.readLine(); // skip the first two lines | 181 | wstream.readLine(); // skip the first two lines |
175 | wstream.readLine(); // because they only contain headers | 182 | wstream.readLine(); // because they only contain headers |
176 | while(!wstream.atEnd()){ | 183 | while(!wstream.atEnd()){ |
177 | wstream >> name >> status >> quality >> c >> signal >> c >> noise; | 184 | wstream >> name >> status >> quality >> c >> signal >> c >> noise; |
178 | if(name == QString("%1:").arg(interface)){ | 185 | if(name == QString("%1:").arg(interface)){ |
179 | if ( quality > 92 ) | 186 | if ( quality > 92 ) |
180 | odebug << "WIFIAPPLET: D'oh! Quality " << quality << " > estimated max!\n" << oendl; | 187 | odebug << "WIFIAPPLET: D'oh! Quality " << quality << " > estimated max!\n" << oendl; |
181 | if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) ) | 188 | if ( ( signal > IW_UPPER ) || ( signal < IW_LOWER ) ) |
182 | odebug << "WIFIAPPLET: Doh! Strength " << signal << " > estimated max!\n" << oendl; | 189 | odebug << "WIFIAPPLET: Doh! Strength " << signal << " > estimated max!\n" << oendl; |
183 | if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) ) | 190 | if ( ( noise > IW_UPPER ) || ( noise < IW_LOWER ) ) |
184 | odebug << "WIFIAPPLET: Doh! Noise " << noise << " > estimated max!\n" << oendl; | 191 | odebug << "WIFIAPPLET: Doh! Noise " << noise << " > estimated max!\n" << oendl; |
185 | //odebug << QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1() << oendl; | 192 | //odebug << QString("q:%1, s:%2, n:%3").arg(quality).arg(signal).arg(noise).latin1() << oendl; |
186 | signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER; | 193 | signal = ( ( signal-IW_LOWER ) * 100 ) / IW_UPPER; |
187 | noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER; | 194 | noise = ( ( noise-IW_LOWER ) * 100 ) / IW_UPPER; |
188 | quality = ( quality*100 ) / 92; | 195 | quality = ( quality*100 ) / 92; |
189 | return true; | 196 | return true; |
190 | } | 197 | } |
191 | } | 198 | } |
192 | 199 | ||
193 | odebug << "WExtensions::statsCard no longer present." << oendl; | 200 | odebug << "WExtensions::statsCard no longer present." << oendl; |
194 | quality = -1; | 201 | quality = -1; |
195 | signal = IW_LOWER; | 202 | signal = IW_LOWER; |
196 | noise = IW_LOWER; | 203 | noise = IW_LOWER; |
197 | return false; | 204 | return false; |
198 | } | 205 | } |
199 | 206 | ||
200 | // wextensions.cpp | 207 | // wextensions.cpp |
diff --git a/noncore/settings/networksettings/wlan/wlan.pro b/noncore/settings/networksettings/wlan/wlan.pro index 89867ae..c94dc0e 100644 --- a/noncore/settings/networksettings/wlan/wlan.pro +++ b/noncore/settings/networksettings/wlan/wlan.pro | |||
@@ -1,28 +1,25 @@ | |||
1 | # | ||
2 | TEMPLATE = lib | 1 | TEMPLATE = lib |
3 | #TEMPLATE = app | ||
4 | CONFIG += qt plugin warn_on | 2 | CONFIG += qt plugin warn_on |
5 | #CONFIG += qt plugin warn_on | ||
6 | DESTDIR = $(OPIEDIR)/plugins/networksettings | 3 | DESTDIR = $(OPIEDIR)/plugins/networksettings |
7 | HEADERS = infoimp.h wlanmodule.h wextensions.h keyedit.h | 4 | HEADERS = infoimp.h wlanmodule.h wextensions.h keyedit.h |
8 | SOURCES = infoimp.cpp wlanmodule.cpp wextensions.cpp keyedit.cpp | 5 | SOURCES = infoimp.cpp wlanmodule.cpp wextensions.cpp keyedit.cpp |
9 | INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ | 6 | INCLUDEPATH+= $(OPIEDIR)/include ../ ../interfaces/ |
10 | DEPENDPATH+= $(OPIEDIR)/include | 7 | DEPENDPATH+= $(OPIEDIR)/include |
11 | LIBS += -lqpe -L../interfaces/ -linterfaces -lopiecore2 -lopienet2 | 8 | LIBS += -lqpe -L../interfaces/ -linterfaces -lopiecore2 -lopienet2 |
12 | INTERFACES= wlan.ui info.ui | 9 | INTERFACES= wlan.ui info.ui |
13 | TARGET = wlan | 10 | TARGET = wlan |
14 | VERSION = 1.0.0 | 11 | VERSION = 1.0.0 |
15 | 12 | ||
16 | #CONFIG += wirelessopts | 13 | #CONFIG += wirelessopts |
17 | 14 | ||
18 | wirelessopts { | 15 | wirelessopts { |
19 | HEADERS+= wlanimp.h | 16 | HEADERS+= wlanimp.h |
20 | SOURCES+= wlanimp.cpp | 17 | SOURCES+= wlanimp.cpp |
21 | } | 18 | } |
22 | 19 | ||
23 | ! wirelessopts { | 20 | ! wirelessopts { |
24 | HEADERS+= wlanimp2.h | 21 | HEADERS+= wlanimp2.h |
25 | SOURCES += wlanimp2.cpp | 22 | SOURCES += wlanimp2.cpp |
26 | } | 23 | } |
27 | 24 | ||
28 | include ( $(OPIEDIR)/include.pro ) | 25 | include ( $(OPIEDIR)/include.pro ) |
diff --git a/noncore/settings/networksettings/wlan/wlanimp2.cpp b/noncore/settings/networksettings/wlan/wlanimp2.cpp index e4aa2f9..4294b12 100644 --- a/noncore/settings/networksettings/wlan/wlanimp2.cpp +++ b/noncore/settings/networksettings/wlan/wlanimp2.cpp | |||
@@ -1,238 +1,240 @@ | |||
1 | #include "wlanimp2.h" | 1 | #include "wlanimp2.h" |
2 | #include "keyedit.h" | 2 | #include "keyedit.h" |
3 | #include "interfacesetupimp.h" | 3 | #include "interfacesetupimp.h" |
4 | |||
5 | #include "../interfaces/interface.h" | 4 | #include "../interfaces/interface.h" |
6 | 5 | ||
7 | #include <assert.h> | 6 | #include <assert.h> |
8 | #include <errno.h> | 7 | #include <errno.h> |
9 | #include <string.h> | 8 | #include <string.h> |
10 | 9 | ||
10 | /* OPIE */ | ||
11 | #include <opie2/odebug.h> | ||
12 | #include <opie2/oprocess.h> | ||
13 | #include <opie2/onetwork.h> | ||
14 | #include <opie2/opcap.h> | ||
15 | #include <qpe/resource.h> | ||
16 | using namespace Opie::Core; | ||
17 | using namespace Opie::Net; | ||
18 | |||
19 | /* QT */ | ||
11 | #include <qapplication.h> | 20 | #include <qapplication.h> |
12 | #include <qfile.h> | 21 | #include <qfile.h> |
13 | #include <qdir.h> | 22 | #include <qdir.h> |
14 | #include <qdialog.h> | 23 | #include <qdialog.h> |
15 | #include <qtextstream.h> | 24 | #include <qtextstream.h> |
16 | #include <qmessagebox.h> | 25 | #include <qmessagebox.h> |
17 | #include <qlineedit.h> | 26 | #include <qlineedit.h> |
18 | #include <qlabel.h> | 27 | #include <qlabel.h> |
19 | #include <qspinbox.h> | 28 | #include <qspinbox.h> |
20 | #include <qradiobutton.h> | 29 | #include <qradiobutton.h> |
21 | #include <qpushbutton.h> | 30 | #include <qpushbutton.h> |
22 | #include <qcheckbox.h> | 31 | #include <qcheckbox.h> |
23 | #include <qtabwidget.h> | 32 | #include <qtabwidget.h> |
24 | #include <qcombobox.h> | 33 | #include <qcombobox.h> |
25 | #include <qlistview.h> | 34 | #include <qlistview.h> |
26 | #include <qvbox.h> | 35 | #include <qvbox.h> |
27 | #include <qprogressbar.h> | 36 | #include <qprogressbar.h> |
28 | 37 | ||
29 | #ifdef QWS | 38 | /* STD */ |
30 | #include <qpe/resource.h> | 39 | #include <assert.h> |
31 | #include <opie2/oprocess.h> | 40 | #include <errno.h> |
32 | #include <opie2/onetwork.h> | 41 | #include <string.h> |
33 | #include <opie2/opcap.h> | ||
34 | #else | ||
35 | #define OProcess KProcess | ||
36 | #include <kprocess.h> | ||
37 | #endif | ||
38 | 42 | ||
39 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" | 43 | #define WIRELESS_OPTS "/etc/pcmcia/wireless.opts" |
40 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" | 44 | #define PREUP "/etc/network/if-pre-up.d/wireless-tools" |
41 | 45 | ||
42 | /** | 46 | /** |
43 | * Constructor, read in the wireless.opts file for parsing later. | 47 | * Constructor, read in the wireless.opts file for parsing later. |
44 | */ | 48 | */ |
45 | using namespace Opie::Net; | ||
46 | using namespace Opie::Core; | ||
47 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { | 49 | WLANImp::WLANImp( QWidget* parent, const char* name, Interface *i, bool modal, WFlags fl) : WLAN(parent, name, modal, fl), interface(i), currentProfile("*") { |
48 | interfaces = new Interfaces(); | 50 | interfaces = new Interfaces(); |
49 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); | 51 | interfaceSetup = new InterfaceSetupImp(tabWidget, "InterfaceSetupImp", i, interfaces); |
50 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); | 52 | tabWidget->insertTab(interfaceSetup, "TCP/IP"); |
51 | 53 | ||
52 | // Check sanity - the existance of the wireless-tools if-pre-up script | 54 | // Check sanity - the existance of the wireless-tools if-pre-up script |
53 | QFile file(QString(PREUP)); | 55 | QFile file(QString(PREUP)); |
54 | if (file.exists()) { | 56 | if (file.exists()) { |
55 | owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl; | 57 | owarn << QString("WLANImp: Unable to open /etc/network/if-pre-up.d/wireless-tools") << oendl; |
56 | } | 58 | } |
57 | 59 | ||
58 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); | 60 | connect( rescanButton, SIGNAL( clicked() ), this, SLOT( rescanNeighbourhood() ) ); |
59 | connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); | 61 | connect( netView, SIGNAL( clicked(QListViewItem*) ), this, SLOT( selectNetwork(QListViewItem*) ) ); |
60 | netView->setColumnAlignment( col_chn, AlignCenter ); | 62 | netView->setColumnAlignment( col_chn, AlignCenter ); |
61 | netView->setItemMargin( 3 ); | 63 | netView->setItemMargin( 3 ); |
62 | netView->setAllColumnsShowFocus( true ); | 64 | netView->setAllColumnsShowFocus( true ); |
63 | 65 | ||
64 | } | 66 | } |
65 | 67 | ||
66 | WLANImp::~WLANImp() { | 68 | WLANImp::~WLANImp() { |
67 | //FIXME: delete interfaces; | 69 | //FIXME: delete interfaces; |
68 | } | 70 | } |
69 | 71 | ||
70 | /** | 72 | /** |
71 | * Change the profile for both wireless settings and network settings. | 73 | * Change the profile for both wireless settings and network settings. |
72 | */ | 74 | */ |
73 | void WLANImp::setProfile(const QString &profile){ | 75 | void WLANImp::setProfile(const QString &profile){ |
74 | interfaceSetup->setProfile(profile); | 76 | interfaceSetup->setProfile(profile); |
75 | parseOpts(); | 77 | parseOpts(); |
76 | } | 78 | } |
77 | 79 | ||
78 | void WLANImp::parseOpts() { | 80 | void WLANImp::parseOpts() { |
79 | bool error; | 81 | bool error; |
80 | QString opt; | 82 | QString opt; |
81 | 83 | ||
82 | if (! interfaces->isInterfaceSet()) | 84 | if (! interfaces->isInterfaceSet()) |
83 | return; | 85 | return; |
84 | 86 | ||
85 | 87 | ||
86 | opt = interfaces->getInterfaceOption("wireless_essid", error); | 88 | opt = interfaces->getInterfaceOption("wireless_essid", error); |
87 | if(opt == "any" || opt == "off" || opt.isNull()){ | 89 | if(opt == "any" || opt == "off" || opt.isNull()){ |
88 | essid->setEditText("any"); | 90 | essid->setEditText("any"); |
89 | } else { | 91 | } else { |
90 | essid->setEditText(opt); | 92 | essid->setEditText(opt); |
91 | } | 93 | } |
92 | 94 | ||
93 | opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); | 95 | opt = interfaces->getInterfaceOption("wireless_mode", error).simplifyWhiteSpace(); |
94 | 96 | ||
95 | for ( int i = 0; i < mode->count(); i++) | 97 | for ( int i = 0; i < mode->count(); i++) |
96 | if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); | 98 | if ( mode->text( i ) == opt ) mode->setCurrentItem( i ); |
97 | 99 | ||
98 | opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); | 100 | opt = interfaces->getInterfaceOption("wireless_ap", error).simplifyWhiteSpace(); |
99 | if (! opt.isNull()) { | 101 | if (! opt.isNull()) { |
100 | specifyAp->setChecked(true); | 102 | specifyAp->setChecked(true); |
101 | macEdit->setText(opt); | 103 | macEdit->setText(opt); |
102 | } | 104 | } |
103 | 105 | ||
104 | opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace(); | 106 | opt = interfaces->getInterfaceOption("wireless_channel", error).simplifyWhiteSpace(); |
105 | if (! opt.isNull()) { | 107 | if (! opt.isNull()) { |
106 | specifyChan->setChecked(true); | 108 | specifyChan->setChecked(true); |
107 | networkChannel->setValue(opt.toInt()); | 109 | networkChannel->setValue(opt.toInt()); |
108 | } | 110 | } |
109 | 111 | ||
110 | opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace(); | 112 | opt = interfaces->getInterfaceOption("wireless_key", error).simplifyWhiteSpace(); |
111 | if (opt.isNull()) | 113 | if (opt.isNull()) |
112 | opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace(); | 114 | opt = interfaces->getInterfaceOption("wireless_enc", error).simplifyWhiteSpace(); |
113 | parseKeyStr(opt); | 115 | parseKeyStr(opt); |
114 | } | 116 | } |
115 | 117 | ||
116 | void WLANImp::parseKeyStr(QString keystr) { | 118 | void WLANImp::parseKeyStr(QString keystr) { |
117 | int loc = 0; | 119 | int loc = 0; |
118 | int index = 1; | 120 | int index = 1; |
119 | QString key; | 121 | QString key; |
120 | QStringList keys = QStringList::split(QRegExp("\\s+"), keystr); | 122 | QStringList keys = QStringList::split(QRegExp("\\s+"), keystr); |
121 | int enc = -1; // encryption state | 123 | int enc = -1; // encryption state |
122 | 124 | ||
123 | for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) { | 125 | for (QStringList::Iterator it = keys.begin(); it != keys.end(); ++it) { |
124 | if ((*it).left(3) == "off") { | 126 | if ((*it).left(3) == "off") { |
125 | // encryption disabled | 127 | // encryption disabled |
126 | enc = 0; | 128 | enc = 0; |
127 | } else if ((*it).left(2) == "on") { | 129 | } else if ((*it).left(2) == "on") { |
128 | // encryption enabled | 130 | // encryption enabled |
129 | enc = 1; | 131 | enc = 1; |
130 | } else if ((*it).left(4) == "open") { | 132 | } else if ((*it).left(4) == "open") { |
131 | // open mode, accept non encrypted packets | 133 | // open mode, accept non encrypted packets |
132 | acceptNonEnc->setChecked(true); | 134 | acceptNonEnc->setChecked(true); |
133 | } else if ((*it).left(10) == "restricted") { | 135 | } else if ((*it).left(10) == "restricted") { |
134 | // restricted mode, only accept encrypted packets | 136 | // restricted mode, only accept encrypted packets |
135 | rejectNonEnc->setChecked(true); | 137 | rejectNonEnc->setChecked(true); |
136 | } else if ((*it).left(3) == "key") { | 138 | } else if ((*it).left(3) == "key") { |
137 | // new set of options | 139 | // new set of options |
138 | } else if ((*it).left(1) == "[") { | 140 | } else if ((*it).left(1) == "[") { |
139 | index = (*it).mid(1, 1).toInt(); | 141 | index = (*it).mid(1, 1).toInt(); |
140 | // switch current key to index | 142 | // switch current key to index |
141 | switch (index) { | 143 | switch (index) { |
142 | case 1: | 144 | case 1: |
143 | keyRadio0->setChecked(true); | 145 | keyRadio0->setChecked(true); |
144 | break; | 146 | break; |
145 | case 2: | 147 | case 2: |
146 | keyRadio1->setChecked(true); | 148 | keyRadio1->setChecked(true); |
147 | break; | 149 | break; |
148 | case 3: | 150 | case 3: |
149 | keyRadio2->setChecked(true); | 151 | keyRadio2->setChecked(true); |
150 | break; | 152 | break; |
151 | case 4: | 153 | case 4: |
152 | keyRadio3->setChecked(true); | 154 | keyRadio3->setChecked(true); |
153 | break; | 155 | break; |
154 | } | 156 | } |
155 | } else { | 157 | } else { |
156 | // key | 158 | // key |
157 | key = (*it); | 159 | key = (*it); |
158 | } | 160 | } |
159 | if (! key.isNull()) { | 161 | if (! key.isNull()) { |
160 | if (enc == -1) | 162 | if (enc == -1) |
161 | enc = 1; | 163 | enc = 1; |
162 | QStringList::Iterator next = ++it; | 164 | QStringList::Iterator next = ++it; |
163 | if (it == keys.end()) { | 165 | if (it == keys.end()) { |
164 | break; | 166 | break; |
165 | } | 167 | } |
166 | if ((*(next)).left(1) == "[") { | 168 | if ((*(next)).left(1) == "[") { |
167 | // set key at index | 169 | // set key at index |
168 | index = (*(next)).mid(1, 1).toInt(); | 170 | index = (*(next)).mid(1, 1).toInt(); |
169 | } else { | 171 | } else { |
170 | index = 1; | 172 | index = 1; |
171 | } | 173 | } |
172 | switch (index) { | 174 | switch (index) { |
173 | case 1: | 175 | case 1: |
174 | keyLineEdit0->setText(key); | 176 | keyLineEdit0->setText(key); |
175 | break; | 177 | break; |
176 | case 2: | 178 | case 2: |
177 | keyLineEdit1->setText(key); | 179 | keyLineEdit1->setText(key); |
178 | break; | 180 | break; |
179 | case 3: | 181 | case 3: |
180 | keyLineEdit2->setText(key); | 182 | keyLineEdit2->setText(key); |
181 | break; | 183 | break; |
182 | case 4: | 184 | case 4: |
183 | keyLineEdit3->setText(key); | 185 | keyLineEdit3->setText(key); |
184 | break; | 186 | break; |
185 | } | 187 | } |
186 | key = QString::null; | 188 | key = QString::null; |
187 | } | 189 | } |
188 | } | 190 | } |
189 | if (enc == 1) { | 191 | if (enc == 1) { |
190 | wepEnabled->setChecked(true); | 192 | wepEnabled->setChecked(true); |
191 | } else { | 193 | } else { |
192 | wepEnabled->setChecked(false); | 194 | wepEnabled->setChecked(false); |
193 | } | 195 | } |
194 | } | 196 | } |
195 | 197 | ||
196 | /** | 198 | /** |
197 | * Check to see if the current config is valid | 199 | * Check to see if the current config is valid |
198 | * Save interfaces | 200 | * Save interfaces |
199 | */ | 201 | */ |
200 | void WLANImp::accept() { | 202 | void WLANImp::accept() { |
201 | if (wepEnabled->isChecked()) { | 203 | if (wepEnabled->isChecked()) { |
202 | if ((keyRadio0->isChecked() && keyLineEdit0->text().isEmpty()) || | 204 | if ((keyRadio0->isChecked() && keyLineEdit0->text().isEmpty()) || |
203 | (keyRadio1->isChecked() && keyLineEdit1->text().isEmpty()) || | 205 | (keyRadio1->isChecked() && keyLineEdit1->text().isEmpty()) || |
204 | (keyRadio2->isChecked() && keyLineEdit2->text().isEmpty()) || | 206 | (keyRadio2->isChecked() && keyLineEdit2->text().isEmpty()) || |
205 | (keyRadio3->isChecked() && keyLineEdit3->text().isEmpty())) { | 207 | (keyRadio3->isChecked() && keyLineEdit3->text().isEmpty())) { |
206 | QMessageBox::information(this, "Error", "Please enter a WEP key.", QMessageBox::Ok); | 208 | QMessageBox::information(this, "Error", "Please enter a WEP key.", QMessageBox::Ok); |
207 | return; | 209 | return; |
208 | } | 210 | } |
209 | } | 211 | } |
210 | 212 | ||
211 | if (essid->currentText().isEmpty()) { | 213 | if (essid->currentText().isEmpty()) { |
212 | QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok); | 214 | QMessageBox::information(this, "Error", "Please select/enter an ESSID.", QMessageBox::Ok); |
213 | return; | 215 | return; |
214 | } | 216 | } |
215 | 217 | ||
216 | if (specifyAp->isChecked() && macEdit->text().isEmpty()) { | 218 | if (specifyAp->isChecked() && macEdit->text().isEmpty()) { |
217 | QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok); | 219 | QMessageBox::information(this, "Error", "Please enter the MAC address of the Access Point.", QMessageBox::Ok); |
218 | return; | 220 | return; |
219 | } | 221 | } |
220 | 222 | ||
221 | // Try to save the interfaces settings. | 223 | // Try to save the interfaces settings. |
222 | writeOpts(); | 224 | writeOpts(); |
223 | 225 | ||
224 | // Close out the dialog | 226 | // Close out the dialog |
225 | // FIXME: QDialog::accept(); | 227 | // FIXME: QDialog::accept(); |
226 | } | 228 | } |
227 | 229 | ||
228 | void WLANImp::writeOpts() { | 230 | void WLANImp::writeOpts() { |
229 | // eh can't really do anything about it other then return. :-D | 231 | // eh can't really do anything about it other then return. :-D |
230 | if(!interfaces->isInterfaceSet()){ | 232 | if(!interfaces->isInterfaceSet()){ |
231 | QMessageBox::warning(0,"Inface not set","should not happen!!!"); | 233 | QMessageBox::warning(0,"Inface not set","should not happen!!!"); |
232 | return; | 234 | return; |
233 | } | 235 | } |
234 | bool error = false; | 236 | bool error = false; |
235 | 237 | ||
236 | odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl; | 238 | odebug << "setting wlan interface " << interfaces->getInterfaceName( error ).latin1() << "" << oendl; |
237 | 239 | ||
238 | if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); | 240 | if (error) QMessageBox::warning(0,"Inface not set","should not happen!!!"); |
diff --git a/noncore/settings/networksettings/wlan/wlanmodule.cpp b/noncore/settings/networksettings/wlan/wlanmodule.cpp index 886af10..ba89fa4 100644 --- a/noncore/settings/networksettings/wlan/wlanmodule.cpp +++ b/noncore/settings/networksettings/wlan/wlanmodule.cpp | |||
@@ -1,201 +1,203 @@ | |||
1 | 1 | ||
2 | #include "wlanmodule.h" | 2 | #include "wlanmodule.h" |
3 | #include "wlanimp2.h" | 3 | #include "wlanimp2.h" |
4 | #include "infoimp.h" | 4 | #include "infoimp.h" |
5 | #include "wextensions.h" | 5 | #include "wextensions.h" |
6 | #include "interfaceinformationimp.h" | 6 | #include "interfaceinformationimp.h" |
7 | 7 | ||
8 | /* OPIE */ | 8 | /* OPIE */ |
9 | #include <opie2/odebug.h> | ||
9 | #include <qpe/qpeapplication.h> | 10 | #include <qpe/qpeapplication.h> |
11 | using namespace Opie::Core; | ||
10 | 12 | ||
11 | /* QT */ | 13 | /* QT */ |
12 | #include <qcheckbox.h> | 14 | #include <qcheckbox.h> |
13 | #include <qcombobox.h> | 15 | #include <qcombobox.h> |
14 | #include <qlabel.h> | 16 | #include <qlabel.h> |
15 | #include <qlineedit.h> | 17 | #include <qlineedit.h> |
16 | #include <qprogressbar.h> | 18 | #include <qprogressbar.h> |
17 | #include <qspinbox.h> | 19 | #include <qspinbox.h> |
18 | #include <qtabwidget.h> | 20 | #include <qtabwidget.h> |
19 | 21 | ||
20 | 22 | ||
21 | /** | 23 | /** |
22 | * Constructor, find all of the possible interfaces | 24 | * Constructor, find all of the possible interfaces |
23 | */ | 25 | */ |
24 | WLANModule::WLANModule() | 26 | WLANModule::WLANModule() |
25 | : Module(), | 27 | : Module(), |
26 | wlanconfigWiget(0) | 28 | wlanconfigWiget(0) |
27 | { | 29 | { |
28 | } | 30 | } |
29 | 31 | ||
30 | /** | 32 | /** |
31 | * Delete any interfaces that we own. | 33 | * Delete any interfaces that we own. |
32 | */ | 34 | */ |
33 | WLANModule::~WLANModule(){ | 35 | WLANModule::~WLANModule(){ |
34 | Interface *i; | 36 | Interface *i; |
35 | for ( i=list.first(); i != 0; i=list.next() ) | 37 | for ( i=list.first(); i != 0; i=list.next() ) |
36 | delete i; | 38 | delete i; |
37 | 39 | ||
38 | } | 40 | } |
39 | 41 | ||
40 | /** | 42 | /** |
41 | * Change the current profile | 43 | * Change the current profile |
42 | */ | 44 | */ |
43 | void WLANModule::setProfile(const QString &newProfile){ | 45 | void WLANModule::setProfile(const QString &newProfile){ |
44 | profile = newProfile; | 46 | profile = newProfile; |
45 | } | 47 | } |
46 | 48 | ||
47 | /** | 49 | /** |
48 | * get the icon name for this device. | 50 | * get the icon name for this device. |
49 | * @param Interface* can be used in determining the icon. | 51 | * @param Interface* can be used in determining the icon. |
50 | * @return QString the icon name (minus .png, .gif etc) | 52 | * @return QString the icon name (minus .png, .gif etc) |
51 | */ | 53 | */ |
52 | QString WLANModule::getPixmapName(Interface* ){ | 54 | QString WLANModule::getPixmapName(Interface* ){ |
53 | return "wlan"; | 55 | return "wlan"; |
54 | } | 56 | } |
55 | 57 | ||
56 | /** | 58 | /** |
57 | * Check to see if the interface i is owned by this module. | 59 | * Check to see if the interface i is owned by this module. |
58 | * @param Interface* interface to check against | 60 | * @param Interface* interface to check against |
59 | * @return bool true if i is owned by this module, false otherwise. | 61 | * @return bool true if i is owned by this module, false otherwise. |
60 | */ | 62 | */ |
61 | bool WLANModule::isOwner(Interface *i){ | 63 | bool WLANModule::isOwner(Interface *i){ |
62 | WExtensions we(i->getInterfaceName()); | 64 | WExtensions we(i->getInterfaceName()); |
63 | if(!we.doesHaveWirelessExtensions()) | 65 | if(!we.doesHaveWirelessExtensions()) |
64 | return false; | 66 | return false; |
65 | 67 | ||
66 | i->setHardwareName("802.11b"); | 68 | i->setHardwareName("802.11b"); |
67 | list.append(i); | 69 | list.append(i); |
68 | return true; | 70 | return true; |
69 | } | 71 | } |
70 | 72 | ||
71 | /** | 73 | /** |
72 | * Create, and return the WLANConfigure Module | 74 | * Create, and return the WLANConfigure Module |
73 | * @return QWidget* pointer to this modules configure. | 75 | * @return QWidget* pointer to this modules configure. |
74 | */ | 76 | */ |
75 | QWidget *WLANModule::configure(Interface *i){ | 77 | QWidget *WLANModule::configure(Interface *i){ |
76 | WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose); | 78 | WLANImp *wlanconfig = new WLANImp(0, "WlanConfig", i, true, Qt::WDestructiveClose); |
77 | wlanconfig->setProfile(profile); | 79 | wlanconfig->setProfile(profile); |
78 | return wlanconfig; | 80 | return wlanconfig; |
79 | } | 81 | } |
80 | 82 | ||
81 | /** | 83 | /** |
82 | * Create, and return the Information Module | 84 | * Create, and return the Information Module |
83 | * @return QWidget* pointer to this modules info. | 85 | * @return QWidget* pointer to this modules info. |
84 | */ | 86 | */ |
85 | QWidget *WLANModule::information(Interface *i){ | 87 | QWidget *WLANModule::information(Interface *i){ |
86 | WExtensions we(i->getInterfaceName()); | 88 | WExtensions we(i->getInterfaceName()); |
87 | if(!we.doesHaveWirelessExtensions()) | 89 | if(!we.doesHaveWirelessExtensions()) |
88 | return NULL; | 90 | return NULL; |
89 | 91 | ||
90 | return getInfo( i ); | 92 | return getInfo( i ); |
91 | } | 93 | } |
92 | 94 | ||
93 | /** | 95 | /** |
94 | * Get all active (up or down) interfaces | 96 | * Get all active (up or down) interfaces |
95 | * @return QList<Interface> A list of interfaces that exsist that havn't | 97 | * @return QList<Interface> A list of interfaces that exsist that havn't |
96 | * been called by isOwner() | 98 | * been called by isOwner() |
97 | */ | 99 | */ |
98 | QList<Interface> WLANModule::getInterfaces(){ | 100 | QList<Interface> WLANModule::getInterfaces(){ |
99 | return list; | 101 | return list; |
100 | } | 102 | } |
101 | 103 | ||
102 | /** | 104 | /** |
103 | * Attempt to add a new interface as defined by name | 105 | * Attempt to add a new interface as defined by name |
104 | * @param name the name of the type of interface that should be created given | 106 | * @param name the name of the type of interface that should be created given |
105 | * by possibleNewInterfaces(); | 107 | * by possibleNewInterfaces(); |
106 | * @return Interface* NULL if it was unable to be created. | 108 | * @return Interface* NULL if it was unable to be created. |
107 | */ | 109 | */ |
108 | Interface *WLANModule::addNewInterface(const QString &){ | 110 | Interface *WLANModule::addNewInterface(const QString &){ |
109 | // We can't add a 802.11 interface, either the hardware will be there | 111 | // We can't add a 802.11 interface, either the hardware will be there |
110 | // or it wont. | 112 | // or it wont. |
111 | return NULL; | 113 | return NULL; |
112 | } | 114 | } |
113 | 115 | ||
114 | /** | 116 | /** |
115 | * Attempts to remove the interface, doesn't delete i | 117 | * Attempts to remove the interface, doesn't delete i |
116 | * @return bool true if successful, false otherwise. | 118 | * @return bool true if successful, false otherwise. |
117 | */ | 119 | */ |
118 | bool WLANModule::remove(Interface*){ | 120 | bool WLANModule::remove(Interface*){ |
119 | // Can't remove a hardware device, you can stop it though. | 121 | // Can't remove a hardware device, you can stop it though. |
120 | return false; | 122 | return false; |
121 | } | 123 | } |
122 | 124 | ||
123 | void WLANModule::receive(const QCString ¶m, const QByteArray &arg) | 125 | void WLANModule::receive(const QCString ¶m, const QByteArray &arg) |
124 | { | 126 | { |
125 | odebug << "WLANModule::receive "+param << oendl; | 127 | odebug << "WLANModule::receive "+param << oendl; |
126 | QStringList params = QStringList::split(",",param); | 128 | QStringList params = QStringList::split(",",param); |
127 | int count = params.count(); | 129 | int count = params.count(); |
128 | odebug << "WLANModule got " << count << " params" << oendl; | 130 | odebug << "WLANModule got " << count << " params" << oendl; |
129 | if (count < 2){ | 131 | if (count < 2){ |
130 | odebug << "Erorr less than 2 parameter" << oendl; | 132 | odebug << "Erorr less than 2 parameter" << oendl; |
131 | odebug << "RETURNING" << oendl; | 133 | odebug << "RETURNING" << oendl; |
132 | return; | 134 | return; |
133 | } | 135 | } |
134 | 136 | ||
135 | QDataStream stream(arg,IO_ReadOnly); | 137 | QDataStream stream(arg,IO_ReadOnly); |
136 | QString interface; | 138 | QString interface; |
137 | QString action; | 139 | QString action; |
138 | int countMsgs = 0; | 140 | int countMsgs = 0; |
139 | stream >> interface; | 141 | stream >> interface; |
140 | odebug << "got count? >" << interface.latin1() << "<" << oendl; | 142 | odebug << "got count? >" << interface.latin1() << "<" << oendl; |
141 | if (interface == "count"){ | 143 | if (interface == "count"){ |
142 | odebug << "got count" << oendl; | 144 | odebug << "got count" << oendl; |
143 | stream >> action; | 145 | stream >> action; |
144 | odebug << "Got count num >" << action.latin1() << "<" << oendl; | 146 | odebug << "Got count num >" << action.latin1() << "<" << oendl; |
145 | countMsgs = action.toInt(); | 147 | countMsgs = action.toInt(); |
146 | } | 148 | } |
147 | 149 | ||
148 | QDialog *toShow; | 150 | QDialog *toShow; |
149 | //while (! stream.atEnd() ){ | 151 | //while (! stream.atEnd() ){ |
150 | for (int i = 0; i < countMsgs; i++){ | 152 | for (int i = 0; i < countMsgs; i++){ |
151 | odebug << "start stream " << i << "/" << countMsgs << "" << oendl; | 153 | odebug << "start stream " << i << "/" << countMsgs << "" << oendl; |
152 | if (stream.atEnd()){ | 154 | if (stream.atEnd()){ |
153 | odebug << "end of stream" << oendl; | 155 | odebug << "end of stream" << oendl; |
154 | return; | 156 | return; |
155 | } | 157 | } |
156 | stream >> interface; | 158 | stream >> interface; |
157 | odebug << "got iface" << oendl; | 159 | odebug << "got iface" << oendl; |
158 | stream >> action; | 160 | stream >> action; |
159 | odebug << "WLANModule got interface " << interface.latin1() << " and acion " << action.latin1() << "" << oendl; | 161 | odebug << "WLANModule got interface " << interface.latin1() << " and acion " << action.latin1() << "" << oendl; |
160 | // find interfaces | 162 | // find interfaces |
161 | Interface *ifa=0; | 163 | Interface *ifa=0; |
162 | for ( Interface *i=list.first(); i != 0; i=list.next() ){ | 164 | for ( Interface *i=list.first(); i != 0; i=list.next() ){ |
163 | if (i->getInterfaceName() == interface){ | 165 | if (i->getInterfaceName() == interface){ |
164 | odebug << "WLANModule found interface " << interface.latin1() << "" << oendl; | 166 | odebug << "WLANModule found interface " << interface.latin1() << "" << oendl; |
165 | ifa = i; | 167 | ifa = i; |
166 | } | 168 | } |
167 | } | 169 | } |
168 | 170 | ||
169 | if (ifa == 0){ | 171 | if (ifa == 0){ |
170 | odebug << "WLANModule Did not find " << interface.latin1() << "" << oendl; | 172 | odebug << "WLANModule Did not find " << interface.latin1() << "" << oendl; |
171 | odebug << "skipping" << oendl; | 173 | odebug << "skipping" << oendl; |
172 | count = 0; | 174 | count = 0; |
173 | } | 175 | } |
174 | 176 | ||
175 | if (count == 2){ | 177 | if (count == 2){ |
176 | // those should call the interface directly | 178 | // those should call the interface directly |
177 | QWidget *info = getInfo( ifa ); | 179 | QWidget *info = getInfo( ifa ); |
178 | QPEApplication::showWidget( info ); | 180 | QPEApplication::showWidget( info ); |
179 | 181 | ||
180 | if ( action.contains("start" ) ){ | 182 | if ( action.contains("start" ) ){ |
181 | ifa->start(); | 183 | ifa->start(); |
182 | } else if ( action.contains("restart" ) ){ | 184 | } else if ( action.contains("restart" ) ){ |
183 | ifa->restart(); | 185 | ifa->restart(); |
184 | } else if ( action.contains("stop" ) ){ | 186 | } else if ( action.contains("stop" ) ){ |
185 | ifa->stop(); | 187 | ifa->stop(); |
186 | }else if ( action.contains("refresh" ) ){ | 188 | }else if ( action.contains("refresh" ) ){ |
187 | ifa->refresh(); | 189 | ifa->refresh(); |
188 | } | 190 | } |
189 | }else if (count == 3){ | 191 | }else if (count == 3){ |
190 | QString value; | 192 | QString value; |
191 | if (!wlanconfigWiget){ | 193 | if (!wlanconfigWiget){ |
192 | //FIXME: what if it got closed meanwhile? | 194 | //FIXME: what if it got closed meanwhile? |
193 | wlanconfigWiget = (WLANImp*) configure(ifa); | 195 | wlanconfigWiget = (WLANImp*) configure(ifa); |
194 | toShow = (QDialog*) wlanconfigWiget; | 196 | toShow = (QDialog*) wlanconfigWiget; |
195 | } | 197 | } |
196 | QPEApplication::showWidget( wlanconfigWiget ); | 198 | QPEApplication::showWidget( wlanconfigWiget ); |
197 | stream >> value; | 199 | stream >> value; |
198 | odebug << "WLANModule (build 4) is setting " << action.latin1() << " of " << interface.latin1() << " to " << value.latin1() << "" << oendl; | 200 | odebug << "WLANModule (build 4) is setting " << action.latin1() << " of " << interface.latin1() << " to " << value.latin1() << "" << oendl; |
199 | if (value.isEmpty()){ | 201 | if (value.isEmpty()){ |
200 | odebug << "value is empty!!!\nreturning" << oendl; | 202 | odebug << "value is empty!!!\nreturning" << oendl; |
201 | return; | 203 | return; |