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.
140 lines
4.7 KiB
140 lines
4.7 KiB
/***************************************************************************
|
|
kprofileslistviewtooltip.h - description
|
|
-------------------
|
|
begin : Wed Aug 24 2005
|
|
copyright : (C) 2005 by Juan Luis Baptiste
|
|
email : juan.baptiste@kdemail.net
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* 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. *
|
|
* *
|
|
***************************************************************************/
|
|
#ifndef KPROFILESLISTVIEWTOOLTIP_H
|
|
#define KPROFILESLISTVIEWTOOLTIP_H
|
|
|
|
#include <tqtooltip.h>
|
|
#include <tqlistview.h>
|
|
#include <tqheader.h>
|
|
#include <tqptrlist.h>
|
|
|
|
#include "knetworkinfo.h"
|
|
#include "knetworkconfigparser.h"
|
|
|
|
class KProfilesListViewToolTip : public TQToolTip
|
|
{
|
|
public:
|
|
KProfilesListViewToolTip(TQListView* parent);
|
|
void setProfiles(TQPtrList<KNetworkInfo> profiles_);
|
|
~KProfilesListViewToolTip();
|
|
|
|
protected:
|
|
void maybeTip( const TQPoint& p );
|
|
KNetworkInfo *getProfile(TQPtrList<KNetworkInfo> profilesList, TQString selectedProfile);
|
|
private:
|
|
TQListView* listView;
|
|
//KNetworkConf* conf;
|
|
TQPtrList<KNetworkInfo> profiles;
|
|
|
|
};
|
|
|
|
inline void KProfilesListViewToolTip::setProfiles(TQPtrList<KNetworkInfo> profiles_)
|
|
{
|
|
profiles = profiles_;
|
|
}
|
|
|
|
inline KProfilesListViewToolTip::KProfilesListViewToolTip( TQListView* parent ):TQToolTip( parent->viewport() ), listView( parent ) {}
|
|
|
|
inline void KProfilesListViewToolTip::maybeTip( const TQPoint& p )
|
|
{
|
|
|
|
if ( !listView )
|
|
return;
|
|
|
|
const TQListViewItem* item = listView->itemAt( p );
|
|
|
|
if ( !item )
|
|
return;
|
|
|
|
const TQRect itemRect = listView->itemRect( item );
|
|
|
|
if ( !itemRect.isValid() )
|
|
return;
|
|
|
|
const int col = listView->header()->sectionAt( p.x() );
|
|
|
|
if ( col == -1 )
|
|
return;
|
|
|
|
const TQRect headerRect = listView->header()->sectionRect( col );
|
|
|
|
if ( !headerRect.isValid() )
|
|
return;
|
|
|
|
const TQRect cellRect( headerRect.left(), itemRect.top(),headerRect.width() + 60, itemRect.height() );
|
|
|
|
TQString tipStr;
|
|
|
|
if( col == 0 )
|
|
{
|
|
tipStr = TQString(i18n("<b>Network Configuration of this Profile:</b>" ));
|
|
KNetworkInfo *profile = getProfile(profiles,item->text(0));
|
|
if (profile != NULL)
|
|
{
|
|
TQPtrList<KNetworkInterface> devices = profile->getDeviceList();
|
|
KNetworkInterface *device = NULL;
|
|
for (device = devices.first(); device; device = devices.next())
|
|
{
|
|
if (device->getType() != LOOPBACK_IFACE_TYPE)
|
|
{
|
|
tipStr.append(i18n("<p><b>Interface:</b> %1").arg(device->getDeviceName().latin1()));
|
|
tipStr.append(i18n("<br><b>Type:</b> %1").arg(device->getType()));
|
|
TQString bootProto;
|
|
if (device->getBootProto() == "none")
|
|
bootProto = "Manual";
|
|
else
|
|
bootProto = device->getBootProto();
|
|
tipStr.append(i18n("<br><b>Boot Protocol:</b> %1").arg(bootProto));
|
|
if (bootProto != "dhcp")
|
|
{
|
|
tipStr.append(i18n("<br><b>IP Address:</b> %1").arg(device->getIpAddress()));
|
|
tipStr.append(i18n("<br><b>Broadcast Address:</b> %1").arg(device->getBroadcast()));
|
|
}
|
|
tipStr.append(i18n("<br><b>On Boot:</b> %1").arg(device->getOnBoot()));
|
|
}
|
|
}
|
|
KRoutingInfo *route = profile->getRoutingInfo();
|
|
tipStr.append(i18n("</p><p><b>Default Gateway:</b> %1").arg(route->getGateway()));
|
|
KDNSInfo *dns = profile->getDNSInfo();
|
|
tipStr.append(i18n("<br><b>Domain Name:</b> %1").arg(dns->getDomainName()));
|
|
tipStr.append(i18n("<br><b>Machine Name:</b> %1").arg(dns->getMachineName()));
|
|
TQStringList nameServers = dns->getNameServers();
|
|
for ( TQStringList::Iterator it = nameServers.begin(); it != nameServers.end(); ++it)
|
|
{
|
|
tipStr.append(i18n("<br><b>DNS Name Server:</b> %1").arg((*it)));
|
|
}
|
|
}
|
|
}
|
|
tip( cellRect, tipStr );
|
|
}
|
|
|
|
inline KNetworkInfo *KProfilesListViewToolTip::getProfile(TQPtrList<KNetworkInfo> profilesList, TQString selectedProfile)
|
|
{
|
|
TQPtrListIterator<KNetworkInfo> it(profilesList);
|
|
KNetworkInfo *net = NULL;
|
|
|
|
while ((net = it.current()) != 0)
|
|
{
|
|
++it;
|
|
if (net->getProfileName() == selectedProfile)
|
|
break;
|
|
}
|
|
return net;
|
|
}
|
|
|
|
#endif
|