3 * Copyright 2014 Roy Marples <roy@marples.name>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 #include <QHBoxLayout>
30 #include <QRadioButton>
34 #include <QProgressBar>
37 #include "dhcpcd-qt.h"
38 #include "dhcpcd-ssidmenu.h"
40 DhcpcdSsidMenu::DhcpcdSsidMenu(QWidget *parent, QWidgetAction *wa,
41 DhcpcdWi *wi, DHCPCD_WI_SCAN *scan)
42 : QWidget(parent, NULL)
48 QHBoxLayout *layout = new QHBoxLayout(this);
49 button = new QRadioButton(this);
50 layout->addWidget(button);
51 licon = new QLabel(this);
52 layout->addWidget(licon);
53 layout->setAlignment(licon, Qt::AlignRight);
54 bar = new QProgressBar(this);
55 layout->addWidget(bar);
56 layout->setAlignment(bar, Qt::AlignRight);
59 this->installEventFilter(this);
60 button->installEventFilter(this);
63 QWidgetAction *DhcpcdSsidMenu::getWidgetAction()
69 DHCPCD_WI_SCAN *DhcpcdSsidMenu::getScan()
75 void DhcpcdSsidMenu::setScan(DHCPCD_WI_SCAN *scan)
83 i = dhcpcd_wpa_if(wpa);
85 button->setChecked(i->up && i->ssid &&
86 strcmp(scan->ssid, i->ssid) == 0);
87 button->setText(scan->ssid);
88 if (scan->flags[0] == '\0') {
89 icon = DhcpcdQt::getIcon("devices", "network-wireless");
90 setToolTip(scan->bssid);
92 icon = DhcpcdQt::getIcon("status",
93 "network-wireless-encrypted");
94 QString tip = QString::fromAscii(scan->bssid);
95 tip += " " + QString::fromAscii(scan->flags);
98 QPixmap picon = icon.pixmap(22, 22);
99 licon->setPixmap(picon);
100 bar->setValue(scan->strength.value);
103 bool DhcpcdSsidMenu::eventFilter(QObject *, QEvent *event)
106 if (event->type() == QEvent::MouseButtonPress)