15#include <QTextDecoder>
31 const QFileInfo f(
name());
47 while (fileInfo.exists()) {
77 Q_UNUSED(resourcesInterface);
80 dev->open(QIODevice::ReadOnly);
82 d->
data = dev->readAll();
88 warnFlake <<
"Cannot load SeExpr script" <<
name() <<
", there is no filename set";
92 if (
d->
data.isNull()) {
94 if (file.size() == 0) {
95 warnFlake <<
"Cannot load SeExpr script" <<
name() <<
"there is no data available";
99 if (!file.open(QIODevice::ReadOnly)) {
100 warnFlake <<
"Cannot load SeExpr script" <<
name() <<
":" << file.errorString();
103 d->
data = file.readAll();
107 QBuffer buf(&
d->
data);
108 buf.open(QBuffer::ReadOnly);
111 if (!store || store->bad())
114 bool storeOpened = store->open(
"script.se");
119 d->
script = QString(store->read(store->size()));
122 if (store->open(
"preview.png")) {
124 previewDev.
open(QIODevice::ReadOnly);
126 QImage preview = QImage();
127 preview.load(&previewDev,
"PNG");
130 (
void)store->close();
144 if (!store || store->
bad())
147 if (!store->
open(
"script.se")) {
152 storeDev.
open(QIODevice::WriteOnly);
154 storeDev.write(
d->
script.toUtf8());
156 if (!store->
close()) {
160 if (!store->
open(
"preview.png")) {
165 previewDev.
open(QIODevice::WriteOnly);
167 image().save(&previewDev,
"PNG");
168 if (!store->
close()) {
182 return QString(
".kse");
void setScript(const QString &script)
set SeExpr expression script
QString name() const override
QString defaultFileExtension() const override
bool loadFromDevice(QIODevice *dev, KisResourcesInterfaceSP resourcesInterface) override
KoResourceSP clone() const override
KisSeExprScript(const QString &filename)
QPair< QString, QString > resourceType() const override
QString script() const
script the actual script
bool saveToDevice(QIODevice *dev) const override
bool open(OpenMode m) override
static KoStore * createStore(const QString &fileName, Mode mode, const QByteArray &appIdentification=QByteArray(), Backend backend=Auto, bool writeMimetype=true)
bool open(const QString &name)
#define KIS_SAFE_ASSERT_RECOVER_RETURN_VALUE(cond, val)
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
typedef void(QOPENGLF_APIENTRYP PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer)
QSharedPointer< KoResource > KoResourceSP
const QString SeExprScripts
void setValid(bool valid)
void setName(const QString &name)
void setFilename(const QString &filename)
void setDirty(bool value)
Mark the preset as modified but not saved.
void setImage(const QImage &image)