16 #ifndef QGSPATHRESOLVER_H
17 #define QGSPATHRESOLVER_H
19 #include "qgis_core.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;
291 #endif // QGSPATHRESOLVER_H