diff options
author | Javier <dev.git@javispedro.com> | 2015-04-14 23:36:29 +0200 |
---|---|---|
committer | Javier <dev.git@javispedro.com> | 2015-04-14 23:38:28 +0200 |
commit | e48a4a6f34bd813c690d8066af39c781a922b532 (patch) | |
tree | 7b5ba4348b5a29b3928f898f7245d0734d7fd51b /saltoqd/toqmanageradaptor.cpp | |
parent | f915a22bd680376dc47ff72bb00ac73df1dd09a7 (diff) | |
download | saltoq-e48a4a6f34bd813c690d8066af39c781a922b532.tar.gz saltoq-e48a4a6f34bd813c690d8066af39c781a922b532.zip |
allow writing images from dbus
Diffstat (limited to 'saltoqd/toqmanageradaptor.cpp')
-rw-r--r-- | saltoqd/toqmanageradaptor.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
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 <QtCore/QFile> +#include <QtCore/QBuffer> +#include <QtGui/QImage> #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()); +} |