File indexing completed on 2024-06-16 04:42:42

0001 /*
0002   SPDX-FileCopyrightText: 2022-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include <QObject>
0010 namespace Purpose
0011 {
0012 class Menu;
0013 }
0014 class QMenu;
0015 class QTemporaryFile;
0016 class PurposeMenuWidget : public QObject
0017 {
0018     Q_OBJECT
0019 public:
0020     explicit PurposeMenuWidget(QObject *parent = nullptr);
0021     ~PurposeMenuWidget() override;
0022 
0023     [[nodiscard]] QByteArray text();
0024     [[nodiscard]] QMenu *menu() const;
0025 
0026     void setSelectedText(const QString &str);
0027 
0028 Q_SIGNALS:
0029     void errorMessage(const QString &message);
0030     void successMessage(const QString &message);
0031 
0032 private:
0033     void slotInitializeShareMenu();
0034     void slotShareActionFinished(const QJsonObject &output, int error, const QString &message);
0035     QString mSelectedText;
0036     Purpose::Menu *const mShareMenu;
0037     QTemporaryFile *mTemporaryShareFile = nullptr;
0038 };