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.
tdeadmin/knetworkconf/knetworkconf/kprofileslistviewtooltip.h

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").tqarg(device->getDeviceName().latin1()));
tipStr.append(i18n("<br><b>Type:</b> %1").tqarg(device->getType()));
TQString bootProto;
if (device->getBootProto() == "none")
bootProto = "Manual";
else
bootProto = device->getBootProto();
tipStr.append(i18n("<br><b>Boot Protocol:</b> %1").tqarg(bootProto));
if (bootProto != "dhcp")
{
tipStr.append(i18n("<br><b>IP Address:</b> %1").tqarg(device->getIpAddress()));
tipStr.append(i18n("<br><b>Broadcast Address:</b> %1").tqarg(device->getBroadcast()));
}
tipStr.append(i18n("<br><b>On Boot:</b> %1").tqarg(device->getOnBoot()));
}
}
KRoutingInfo *route = profile->getRoutingInfo();
tipStr.append(i18n("</p><p><b>Default Gateway:</b> %1").tqarg(route->getGateway()));
KDNSInfo *dns = profile->getDNSInfo();
tipStr.append(i18n("<br><b>Domain Name:</b> %1").tqarg(dns->getDomainName()));
tipStr.append(i18n("<br><b>Machine Name:</b> %1").tqarg(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").tqarg((*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