All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Protected Member Functions
GeopsyCore::AbstractFileFormat Class Reference

Brief description of class still missing. More...

#include <AbstractFileFormat.h>

Inheritance diagram for GeopsyCore::AbstractFileFormat:
QGpCoreTools::XMLClass QGpCoreTools::SharedObject GeopsyCore::AsciiSignalFormat MatFormat

List of all members.

Public Member Functions

 AbstractFileFormat ()
 AbstractFileFormat (const AbstractFileFormat &o)
void addExtension (QString e)
void addExtensions (const QString &el)
void clearExtensions ()
virtual int complexity () const
QString extensionFilter () const
const QStringList & extensions () const
virtual SignalFileFormat::Format format () const
virtual bool isReadOnly () const
virtual bool isValid (const QString &) const
virtual bool load (SignalFile *file) const
virtual bool load (const Signal *sig, double *samples) const
const QString & name () const
void operator= (const AbstractFileFormat &o)
virtual bool save (const SubSignalPool &subpool, const QString &filePath) const
void setName (const QString &n)
virtual SignalFileFormat::Storage storage () const
QString toString () const
 ~AbstractFileFormat ()

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual bool xml_setProperty (XML_SETPROPERTY_ARGS)
virtual void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References TRACE.

  {
    TRACE;
  }

Description of constructor still missing

References TRACE.

    : XMLClass(), SharedObject(o)
  {
    TRACE;
    _name=o._name;
    _extensions=o._extensions;
  }

Description of destructor still missing

References TRACE.

  {
    TRACE;
  }

Member Function Documentation

Add e to the list of accepted extensions. The first one is the default one.

References TRACE.

Referenced by addExtensions(), and MatFormat::MatFormat().

  {
    TRACE;
    if(e.left(1)==".") {
      e=e.mid(1);
    }
    _extensions << e.trimmed();
  }
void GeopsyCore::AbstractFileFormat::addExtensions ( const QString &  el)

Add extensions from a coma-separated list.

References addExtension(), and TRACE.

  {
    TRACE;
    QStringList eList=el.split(",");
    foreach(QString e, eList) {
      addExtension(e);
    }
  }
{_extensions.clear();}
virtual int GeopsyCore::AbstractFileFormat::complexity ( ) const [inline, virtual]

Returns all possible extension as filter string.

References TRACE.

Referenced by GeopsyCore::SignalFileFormat::filter().

  {
    TRACE;
    QString f;
    foreach(QString e, _extensions) {
      if(!f.isEmpty()) {
        f+=" ";
      }
      f+="*."+e;
    }
    return f;
  }
const QStringList& GeopsyCore::AbstractFileFormat::extensions ( ) const [inline]
virtual bool GeopsyCore::AbstractFileFormat::isReadOnly ( ) const [inline, virtual]

Reimplemented in MatFormat.

Referenced by GeopsyCore::SignalFileFormat::isReadOnly(), and GeopsyCore::SubSignalPool::save().

{return true;}
virtual bool GeopsyCore::AbstractFileFormat::isValid ( const QString &  ) const [inline, virtual]

Reimplemented in GeopsyCore::AsciiSignalFormat, and MatFormat.

Referenced by GeopsyCore::CustomFileFormats::fromContent().

{return false;}
bool GeopsyCore::AbstractFileFormat::load ( SignalFile file) const [virtual]

Reimplemented in MatFormat.

References TRACE.

Referenced by GeopsyCore::SignalFile::load().

  {
    TRACE;
    return false;
  }
bool GeopsyCore::AbstractFileFormat::load ( const Signal sig,
double *  samples 
) const [virtual]

Reimplemented in MatFormat.

References TRACE.

  {
    TRACE;
    return false;
  }
const QString& GeopsyCore::AbstractFileFormat::name ( ) const [inline]
void GeopsyCore::AbstractFileFormat::operator= ( const AbstractFileFormat o)

References TRACE.

  {
    TRACE;
    SharedObject::operator=(o);
    _name=o._name;
    _extensions=o._extensions;
  }
bool GeopsyCore::AbstractFileFormat::save ( const SubSignalPool subpool,
const QString &  filePath 
) const [virtual]

Reimplemented in MatFormat.

References TRACE.

Referenced by GeopsyCore::SubSignalPool::save().

  {
    TRACE;
    return false;
  }
void GeopsyCore::AbstractFileFormat::setName ( const QString &  n) [inline]

Referenced by MatFormat::MatFormat().

{_name=n;}

Removes all spaces from name() and set upper letters for first letters of each word.

References QGpCoreTools::endl(), QGpCoreTools::tr(), and TRACE.

Referenced by GeopsyCore::CustomFileFormats::fromString(), and GeopsyCore::SignalFileFormat::toString().

  {
    TRACE;
    QString standardName;
    QRegExp reg;
    reg.setPattern(" *([a-zA-Z])");
    int index=reg.indexIn(_name, 0);
    if(index<0) {
      App::stream() << tr("Bad format name, it must start with a letter.") << endl;
      return QString::null;
    }
    standardName=reg.cap(0).toUpper();
    index+=reg.matchedLength();
    int lastIndex=index;
    reg.setPattern(" +\\b([a-zA-Z]?)");
    index=reg.indexIn(_name, lastIndex);
    while(index>=0) {
      standardName+=_name.mid(lastIndex, index-lastIndex);
      standardName+=reg.cap(1).toUpper();
      index+=reg.matchedLength();
      lastIndex=index;
      index=reg.indexIn(_name, lastIndex);
    }
    standardName+=_name.mid(lastIndex);
    return standardName;
  }

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:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

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.

Reimplemented in GeopsyCore::AsciiSignalFormat.

References TRACE.

  {
    TRACE;
    Q_UNUSED(context);
    Q_UNUSED(attributes);
    if(tag=="name") return XMLMember(0);
    else if(tag=="extensions") return XMLMember(1);
    else return XMLMember(XMLMember::Unknown);
  }

Re-implement this function to offer XML restore properties support to your class.

From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).

For a general case:

  Q_UNUSED(attributes);
  double val=content.toDouble();
  switch (memberID) {
  case 0:
    _x1=val;
    return true;
  case 1:
    _y1=val;
    return true;
  case 2:
    _x2=val;
    return true;
  case 3:
    _y2=val;
    return true;
  default:
    return false;
  }

For classes inheriting other classes (see also xml_member())

  switch (memberID) {
  case 0:
    _anInteger=content.toString();
    return true;
  case 1:
    _aString=content.toInt();
    return true;
  case 2:
    _aDouble=content.toDouble();
    return true;
  default:
    return AbstractLine::xml_setProperty(memberID-3, map, content);

For the arguments of this function use Macro XML_SETPROPERTY_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

Reimplemented in GeopsyCore::AsciiSignalFormat.

References TRACE.

  {
    TRACE;
    Q_UNUSED(tag);
    Q_UNUSED(attributes);
    Q_UNUSED(context);
    switch (memberID) {
    case 0: _name=content.toString(); return true;
    case 1: _extensions=content.toString().split(","); return true;
    default:
      break;
    }
    return false;
  }

Reimplemented from QGpCoreTools::XMLClass.

Reimplemented in GeopsyCore::AsciiSignalFormat.

References TRACE, and QGpCoreTools::XMLClass::writeProperty().

  {
    TRACE;
    Q_UNUSED(context);
    writeProperty(s, "name", _name);
    writeProperty(s, "extensions", _extensions.join(","));
  }

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines