|
#pragma once
|
|
|
|
#include <QClipboard>
|
|
#include <QObject>
|
|
#include <QImage>
|
|
#include <QUrl>
|
|
#include <QProcess>
|
|
#include <iostream>
|
|
#include <QGuiApplication>
|
|
|
|
class Clipboard : public QObject {
|
|
Q_OBJECT
|
|
|
|
public:
|
|
Clipboard(QGuiApplication *owner, const char *app) : _app(app), _owner(owner) { }
|
|
virtual ~Clipboard() {};
|
|
|
|
Q_INVOKABLE void setClipboard(QUrl str) {
|
|
QProcess proc;
|
|
proc.setProgram(QString(_app));
|
|
|
|
QStringList args{"clipboard", str.path()};
|
|
proc.setArguments(args);
|
|
|
|
qint64 pid;
|
|
proc.startDetached(&pid);
|
|
std::cout << "clipboard owner " << _app << " started: " << pid << std::endl;
|
|
|
|
_owner->quit();
|
|
}
|
|
|
|
private:
|
|
const char *_app;
|
|
QGuiApplication *_owner;
|
|
};
|