#ifdef FLATPAK #include #include #include #include #include #include //flatpak bug prevent to use QFile::moveToTrash bool moveToTrash(const QString &path) { QDBusConnection con = QDBusConnection::sessionBus(); QDBusMessage message = QDBusMessage::createMethodCall("org.freedesktop.portal.Desktop", "/org/freedesktop/portal/desktop", "org.freedesktop.portal.Trash", "TrashFile"); int fd = ::open(path.toLocal8Bit().data(), O_RDWR); if(fd >= 0) { QList args = {QVariant::fromValue(QDBusUnixFileDescriptor(fd))}; message.setArguments(args); QDBusMessage reply = con.call(message); ::close(fd); if(reply.type() == QDBusMessage::ReplyMessage && reply.arguments().size() && reply.arguments().first().toInt()) return true; else return false; } return false; } #else #include #include bool moveToTrash(const QString &path) { return QFile::moveToTrash(path); } #endif