summaryrefslogtreecommitdiff
path: root/saltoqd/toqmanageradaptor.cpp
diff options
context:
space:
mode:
authorJavier <dev.git@javispedro.com>2015-04-14 23:36:29 +0200
committerJavier <dev.git@javispedro.com>2015-04-14 23:38:28 +0200
commite48a4a6f34bd813c690d8066af39c781a922b532 (patch)
tree7b5ba4348b5a29b3928f898f7245d0734d7fd51b /saltoqd/toqmanageradaptor.cpp
parentf915a22bd680376dc47ff72bb00ac73df1dd09a7 (diff)
downloadsaltoq-e48a4a6f34bd813c690d8066af39c781a922b532.tar.gz
saltoq-e48a4a6f34bd813c690d8066af39c781a922b532.zip
allow writing images from dbus
Diffstat (limited to 'saltoqd/toqmanageradaptor.cpp')
-rw-r--r--saltoqd/toqmanageradaptor.cpp35
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());
+}