Official list of custom formats (ASCII and others) More...
#include <CustomFileFormats.h>
Public Member Functions | |
| void | add (AbstractFileFormat *format) |
| void | clear (SignalFileFormat::Format id=SignalFileFormat::Unknown) |
| bool | contains (const QString &name) const |
| int | count () const |
| CustomFileFormats () | |
| AbstractFileFormat * | format (int index) |
| SignalFileFormat | fromContent (const QString &fileName) const |
| SignalFileFormat | fromExtension (const QString &ext) const |
| SignalFileFormat | fromString (const QString &f) const |
| QList< SignalFileFormat > | list () const |
| QString | name (int index) const |
| void | remove (int index) |
| void | save () |
| void | setFormats (const CustomFileFormats &o, SignalFileFormat::Format id=SignalFileFormat::Unknown) |
| virtual const QString & | xml_tagName () const |
| ~CustomFileFormats () | |
Static Public Attributes | |
| static const QString | xmlCustomFileFormatsTag = "CustomFileFormats" |
Protected Member Functions | |
| virtual XMLMember | xml_member (XML_MEMBER_ARGS) |
| virtual void | xml_writeChildren (XML_WRITECHILDREN_ARGS) const |
Official list of custom formats (ASCII and others)
Full description of class still missing
Description of constructor still missing
References QGpCoreTools::XMLErrorReport::exec(), QGpCoreTools::XMLErrorReport::setTitle(), QGpCoreTools::tr(), TRACE, and QGpCoreTools::XMLHeader::xml_restoreString().
: XMLClass() { TRACE; QSettings reg; QString xmlFormats=reg.value("CustomFileFormats", "").toString(); if(!xmlFormats.isEmpty()) { XMLHeader hdr(this); XMLErrorReport xmler(XMLErrorReport::Read | XMLErrorReport::NoMessageBox); xmler.setTitle(tr("Loading custom formats")); xmler.exec(hdr.xml_restoreString(xmlFormats)); } }
| void GeopsyCore::CustomFileFormats::add | ( | AbstractFileFormat * | format | ) |
References QGpCoreTools::SharedObject::addReference(), and TRACE.
Referenced by Plugin::Plugin(), setFormats(), and xml_member().
{
TRACE;
format->addReference();
_formats.append(format);
}
| void GeopsyCore::CustomFileFormats::clear | ( | SignalFileFormat::Format | id = SignalFileFormat::Unknown | ) |
Remove all formats with id , or all formats if is SignalFileFormat::Unknown.
References GeopsyCore::AbstractFileFormat::format(), format(), QGpCoreTools::SharedObject::removeReference(), TRACE, and GeopsyCore::SignalFileFormat::Unknown.
Referenced by setFormats(), and ~CustomFileFormats().
{
TRACE;
QMutableListIterator<AbstractFileFormat *> it(_formats);
while(it.hasNext()) {
AbstractFileFormat * format=it.next();
if(id==SignalFileFormat::Unknown || format->format()==id) {
AbstractFileFormat::removeReference(format);
it.remove();
}
}
}
| bool GeopsyCore::CustomFileFormats::contains | ( | const QString & | name | ) | const |
References format(), GeopsyCore::AbstractFileFormat::name(), name(), and TRACE.
Referenced by Plugin::Plugin().
| int GeopsyCore::CustomFileFormats::count | ( | ) | const [inline] |
Referenced by CustomFileFormatsModel::rowCount().
{return _formats.count();}
| AbstractFileFormat* GeopsyCore::CustomFileFormats::format | ( | int | index | ) | [inline] |
Referenced by clear(), contains(), fromContent(), fromExtension(), fromString(), list(), remove(), setFormats(), and xml_member().
{return _formats.at(index);}
| SignalFileFormat GeopsyCore::CustomFileFormats::fromContent | ( | const QString & | fileName | ) | const |
References GeopsyCore::AbstractFileFormat::complexity(), GeopsyCore::AbstractFileFormat::format(), format(), GeopsyCore::AbstractFileFormat::isValid(), TRACE, and GeopsyCore::SignalFileFormat::Unknown.
Referenced by GeopsyCore::SignalFileFormat::fromContent().
{
TRACE;
// Sort format by decreasing complexity (to avoid false identifications)
QMultiMap<int, AbstractFileFormat *> formatMap;
foreach(AbstractFileFormat * format, _formats) {
formatMap.insert(format->complexity(), format);
}
QMapIterator<int, AbstractFileFormat *> it(formatMap);
it.toBack();
while(it.hasPrevious()) {
it.previous();
AbstractFileFormat * format=it.value();
if(format->isValid(fileName)) {
return SignalFileFormat(format->format(), format);
}
}
return SignalFileFormat::Unknown;
}
| SignalFileFormat GeopsyCore::CustomFileFormats::fromExtension | ( | const QString & | ext | ) | const |
References GeopsyCore::AbstractFileFormat::extensions(), GeopsyCore::AbstractFileFormat::format(), format(), TRACE, and GeopsyCore::SignalFileFormat::Unknown.
Referenced by GeopsyCore::SignalFileFormat::fromSuffix().
{
TRACE;
foreach(AbstractFileFormat * format, _formats) {
if(!format->extensions().isEmpty()) {
if(format->extensions().contains(ext, Qt::CaseInsensitive)) {
return SignalFileFormat(format->format(), format);
}
}
}
return SignalFileFormat::Unknown;
}
| SignalFileFormat GeopsyCore::CustomFileFormats::fromString | ( | const QString & | f | ) | const |
References GeopsyCore::AbstractFileFormat::format(), format(), GeopsyCore::AbstractFileFormat::toString(), TRACE, and GeopsyCore::SignalFileFormat::Unknown.
Referenced by GeopsyCore::SignalFileFormat::fromString().
{
TRACE;
foreach(AbstractFileFormat * format, _formats) {
QString n=format->toString();
if(f==n) {
return SignalFileFormat(format->format(), format);
}
}
return SignalFileFormat::Unknown;
}
| QList< SignalFileFormat > GeopsyCore::CustomFileFormats::list | ( | ) | const |
References GeopsyCore::AbstractFileFormat::format(), format(), and TRACE.
Referenced by GeopsyCore::SignalFileFormat::importList(), listExportFormats(), and listImportFormats().
| QString GeopsyCore::CustomFileFormats::name | ( | int | index | ) | const |
References TRACE.
Referenced by contains(), and CustomFileFormatsModel::data().
{
TRACE;
return _formats.at(index)->name();
}
| void GeopsyCore::CustomFileFormats::remove | ( | int | index | ) |
References format(), QGpCoreTools::SharedObject::removeReference(), and TRACE.
{
TRACE;
AbstractFileFormat * format=_formats.at(index);
AbstractFileFormat::removeReference(format);
_formats.removeAt(index);
}
| void GeopsyCore::CustomFileFormats::save | ( | ) |
References TRACE, and QGpCoreTools::XMLHeader::xml_saveString().
Referenced by Preferences::on_formatCustomAscii_clicked().
| void GeopsyCore::CustomFileFormats::setFormats | ( | const CustomFileFormats & | o, |
| SignalFileFormat::Format | id = SignalFileFormat::Unknown |
||
| ) |
Set formats from o. If id is not SignalFileFormat::Unknown, add only formats which have AbstractFileFormat::format() equal to id.
References add(), clear(), GeopsyCore::AbstractFileFormat::format(), format(), TRACE, and GeopsyCore::SignalFileFormat::Unknown.
Referenced by Preferences::on_formatCustomAscii_clicked().
{
TRACE;
clear(id);
foreach(AbstractFileFormat * format, o._formats) {
if(id==SignalFileFormat::Unknown || format->format()==id) {
add(format);
}
}
}
| XMLMember GeopsyCore::CustomFileFormats::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
Re-implement this function to offer XML restore (children and properties) support to your class.
From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:
Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):
static const QString tmp("childrenName"); XMLRestoreAttributeIterator it=map.find(tmp); if(it!=map.end()) { // found attribute "childrenName" }
If the map of attributes is not used:
Q_UNUSED(attributes);
if(tag=="x1") return XMLMember(0);
else if(tag=="y1") return XMLMember(1);
else if(tag=="x2") return XMLMember(2);
else if(tag=="y2") return XMLMember(3);
else return XMLMember(XMLMember::Unknown);
Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.
if(tag=="anInteger") return XMLMember(0); else if(tag=="aString") return XMLMember(1); else if(tag=="aDouble") return XMLMember(2); return AbstractLine::xml_member(tag, attributes, context)+3;
For the arguments of this function use Macro XML_MEMBER_ARGS.
Reimplemented from QGpCoreTools::XMLClass.
References add(), format(), TRACE, and GeopsyCore::AsciiSignalFormat::xmlAsciiSignalFormatTag.
| virtual const QString& GeopsyCore::CustomFileFormats::xml_tagName | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLClass.
{return xmlCustomFileFormatsTag;}
| void GeopsyCore::CustomFileFormats::xml_writeChildren | ( | XML_WRITECHILDREN_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References TRACE, QGpCoreTools::XMLClass::xml_save(), QGpCoreTools::XMLClass::xml_tagName(), and GeopsyCore::AsciiSignalFormat::xmlAsciiSignalFormatTag.
{
TRACE;
// Currently only ASCII formats are stored in user settings
for(QList<AbstractFileFormat *>::const_iterator it=_formats.begin();it!=_formats.end();it++) {
AbstractFileFormat * f=*it;
if(f->xml_tagName()==AsciiSignalFormat::xmlAsciiSignalFormatTag) {
(*it)->xml_save(s, context);
}
}
}
const QString GeopsyCore::CustomFileFormats::xmlCustomFileFormatsTag = "CustomFileFormats" [static] |