##// END OF EJS Templates
Removed _d for debug binaries, moved plugin to default location...
Removed _d for debug binaries, moved plugin to default location in /usr/lib(64)/SocExplorer/plugins and added /etc/SocExplorer/plugin.conf.d/ as lookup path.

File last commit:

r0:1aa783210b8e default
r65:7f2fbf718320 default
Show More
xmldriver.cpp
105 lines | 2.6 KiB | text/x-c | CppLexer
#include "xmldriver.h"
#include <socexplorerengine.h>
#include <QFile>
#include <QDebug>
XMLDriver::XMLDriver(QObject *parent) :
QObject(parent)
{
this->xmlFiles = new QList<xmlfile*>();
this->scanXmlFiles();
}
int XMLDriver::checkXmlFile(const QString &fileName)
{
QDomDocument document;
QFile file( fileName );
if( !file.open( QIODevice::ReadOnly ) )
return 0;
document.setContent(&file);
if(document.isNull())
return 0;
file.close();
return 1;
}
int XMLDriver::createXmlFile(const QString &fileName)
{
QDomDocument* xmlDoc=new QDomDocument();
QDomProcessingInstruction header = xmlDoc->createProcessingInstruction( "xml", "version=\"1.0\" encoding=\"utf-8\"" );
xmlDoc->appendChild( header );
QDomElement rootnode= xmlDoc->createElement("socExplorerXml");
rootnode.setAttribute("name",fileName);
xmlDoc->appendChild(rootnode);
QFile file( fileName );
if(!file.exists())
{
if( !file.open( QIODevice::WriteOnly ) )
return 0;
QTextStream ts( &file );
ts << xmlDoc->toString();
file.close();
return 1;
}
return 0;
}
QList<xmlfile *> XMLDriver::getFileList(const QString &tagNameFilter)
{
QList<xmlfile*> list;
for(int i=0;i<xmlFiles->count();i++)
{
if(xmlFiles->at(i)->rootTagName()==tagNameFilter)
{
list.append(xmlFiles->at(i));
}
}
return list;
}
QList<QDomNodeList> XMLDriver::getAllNodes(const QString &tagName)
{
QList<QDomNodeList> list;
for(int i=0;i<xmlFiles->count();i++)
{
QDomNodeList nodes=xmlFiles->at(i)->getRootElement()->elementsByTagName(tagName);
if(!nodes.isEmpty())
{
list.append(nodes);
}
}
return list;
}
void XMLDriver::registerXmlFile(const QString &fileName)
{
for(int i=0;i<xmlFiles->count();i++)
{
if(xmlFiles->at(i)->fileName()==fileName)
{
return;
}
}
xmlFiles->append(new xmlfile(fileName));
}
void XMLDriver::scanXmlFiles()
{
QDir configDir(SocExplorerEngine::configFolder());
QFileInfoList list = configDir.entryInfoList();
for (int i = 0; i < list.size(); ++i)
{
QFileInfo fileInfo = list.at(i);
if(fileInfo.isFile())
{
if(fileInfo.fileName().contains(".xml") && !fileInfo.fileName().contains(".xml~"))
{
qDebug()<<"Found " + fileInfo.fileName();
if(checkXmlFile(fileInfo.absoluteFilePath()))
{
registerXmlFile(fileInfo.absoluteFilePath());
}
}
}
}
}