summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp39
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h8
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp18
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h2
4 files changed, 66 insertions, 1 deletions
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index 809d0bd..085eec4 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -20,8 +20,10 @@
20#include <assert.h> 20#include <assert.h>
21#include <qdatetime.h> 21#include <qdatetime.h>
22#include <qtextstream.h> 22#include <qtextstream.h>
23#include <qpopupmenu.h>
23 24
24#ifdef QWS 25#ifdef QWS
26#include <qpe/qpeapplication.h>
25#include <opie/odevice.h> 27#include <opie/odevice.h>
26using namespace Opie; 28using namespace Opie;
27#endif 29#endif
@@ -74,6 +76,14 @@ MScanListView::MScanListView( QWidget* parent, const char* name )
74 setColumnAlignment( col_lastseen, AlignCenter ); 76 setColumnAlignment( col_lastseen, AlignCenter );
75 setRootIsDecorated( true ); 77 setRootIsDecorated( true );
76 setAllColumnsShowFocus( true ); 78 setAllColumnsShowFocus( true );
79
80 connect( this, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ),
81 this, SLOT( contextMenuRequested(QListViewItem*,const QPoint&,int) ) );
82
83 #ifdef QWS
84 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
85 #endif
86
77}; 87};
78 88
79 89
@@ -317,6 +327,27 @@ void MScanListView::identify( const OMacAddress& macaddr, const QString& ip )
317} 327}
318 328
319 329
330void MScanListView::contextMenuRequested( QListViewItem* item, const QPoint&, int col )
331{
332 if ( !item ) return;
333
334 MScanListItem* itm = static_cast<MScanListItem*>( item );
335
336 qDebug( "contextMenuRequested on item '%s' (%s) in column: '%d'",
337 (const char*) itm->text(0), (const char*) itm->type, col );
338
339 if ( itm->type == "adhoc" || itm->type == "managed" )
340 {
341 QString entry = QString().sprintf( "&Join %s Net '%s'...", (const char*) itm->type, (const char*) itm->essid() );
342
343 QPopupMenu m( this );
344 m.insertItem( entry, 37773, 0 );
345 int result = m.exec( QCursor::pos() );
346 if ( result == 37773 )
347 emit joinNetwork( itm->type, itm->essid(), itm->channel(), itm->macaddr() );
348 }
349}
350
320//============================================================ 351//============================================================
321// MScanListItem 352// MScanListItem
322//============================================================ 353//============================================================
@@ -345,6 +376,14 @@ MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid
345 decorateItem( type, essid, macaddr, wep, channel, signal ); 376 decorateItem( type, essid, macaddr, wep, channel, signal );
346} 377}
347 378
379const QString& MScanListItem::essid() const
380{
381 if ( type == "network" )
382 return _essid;
383 else
384 return ( (MScanListItem*) parent() )->essid();
385}
386
348OListViewItem* MScanListItem::childFactory() 387OListViewItem* MScanListItem::childFactory()
349{ 388{
350 return new MScanListItem( this ); 389 return new MScanListItem( this );
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index 253c166..5aba0d2 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -47,6 +47,12 @@ class MScanListView: public OListView
47 47
48 void identify( const OMacAddress&, const QString& ipaddr ); 48 void identify( const OMacAddress&, const QString& ipaddr );
49 49
50 void contextMenuRequested( QListViewItem* item, const QPoint&, int );
51
52 signals:
53 void rightButtonClicked(QListViewItem*,const QPoint&,int);
54 void joinNetwork( const QString&, const QString&, int, const QString& );
55
50 protected: 56 protected:
51 void addIfNotExisting( MScanListItem* parent, const OMacAddress& addr, const QString& type = "station" ); 57 void addIfNotExisting( MScanListItem* parent, const OMacAddress& addr, const QString& type = "station" );
52 58
@@ -82,7 +88,7 @@ class MScanListItem: public OListViewItem
82 88
83 public: 89 public:
84 //const QString& type() { return _type; }; 90 //const QString& type() { return _type; };
85 const QString& essid() { return _essid; }; 91 const QString& essid() const;
86 const QString& macaddr() { return _macaddr; }; 92 const QString& macaddr() { return _macaddr; };
87 bool wep() { return _wep; }; 93 bool wep() { return _wep; };
88 int channel() { return _channel; }; 94 int channel() { return _channel; };
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 2f26702..8a9e55d 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -28,6 +28,7 @@
28 28
29#ifdef QWS 29#ifdef QWS
30#include <opie/odevice.h> 30#include <opie/odevice.h>
31#include <qpe/qcopenvelope_qws.h>
31using namespace Opie; 32using namespace Opie;
32#endif 33#endif
33 34
@@ -81,6 +82,8 @@ Wellenreiter::Wellenreiter( QWidget* parent )
81 #endif 82 #endif
82 83
83 netview->setColumnWidthMode( 1, QListView::Manual ); 84 netview->setColumnWidthMode( 1, QListView::Manual );
85 connect( netview, SIGNAL( joinNetwork(const QString&,const QString&,int,const QString&) ),
86 this, SLOT( joinNetwork(const QString&,const QString&,int,const QString&) ) );
84 pcap = new OPacketCapturer(); 87 pcap = new OPacketCapturer();
85} 88}
86 89
@@ -488,3 +491,18 @@ void Wellenreiter::doAction( const QString& action, const QString& protocol, OPa
488 QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); 491 QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) );
489} 492}
490 493
494void Wellenreiter::joinNetwork(const QString& type, const QString& essid, int channel, const QString& macaddr)
495{
496 qDebug( "joinNetwork() - %s, %s, %d, %s",
497 (const char*) type,
498 (const char*) essid,
499 channel,
500 (const char*) macaddr );
501
502 // TODO: Stop scanning here
503
504 QCopEnvelope msg( "QPE/Application/networksettings", "wlan(QString,QString,QString)" );
505 msg << "test" << "test" << "test";
506
507}
508
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index f23ca4d..e1062df 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -59,6 +59,8 @@ class Wellenreiter : public WellenreiterBase {
59 void startClicked(); 59 void startClicked();
60 void stopClicked(); 60 void stopClicked();
61 61
62 void joinNetwork(const QString&,const QString&,int,const QString&);
63
62 signals: 64 signals:
63 void startedSniffing(); 65 void startedSniffing();
64 void stoppedSniffing(); 66 void stoppedSniffing();