diff --git a/src/dbusadaptor.cpp b/src/dbusadaptor.cpp index e4d5564..86a5d3e 100644 --- a/src/dbusadaptor.cpp +++ b/src/dbusadaptor.cpp @@ -12,11 +12,21 @@ DBusAdaptor::~DBusAdaptor() { } -void DBusAdaptor::Open(const QStringList &uris, const QVariantMap &) +void DBusAdaptor::Open(const QStringList& uris, const QVariantMap& platformData) { - if (!uris.isEmpty()) { + qDebug() << platformData; + if (!uris.isEmpty() && uris[0] != "") { QMetaObject::invokeMethod(_view->rootObject(), "openFile", Q_ARG(QVariant, uris.at(0))); } + else if(platformData.contains("data")) + { + QTemporaryFile tmpfile(QDir::tempPath() + "/" + (platformData.contains("name") ? platformData["name"].toString() : "seaprint")); + tmpfile.setAutoRemove(false); + tmpfile.open(); + tmpfile.write(platformData["data"].toString().toUtf8()); + tmpfile.close(); + QMetaObject::invokeMethod(_view->rootObject(), "openFile", Q_ARG(QVariant, tmpfile.fileName())); + } QMetaObject::invokeMethod(_view->rootObject(), "activate"); }