我正在尝试编写自定义KDE Purpose 该插件会将文件上传到我的服务器,并将链接复制到剪贴板。第二部分出现问题,上传正常。
这是我的自定义插件,已注册并显示在Share plasmoid菜单中:
我的代码基于Pastebin插件(请参见源压缩包中的源代码-https://download.kde.org/stable/frameworks/5.47/purpose-5.47.0.tar.xz)。
这是我的插件代码:
https://git.ondrovo.com/ondra/kde-purpose-neonplugin/src/branch/master/neon-upload
现在这是有问题的部分-它向我显示了一条通知,并且上传完成了(我产生了一个rsync进程来执行此操作),但是剪贴板代码不起作用,并且我无法获得结果页面,例如使用Pastebin插件
if (!QProcess::startDetached(executable, args)) {
setError(KJob::UserDefinedError);
setErrorText(i18n("Failed to launch executable"));
}
else {
const auto url = QStringLiteral("https://data.ondrovo.com/%1").arg(pathfragment);
// this should copy the link to clipboard, but has no effect at all
QClipboard *clipboard = QGuiApplication::clipboard();
clipboard->setText(url);
const auto notify_exec = QStandardPaths::findExecutable(QStringLiteral("notify-send"));
const auto args = QStringList{
QStringLiteral("File %1 uploaded to Neon").arg(filename),
url
};
QProcess::startDetached(notify_exec, args);
// this should show it in the pop-up window after upload, like Pastebin - but doesn't work
setOutput( { { QStringLiteral("url"), url } });
}
emitResult();
这也是我也想通过我的插件获得的东西,或者至少是剪贴板可以使用的东西。
有什么提示吗?