-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp index 7733934..b8aa81c 100644 --- a/noncore/net/wellenreiter/gui/scanlist.cpp +++ b/noncore/net/wellenreiter/gui/scanlist.cpp | |||
@@ -70,181 +70,163 @@ MScanListView::MScanListView( QWidget* parent, const char* name ) | |||
70 | addColumn( tr( "Last Seen" ) ); | 70 | addColumn( tr( "Last Seen" ) ); |
71 | setColumnAlignment( 8, AlignCenter ); | 71 | setColumnAlignment( 8, AlignCenter ); |
72 | setRootIsDecorated( true ); | 72 | setRootIsDecorated( true ); |
73 | setAllColumnsShowFocus( true ); | 73 | setAllColumnsShowFocus( true ); |
74 | }; | 74 | }; |
75 | 75 | ||
76 | MScanListView::~MScanListView() | 76 | MScanListView::~MScanListView() |
77 | { | 77 | { |
78 | }; | 78 | }; |
79 | 79 | ||
80 | OListViewItem* MScanListView::childFactory() | 80 | OListViewItem* MScanListView::childFactory() |
81 | { | 81 | { |
82 | return new MScanListItem( this ); | 82 | return new MScanListItem( this ); |
83 | } | 83 | } |
84 | 84 | ||
85 | void MScanListView::serializeTo( QDataStream& s) const | 85 | void MScanListView::serializeTo( QDataStream& s) const |
86 | { | 86 | { |
87 | qDebug( "serializing MScanListView" ); | 87 | qDebug( "serializing MScanListView" ); |
88 | OListView::serializeTo( s ); | 88 | OListView::serializeTo( s ); |
89 | } | 89 | } |
90 | 90 | ||
91 | void MScanListView::serializeFrom( QDataStream& s) | 91 | void MScanListView::serializeFrom( QDataStream& s) |
92 | { | 92 | { |
93 | qDebug( "serializing MScanListView" ); | 93 | qDebug( "serializing MScanListView" ); |
94 | OListView::serializeFrom( s ); | 94 | OListView::serializeFrom( s ); |
95 | } | 95 | } |
96 | 96 | ||
97 | void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) | 97 | void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) |
98 | { | 98 | { |
99 | _manufacturerdb = manufacturerdb; | 99 | _manufacturerdb = manufacturerdb; |
100 | } | 100 | } |
101 | 101 | ||
102 | void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) | 102 | void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) |
103 | { | 103 | { |
104 | // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) | 104 | // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) |
105 | 105 | ||
106 | qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", | 106 | qDebug( "MScanList::addNewItem( %s / %s / %s [%d]", |
107 | (const char*) type, | 107 | (const char*) type, |
108 | (const char*) essid, | 108 | (const char*) essid, |
109 | (const char*) macaddr, | 109 | (const char*) macaddr, |
110 | channel ); | 110 | channel ); |
111 | 111 | ||
112 | // search, if we already have seen this net | 112 | // search, if we already have seen this net |
113 | 113 | ||
114 | QString s; | 114 | QString s; |
115 | MScanListItem* network; | 115 | MScanListItem* network; |
116 | MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); | 116 | MScanListItem* item = static_cast<MScanListItem*> ( firstChild() ); |
117 | 117 | ||
118 | while ( item && ( item->text( 0 ) != essid ) ) | 118 | while ( item && ( item->text( col_essid ) != essid ) ) |
119 | { | 119 | { |
120 | qDebug( "itemtext: %s", (const char*) item->text( 0 ) ); | 120 | qDebug( "itemtext: %s", (const char*) item->text( col_essid ) ); |
121 | item = static_cast<MScanListItem*> ( item->itemBelow() ); | 121 | item = static_cast<MScanListItem*> ( item->nextSibling() ); |
122 | } | 122 | } |
123 | if ( item ) | 123 | if ( item ) |
124 | { | 124 | { |
125 | // animate the item | ||
126 | |||
127 | /* | ||
128 | |||
129 | const QPixmap* pixmap = item->pixmap( 0 ); | ||
130 | const QPixmap* nextpixmap = ani2; | ||
131 | if ( pixmap == ani1 ) | ||
132 | nextpixmap = ani2; | ||
133 | else if ( pixmap == ani2 ) | ||
134 | nextpixmap = ani3; | ||
135 | else if ( pixmap == ani3 ) | ||
136 | nextpixmap = ani4; | ||
137 | else if ( pixmap == ani4 ) | ||
138 | nextpixmap = ani1; | ||
139 | item->setPixmap( 0, *nextpixmap ); */ | ||
140 | |||
141 | //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap ); | ||
142 | |||
143 | // we have already seen this net, check all childs if MAC exists | 125 | // we have already seen this net, check all childs if MAC exists |
144 | 126 | ||
145 | network = item; | 127 | network = item; |
146 | 128 | ||
147 | item = static_cast<MScanListItem*> ( item->firstChild() ); | 129 | item = static_cast<MScanListItem*> ( item->firstChild() ); |
148 | assert( item ); // this shouldn't fail | 130 | assert( item ); // this shouldn't fail |
149 | 131 | ||
150 | while ( item && ( item->text( 2 ) != macaddr ) ) | 132 | while ( item && ( item->text( col_ap ) != macaddr ) ) |
151 | { | 133 | { |
152 | qDebug( "subitemtext: %s", (const char*) item->text( 2 ) ); | 134 | qDebug( "subitemtext: %s", (const char*) item->text( col_ap ) ); |
153 | item = static_cast<MScanListItem*> ( item->itemBelow() ); | 135 | item = static_cast<MScanListItem*> ( item->nextSibling() ); |
154 | } | 136 | } |
155 | 137 | ||
156 | if ( item ) | 138 | if ( item ) |
157 | { | 139 | { |
158 | // we have already seen this item, it's a dupe | 140 | // we have already seen this item, it's a dupe |
159 | #ifdef DEBUG | 141 | #ifdef DEBUG |
160 | qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); | 142 | qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); |
161 | #endif | 143 | #endif |
162 | item->receivedBeacon(); | 144 | item->receivedBeacon(); |
163 | return; | 145 | return; |
164 | } | 146 | } |
165 | } | 147 | } |
166 | else | 148 | else |
167 | { | 149 | { |
168 | s.sprintf( "(i) new network: '%s'", (const char*) essid ); | 150 | s.sprintf( "(i) new network: '%s'", (const char*) essid ); |
169 | network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0 ); | 151 | network = new MScanListItem( this, "network", essid, QString::null, 0, 0, 0 ); |
170 | } | 152 | } |
171 | 153 | ||
172 | 154 | ||
173 | // insert new station as child from network | 155 | // insert new station as child from network |
174 | 156 | ||
175 | // no essid to reduce clutter, maybe later we have a nick or stationname to display!? | 157 | // no essid to reduce clutter, maybe later we have a nick or stationname to display!? |
176 | 158 | ||
177 | qDebug( "inserting new station %s", (const char*) macaddr ); | 159 | qDebug( "inserting new station %s", (const char*) macaddr ); |
178 | 160 | ||
179 | MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); | 161 | MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); |
180 | if ( _manufacturerdb ) | 162 | if ( _manufacturerdb ) |
181 | station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); | 163 | station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); |
182 | 164 | ||
183 | if ( type == "managed" ) | 165 | if ( type == "managed" ) |
184 | { | 166 | { |
185 | s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); | 167 | s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel ); |
186 | } | 168 | } |
187 | else | 169 | else |
188 | { | 170 | { |
189 | s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); | 171 | s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel ); |
190 | } | 172 | } |
191 | 173 | ||
192 | } | 174 | } |
193 | 175 | ||
194 | 176 | ||
195 | void MScanListView::addIfNotExisting( MScanListItem* network, QString addr ) | 177 | void MScanListView::addIfNotExisting( MScanListItem* network, QString addr ) |
196 | { | 178 | { |
197 | MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() ); | 179 | MScanListItem* subitem = static_cast<MScanListItem*>( network->firstChild() ); |
198 | 180 | ||
199 | while ( subitem && ( subitem->text( col_ap ) != addr ) ) | 181 | while ( subitem && ( subitem->text( col_ap ) != addr ) ) |
200 | { | 182 | { |
201 | qDebug( "subitemtext: %s", (const char*) subitem->text( col_ap ) ); | 183 | qDebug( "subitemtext: %s", (const char*) subitem->text( col_ap ) ); |
202 | subitem = static_cast<MScanListItem*> ( subitem->itemBelow() ); | 184 | subitem = static_cast<MScanListItem*> ( subitem->nextSibling() ); |
203 | } | 185 | } |
204 | 186 | ||
205 | if ( subitem ) | 187 | if ( subitem ) |
206 | { | 188 | { |
207 | // we have already seen this item, it's a dupe | 189 | // we have already seen this item, it's a dupe |
208 | #ifdef DEBUG | 190 | #ifdef DEBUG |
209 | qDebug( "%s is a dupe - ignoring...", (const char*) addr ); | 191 | qDebug( "%s is a dupe - ignoring...", (const char*) addr ); |
210 | #endif | 192 | #endif |
211 | subitem->receivedBeacon(); //FIXME: sent data bit | 193 | subitem->receivedBeacon(); //FIXME: sent data bit |
212 | return; | 194 | return; |
213 | } | 195 | } |
214 | 196 | ||
215 | // Hey, it seems to be a new item :-D | 197 | // Hey, it seems to be a new item :-D |
216 | MScanListItem* station = new MScanListItem( network, "station", /* network->text( col_essid ) */ "", addr, false, -1, -1 ); | 198 | MScanListItem* station = new MScanListItem( network, "station", /* network->text( col_essid ) */ "", addr, false, -1, -1 ); |
217 | if ( _manufacturerdb ) | 199 | if ( _manufacturerdb ) |
218 | station->setManufacturer( _manufacturerdb->lookup( addr ) ); | 200 | station->setManufacturer( _manufacturerdb->lookup( addr ) ); |
219 | } | 201 | } |
220 | 202 | ||
221 | 203 | ||
222 | void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QString viaTo ) | 204 | void MScanListView::WDStraffic( QString from, QString to, QString viaFrom, QString viaTo ) |
223 | { | 205 | { |
224 | QString s; | 206 | QString s; |
225 | MScanListItem* network; | 207 | MScanListItem* network; |
226 | 208 | ||
227 | QListViewItemIterator it( this ); | 209 | QListViewItemIterator it( this ); |
228 | while ( it.current() && | 210 | while ( it.current() && |
229 | it.current()->text( col_ap ) != viaFrom && | 211 | it.current()->text( col_ap ) != viaFrom && |
230 | it.current()->text( col_ap ) != viaTo ) ++it; | 212 | it.current()->text( col_ap ) != viaTo ) ++it; |
231 | 213 | ||
232 | MScanListItem* item = static_cast<MScanListItem*>( it.current() ); | 214 | MScanListItem* item = static_cast<MScanListItem*>( it.current() ); |
233 | 215 | ||
234 | if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations | 216 | if ( item ) // Either viaFrom or viaTo AP has shown up yet, so just add our two new stations |
235 | { | 217 | { |
236 | addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); | 218 | addIfNotExisting( static_cast<MScanListItem*>(item->parent()), from ); |
237 | addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to ); | 219 | addIfNotExisting( static_cast<MScanListItem*>(item->parent()), to ); |
238 | } | 220 | } |
239 | else | 221 | else |
240 | { | 222 | { |
241 | qDebug( "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" ); | 223 | qDebug( "D'Oh! Stations without AP... ignoring for now... will handle this in 1.1 version :-D" ); |
242 | } | 224 | } |
243 | } | 225 | } |
244 | 226 | ||
245 | 227 | ||
246 | void MScanListView::toDStraffic( QString from, QString to, QString via ) | 228 | void MScanListView::toDStraffic( QString from, QString to, QString via ) |
247 | { | 229 | { |
248 | QString s; | 230 | QString s; |
249 | MScanListItem* network; | 231 | MScanListItem* network; |
250 | 232 | ||