/*************************************************************************** * Copyright (C) 2005 by Pawel Nawrocki * * pnawrocki@interia.pl * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef WLASSISTANT_H #define WLASSISTANT_H //connection check interval in msec #define WA_CONNECTION_CHECK_INTERVAL 5000 #include "ui_main.h" #include "waconfig.h" #include "netparams.h" class QTimer; class QProcess; class NetListViewItem; class WirelessAssistant : public mainWindow { Q_OBJECT public: /*$PUBLIC_FUNCTIONS$*/ WirelessAssistant(QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); ~WirelessAssistant(); static QString getVal(const QString & str, const QString & rxs); public slots: /*$PUBLIC_SLOTS$*/ virtual void netConnect(); virtual void netScan(); virtual void netDisconnect( const bool & quiet = false); private: void netScan( const WANetParams & np ); void netConnect( const WANetParams & np ); void setDNS( const WANetParams & np ); void readConfig(); void saveSettings(); void setUi(int uiState); void setSingleClick(bool i); QString runCommand( const QStringList & cmd, int timeout = 0, bool detached = 0 ); void setNetParamsFromList( QListViewItem* lvi ); bool setNetParamsFromConfig( const QString & s ); QString matchEssidForAp( const QString & ap ); bool radioEnabled(); QListViewItem* getItemByAp( const QString & ap ); QListViewItem* getItemByEssid( const QString & essid ); void setConnectedItem( const QString & netid ); QString getGateway(); bool dhcpClientRunning(); QStringList interfaceList(); bool generateWpaConfigFile( const QString& essid, const QStringList& wpaSettings, const QString& wpaKey ); bool setWpaClientEnabled( bool e, const QString& iface = 0, QString driver = 0 ); QStringList NetParamsList; QStringList execsNotFound; NetListViewItem* connectedItem; QString wpaConfigFile; /// settings saved in wlassistantrc bool autoQuit; bool autoReconnect; bool autoConnect; bool groupAPs; bool wpaAvailable; int DelayBeforeScanning; int DhcpTimeout; /*QString dhcpcdInfoPath; QString dhclientInfoPath; QString dhcpcdPidPath; QString dhclientPidPath;*/ /// end settings. WACommands Commands; WANetParams NetParams; QTimer* timerGui; QTimer* timerConnectionCheck; protected slots: /*$PROTECTED_SLOTS$*/ virtual void init(); virtual void netAutoConnect(); virtual void parseScan( const QString & output ); virtual void setDev( const QString & ifname); virtual void setNetListColumns(); virtual void updateConfiguration(int category = -1); virtual void updateConnectedItem(); virtual void showItemContextMenu( QListViewItem* i, const QPoint& p, int c); virtual void editNetParams(); virtual void removeNetParams(); virtual void updateNetParams(); virtual void itemAction(); virtual void checkConnectionStatus(); virtual void updateConnectButton(QListViewItem* lvi); virtual void setMouseBehaviour(); virtual void togglePage(bool options ); virtual void enableAllMessages(); virtual bool close(); }; #endif