author | mickeyl <mickeyl> | 2003-06-15 12:45:31 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-06-15 12:45:31 (UTC) |
commit | 6b682070b6d83f3537dd9fa5aee715ab142a04e6 (patch) (side-by-side diff) | |
tree | b152def34a4fe52ef6195af9c1c324b23a3d7981 /noncore/net/wellenreiter/gui/scanlist.cpp | |
parent | 7feda6ad0e05602d0a939f9867f296f62ae758cd (diff) | |
download | opie-6b682070b6d83f3537dd9fa5aee715ab142a04e6.zip opie-6b682070b6d83f3537dd9fa5aee715ab142a04e6.tar.gz opie-6b682070b6d83f3537dd9fa5aee715ab142a04e6.tar.bz2 |
basic framework for context menu "join network" established
just need to send the proper qcop messages now
Diffstat (limited to 'noncore/net/wellenreiter/gui/scanlist.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 39 |
1 files changed, 39 insertions, 0 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 @@ -19,10 +19,12 @@ #include <assert.h> #include <qdatetime.h> #include <qtextstream.h> +#include <qpopupmenu.h> #ifdef QWS +#include <qpe/qpeapplication.h> #include <opie/odevice.h> using namespace Opie; #endif @@ -73,8 +75,16 @@ MScanListView::MScanListView( QWidget* parent, const char* name ) addColumn( tr( "Last Seen" ) ); setColumnAlignment( col_lastseen, AlignCenter ); setRootIsDecorated( true ); setAllColumnsShowFocus( true ); + + connect( this, SIGNAL( rightButtonClicked(QListViewItem*,const QPoint&,int) ), + this, SLOT( contextMenuRequested(QListViewItem*,const QPoint&,int) ) ); + + #ifdef QWS + QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); + #endif + }; MScanListView::~MScanListView() @@ -316,8 +326,29 @@ void MScanListView::identify( const OMacAddress& macaddr, const QString& ip ) (const char*) macaddr.toString(), (const char*) ip ) ); } +void MScanListView::contextMenuRequested( QListViewItem* item, const QPoint&, int col ) +{ + if ( !item ) return; + + MScanListItem* itm = static_cast<MScanListItem*>( item ); + + qDebug( "contextMenuRequested on item '%s' (%s) in column: '%d'", + (const char*) itm->text(0), (const char*) itm->type, col ); + + if ( itm->type == "adhoc" || itm->type == "managed" ) + { + QString entry = QString().sprintf( "&Join %s Net '%s'...", (const char*) itm->type, (const char*) itm->essid() ); + + QPopupMenu m( this ); + m.insertItem( entry, 37773, 0 ); + int result = m.exec( QCursor::pos() ); + if ( result == 37773 ) + emit joinNetwork( itm->type, itm->essid(), itm->channel(), itm->macaddr() ); + } +} + //============================================================ // MScanListItem //============================================================ @@ -344,8 +375,16 @@ MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid #endif decorateItem( type, essid, macaddr, wep, channel, signal ); } +const QString& MScanListItem::essid() const +{ + if ( type == "network" ) + return _essid; + else + return ( (MScanListItem*) parent() )->essid(); +} + OListViewItem* MScanListItem::childFactory() { return new MScanListItem( this ); } |