From e48a4a6f34bd813c690d8066af39c781a922b532 Mon Sep 17 00:00:00 2001 From: Javier Date: Tue, 14 Apr 2015 23:36:29 +0200 Subject: allow writing images from dbus --- saltoqd/toqmanageradaptor.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'saltoqd/toqmanageradaptor.cpp') diff --git a/saltoqd/toqmanageradaptor.cpp b/saltoqd/toqmanageradaptor.cpp index d5ee41d..5ec11c2 100644 --- a/saltoqd/toqmanageradaptor.cpp +++ b/saltoqd/toqmanageradaptor.cpp @@ -1,6 +1,9 @@ #include +#include +#include #include "toqmanageradaptor.h" +#include "msolimageiohandler.h" #include "fmsmanager.h" ToqManagerAdaptor::ToqManagerAdaptor(FmsManager *fms, ToqManager *parent) @@ -11,6 +14,11 @@ ToqManagerAdaptor::ToqManagerAdaptor(FmsManager *fms, ToqManager *parent) setAutoRelaySignals(true); } +void ToqManagerAdaptor::PutData(const QByteArray &data, const QString &remoteFile) +{ + _fms->updateFile(remoteFile, data); +} + void ToqManagerAdaptor::PutFile(const QString &localFile, const QString &remoteFile, const QDBusMessage &msg) { QFile f(localFile); @@ -22,3 +30,30 @@ void ToqManagerAdaptor::PutFile(const QString &localFile, const QString &remoteF _fms->updateFile(remoteFile, f.readAll()); } + +void ToqManagerAdaptor::PutImage(const QString &localFile, const QString &remoteFile, const QDBusMessage &msg) +{ + QFile f(localFile); + if (!f.exists()) { + QDBusMessage reply = msg.createErrorReply("com.javispedro.saltoq.InvalidFile", "File does not exist"); + _conn.send(reply); + return; + } + QImage image(localFile); + if (image.isNull()) { + QDBusMessage reply = msg.createErrorReply("com.javispedro.saltoq.InvalidImage", "Cannot read image"); + _conn.send(reply); + return; + } + MSOLImageIOHandler msolio; + QBuffer msolImg; + msolImg.open(QBuffer::WriteOnly); + msolio.setDevice(&msolImg); + if (!msolio.write(image)) { + QDBusMessage reply = msg.createErrorReply("com.javispedro.saltoq.InvalidImage", "Cannot convert this image"); + _conn.send(reply); + return; + } + + _fms->updateFile(remoteFile, msolImg.data()); +} -- cgit v1.2.3