1
1
/* This file is part of KNemo
2
2
Copyright (C) 2004, 2006 Percy Leonhardt <percy@eris23.de>
3
Copyright (C) 2009 John Stamp <jstamp@users.sourceforge.net>
3
Copyright (C) 2009, 2010 John Stamp <jstamp@users.sourceforge.net>
5
5
KNemo is free software; you can redistribute it and/or modify
6
6
it under the terms of the GNU Library General Public License as
32
32
#include "interface.h"
33
33
#include "interfacestatistics.h"
34
34
#include "interfacestatusdialog.h"
35
#include "statisticsmodel.h"
36
37
InterfaceStatusDialog::InterfaceStatusDialog( Interface* interface, QWidget* parent )
37
38
: KDialog( parent ),
40
41
mConfig( KGlobal::config() ),
41
42
mInterface( interface )
43
setCaption( i18n( "%1 Interface Status", interface->getName() ) );
44
setCaption( i18nc( "interface name", "%1 Interface Status", interface->ifaceName() ) );
44
45
setButtons( Close );
46
47
ui.setupUi( mainWidget() );
48
50
// FreeBSD doesn't have these
56
58
connect( ui.comboBoxIP, SIGNAL( currentIndexChanged(int) ), this, SLOT( updateDialog() ) );
59
const BackendData * data = mInterface->getData();
61
const BackendData * data = mInterface->backendData();
62
64
if ( !data->isWireless )
69
71
// Restore window size and position.
70
72
KConfig *config = mConfig.data();
71
KConfigGroup interfaceGroup( config, confg_interface + mInterface->getName() );
73
KConfigGroup interfaceGroup( config, confg_interface + mInterface->ifaceName() );
72
74
if ( interfaceGroup.hasKey( conf_statusPos ) )
74
76
QPoint p = interfaceGroup.readEntry( conf_statusPos, QPoint() );
94
96
KConfig *config = mConfig.data();
95
KConfigGroup interfaceGroup( config, confg_interface + mInterface->getName() );
97
KConfigGroup interfaceGroup( config, confg_interface + mInterface->ifaceName() );
96
98
interfaceGroup.writeEntry( conf_statusPos, pos() );
97
99
interfaceGroup.writeEntry( conf_statusSize, size() );
126
128
if ( isHidden() )
129
const BackendData* data = mInterface->getData();
131
const BackendData* data = mInterface->backendData();
132
InterfaceSettings& settings = mInterface->getSettings();
134
InterfaceSettings& settings = mInterface->settings();
134
136
// connection tab
135
ui.textLabelInterface->setText( mInterface->getName() );
137
ui.textLabelInterface->setText( mInterface->ifaceName() );
136
138
ui.textLabelAlias->setText( settings.alias );
137
ui.textLabelUptime->setText( mInterface->getUptimeString() );
139
ui.textLabelUptime->setText( mInterface->uptimeString() );
139
141
if ( data->status & KNemoIface::Connected )
140
142
ui.textLabelStatus->setText( i18n( "Connected" ) );
146
148
ui.textLabelStatus->setText( i18n( "Unavailable" ) );
148
ui.groupBoxStatistics->setEnabled( mInterface->getSettings().activateStatistics );
150
ui.groupBoxStatistics->setEnabled( mInterface->settings().activateStatistics );
150
152
if ( data->status & KNemoIface::Available )
190
192
ui.textLabelPacketsReceived->setText( QString::number( data->rxPackets ) );
191
193
ui.textLabelBytesSend->setText( data->txString );
192
194
ui.textLabelBytesReceived->setText( data->rxString );
193
ui.textLabelSpeedSend->setText( mInterface->getTxRateStr() );
194
ui.textLabelSpeedReceived->setText( mInterface->getRxRateStr() );
195
ui.textLabelSpeedSend->setText( mInterface->txRateStr() );
196
ui.textLabelSpeedReceived->setText( mInterface->rxRateStr() );
197
199
void InterfaceStatusDialog::doConnected( const BackendData *data )
264
266
switch ( addrData.scope )
266
268
case RT_SCOPE_UNIVERSE:
267
scope = i18n( "global" );
269
scope = i18nc( "ipv6 address scope", "global" );
269
271
case RT_SCOPE_SITE:
270
scope = i18n( "site" );
272
scope = i18nc( "ipv6 address scope", "site" );
272
274
case RT_SCOPE_LINK:
273
scope = i18n( "link" );
275
scope = i18nc( "ipv6 address scope", "link" );
275
277
case RT_SCOPE_HOST:
276
scope = i18n( "host" );
278
scope = i18nc( "ipv6 address scope", "host" );
278
280
case RT_SCOPE_NOWHERE:
279
scope = i18n( "none" );
281
scope = i18nc( "ipv6 address scope", "none" );
282
284
scope += addrData.ipv6Flags;
360
362
ui.textLabelSpeedReceived->setText( QString::null );
365
void InterfaceStatusDialog::configChanged()
367
bool billText = false;
368
if ( mInterface->settings().activateStatistics )
370
foreach ( StatsRule rule, mInterface->settings().statsRules )
372
if ( rule.periodCount != 1 ||
373
rule.periodUnits != KNemoStats::Month ||
374
mInterface->ifaceStatistics()->calendar()->day( rule.startDate ) != 1 )
381
ui.textLabelBill->setVisible( billText );
382
ui.textLabelBillSent->setVisible( billText );
383
ui.textLabelBillReceived->setVisible( billText );
384
ui.textLabelBillTotal->setVisible( billText );
363
387
void InterfaceStatusDialog::statisticsChanged()
365
InterfaceStatistics *stat = mInterface->getStatistics();
389
InterfaceStatistics *stat = mInterface->ifaceStatistics();
369
StatisticsModel * statistics = stat->getStatistics( StatisticsModel::Day );
393
StatisticsModel * statistics = stat->getStatistics( KNemoStats::Day );
370
394
ui.textLabelTodaySent->setText( statistics->txText() );
371
395
ui.textLabelTodayReceived->setText( statistics->rxText() );
372
396
ui.textLabelTodayTotal->setText( statistics->totalText() );
374
statistics = stat->getStatistics( StatisticsModel::Month );
398
statistics = stat->getStatistics( KNemoStats::Month );
375
399
ui.textLabelMonthSent->setText( statistics->txText() );
376
400
ui.textLabelMonthReceived->setText( statistics->rxText() );
377
401
ui.textLabelMonthTotal->setText( statistics->totalText() );
379
statistics = stat->getStatistics( StatisticsModel::Year );
403
statistics = stat->getStatistics( KNemoStats::BillPeriod );
404
ui.textLabelBillSent->setText( statistics->txText() );
405
ui.textLabelBillReceived->setText( statistics->rxText() );
406
ui.textLabelBillTotal->setText( statistics->totalText() );
408
statistics = stat->getStatistics( KNemoStats::Year );
380
409
ui.textLabelYearSent->setText( statistics->txText() );
381
410
ui.textLabelYearReceived->setText( statistics->rxText() );
382
411
ui.textLabelYearTotal->setText( statistics->totalText() );