#include "doorpointerapplication.h"
DoorPointerApplication::DoorPointerApplication(){
QMenu* contextMenu = new QMenu();
connect( contextMenu->addAction( "Exit" ) , SIGNAL(triggered()) , qApp , SLOT(quit()) );
m_trayIcon.setIcon( QIcon( ":/door" ) );
m_trayIcon.setContextMenu( contextMenu );
m_trayIcon.show();
loadIniFile( "nat.ini" );
}
void DoorPointerApplication::loadIniFile( QString file ){
DoorServer* serv;
foreach( serv , m_servers ){
serv->deleteLater();
}
m_servers.clear();
QFile natFile( file );
if( !natFile.open( QIODevice::ReadOnly ) )
return;
QString line;
QStringList lineList;
while( !natFile.atEnd() ){
line = natFile.readLine(512);
lineList = line.split( "," );
if( lineList.count() != 3 )
continue;
bool done = false;
int p = lineList[0].toInt( &done );
if( !done ) continue;
QString ha = lineList[1].trimmed();
int hp = lineList[2].toInt( &done );
if( !done ) continue;
m_servers.append( new DoorServer( p , ha , hp ) );
}
}
void DoorPointerApplication::saveConfiguration(){
DoorServer* serv;
QStringList data;
QFile fop( "nat.ini" );
if( !fop.open( QIODevice::WriteOnly ) ){
return;
}
foreach( serv , m_servers ){
fop.write( QString( QString::number( serv->fromPort() ) + " , " +
serv->toHost() + " , " +
QString::number( serv->toPort() ) + "\n" ).toLocal8Bit() );
}
}