summaryrefslogtreecommitdiff
path: root/saltoqd/toqmanageradaptor.cpp
diff options
context:
space:
mode:
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());
+}