summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2002-12-09 15:31:42 (UTC)
committer mickeyl <mickeyl>2002-12-09 15:31:42 (UTC)
commitb0a600bf9dd32b908d79c2cf1f12b8088dc2590d (patch) (unidiff)
treea0555985d4cf10e135cb5e3bcf318ef359cf7936
parent159a3334ecd168f422afe81853998373457fefa0 (diff)
downloadopie-b0a600bf9dd32b908d79c2cf1f12b8088dc2590d.zip
opie-b0a600bf9dd32b908d79c2cf1f12b8088dc2590d.tar.gz
opie-b0a600bf9dd32b908d79c2cf1f12b8088dc2590d.tar.bz2
APs and adhoc stations are now grouped and displayed as belonging to a common
net.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.cpp10
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.h4
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp39
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.cpp7
4 files changed, 45 insertions, 15 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp
index 9532a01..189a12d 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.cpp
+++ b/noncore/net/wellenreiter/gui/scanlistitem.cpp
@@ -35,31 +35,35 @@ MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QS
35} 35}
36 36
37MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr, 37MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
38 bool wep, int channel, int signal ) 38 bool wep, int channel, int signal )
39 :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) 39 :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
40{ 40{
41 qDebug( "creating scanlist item" ); 41 qDebug( "creating scanlist item" );
42 decorateItem( type, essid, macaddr, wep, channel, signal ); 42 decorateItem( type, essid, macaddr, wep, channel, signal );
43} 43}
44 44
45void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 45void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
46{ 46{
47 qDebug( "decorating scanlist item" ); 47 qDebug( "decorating scanlist item" );
48 48
49 // set icon for managed or adhoc mode 49 // set icon for managed or adhoc mode
50 QString name; 50 QString name;
51 name.sprintf( "wellenreiter/%s", (const char*) type ); 51 name.sprintf( "wellenreiter/%s", (const char*) type );
52 setPixmap( col_type, Resource::loadPixmap( name ) ); 52 setPixmap( col_type, Resource::loadPixmap( name ) );
53 53
54 // set icon for wep (wireless encryption protocol) 54 // set icon for wep (wireless encryption protocol)
55 if ( wep ) 55 if ( wep )
56 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); // rename the pixmap! 56 setPixmap( col_wep, Resource::loadPixmap( "wellenreiter/cracked" ) ); // rename the pixmap!
57 57
58 // set channel and signal text 58 // set channel and signal text
59 setText( col_sig, QString::number( signal ) ); 59
60 setText( col_channel, QString::number( channel ) ); 60 if ( signal != -1 )
61 //setText 61 setText( col_sig, QString::number( signal ) );
62 if ( channel != -1 )
63 setText( col_channel, QString::number( channel ) );
62 64
63 listView()->triggerUpdate(); 65 listView()->triggerUpdate();
66
67 this->type = type;
64 68
65} 69}
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h
index dd8219a..cd9d883 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.h
+++ b/noncore/net/wellenreiter/gui/scanlistitem.h
@@ -24,28 +24,32 @@ class MScanListItem: public QListViewItem
24{ 24{
25 public: 25 public:
26 26
27 MScanListItem::MScanListItem( QListView* parent, 27 MScanListItem::MScanListItem( QListView* parent,
28 QString type, 28 QString type,
29 QString essid, 29 QString essid,
30 QString macaddr, 30 QString macaddr,
31 bool wep, 31 bool wep,
32 int channel, 32 int channel,
33 int signal ); 33 int signal );
34 34
35 MScanListItem::MScanListItem( QListViewItem* parent, 35 MScanListItem::MScanListItem( QListViewItem* parent,
36 QString type, 36 QString type,
37 QString essid, 37 QString essid,
38 QString macaddr, 38 QString macaddr,
39 bool wep, 39 bool wep,
40 int channel, 40 int channel,
41 int signal ); 41 int signal );
42 42
43 43
44 protected: 44 protected:
45 45
46 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 46 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
47 47
48 public:
49
50 QString type;
51
48}; 52};
49 53
50#endif 54#endif
51 55
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index d1ace46..9c8630f 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -133,63 +133,78 @@ bool Wellenreiter::hasMessage()
133 int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv ); 133 int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv );
134 return FD_ISSET( daemon_fd, &rfds ); 134 return FD_ISSET( daemon_fd, &rfds );
135} 135}
136 136
137void Wellenreiter::timerEvent( QTimerEvent* e ) 137void Wellenreiter::timerEvent( QTimerEvent* e )
138{ 138{
139 qDebug( "checking for message..." ); 139 qDebug( "checking for message..." );
140 140
141 if ( hasMessage() ) 141 if ( hasMessage() )
142 { 142 {
143 handleMessage(); 143 handleMessage();
144 } 144 }
145 else 145 else
146 { 146 {
147 qDebug( "no message :(" ); 147 qDebug( "no message :(" );
148 } 148 }
149} 149}
150 150
151void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) 151void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
152{ 152{
153 // FIXME: this code belongs in customized QListView, not into this class 153 // FIXME: this code belongs in customized QListView, not into this class
154 154
155 // search, if we had an item with this essid once before 155 // search, if we had an item with this essid once before
156 156
157 QListViewItem* item = netview->firstChild(); 157 //MScanListItem* item = dynamic_cast<MScanListItem*>( netview->firstChild() );
158 MScanListItem* item = static_cast<MScanListItem*>( netview->firstChild() );
158 159
159 while ( item && ( item->text( 0 ) != essid ) ) 160 while ( item && ( item->text( 0 ) != essid ) )
160 { 161 {
161 qDebug( "itemtext: %s", (const char*) item->text( 0 ) ); 162 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
162 item = item->itemBelow(); 163 item = dynamic_cast<MScanListItem*>( item->itemBelow() );
163 } 164 }
164 if ( item ) 165 if ( item )
165 { 166 {
166 qDebug( "found!" ); 167 qDebug( "found!" );
167 168
168 if ( macaddr != item->text( 2 ) ) 169 // check, if it is the same item (based on MACaddr)
169 new MScanListItem( item, type, essid, macaddr, wep, channel, signal ); 170
170 else 171 if ( macaddr == item->text( 2 ) )
171 qDebug( "already there. ignoring..." ); 172 {
173 qDebug( "already had item with mac %s", (const char*) item->text( 2 ) );
174 return;
175 }
176
177 // another item belonging to the same net, so: insert the new item as child
178
179 new MScanListItem( item, type, essid, macaddr, wep, channel, signal );
172 } 180 }
181
173 else 182 else
174 { 183 {
175 new MScanListItem( netview, type, essid, macaddr, wep, channel, signal ); 184 qDebug( "inserting new network" );
185 MScanListItem* network = new MScanListItem( netview, "networks", essid, QString::null, 0, 0, 0 );
186
187 new MScanListItem( network, type, essid, macaddr, wep, channel, signal );
176 } 188 }
177} 189}
178 190
179void Wellenreiter::buttonClicked() 191void Wellenreiter::buttonClicked()
180{ 192{
181 193
182 // FIXME: communicate with daemon and set button text according to state 194 // FIXME: communicate with daemon and set button text according to state
183 195
184 button->setText( "Stop Scanning" ); 196 button->setText( "Stop Scanning" );
185 197
186 // add some icons, so that we can see if this works 198 // add some test stations, so that we can see if the GUI part works
187
188 addNewItem( "managed", "DummyNet", "04:00:20:EF:A6:43", true, 6, 80 );
189 addNewItem( "adhoc", "DummyNet", "40:03:A3:E7:56:22", false, 11, 30 );
190 199
200 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 );
201 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 );
202 addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 );
203 addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 );
204 addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 );
205
191 QString command ("98"); 206 QString command ("98");
192 207
193 sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command ); 208 //sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command );
194 209
195} 210}
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
index 9b6424d..b1845b9 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
@@ -39,53 +39,60 @@
39 * name 'name' and widget flags set to 'f' 39 * name 'name' and widget flags set to 'f'
40 */ 40 */
41WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl ) 41WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl )
42 : QWidget( parent, name, fl ) 42 : QWidget( parent, name, fl )
43{ 43{
44 if ( !name ) 44 if ( !name )
45 setName( "WellenreiterBase" ); 45 setName( "WellenreiterBase" );
46 resize( 191, 294 ); 46 resize( 191, 294 );
47 setCaption( tr( "Wellenreiter" ) ); 47 setCaption( tr( "Wellenreiter" ) );
48 WellenreiterBaseLayout = new QVBoxLayout( this ); 48 WellenreiterBaseLayout = new QVBoxLayout( this );
49 WellenreiterBaseLayout->setSpacing( 2 ); 49 WellenreiterBaseLayout->setSpacing( 2 );
50 WellenreiterBaseLayout->setMargin( 0 ); 50 WellenreiterBaseLayout->setMargin( 0 );
51 51
52 TabWidget = new OTabWidget( this, "TabWidget", OTabWidget::Global ); 52 TabWidget = new OTabWidget( this, "TabWidget", OTabWidget::Global );
53 53
54 ap = new QWidget( TabWidget, "ap" ); 54 ap = new QWidget( TabWidget, "ap" );
55 apLayout = new QVBoxLayout( ap ); 55 apLayout = new QVBoxLayout( ap );
56 apLayout->setSpacing( 2 ); 56 apLayout->setSpacing( 2 );
57 apLayout->setMargin( 2 ); 57 apLayout->setMargin( 2 );
58 58
59 //--------- NETVIEW TAB -------------- 59 //--------- NETVIEW TAB --------------
60 60
61 netview = new QListView( ap, "netview" ); 61 netview = new QListView( ap, "netview" );
62 netview->addColumn( tr( "SSID" ) ); 62 netview->addColumn( tr( "SSID" ) );
63 netview->setColumnAlignment( 0, AlignLeft || AlignVCenter );
63 netview->addColumn( tr( "Sig" ) ); 64 netview->addColumn( tr( "Sig" ) );
65 netview->setColumnAlignment( 1, AlignCenter );
64 netview->addColumn( tr( "AP" ) ); 66 netview->addColumn( tr( "AP" ) );
67 netview->setColumnAlignment( 2, AlignCenter );
65 netview->addColumn( tr( "Chn" ) ); 68 netview->addColumn( tr( "Chn" ) );
69 netview->setColumnAlignment( 3, AlignCenter );
66 netview->addColumn( tr( "W" ) ); 70 netview->addColumn( tr( "W" ) );
71 netview->setColumnAlignment( 4, AlignCenter );
67 netview->addColumn( tr( "T" ) ); 72 netview->addColumn( tr( "T" ) );
73 netview->setColumnAlignment( 5, AlignCenter );
74
68 netview->setFrameShape( QListView::StyledPanel ); 75 netview->setFrameShape( QListView::StyledPanel );
69 netview->setFrameShadow( QListView::Sunken ); 76 netview->setFrameShadow( QListView::Sunken );
70 netview->setRootIsDecorated( TRUE ); 77 netview->setRootIsDecorated( TRUE );
71 apLayout->addWidget( netview ); 78 apLayout->addWidget( netview );
72 TabWidget->addTab( ap, "wellenreiter/networks", tr( "Networks" ) ); 79 TabWidget->addTab( ap, "wellenreiter/networks", tr( "Networks" ) );
73 80
74 //--------- LOG TAB -------------- 81 //--------- LOG TAB --------------
75 82
76 logwindow = new MLogWindow( TabWidget, "Log" ); 83 logwindow = new MLogWindow( TabWidget, "Log" );
77 TabWidget->addTab( logwindow, "wellenreiter/log", tr( "Log" ) ); 84 TabWidget->addTab( logwindow, "wellenreiter/log", tr( "Log" ) );
78 85
79 //--------- HEX TAB -------------- 86 //--------- HEX TAB --------------
80 87
81 hexwindow = new MHexWindow( TabWidget, "Hex" ); 88 hexwindow = new MHexWindow( TabWidget, "Hex" );
82 TabWidget->addTab( hexwindow, "wellenreiter/hex", tr( "Hex" ) ); 89 TabWidget->addTab( hexwindow, "wellenreiter/hex", tr( "Hex" ) );
83 90
84 //--------- CONFIG TAB -------------- 91 //--------- CONFIG TAB --------------
85 92
86 QPushButton* dummy = new QPushButton( "under construction", TabWidget ); 93 QPushButton* dummy = new QPushButton( "under construction", TabWidget );
87 TabWidget->addTab( dummy, "wellenreiter/config", tr( "Config" ) ); 94 TabWidget->addTab( dummy, "wellenreiter/config", tr( "Config" ) );
88 95
89 //--------- ABOUT TAB -------------- 96 //--------- ABOUT TAB --------------
90 97
91 about = new QWidget( TabWidget, "about" ); 98 about = new QWidget( TabWidget, "about" );