You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdenetwork/wifi/status.cpp

383 lines
8.3 KiB

/***************************************************************************
status.cpp - description
-------------------
begin : Mon Aug 19 2002
copyright : (C) 2002 by Stefan Winter
email : mail@stefan-winter.de
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#include <klocale.h>
#include "status.h"
#include "interface_wireless.h"
#include <unistd.h>
#include <sys/types.h>
Status::Status (QWidget * parent, Interface_wireless * device)
: QWidget (parent, "KWiFiManager status")
{
this->device = device;
}
bool Status::generateStatsWidget ()
{
double
freq = 0.;
int
sig = 0,
noi = 0,
qual = 0;
device->get_current_quality (sig, noi, qual);
content =
new QGroupBox (2, Qt::Horizontal, i18n ("Status of Active Connection"),
this);
bool has_freq = device->get_device_freq (freq);
if ((!has_freq) || (qual == 0))
{
stat = new QLabel (i18n ("Searching for network: "), content);
}
else
stat = new QLabel (i18n ("Connected to network: "), content);
net_id = new QLabel (device->get_essid (), content);
ap_str = new QLabel (i18n ("Access point: "), content);
QString
mac,
ip;
device->get_AP_info (mac, ip);
if ((mac != "44:44:44:44:44:44") && (mac != "00:00:00:00:00:00")) {
ap_ad = new QLabel (mac, content);
} else {
ap_ad = new QLabel (i18n("- no access point -"),content);
}
local_ip_string = new QLabel (i18n ("Local IP: "), content);
local_ip_content = new QLabel (device->get_IP_info (), content);
fr_str = new QLabel (i18n ("Frequency [channel]: "), content);
QString
temp3 = "%1";
QString
temp2 = "%1";
if (freq >= 1000000000)
{
if (freq / 1000000. > 5690.)
{
temp3 = temp3.arg(140);
}
else if (freq / 1000000. > 5670.)
{
temp3 = temp3.arg(136);
}
else if (freq / 1000000. > 5650.)
{
temp3 = temp3.arg(132);
}
else if (freq / 1000000. > 5630.)
{
temp3 = temp3.arg(128);
}
else if (freq / 1000000. > 5610.)
{
temp3 = temp3.arg(124);
}
else if (freq / 1000000. > 5590.)
{
temp3 = temp3.arg(120);
}
else if (freq / 1000000. > 5570.)
{
temp3 = temp3.arg(116);
}
else if (freq / 1000000. > 5550.)
{
temp3 = temp3.arg(112);
}
else if (freq / 1000000. > 5530.)
{
temp3 = temp3.arg(108);
}
else if (freq / 1000000. > 5510.)
{
temp3 = temp3.arg(104);
}
else if (freq / 1000000. > 5490.)
{
temp3 = temp3.arg(100);
}
else if (freq / 1000000. > 5310.)
{
temp3 = temp3.arg(64);
}
else if (freq / 1000000. > 5290.)
{
temp3 = temp3.arg(60);
}
else if (freq / 1000000. > 5270.)
{
temp3 = temp3.arg(56);
}
else if (freq / 1000000. > 5250.)
{
temp3 = temp3.arg(52);
}
else if (freq / 1000000. > 5230.)
{
temp3 = temp3.arg(48);
}
else if (freq / 1000000. > 5210.)
{
temp3 = temp3.arg(44);
}
else if (freq / 1000000. > 5190.)
{
temp3 = temp3.arg(40);
}
else if (freq / 1000000. > 5170.)
{
temp3 = temp3.arg(36);
}
else if (freq / 1000000. > 2474.)
{
temp3 = temp3.arg (14);
}
else if (freq / 1000000. > 2469.)
{
temp3 = temp3.arg (13);
}
else if (freq / 1000000. > 2464.)
{
temp3 = temp3.arg (12);
}
else if (freq / 1000000. > 2459.)
{
temp3 = temp3.arg (11);
}
else if (freq / 1000000. > 2454.)
{
temp3 = temp3.arg (10);
}
else if (freq / 1000000. > 2449.)
{
temp3 = temp3.arg (9);
}
else if (freq / 1000000. > 2444.)
{
temp3 = temp3.arg (8);
}
else if (freq / 1000000. > 2439.)
{
temp3 = temp3.arg (7);
}
else if (freq / 1000000. > 2434.)
{
temp3 = temp3.arg (6);
}
else if (freq / 1000000. > 2429.)
{
temp3 = temp3.arg (5);
}
else if (freq / 1000000. > 2424.)
{
temp3 = temp3.arg (4);
}
else if (freq / 1000000. > 2419.)
{
temp3 = temp3.arg (3);
}
else if (freq / 1000000. > 2414.)
{
temp3 = temp3.arg (2);
}
else if (freq / 1000000. >= 2400.)
{
temp3 = temp3.arg (1);
}
else
temp3 = temp3.arg ("?");
temp2 = temp2.arg (freq / 1000000000.);
}
if (freq < 1000000000)
{if (freq >= 140.)
{
temp2 = temp2.arg (5.700);
}
else if (freq >= 136.)
{
temp2 = temp2.arg (5.680);
}
else if (freq >= 132.)
{
temp2 = temp2.arg (5.660);
}
else if (freq >= 128.)
{
temp2 = temp2.arg (5.640);
}
else if (freq >= 124.)
{
temp2 = temp2.arg (5.620);
}
else if (freq >= 120.)
{
temp2 = temp2.arg (5.600);
}
else if (freq >= 116.)
{
temp2 = temp2.arg (5.580);
}
else if (freq >= 112.)
{
temp2 = temp2.arg (5.560);
}
else if (freq >= 108.)
{
temp2 = temp2.arg (5.540);
}
else if (freq >= 104.)
{
temp2 = temp2.arg (5.520);
}
else if (freq >= 100.)
{
temp2 = temp2.arg (5.500);
}
else if (freq >= 64.)
{
temp2 = temp2.arg (5.320);
}
else if (freq >= 60.)
{
temp2 = temp2.arg (5.300);
}
else if (freq >= 56.)
{
temp2 = temp2.arg (5.280);
}
else if (freq >= 52.)
{
temp2 = temp2.arg (5.260);
}
else if (freq >= 48.)
{
temp2 = temp2.arg (5.240);
}
else if (freq >= 44.)
{
temp2 = temp2.arg (5.220);
}
else if (freq >= 40.)
{
temp2 = temp2.arg (5.200);
}
else if (freq >= 36.)
{
temp2 = temp2.arg (5.180);
}
else if (freq >= 14.)
{
temp2 = temp2.arg (2.484);
}
else if (freq >= 13.)
{
temp2 = temp2.arg (2.472);
}
else if (freq >= 12.)
{
temp2 = temp2.arg (2.467);
}
else if (freq >= 11.)
{
temp2 = temp2.arg (2.462);
}
else if (freq >= 10.)
{
temp2 = temp2.arg (2.457);
}
else if (freq >= 9.)
{
temp2 = temp2.arg (2.452);
}
else if (freq >= 8.)
{
temp2 = temp2.arg (2.447);
}
else if (freq >= 7.)
{
temp2 = temp2.arg (2.442);
}
else if (freq >= 6.)
{
temp2 = temp2.arg (2.437);
}
else if (freq >= 5.)
{
temp2 = temp2.arg (2.432);
}
else if (freq >= 4.)
{
temp2 = temp2.arg (2.427);
}
else if (freq >= 3.)
{
temp2 = temp2.arg (2.422);
}
else if (freq >= 2.)
{
temp2 = temp2.arg (2.417);
}
else if (freq >= 1.)
{
temp2 = temp2.arg (2.412);
}
else
temp2 = temp2.arg ("?");
temp3 = temp3.arg (freq);
}
fr = new QLabel ( has_freq ? temp2 + " [" + temp3 + "]" : "" , content);
if (geteuid () == 0)
{
enc_str = new QLabel (i18n ("Encryption: "), content);
QString
key;
int
size = 0,
flags = 0;
if (device->get_key (key, size, flags))
// if ((device->key_flags & IW_ENCODE_DISABLED) || (key_size == 0))
// will the following line suffice?
if (size == 0)
{
enc = new QLabel (i18n ("off"), content);
}
else
enc = new QLabel (i18n ("active"), content);
}
// content->setFixedSize (content->sizeHint ());
content->setMinimumSize(content->sizeHint());
if ( content->minimumWidth() < 280 ) content->setMinimumWidth( 280 );
setFixedSize (content->minimumSize());
content->show ();
widgetbild = QPixmap::grabWidget (content);
delete
content;
return true;
}
void
Status::paintEvent (QPaintEvent *)
{
QPainter *paintArea = new QPainter (this);
generateStatsWidget ();
paintArea->drawPixmap (0, 0, widgetbild);
delete paintArea;
}