-rw-r--r-- | noncore/net/wellenreiter/cornucopia/olistview.cpp | 8 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/mainwindow.cpp | 60 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/mainwindow.h | 4 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 32 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.h | 10 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlistitem.cpp | 21 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlistitem.h | 4 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 5 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.h | 1 |
9 files changed, 118 insertions, 27 deletions
diff --git a/noncore/net/wellenreiter/cornucopia/olistview.cpp b/noncore/net/wellenreiter/cornucopia/olistview.cpp index bca17b2..8bc59de 100644 --- a/noncore/net/wellenreiter/cornucopia/olistview.cpp +++ b/noncore/net/wellenreiter/cornucopia/olistview.cpp | |||
@@ -189,64 +189,64 @@ void OListViewItem::init() | |||
189 | { | 189 | { |
190 | m_known = false; | 190 | m_known = false; |
191 | } | 191 | } |
192 | 192 | ||
193 | const QColor &OListViewItem::backgroundColor() | 193 | const QColor &OListViewItem::backgroundColor() |
194 | { | 194 | { |
195 | return isAlternate() ? static_cast<OListView*>(listView())->alternateBackground() : | 195 | return isAlternate() ? static_cast<OListView*>(listView())->alternateBackground() : |
196 | listView()->viewport()->colorGroup().base(); | 196 | listView()->viewport()->colorGroup().base(); |
197 | } | 197 | } |
198 | 198 | ||
199 | bool OListViewItem::isAlternate() | 199 | bool OListViewItem::isAlternate() |
200 | { | 200 | { |
201 | OListView *lv = static_cast<OListView*>( listView() ); | 201 | OListView *lv = static_cast<OListView*>( listView() ); |
202 | 202 | ||
203 | // check if the item above is an OListViewItem | 203 | // check if the item above is an OListViewItem |
204 | OListViewItem *above = static_cast<OListViewItem*>( itemAbove() ); | 204 | OListViewItem *above = static_cast<OListViewItem*>( itemAbove() ); |
205 | /*if (not itemAbove()->inherits( "OListViewItem" )) return false;*/ | 205 | /*if (! itemAbove()->inherits( "OListViewItem" )) return false;*/ |
206 | 206 | ||
207 | // check if we have a valid alternate background color | 207 | // check if we have a valid alternate background color |
208 | if (not (lv && lv->alternateBackground().isValid())) return false; | 208 | if (!(lv && lv->alternateBackground().isValid())) return false; |
209 | 209 | ||
210 | m_known = above ? above->m_known : true; | 210 | m_known = above ? above->m_known : true; |
211 | if (m_known) | 211 | if (m_known) |
212 | { | 212 | { |
213 | m_odd = above ? !above->m_odd : false; | 213 | m_odd = above ? !above->m_odd : false; |
214 | } | 214 | } |
215 | else | 215 | else |
216 | { | 216 | { |
217 | OListViewItem *item; | 217 | OListViewItem *item; |
218 | bool previous = true; | 218 | bool previous = true; |
219 | if (parent()) | 219 | if (parent()) |
220 | { | 220 | { |
221 | item = static_cast<OListViewItem *>(parent()); | 221 | item = static_cast<OListViewItem *>(parent()); |
222 | if ( item /*&& item->inherits( "OListViewItem" )*/ ) previous = item->m_odd; | 222 | if ( item /*&& item->inherits( "OListViewItem" )*/ ) previous = item->m_odd; |
223 | item = static_cast<OListViewItem *>(parent()->firstChild()); | 223 | item = static_cast<OListViewItem *>(parent()->firstChild()); |
224 | /* if !( item.inherits( "OListViewItem" ) item = 0; */ | 224 | /* if ( !item.inherits( "OListViewItem" ) item = 0; */ |
225 | } | 225 | } |
226 | else | 226 | else |
227 | { | 227 | { |
228 | item = static_cast<OListViewItem *>(lv->firstChild()); | 228 | item = static_cast<OListViewItem *>(lv->firstChild()); |
229 | } | 229 | } |
230 | 230 | ||
231 | while(item) | 231 | while(item) |
232 | { | 232 | { |
233 | item->m_odd = previous = !previous; | 233 | item->m_odd = previous = !previous; |
234 | item->m_known = true; | 234 | item->m_known = true; |
235 | item = static_cast<OListViewItem *>(item->nextSibling()); | 235 | item = static_cast<OListViewItem *>(item->nextSibling()); |
236 | /* if !(item.inherits( "OListViewItem" ) ) break; */ | 236 | /* if (!item.inherits( "OListViewItem" ) ) break; */ |
237 | } | 237 | } |
238 | } | 238 | } |
239 | return m_odd; | 239 | return m_odd; |
240 | } | 240 | } |
241 | 241 | ||
242 | void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) | 242 | void OListViewItem::paintCell(QPainter *p, const QColorGroup &cg, int column, int width, int alignment) |
243 | { | 243 | { |
244 | QColorGroup _cg = cg; | 244 | QColorGroup _cg = cg; |
245 | const QPixmap *pm = listView()->viewport()->backgroundPixmap(); | 245 | const QPixmap *pm = listView()->viewport()->backgroundPixmap(); |
246 | if (pm && !pm->isNull()) | 246 | if (pm && !pm->isNull()) |
247 | { | 247 | { |
248 | _cg.setBrush(QColorGroup::Base, QBrush(backgroundColor(), *pm)); | 248 | _cg.setBrush(QColorGroup::Base, QBrush(backgroundColor(), *pm)); |
249 | p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() ); | 249 | p->setBrushOrigin( -listView()->contentsX(), -listView()->contentsY() ); |
250 | } | 250 | } |
251 | else if ( isAlternate() ) | 251 | else if ( isAlternate() ) |
252 | { | 252 | { |
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp index cb003dd..e388fc5 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.cpp +++ b/noncore/net/wellenreiter/gui/mainwindow.cpp | |||
@@ -11,32 +11,33 @@ | |||
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #include "configwindow.h" | 16 | #include "configwindow.h" |
17 | #include "logwindow.h" | 17 | #include "logwindow.h" |
18 | #include "mainwindow.h" | 18 | #include "mainwindow.h" |
19 | #include "wellenreiter.h" | 19 | #include "wellenreiter.h" |
20 | 20 | ||
21 | #include "scanlist.h" | 21 | #include "scanlist.h" |
22 | 22 | ||
23 | #include <qcombobox.h> | 23 | #include <qcombobox.h> |
24 | #include <qfile.h> | 24 | #include <qfile.h> |
25 | #include <qiconset.h> | 25 | #include <qiconset.h> |
26 | #include <qmenubar.h> | 26 | #include <qmenubar.h> |
27 | #include <qmessagebox.h> | ||
27 | #include <qpopupmenu.h> | 28 | #include <qpopupmenu.h> |
28 | #include <qstatusbar.h> | 29 | #include <qstatusbar.h> |
29 | #include <qtextstream.h> | 30 | #include <qtextstream.h> |
30 | #include <qtoolbutton.h> | 31 | #include <qtoolbutton.h> |
31 | 32 | ||
32 | #ifdef QWS | 33 | #ifdef QWS |
33 | #include <qpe/resource.h> | 34 | #include <qpe/resource.h> |
34 | #else | 35 | #else |
35 | #include "resource.h" | 36 | #include "resource.h" |
36 | #endif | 37 | #endif |
37 | 38 | ||
38 | WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * name, WFlags f ) | 39 | WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * name, WFlags f ) |
39 | :QMainWindow( parent, name, f ) | 40 | :QMainWindow( parent, name, f ) |
40 | { | 41 | { |
41 | cw = new WellenreiterConfigWindow( this ); | 42 | cw = new WellenreiterConfigWindow( this ); |
42 | mw = new Wellenreiter( this ); | 43 | mw = new Wellenreiter( this ); |
@@ -46,64 +47,75 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n | |||
46 | // setup icon sets | 47 | // setup icon sets |
47 | 48 | ||
48 | infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) ); | 49 | infoIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/InfoIcon" ) ); |
49 | settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) ); | 50 | settingsIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SettingsIcon" ) ); |
50 | #ifdef QWS | 51 | #ifdef QWS |
51 | searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) ); | 52 | searchIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/SearchIcon" ) ); |
52 | cancelIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/CancelIcon" ) ); | 53 | cancelIconSet = new QIconSet( Resource::loadPixmap( "wellenreiter/CancelIcon" ) ); |
53 | #else | 54 | #else |
54 | startStopIconSet = new QIconSet(); | 55 | startStopIconSet = new QIconSet(); |
55 | startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/SearchIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::Off ); | 56 | startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/SearchIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::Off ); |
56 | startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/CancelIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::On ); | 57 | startStopIconSet->setPixmap( Resource::loadPixmap( "wellenreiter/CancelIcon" ), QIconSet::Automatic, QIconSet::Normal, QIconSet::On ); |
57 | #endif | 58 | #endif |
58 | 59 | ||
59 | // setup tool buttons | 60 | // setup tool buttons |
60 | 61 | ||
61 | startStopButton = new QToolButton( 0 ); | 62 | startStopButton = new QToolButton( 0 ); |
63 | #ifdef QWS | ||
62 | startStopButton->setAutoRaise( true ); | 64 | startStopButton->setAutoRaise( true ); |
65 | #endif | ||
63 | #ifdef QWS | 66 | #ifdef QWS |
64 | startStopButton->setOnIconSet( *cancelIconSet ); | 67 | startStopButton->setOnIconSet( *cancelIconSet ); |
65 | startStopButton->setOffIconSet( *searchIconSet ); | 68 | startStopButton->setOffIconSet( *searchIconSet ); |
66 | #else | 69 | #else |
67 | startStopButton->setIconSet( *startStopIconSet ); | 70 | startStopButton->setIconSet( *startStopIconSet ); |
68 | #endif | 71 | #endif |
69 | startStopButton->setToggleButton( true ); | 72 | startStopButton->setToggleButton( true ); |
70 | connect( startStopButton, SIGNAL( clicked() ), mw, SLOT( startStopClicked() ) ); | 73 | connect( startStopButton, SIGNAL( clicked() ), mw, SLOT( startStopClicked() ) ); |
71 | startStopButton->setEnabled( false ); | 74 | startStopButton->setEnabled( false ); |
72 | 75 | ||
73 | QToolButton* c = new QToolButton( 0 ); | 76 | QToolButton* c = new QToolButton( 0 ); |
77 | #ifdef QWS | ||
74 | c->setAutoRaise( true ); | 78 | c->setAutoRaise( true ); |
79 | #endif | ||
75 | c->setIconSet( *infoIconSet ); | 80 | c->setIconSet( *infoIconSet ); |
76 | c->setEnabled( false ); | 81 | c->setEnabled( false ); |
77 | 82 | ||
78 | QToolButton* d = new QToolButton( 0 ); | 83 | QToolButton* d = new QToolButton( 0 ); |
84 | #ifdef QWS | ||
79 | d->setAutoRaise( true ); | 85 | d->setAutoRaise( true ); |
86 | #endif | ||
80 | d->setIconSet( *settingsIconSet ); | 87 | d->setIconSet( *settingsIconSet ); |
81 | connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) ); | 88 | connect( d, SIGNAL( clicked() ), this, SLOT( showConfigure() ) ); |
82 | 89 | ||
83 | // setup menu bar | 90 | // setup menu bar |
84 | 91 | ||
85 | int id; | 92 | int id; |
86 | 93 | ||
87 | QMenuBar* mb = menuBar(); | 94 | QMenuBar* mb = menuBar(); |
88 | 95 | ||
89 | QPopupMenu* fileSave = new QPopupMenu( mb ); | 96 | QPopupMenu* fileSave = new QPopupMenu( mb ); |
97 | fileSave->insertItem( "&Session", this, SLOT( fileSaveSession() ) ); | ||
90 | fileSave->insertItem( "&Log", this, SLOT( fileSaveLog() ) ); | 98 | fileSave->insertItem( "&Log", this, SLOT( fileSaveLog() ) ); |
91 | 99 | ||
100 | QPopupMenu* fileLoad = new QPopupMenu( mb ); | ||
101 | fileLoad->insertItem( "&Session", this, SLOT( fileLoadSession() ) ); | ||
102 | fileLoad->insertItem( "&Log", this, SLOT( fileLoadLog() ) ); | ||
103 | |||
92 | QPopupMenu* file = new QPopupMenu( mb ); | 104 | QPopupMenu* file = new QPopupMenu( mb ); |
93 | id = file->insertItem( "&Load" ); | 105 | id = file->insertItem( "&Load", fileLoad ); |
94 | file->setItemEnabled( id, false ); | 106 | file->setItemEnabled( id, false ); |
95 | file->insertItem( "&Save", fileSave ); | 107 | file->insertItem( "&Save", fileSave ); |
96 | 108 | ||
97 | QPopupMenu* view = new QPopupMenu( mb ); | 109 | QPopupMenu* view = new QPopupMenu( mb ); |
98 | view->insertItem( "&Configure..." ); | 110 | view->insertItem( "&Configure..." ); |
99 | 111 | ||
100 | QPopupMenu* sniffer = new QPopupMenu( mb ); | 112 | QPopupMenu* sniffer = new QPopupMenu( mb ); |
101 | sniffer->insertItem( "&Configure..." ); | 113 | sniffer->insertItem( "&Configure..." ); |
102 | sniffer->insertSeparator(); | 114 | sniffer->insertSeparator(); |
103 | 115 | ||
104 | QPopupMenu* demo = new QPopupMenu( mb ); | 116 | QPopupMenu* demo = new QPopupMenu( mb ); |
105 | demo->insertItem( "&Add something", this, SLOT( demoAddStations() ) ); | 117 | demo->insertItem( "&Add something", this, SLOT( demoAddStations() ) ); |
106 | 118 | ||
107 | id = mb->insertItem( "&File", file ); | 119 | id = mb->insertItem( "&File", file ); |
108 | id = mb->insertItem( "&View", view ); | 120 | id = mb->insertItem( "&View", view ); |
109 | mb->setItemEnabled( id, false ); | 121 | mb->setItemEnabled( id, false ); |
@@ -159,40 +171,70 @@ void WellenreiterMainWindow::showConfigure() | |||
159 | WellenreiterMainWindow::~WellenreiterMainWindow() | 171 | WellenreiterMainWindow::~WellenreiterMainWindow() |
160 | { | 172 | { |
161 | 173 | ||
162 | delete infoIconSet; | 174 | delete infoIconSet; |
163 | delete settingsIconSet; | 175 | delete settingsIconSet; |
164 | #ifdef QWS | 176 | #ifdef QWS |
165 | delete searchIconSet; | 177 | delete searchIconSet; |
166 | delete cancelIconSet; | 178 | delete cancelIconSet; |
167 | #else | 179 | #else |
168 | delete startStopIconSet; | 180 | delete startStopIconSet; |
169 | #endif | 181 | #endif |
170 | 182 | ||
171 | }; | 183 | }; |
172 | 184 | ||
173 | void WellenreiterMainWindow::demoAddStations() | 185 | void WellenreiterMainWindow::demoAddStations() |
174 | { | 186 | { |
175 | mw->netView()->addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 ); | 187 | mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 ); |
176 | mw->netView()->addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 ); | 188 | mw->netView()->addNewItem( "managed", "Vanille", "00:00:1c:EF:A6:23", true, 11, 10 ); |
177 | mw->netView()->addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 ); | 189 | mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 ); |
178 | mw->netView()->addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 ); | 190 | mw->netView()->addNewItem( "adhoc", "ELAN", "00:AA:01:E7:56:62", false, 3, 15 ); |
179 | mw->netView()->addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 ); | 191 | mw->netView()->addNewItem( "adhoc", "ELAN", "00:B0:8E:E7:56:E2", false, 3, 20 ); |
180 | } | 192 | } |
181 | 193 | ||
182 | void WellenreiterMainWindow::fileSaveLog() | 194 | void WellenreiterMainWindow::fileSaveLog() |
183 | { | 195 | { |
184 | const QString fname( "/tmp/log.txt" ); | 196 | const QString fname( "/tmp/log.txt" ); |
185 | QFile f( fname ); | 197 | QFile f( fname ); |
186 | if ( f.open(IO_WriteOnly) ) | 198 | if ( f.open(IO_WriteOnly) ) |
187 | { | 199 | { |
188 | QTextStream t( &f ); | 200 | QTextStream t( &f ); |
189 | t << mw->logWindow()->getLog(); | 201 | t << mw->logWindow()->getLog(); |
190 | f.close(); | 202 | f.close(); |
191 | qDebug( "saved log in file '%s'", (const char*) fname ); | 203 | qDebug( "Saved log to file '%s'", (const char*) fname ); |
204 | } | ||
205 | else | ||
206 | { | ||
207 | qDebug( "Problem saving log to file '%s'", (const char*) fname ); | ||
208 | } | ||
209 | |||
210 | } | ||
211 | |||
212 | void WellenreiterMainWindow::fileSaveSession() | ||
213 | { | ||
214 | const QString fname( "/tmp/session.xml" ); | ||
215 | QFile f( fname ); | ||
216 | if ( f.open(IO_WriteOnly) ) | ||
217 | { | ||
218 | QTextStream t( &f ); | ||
219 | mw->netView()->dump( t ); | ||
220 | f.close(); | ||
221 | qDebug( "Saved session to file '%s'", (const char*) fname ); | ||
192 | } | 222 | } |
193 | else | 223 | else |
194 | { | 224 | { |
195 | qDebug( "Problem saving log in file '%s'", (const char*) fname ); | 225 | qDebug( "Problem saving session to file '%s'", (const char*) fname ); |
196 | } | 226 | } |
227 | } | ||
197 | 228 | ||
198 | } \ No newline at end of file | 229 | void WellenreiterMainWindow::closeEvent( QCloseEvent* e ) |
230 | { | ||
231 | if ( mw->isDaemonRunning() ) | ||
232 | { | ||
233 | QMessageBox::warning( this, "Wellenreiter/Opie", "Sniffing in progress!\nPlease stop sniffing before closing." ); | ||
234 | e->ignore(); | ||
235 | } | ||
236 | else | ||
237 | { | ||
238 | QMainWindow::closeEvent( e ); | ||
239 | } | ||
240 | } | ||
diff --git a/noncore/net/wellenreiter/gui/mainwindow.h b/noncore/net/wellenreiter/gui/mainwindow.h index 03aa08a..8bfccf3 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.h +++ b/noncore/net/wellenreiter/gui/mainwindow.h | |||
@@ -30,23 +30,27 @@ class WellenreiterMainWindow: public QMainWindow | |||
30 | public: | 30 | public: |
31 | WellenreiterMainWindow( QWidget * parent = 0, const char * name = "mainwindow", WFlags f = 0 ); | 31 | WellenreiterMainWindow( QWidget * parent = 0, const char * name = "mainwindow", WFlags f = 0 ); |
32 | ~WellenreiterMainWindow(); | 32 | ~WellenreiterMainWindow(); |
33 | 33 | ||
34 | protected: | 34 | protected: |
35 | Wellenreiter* mw; | 35 | Wellenreiter* mw; |
36 | WellenreiterConfigWindow* cw; | 36 | WellenreiterConfigWindow* cw; |
37 | 37 | ||
38 | QIconSet* startStopIconSet; | 38 | QIconSet* startStopIconSet; |
39 | const QIconSet* searchIconSet; | 39 | const QIconSet* searchIconSet; |
40 | const QIconSet* infoIconSet; | 40 | const QIconSet* infoIconSet; |
41 | const QIconSet* settingsIconSet; | 41 | const QIconSet* settingsIconSet; |
42 | const QIconSet* cancelIconSet; | 42 | const QIconSet* cancelIconSet; |
43 | 43 | ||
44 | QToolButton* startStopButton; | 44 | QToolButton* startStopButton; |
45 | 45 | ||
46 | protected: | ||
47 | virtual void closeEvent( QCloseEvent* ); | ||
48 | |||
46 | public slots: | 49 | public slots: |
47 | void showConfigure(); | 50 | void showConfigure(); |
48 | void demoAddStations(); | 51 | void demoAddStations(); |
49 | void fileSaveLog(); | 52 | void fileSaveLog(); |
53 | void fileSaveSession(); | ||
50 | }; | 54 | }; |
51 | 55 | ||
52 | #endif | 56 | #endif |
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp index 6d3469c..cdc2c48 100644 --- a/noncore/net/wellenreiter/gui/scanlist.cpp +++ b/noncore/net/wellenreiter/gui/scanlist.cpp | |||
@@ -7,39 +7,41 @@ | |||
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #include "scanlist.h" | 16 | #include "scanlist.h" |
17 | #include "scanlistitem.h" | 17 | #include "scanlistitem.h" |
18 | 18 | ||
19 | #include <assert.h> | 19 | #include <assert.h> |
20 | 20 | ||
21 | #include "manufacturers.h" | 21 | #include "manufacturers.h" |
22 | 22 | ||
23 | #include <qtextstream.h> | ||
24 | |||
23 | MScanListView::MScanListView( QWidget* parent, const char* name ) | 25 | MScanListView::MScanListView( QWidget* parent, const char* name ) |
24 | :OListView( parent, name ), _manufacturerdb( 0 ) | 26 | :OListView( parent, name ), _manufacturerdb( 0 ) |
25 | { | 27 | { |
26 | 28 | ||
27 | setFrameShape( QListView::StyledPanel ); | 29 | setFrameShape( QListView::StyledPanel ); |
28 | setFrameShadow( QListView::Sunken ); | 30 | setFrameShadow( QListView::Sunken ); |
29 | 31 | ||
30 | addColumn( tr( "Net/Station" ) ); | 32 | addColumn( tr( "Net/Station" ) ); |
31 | setColumnAlignment( 0, AlignLeft || AlignVCenter ); | 33 | setColumnAlignment( 0, AlignLeft || AlignVCenter ); |
32 | addColumn( tr( "B" ) ); | 34 | addColumn( tr( "B" ) ); |
33 | setColumnAlignment( 1, AlignCenter ); | 35 | setColumnAlignment( 1, AlignCenter ); |
34 | addColumn( tr( "AP" ) ); | 36 | addColumn( tr( "AP" ) ); |
35 | setColumnAlignment( 2, AlignCenter ); | 37 | setColumnAlignment( 2, AlignCenter ); |
36 | addColumn( tr( "Chn" ) ); | 38 | addColumn( tr( "Chn" ) ); |
37 | setColumnAlignment( 3, AlignCenter ); | 39 | setColumnAlignment( 3, AlignCenter ); |
38 | addColumn( tr( "W" ) ); | 40 | addColumn( tr( "W" ) ); |
39 | setColumnAlignment( 4, AlignCenter ); | 41 | setColumnAlignment( 4, AlignCenter ); |
40 | addColumn( tr( "T" ) ); | 42 | addColumn( tr( "T" ) ); |
41 | setColumnAlignment( 5, AlignCenter ); | 43 | setColumnAlignment( 5, AlignCenter ); |
42 | addColumn( tr( "Manufacturer" ) ); | 44 | addColumn( tr( "Manufacturer" ) ); |
43 | setColumnAlignment( 6, AlignCenter ); | 45 | setColumnAlignment( 6, AlignCenter ); |
44 | addColumn( tr( "First Seen" ) ); | 46 | addColumn( tr( "First Seen" ) ); |
45 | setColumnAlignment( 7, AlignCenter ); | 47 | setColumnAlignment( 7, AlignCenter ); |
@@ -112,42 +114,54 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo | |||
112 | item = static_cast<MScanListItem*> ( item->itemBelow() ); | 114 | item = static_cast<MScanListItem*> ( item->itemBelow() ); |
113 | } | 115 | } |
114 | 116 | ||
115 | if ( item ) | 117 | if ( item ) |
116 | { | 118 | { |
117 | // we have already seen this item, it's a dupe | 119 | // we have already seen this item, it's a dupe |
118 | #ifdef DEBUG | 120 | #ifdef DEBUG |
119 | qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); | 121 | qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); |
120 | #endif | 122 | #endif |
121 | item->receivedBeacon(); | 123 | item->receivedBeacon(); |
122 | return; | 124 | return; |
123 | } | 125 | } |
124 | } | 126 | } |
125 | else | 127 | else |
126 | { | 128 | { |
127 | s.sprintf( "(i) new network: '%s'", (const char*) essid ); | 129 | s.sprintf( "(i) new network: '%s'", (const char*) essid ); |
128 | 130 | ||
129 | network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 ); | 131 | network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 ); |
130 | } | 132 | } |
131 | 133 | ||
132 | 134 | ||
133 | // insert new station as child from network | 135 | // insert new station as child from network |
134 | 136 | ||
135 | // no essid to reduce clutter, maybe later we have a nick or stationname to display!? | 137 | // no essid to reduce clutter, maybe later we have a nick or stationname to display!? |
136 | 138 | ||
137 | qDebug( "inserting new station %s", (const char*) macaddr ); | 139 | qDebug( "inserting new station %s", (const char*) macaddr ); |
138 | 140 | ||
139 | MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); | 141 | MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); |
140 | if ( _manufacturerdb ) | 142 | if ( _manufacturerdb ) |
141 | station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); | 143 | station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); |
142 | 144 | ||
143 | if ( type == "managed" ) | 145 | if ( type == "managed" ) |
144 | { | 146 | { |
145 | s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); | 147 | s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); |
146 | } | 148 | } |
147 | else | 149 | else |
148 | { | 150 | { |
149 | s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); | 151 | s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); |
150 | } | 152 | } |
151 | 153 | ||
152 | } | 154 | } |
153 | 155 | ||
156 | void MScanListView::dump( QTextStream& t ) const | ||
157 | { | ||
158 | qDebug( "dumping scanlist..." ); | ||
159 | |||
160 | QListViewItemIterator it( const_cast<MScanListView*>( this ) ); | ||
161 | for ( ; it.current(); ++it ) | ||
162 | { | ||
163 | static_cast<MScanListItem*>( it.current() )->dump( t ); | ||
164 | } | ||
165 | |||
166 | qDebug( "dump finished." ); | ||
167 | } | ||
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h index 475f7b6..f06f251 100644 --- a/noncore/net/wellenreiter/gui/scanlist.h +++ b/noncore/net/wellenreiter/gui/scanlist.h | |||
@@ -5,40 +5,42 @@ | |||
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #ifndef SCANLIST_H | 16 | #ifndef SCANLIST_H |
17 | #define SCANLIST_H | 17 | #define SCANLIST_H |
18 | 18 | ||
19 | #include <cornucopia/olistview.h> | 19 | #include <cornucopia/olistview.h> |
20 | 20 | ||
21 | class QString; | 21 | #include <qtextstream.h> |
22 | 22 | ||
23 | class QString; | ||
23 | class ManufacturerDB; | 24 | class ManufacturerDB; |
24 | 25 | ||
25 | class MScanListView: public OListView | 26 | class MScanListView: public OListView |
26 | { | 27 | { |
27 | Q_OBJECT | 28 | Q_OBJECT |
28 | 29 | ||
29 | public: | 30 | public: |
30 | MScanListView( QWidget* parent = 0, const char* name = 0 ); | 31 | MScanListView( QWidget* parent = 0, const char* name = 0 ); |
31 | virtual ~MScanListView(); | 32 | virtual ~MScanListView(); |
32 | 33 | ||
33 | void setManufacturerDB( ManufacturerDB* manufacturerdb ); | 34 | void setManufacturerDB( ManufacturerDB* manufacturerdb ); |
34 | 35 | void dump( QTextStream& t ) const; | |
36 | |||
35 | public slots: | 37 | public slots: |
36 | void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); | 38 | void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); |
37 | 39 | ||
38 | private: | 40 | private: |
39 | ManufacturerDB* _manufacturerdb; | 41 | ManufacturerDB* _manufacturerdb; |
40 | 42 | ||
41 | }; | 43 | }; |
42 | 44 | ||
43 | #endif | 45 | #endif |
44 | 46 | ||
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp index bfa7aa9..4aecd2b 100644 --- a/noncore/net/wellenreiter/gui/scanlistitem.cpp +++ b/noncore/net/wellenreiter/gui/scanlistitem.cpp | |||
@@ -70,33 +70,52 @@ void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, | |||
70 | if ( wep ) | 70 | if ( wep ) |
71 | setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! | 71 | setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); //FIXME: rename the pixmap! |
72 | 72 | ||
73 | // set channel and signal text | 73 | // set channel and signal text |
74 | 74 | ||
75 | if ( signal != -1 ) | 75 | if ( signal != -1 ) |
76 | setText( col_sig, QString::number( signal ) ); | 76 | setText( col_sig, QString::number( signal ) ); |
77 | if ( channel != -1 ) | 77 | if ( channel != -1 ) |
78 | setText( col_channel, QString::number( channel ) ); | 78 | setText( col_channel, QString::number( channel ) ); |
79 | 79 | ||
80 | setText( col_firstseen, QTime::currentTime().toString() ); | 80 | setText( col_firstseen, QTime::currentTime().toString() ); |
81 | //setText( col_lastseen, QTime::currentTime().toString() ); | 81 | //setText( col_lastseen, QTime::currentTime().toString() ); |
82 | 82 | ||
83 | listView()->triggerUpdate(); | 83 | listView()->triggerUpdate(); |
84 | 84 | ||
85 | this->type = type; | 85 | this->type = type; |
86 | 86 | _type = type; | |
87 | _essid = essid; | ||
88 | _macaddr = macaddr; | ||
89 | _channel = channel; | ||
90 | _beacons = 0; | ||
91 | _signal = 0; | ||
87 | } | 92 | } |
88 | 93 | ||
89 | void MScanListItem::setManufacturer( const QString& manufacturer ) | 94 | void MScanListItem::setManufacturer( const QString& manufacturer ) |
90 | { | 95 | { |
91 | setText( col_manuf, manufacturer ); | 96 | setText( col_manuf, manufacturer ); |
92 | } | 97 | } |
93 | 98 | ||
94 | void MScanListItem::receivedBeacon() | 99 | void MScanListItem::receivedBeacon() |
95 | { | 100 | { |
96 | _beacons++; | 101 | _beacons++; |
97 | #ifdef DEBUG | 102 | #ifdef DEBUG |
98 | qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons ); | 103 | qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons ); |
99 | #endif | 104 | #endif |
100 | setText( col_sig, QString::number( _beacons ) ); | 105 | setText( col_sig, QString::number( _beacons ) ); |
101 | setText( col_lastseen, QTime::currentTime().toString() ); | 106 | setText( col_lastseen, QTime::currentTime().toString() ); |
102 | } | 107 | } |
108 | |||
109 | void MScanListItem::dump( QTextStream& t ) const | ||
110 | { | ||
111 | qDebug( "dumping scanlistitem at <%d>", this ); | ||
112 | t << "<ITEM type=" << _type; | ||
113 | t << " ESSID='" << _essid; | ||
114 | t << "' MAC=" << _macaddr; | ||
115 | t << " WEP=" << _wep; | ||
116 | t << " CHANNEL=" << _channel; | ||
117 | t << " SIGNAL=" << _signal; | ||
118 | t << " BEACONS=" << _beacons; | ||
119 | t << ">\n"; | ||
120 | } | ||
121 | |||
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h index 89b3bc4..5f6ae40 100644 --- a/noncore/net/wellenreiter/gui/scanlistitem.h +++ b/noncore/net/wellenreiter/gui/scanlistitem.h | |||
@@ -5,32 +5,34 @@ | |||
5 | ** | 5 | ** |
6 | ** This file may be distributed and/or modified under the terms of the | 6 | ** This file may be distributed and/or modified under the terms of the |
7 | ** GNU General Public License version 2 as published by the Free Software | 7 | ** GNU General Public License version 2 as published by the Free Software |
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE |
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | **********************************************************************/ | 14 | **********************************************************************/ |
15 | 15 | ||
16 | #ifndef SCANLISTITEM_H | 16 | #ifndef SCANLISTITEM_H |
17 | #define SCANLISTITEM_H | 17 | #define SCANLISTITEM_H |
18 | 18 | ||
19 | #include <cornucopia/olistview.h> | 19 | #include <cornucopia/olistview.h> |
20 | 20 | ||
21 | #include <qtextstream.h> | ||
22 | |||
21 | class QString; | 23 | class QString; |
22 | 24 | ||
23 | class MScanListItem: public OListViewItem | 25 | class MScanListItem: public OListViewItem |
24 | { | 26 | { |
25 | public: | 27 | public: |
26 | 28 | ||
27 | MScanListItem::MScanListItem( QListView* parent, | 29 | MScanListItem::MScanListItem( QListView* parent, |
28 | QString type, | 30 | QString type, |
29 | QString essid, | 31 | QString essid, |
30 | QString macaddr, | 32 | QString macaddr, |
31 | bool wep, | 33 | bool wep, |
32 | int channel, | 34 | int channel, |
33 | int signal ); | 35 | int signal ); |
34 | 36 | ||
35 | MScanListItem::MScanListItem( QListViewItem* parent, | 37 | MScanListItem::MScanListItem( QListViewItem* parent, |
36 | QString type, | 38 | QString type, |
@@ -51,29 +53,31 @@ class MScanListItem: public OListViewItem | |||
51 | 53 | ||
52 | public: | 54 | public: |
53 | 55 | ||
54 | //const QString& type() { return _type; }; | 56 | //const QString& type() { return _type; }; |
55 | const QString& essid() { return _essid; }; | 57 | const QString& essid() { return _essid; }; |
56 | const QString& macaddr() { return _macaddr; }; | 58 | const QString& macaddr() { return _macaddr; }; |
57 | bool wep() { return _wep; }; | 59 | bool wep() { return _wep; }; |
58 | int channel() { return _channel; }; | 60 | int channel() { return _channel; }; |
59 | int signal() { return _signal; }; | 61 | int signal() { return _signal; }; |
60 | int beacons() { return _beacons; }; | 62 | int beacons() { return _beacons; }; |
61 | 63 | ||
62 | void setSignal( int signal ) { /* TODO */ }; | 64 | void setSignal( int signal ) { /* TODO */ }; |
63 | void receivedBeacon(); | 65 | void receivedBeacon(); |
64 | 66 | ||
65 | void setManufacturer( const QString& manufacturer ); | 67 | void setManufacturer( const QString& manufacturer ); |
66 | 68 | ||
69 | void dump( QTextStream& t ) const; | ||
70 | |||
67 | private: | 71 | private: |
68 | QString _type; | 72 | QString _type; |
69 | QString _essid; | 73 | QString _essid; |
70 | QString _macaddr; | 74 | QString _macaddr; |
71 | bool _wep; | 75 | bool _wep; |
72 | int _channel; | 76 | int _channel; |
73 | int _signal; | 77 | int _signal; |
74 | int _beacons; | 78 | int _beacons; |
75 | 79 | ||
76 | }; | 80 | }; |
77 | 81 | ||
78 | #endif | 82 | #endif |
79 | 83 | ||
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index c599bb4..1ccf971 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp | |||
@@ -110,32 +110,37 @@ Wellenreiter::Wellenreiter( QWidget* parent ) | |||
110 | connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); | 110 | connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); |
111 | } | 111 | } |
112 | 112 | ||
113 | // setup GUI | 113 | // setup GUI |
114 | netview->setColumnWidthMode( 1, QListView::Manual ); | 114 | netview->setColumnWidthMode( 1, QListView::Manual ); |
115 | 115 | ||
116 | if ( manufacturerdb ) | 116 | if ( manufacturerdb ) |
117 | netview->setManufacturerDB( manufacturerdb ); | 117 | netview->setManufacturerDB( manufacturerdb ); |
118 | 118 | ||
119 | } | 119 | } |
120 | 120 | ||
121 | Wellenreiter::~Wellenreiter() | 121 | Wellenreiter::~Wellenreiter() |
122 | { | 122 | { |
123 | // no need to delete child widgets, Qt does it all for us | 123 | // no need to delete child widgets, Qt does it all for us |
124 | 124 | ||
125 | delete manufacturerdb; | 125 | delete manufacturerdb; |
126 | if ( daemon_fd != -1 ) | ||
127 | { | ||
128 | qDebug( "closing comm socket" ); | ||
129 | close( daemon_fd ); | ||
130 | } | ||
126 | } | 131 | } |
127 | 132 | ||
128 | void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) | 133 | void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) |
129 | { | 134 | { |
130 | configwindow = cw; | 135 | configwindow = cw; |
131 | } | 136 | } |
132 | 137 | ||
133 | void Wellenreiter::handleMessage() | 138 | void Wellenreiter::handleMessage() |
134 | { | 139 | { |
135 | // FIXME: receive message and handle it | 140 | // FIXME: receive message and handle it |
136 | 141 | ||
137 | qDebug( "received message from daemon." ); | 142 | qDebug( "received message from daemon." ); |
138 | 143 | ||
139 | /*char buffer[10000]; | 144 | /*char buffer[10000]; |
140 | memset( &buffer, 0, sizeof( buffer ) );*/ | 145 | memset( &buffer, 0, sizeof( buffer ) );*/ |
141 | 146 | ||
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index ff523d4..ee9dca9 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h | |||
@@ -40,32 +40,33 @@ using namespace Opie; | |||
40 | 40 | ||
41 | class QTimerEvent; | 41 | class QTimerEvent; |
42 | class QPixmap; | 42 | class QPixmap; |
43 | class ManufacturerDB; | 43 | class ManufacturerDB; |
44 | class WellenreiterConfigWindow; | 44 | class WellenreiterConfigWindow; |
45 | 45 | ||
46 | class Wellenreiter : public WellenreiterBase { | 46 | class Wellenreiter : public WellenreiterBase { |
47 | Q_OBJECT | 47 | Q_OBJECT |
48 | 48 | ||
49 | public: | 49 | public: |
50 | Wellenreiter( QWidget* parent = 0 ); | 50 | Wellenreiter( QWidget* parent = 0 ); |
51 | ~Wellenreiter(); | 51 | ~Wellenreiter(); |
52 | 52 | ||
53 | void setConfigWindow( WellenreiterConfigWindow* cw ); | 53 | void setConfigWindow( WellenreiterConfigWindow* cw ); |
54 | MScanListView* netView() const { return netview; }; | 54 | MScanListView* netView() const { return netview; }; |
55 | MLogWindow* logWindow() const { return logwindow; }; | 55 | MLogWindow* logWindow() const { return logwindow; }; |
56 | bool isDaemonRunning() const { return daemonRunning; }; | ||
56 | 57 | ||
57 | protected: | 58 | protected: |
58 | bool daemonRunning; | 59 | bool daemonRunning; |
59 | 60 | ||
60 | public slots: | 61 | public slots: |
61 | void dataReceived(); | 62 | void dataReceived(); |
62 | void startStopClicked(); | 63 | void startStopClicked(); |
63 | 64 | ||
64 | private: | 65 | private: |
65 | int daemon_fd; // socket filedescriptor for udp communication socket | 66 | int daemon_fd; // socket filedescriptor for udp communication socket |
66 | #ifdef QWS | 67 | #ifdef QWS |
67 | OSystem _system; // Opie Operating System identifier | 68 | OSystem _system; // Opie Operating System identifier |
68 | #endif | 69 | #endif |
69 | void handleMessage(); | 70 | void handleMessage(); |
70 | 71 | ||
71 | ManufacturerDB* manufacturerdb; | 72 | ManufacturerDB* manufacturerdb; |