aseprite/desktop/kde/aseprite_thumb_creator.cpp
2016-04-28 14:47:53 -03:00

40 lines
954 B
C++

// Aseprite Desktop Integration Module
// Copyright (C) 2016 Gabriel Rauter
//
// Licensed under the the MIT License (https://opensource.org/licenses/MIT).
#include "aseprite_thumb_creator.h"
#include <QImage>
#include <QProcess>
#include <QStringList>
#include <QFile>
#include <QCryptographicHash>
#include <cstdio>
extern "C"
{
Q_DECL_EXPORT ThumbCreator *new_creator()
{
return new AsepriteThumbCreator();
}
};
bool AsepriteThumbCreator::create(const QString& path, int width, int height, QImage& img)
{
QProcess process;
QStringList list;
QString tmpFile = QString(QCryptographicHash::hash(path.toLocal8Bit(),QCryptographicHash::Md5).toHex());
list << path << tmpFile;
process.start(QString("aseprite-thumbnailer"), list);
if (!process.waitForFinished()) return false;
img.load(tmpFile);
QFile::remove(tmpFile);
return true;
}
AsepriteThumbCreator::Flags AsepriteThumbCreator::flags() const
{
return DrawFrame;
}