// // C++ Implementation: kbsiteinfo // // Description: // // // Author: Magnus Kulke , (C) 2004 // // Copyright: See COPYING file that comes with this distribution // // #include #include #include #include #include #include "kbsiteinfo.h" KbSiteInfo::KbSiteInfo() { Clear(); } KbSiteInfo::~KbSiteInfo() { } void KbSiteInfo::Clear() { m_name = ""; m_info = ""; m_user = ""; m_pass = ""; m_defaultdir = ""; m_altfxp = 0; m_correctpasv = 0; m_pasv = 1; m_tls = 0; } bool KbSiteInfo::IsLegit() { if ((m_name != "") && (m_info != "") && (m_user != "")) return true; else return false; } list KbSiteInfo::ParseBookmarks() { list bookmarks; bookmarks.clear(); TQDomDocument doc( "KasablancaBookmarks" ); TQFile filein(locateLocal("appdata", "bookmarks.xml")); if( !filein.open( IO_ReadOnly ) ) return bookmarks; if( !doc.setContent( &filein ) ) { filein.close(); return bookmarks; } filein.close(); TQDomElement root = doc.documentElement(); if( root.tagName() != "kasablanca" ) return bookmarks; TQDomNode curNode = root.firstChild(); while( !curNode.isNull() ) { TQDomElement siteElement = curNode.toElement(); if( !siteElement.isNull() ) { if( siteElement.tagName() == "site" ) { KbSiteInfo entry; entry.SetPasv(1); entry.SetTls(0); entry.SetAlternativeFxp(0); entry.SetCorrectPasv(0); entry.SetDefaultDirectory(""); entry.SetName(siteElement.attribute( "name", "" )); TQDomNode siteNode = siteElement.firstChild(); while( !siteNode.isNull() ) { TQDomElement curElement = siteNode.toElement(); if( !curElement.isNull() ) { if(curElement.tagName() == "user") entry.SetUser(curElement.text()); if(curElement.tagName() == "pass") entry.SetPass(curElement.text()); if(curElement.tagName() == "info") entry.SetInfo(curElement.text()); if(curElement.tagName() == "defaultdirectory") entry.SetDefaultDirectory(curElement.text()); if(curElement.tagName() == "pasv") entry.SetPasv(curElement.text().toInt()); if(curElement.tagName() == "tls") entry.SetTls(curElement.text().toInt()); if(curElement.tagName() == "alternativefxp") entry.SetAlternativeFxp(curElement.text().toInt()); if(curElement.tagName() == "correctpasv") entry.SetCorrectPasv(curElement.text().toInt()); } siteNode = siteNode.nextSibling(); } if (entry.IsLegit()) bookmarks.push_back(entry); } } curNode = curNode.nextSibling(); } return bookmarks; } bool KbSiteInfo::WriteBookmarks(list bookmarks) { TQDomDocument doc( "KasablancaBookmarks" ); TQDomElement root = doc.createElement( "kasablanca" ); doc.appendChild( root ); list::iterator end_bookmarks = bookmarks.end(); for (list::iterator i = bookmarks.begin(); i != end_bookmarks; i++) { if ((*i).IsLegit()) { TQDomElement siteElement = doc.createElement("site"); siteElement.setAttribute("name", (*i).GetName()); root.appendChild( siteElement ); TQDomText text; TQDomElement curElement; curElement = doc.createElement( "user" ); siteElement.appendChild( curElement ); text = doc.createTextNode((*i).GetUser()); curElement.appendChild(text); curElement = doc.createElement( "pass" ); siteElement.appendChild( curElement ); text = doc.createTextNode((*i).GetPass()); curElement.appendChild(text); curElement = doc.createElement( "info" ); siteElement.appendChild( curElement ); text = doc.createTextNode((*i).GetInfo()); curElement.appendChild(text); curElement = doc.createElement( "pasv" ); siteElement.appendChild( curElement ); text = doc.createTextNode(TQString::number((*i).GetPasv())); curElement.appendChild(text); curElement = doc.createElement( "tls" ); siteElement.appendChild( curElement ); text = doc.createTextNode(TQString::number((*i).GetTls())); curElement.appendChild(text); curElement = doc.createElement( "alternativefxp" ); siteElement.appendChild( curElement ); text = doc.createTextNode(TQString::number((*i).GetAlternativeFxp())); curElement.appendChild(text); curElement = doc.createElement( "correctpasv" ); siteElement.appendChild( curElement ); text = doc.createTextNode(TQString::number((*i).GetCorrectPasv())); curElement.appendChild(text); curElement = doc.createElement( "defaultdirectory" ); siteElement.appendChild( curElement ); text = doc.createTextNode((*i).GetDefaultDirectory()); curElement.appendChild(text); } } TQFile fileout(locateLocal("appdata", "bookmarks.xml")); if( !fileout.open( IO_WriteOnly ) ) return false; TQTextStream ts( &fileout ); ts << doc.toString(); fileout.close(); return true; }