#pragma once #include #include class Launcher : public QObject { Q_OBJECT public: explicit Launcher(QObject* parent=nullptr); Q_INVOKABLE bool launch(const QVariantMap& entry); private: bool launchDesktop(const QVariantMap& e); bool launchUrl(const QString& url); bool launchCommand(const QString& exec, const QStringList& args); QString sanitizeDesktopExec(QString exec) const; };