16#ifndef QGSPATHRESOLVER_H 
   17#define QGSPATHRESOLVER_H 
   35    explicit QgsPathResolver( 
const QString &baseFileName = QString(), 
const QString &attachmentDir = QString() );
 
   42    QString writePath( 
const QString &filename ) 
const;
 
   45    QString readPath( 
const QString &filename ) 
const;
 
   67    static QString setPathPreprocessor( 
const std::function< QString( 
const QString &filename )> &processor );
 
  113    static QString setPathPreprocessor( SIP_PYCALLABLE / AllowNone / );
 
  116    Py_BEGIN_ALLOW_THREADS
 
  122      PyObject *s = sipCallMethod( NULL, a0, 
"D", &arg, sipType_QString, NULL );
 
  125      QString *t1 = 
reinterpret_cast<QString *
>( sipConvertToType( s, sipType_QString, 0, SIP_NOT_NONE, &state, &sipIsError ) );
 
  126      if ( sipIsError == 0 )
 
  128        res = QString( *t1 );
 
  130      sipReleaseType( t1, sipType_QString, state );
 
  135    s = sipConvertFromNewType( 
new QString( 
id ), sipType_QString, 0 );
 
  153    static bool removePathPreprocessor( 
const QString &
id );
 
  166    static void removePathPreprocessor( 
const QString &
id );
 
  170      PyErr_SetString( PyExc_KeyError, QStringLiteral( 
"No processor with id %1 exists." ).arg( *a0 ).toUtf8().constData() );
 
  197    static QString setPathWriter( 
const std::function< QString( 
const QString &filename )> &writer );
 
  223    static QString setPathWriter( SIP_PYCALLABLE / AllowNone / );
 
  226    Py_BEGIN_ALLOW_THREADS
 
  232      PyObject *s = sipCallMethod( NULL, a0, 
"D", &arg, sipType_QString, NULL );
 
  235      QString *t1 = 
reinterpret_cast<QString *
>( sipConvertToType( s, sipType_QString, 0, SIP_NOT_NONE, &state, &sipIsError ) );
 
  236      if ( sipIsError == 0 )
 
  238        res = QString( *t1 );
 
  240      sipReleaseType( t1, sipType_QString, state );
 
  245    s = sipConvertFromNewType( 
new QString( 
id ), sipType_QString, 0 );
 
  262    static bool removePathWriter( 
const QString &
id );
 
  274    static void removePathWriter( 
const QString &
id );
 
  278      PyErr_SetString( PyExc_KeyError, QStringLiteral( 
"No writer with id %1 exists." ).arg( *a0 ).toUtf8().constData() );
 
  286    QString mBaseFileName;
 
  288    QString mAttachmentDir;
 
Resolves relative paths into absolute paths and vice versa.
 
static bool removePathPreprocessor(const QString &id)
Removes the custom pre-processor function with matching id.
 
static QString setPathPreprocessor(const std::function< QString(const QString &filename)> &processor)
Sets a path pre-processor function, which allows for manipulation of paths and data sources prior to ...
 
static bool removePathWriter(const QString &id)
Removes the custom writer function with matching id.
 
static QString setPathWriter(const std::function< QString(const QString &filename)> &writer)
Sets a path writer function, which allows for manipulation of paths and data sources prior to writing...