summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2004-01-08 10:37:42 (UTC)
committer mickeyl <mickeyl>2004-01-08 10:37:42 (UTC)
commitc1fe58cfdfdb42f75a040442c29defa15c81f626 (patch) (side-by-side diff)
tree69c3e3c441af1ef933b73984e0c1a6778f8dc672
parent05d47b2603adfab0e16f7395e34b7aa56ce6d8de (diff)
downloadopie-c1fe58cfdfdb42f75a040442c29defa15c81f626.zip
opie-c1fe58cfdfdb42f75a040442c29defa15c81f626.tar.gz
opie-c1fe58cfdfdb42f75a040442c29defa15c81f626.tar.bz2
Calling scripts on new {Network, Client, Station} works now. Possible substitution
values are $SSID, $MAC, $WEP, $CHAN.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp52
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h5
-rw-r--r--noncore/net/wellenreiter/gui/main.cpp2
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp6
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h12
5 files changed, 56 insertions, 21 deletions
diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp
index 1341d03..7f39230 100644
--- a/noncore/net/wellenreiter/gui/configwindow.cpp
+++ b/noncore/net/wellenreiter/gui/configwindow.cpp
@@ -22,6 +22,8 @@
#ifdef QWS
#include <opie2/oapplication.h>
#include <opie2/oconfig.h>
+#include <opie/odevice.h>
+using namespace Opie;
#endif
/* QT */
@@ -38,6 +40,8 @@
#include <qspinbox.h>
#include <qtextstream.h>
+/* POSIX */
+#include <assert.h>
WellenreiterConfigWindow* WellenreiterConfigWindow::_instance = 0;
@@ -272,7 +276,13 @@ int WellenreiterConfigWindow::gpsPort() const
}
-void WellenreiterConfigWindow::performAction( const QString& type )
+void WellenreiterConfigWindow::performAction( const QString& type,
+ const QString& essid,
+ const QString& mac,
+ bool wep,
+ int channel,
+ int signal
+ /* , const GpsLocation& loc */ )
{
int action;
QString script;
@@ -294,20 +304,42 @@ void WellenreiterConfigWindow::performAction( const QString& type )
}
else
{
- qWarning( "WellenreiterConfigWindow::performAction(): unknown type '%s'", (const char*) type );
+ qWarning( "WellenreiterConfigWindow::performAction(): unknown type '%s'", (const char*) type );
return;
}
qDebug( "going to perform action %d (script='%s')", action, (const char*) script );
- /*
-
- if ( sound == "Ignore" ) return;
- else if ( sound == "Touch" ) ODevice::inst()->touchSound();
- else if ( sound == "Key" ) ODevice::inst()->keySound();
- else if ( sound == "Alarm" ) ODevice::inst()->alarmSound();
-
- */
+ switch( action )
+ {
+ case 0: /* Ignore */ return;
+ case 1: /* Play Alarm */ ODevice::inst()->alarmSound(); return;
+ case 2: /* Play Click */ ODevice::inst()->touchSound(); return;
+ case 3: /* Blink LED */ break; //FIXME: Implement this
+ case 4: /* Run Script */
+ {
+ /**
+ *
+ * Script Substitution Information:
+ *
+ * $SSID = SSID
+ * $MAC = MAC
+ * $WEP = Wep
+ * $CHAN = Channel
+ *
+ **/
+ script = script.replace( QRegExp( "$SSID" ), essid );
+ script = script.replace( QRegExp( "$MAC" ), mac );
+ script = script.replace( QRegExp( "$WEP" ), wep ? QString( "true" ) : QString( "false" ) );
+ script = script.replace( QRegExp( "$CHAN" ), QString::number( channel ) );
+
+ qDebug( "going to call script '%s'", (const char*) script );
+ ::system( script );
+ qDebug( "script returned." );
+ return;
+ }
+ default: assert( false );
+ }
}
diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h
index b082331..5c998cb 100644
--- a/noncore/net/wellenreiter/gui/configwindow.h
+++ b/noncore/net/wellenreiter/gui/configwindow.h
@@ -17,6 +17,9 @@
#define WELLENREITERCONFIGWINDOW_H
#include "configbase.h"
+#include "gps.h"
+
+/* QT */
#include <qmap.h>
#include <qcombobox.h>
#include <qstring.h>
@@ -63,7 +66,7 @@ class WellenreiterConfigWindow : public WellenreiterConfigBase
void getCaptureFileNameClicked();
void performAutodetection();
void channelAllClicked(int);
- void performAction( const QString& );
+ void performAction( const QString&, const QString&, const QString&, bool, int, int /* , const GpsLocation& */ );
protected:
void synchronizeActionsAndScripts();
diff --git a/noncore/net/wellenreiter/gui/main.cpp b/noncore/net/wellenreiter/gui/main.cpp
index dd757b5..702a7cc 100644
--- a/noncore/net/wellenreiter/gui/main.cpp
+++ b/noncore/net/wellenreiter/gui/main.cpp
@@ -121,7 +121,7 @@ int main( int argc, char **argv )
result = QMessageBox::warning( w, " - Wellenreiter II - (dhcp)", QObject::tr( "Restart your dhcp client?" ), QMessageBox::Yes, QMessageBox::No );
if ( result == QMessageBox::Yes )
{
- system( QString().sprintf( "dhclient &; udhcpcd &; dhcpcd &" ) );
+ ::system( QString().sprintf( "dhclient &; udhcpcd &; dhcpcd &" ) );
}
}
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index 470646d..aea7eb6 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -409,7 +409,7 @@ void MScanListView::contextMenuRequested( QListViewItem* item, const QPoint&, in
// MScanListItem
//============================================================
-MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QString macaddr,
+MScanListItem::MScanListItem( QListView* parent, const QString& type, const QString& essid, const QString& macaddr,
bool wep, int channel, int signal )
:OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ),
_type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ),
@@ -420,12 +420,12 @@ MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QS
#endif
if ( WellenreiterConfigWindow::instance() )
- WellenreiterConfigWindow::instance()->performAction( type ); // better use signal/slot combination here
+ WellenreiterConfigWindow::instance()->performAction( type, essid, macaddr, wep, channel, signal ); // better use signal/slot combination here
decorateItem( type, essid, macaddr, wep, channel, signal );
}
-MScanListItem::MScanListItem( QListViewItem* parent, QString type, QString essid, QString macaddr,
+MScanListItem::MScanListItem( QListViewItem* parent, const QString& type, const QString& essid, const QString& macaddr,
bool wep, int channel, int signal )
:OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null )
{
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index 42f35c2..e8d48c3 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -68,17 +68,17 @@ class MScanListItem: public OListViewItem
{
public:
MScanListItem::MScanListItem( QListView* parent,
- QString type = "unknown",
- QString essid = "unknown",
- QString macaddr = "unknown",
+ const QString& type = "unknown",
+ const QString& essid = "unknown",
+ const QString& macaddr = "unknown",
bool wep = false,
int channel = 0,
int signal = 0 );
MScanListItem::MScanListItem( QListViewItem* parent,
- QString type = "unknown",
- QString essid = "unknown",
- QString macaddr = "unknown",
+ const QString& type = "unknown",
+ const QString& essid = "unknown",
+ const QString& macaddr = "unknown",
bool wep = false,
int channel = 0,
int signal = 0 );