Remove the DhcpcdWi instance if the wpa_supplicant connection is lost.
[dhcpcd-ui] / src / dhcpcd-qt / dhcpcd-qt.h
index 019d6a8f2fe38e34be26ab05b0ac0bb5a8fc8bf0..efa1bf03c3db5385c77881dfdaf5574f320320f2 100644 (file)
@@ -1,3 +1,29 @@
+/*
+ * dhcpcd-qt
+ * Copyright 2014 Roy Marples <roy@marples.name>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
 #ifndef DHCPCD_QT_H
 #define DHCPCD_QT_H
 
@@ -17,6 +43,7 @@ class QAction;
 class QDialog;
 class QLabel;
 class QMenu;
+class QPoint;
 class QPushButton;
 class QSocketNotifier;
 class QTimer;
@@ -39,6 +66,9 @@ public:
 
        static void dhcpcd_wpa_scan_cb(DHCPCD_WPA *wpa, void *d);
        void scanCallback(DHCPCD_WPA *wpa);
+       static void dhcpcd_wpa_status_cb(DHCPCD_WPA *wpa, const char *status,
+           void *d);
+       void wpaStatusCallback(DHCPCD_WPA *wpa, const char *status);
 
        static QIcon getIcon(QString category, QString name);
 
@@ -48,17 +78,15 @@ protected:
        void closeEvent(QCloseEvent *event);
 
 private slots:
+       void tryOpen();
        void animate();
        void dispatch();
        void showAbout();
        void showPreferences();
        void iconActivated(QSystemTrayIcon::ActivationReason reason);
 
-       void connectSsid(DHCPCD_IF *ifp, DHCPCD_WI_SCAN *scan);
-
 private:
        DHCPCD_CONNECTION *con;
-       bool tryOpen();
        QSocketNotifier *notifier;
        QTimer *retryOpenTimer;
        QList<DhcpcdWi *> *wis;
@@ -90,6 +118,7 @@ private:
        QAction *aboutAction;
        QMenu *trayIconMenu;
        QMenu *ssidMenu;
+       QPoint ssidMenuPos;
 
        void notify(QString &title, QString &msg,
            QSystemTrayIcon::MessageIcon icon = QSystemTrayIcon::Information);